{"_id":"@preply/ds-tokens","_rev":"118-5ab0dc3fc1da3576c6ddebb876fb8254","name":"@preply/ds-tokens","dist-tags":{"canary":"0.16.1-beta.fcd62fd93212d750cc3040e42a66ec999ce1719d.140","latest":"0.17.0"},"versions":{"0.12.4-beta.b8b1632629622e3dad9ce77369c8ac563f026927.94":{"name":"@preply/ds-tokens","version":"0.12.4-beta.b8b1632629622e3dad9ce77369c8ac563f026927.94","_id":"@preply/ds-tokens@0.12.4-beta.b8b1632629622e3dad9ce77369c8ac563f026927.94","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"668d0dc0e311f6970c4ca9f53bff9959968ccf73","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.4-beta.b8b1632629622e3dad9ce77369c8ac563f026927.94.tgz","fileCount":10,"integrity":"sha512-J45JZ5XsP2VM5F9o5ZzfTfH65PS8aLPFNfW6ZkFjmUzArmZ8vp03R7fW17aFsX5DLUlypCKRMhhFIkv/yDEhoA==","signatures":[{"sig":"MEQCICTRrnMS92AyXUhQD9VBPephyuLlRTQhyFIJ83kLiQ6pAiAreiAA6ApKoBPe8h478Ze/4S6YjsDboBtzIhpXR79VIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25550,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8VT8CRA9TVsSAnZWagAA6/MP/25PW/13/zxlx7+sktlz\nMrebFnYvbIhChMwiA1v5f4UwwQ0rKbV7/2UpG5EkMQNDCDQNv+UV4pJkrh33\nz2r+xWA6YfuWGXx5b55on417EfULNvU2aUMXQzP7T9rmFK3cGgySVY5biIHX\nwknwIdm1aredRWXt7wKKJorJPkIwKOnGZWN2/dJ4bjfemnZis1DLgnegvJrK\nPFax4u6PxP5Th+uKVO/MsU2GemWj9mTqjzJAf7Fdc7TtpVjKfKdQkJFCAfsK\nByNyFZ2miK471LFFSLgEyd160FhUogfMZgzDgCCla1Xzo0832qWznJvhNpUc\nih+vhmkDWm5scxKoDcTq91gVNVn3CwmZW/Asok0L6kHViXX8xayTtvlnwRdc\nzysSQZ7r4EttfHXjG2Z57ho1mu8nJCjJ38sVYnt/HWKyv1DgSAULcB0Q/Khg\nykn/hg4uyYFgjOoH4TgtR0LwPXx8E2zD4wTbM/Vuv4zmDgzRHeHcr56i1LiP\ngfgDp7DsUCmseOevQOpyDxZYJFyr0kZ2H5rfzXuyCpgwz1zSzDFIr2Tj7Ibq\nfiLxWSzYtDmVeSeln1Y+1GhGuWIAB87yhnCLxFxr6OaDB3mCVv1Ht4VJnSUO\n5ZkSEWgXSxTWWIqUsa4SOFmZl6lUSOraRGDuDPEZLtv464eMZ2tRdHaYsxpr\ne72I\r\n=0G1R\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"b8b1632629622e3dad9ce77369c8ac563f026927","_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.4-beta.b8b1632629622e3dad9ce77369c8ac563f026927.94_1643205883816_0.13836972899031386","host":"s3://npm-registry-packages"}},"0.12.4-beta.582fefc10cbdacb768d4ffbd470193d78110903f.95":{"name":"@preply/ds-tokens","version":"0.12.4-beta.582fefc10cbdacb768d4ffbd470193d78110903f.95","_id":"@preply/ds-tokens@0.12.4-beta.582fefc10cbdacb768d4ffbd470193d78110903f.95","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"2e20241e5ffc860e5caddf6c78320f591c88164c","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.4-beta.582fefc10cbdacb768d4ffbd470193d78110903f.95.tgz","fileCount":10,"integrity":"sha512-LhHCmrW9cxsOC80HZdiXmF3CRW1tfnUmXQ3aQ5IkCxdM/oSvOtVo0SbTAww6IZtKl9s/brp/Efm23SIHQABHMw==","signatures":[{"sig":"MEYCIQCnTQ76cz+41oEzxBZ59W0sZ1I0sGJCmDbtPGuIlKMThgIhAMTnIdiPuMkVKuo7JcH7rwz6IpbBFaaacN068zmJCbGZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25550,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8W5TCRA9TVsSAnZWagAA0gcP/RF0ywVm0B1VQDgZiaZU\nqNB+7Run2qa1nRKoOI9XT0+L+KXcCyesgRrbX8z9Cq5MWYUbJf8L7MfoiOLz\nsoNSSymR6cD5xCgVQilCdUSlUjSs4Bj9xsJg56m516V9rpY9UdEej8AgHIBG\nR9kuUvx8gSYMBZQWbth0GzY3hJ3qoI9f7w+txk9FJclc+x7w/KNrBlPPGdZv\nFMJqv+DPzkhz/Y+8V4n9VVwbtf7gaXDsPgrWl/YLNCTVCC/bzZeGhDgZT7iX\nILZP1xyDZBZnqnnoHBSf98NfaCGQulaRYY4cW+kxMm79g+cCysJHmLJ5u6Uw\nwcP2EPO54R4zqCPTAqY6n6L6OKQESd3KXhY8MUksKZKW/4SEdveYeoXKYEC6\nbC09HTnbRYCyoHZNnZP2pRBW0Oh5WDYK1q8UeHx9y+5gh3lUpLS0f5RbeJ5K\nXzENlkeLHAi85NRJF4a+JRwk4FkT7ZoRXgngPGaG/h+AUlU5IaIVhrVX//yF\np5atprMEJpBcwUfU1XfES3h67ni29KaZt9M1OP3Lri+Gio0lqeoJlCg2NokM\nT6cxWwovHIBFztECetN6jic6pV6EsA6QSBlbu5cWPPRgo8MtWuS0DtCe92lt\nXtszZwOmEueVe/0baR+TEAxm8218zGv2GC8pGa1OptR8/DtoSjHVAWGr62Lh\nuoSu\r\n=3sNY\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - value must exist in themes.items\n    - for each token in tokens.items\n      - name must match a tokens pattern\n      - data must match the expected format depending on scheme true/false\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - theme must implement token\n      - token value must be set\n      - if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - value must be provided\n","gitHead":"582fefc10cbdacb768d4ffbd470193d78110903f","_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.4-beta.582fefc10cbdacb768d4ffbd470193d78110903f.95_1643212371438_0.7975675900330186","host":"s3://npm-registry-packages"}},"0.12.2":{"name":"@preply/ds-tokens","version":"0.12.2","_id":"@preply/ds-tokens@0.12.2","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"43116a70901d736a91dc464574da44fb7cdff3ee","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.2.tgz","fileCount":10,"integrity":"sha512-gUkg0njQtducPfhI9El9Sc4hMXl01a1JD+29FMUKBX3yPEEjxGUecTILkb54EUstcjzZ7pYUSpAW2hUIAdFGwQ==","signatures":[{"sig":"MEQCIFP3ITm7Ze2MK6U7p199S80095V/Kt+px7+unIZzM+NZAiAaXQ83H0zHoLLaXeYhRaWBzMqTSp3hEMJ6Curjm8aM4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8W+9CRA9TVsSAnZWagAASikP/0rAZES46CWHBuQCGo8X\n/0Q27piB+482Zqa9EZnrf4h02F0Q+yKK4YjR1rR4vJgx6cyXERgkSucXv13Y\n9MJ4GxYJL9K1yqK2XKGocwkx+8YHPAI25afDh0S/r2/OImU2JNIoaviWqdNO\nGsBrXR3yqNENAAEY64L6wYTEg2X4cPtiW/BhxL8PiZwvaPT6M1bg7CDzW4VI\ncpQ/DfLcmm7xDNtnP0PfxKcSremDtTiQopejQ7YXdRVWbCCyI2uDWFyLur1h\napE1QvaVAtcWXlj4TlZWPYLcgL3RWq8zzCRYsPaHRFm0Oqzb+SlGP83eCceO\n29HZC4DSF7+1a4FSR67AAwdcM8k6/d5hrb41Wa7RJUBwaclZiTOh6Ft7ar2E\n221nKF/Z4+QqHTuGPuLW7BjHnfkQtfihSXaRHlyij6TZjozRtADV3nbWFvKY\nYyVN+fKBFxKroXpGDrVxbPPyOrf8pA7tC8mg2EWEV5Jb6PFRqGpmf0HuF+CB\nJUTbLxyhGKO8l1qrGhmwyY5yX/mqoEixo/xwMrrjK6bZtaHkBW8phZTUPstt\nodLObfKNGemvg61EbFHSGrDGhzTyLW631idep86vpkFRMEsFYdYf6lwKNhTt\nAJF6yr7gUCgnmnd8Uz+rOXTaZbArfxoC+hGopAtrpOa6+YCvCshLn4ERLt9w\nOMfR\r\n=L8YE\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"1d8655edfcdf77cc4ee09474fe0fa6b267186d8e","_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.2_1643212733758_0.9964327864593006","host":"s3://npm-registry-packages"}},"0.12.4-beta.14b9f5ea0762b850d4f70a13aaf88337567e9853.97":{"name":"@preply/ds-tokens","version":"0.12.4-beta.14b9f5ea0762b850d4f70a13aaf88337567e9853.97","_id":"@preply/ds-tokens@0.12.4-beta.14b9f5ea0762b850d4f70a13aaf88337567e9853.97","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ede05cdfa547b38bb172307baf0ccec972d8fd1b","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.4-beta.14b9f5ea0762b850d4f70a13aaf88337567e9853.97.tgz","fileCount":3,"integrity":"sha512-aTtQP1v8xM59N3yLQ54APc0TInKwd0mfv5ZS9f9wnwOHOVc3V/0VzxrCCmQTVojkXvr0zSOolOQVRl20YMsIzw==","signatures":[{"sig":"MEUCIBzoKu6QE9MXRkx2kejn/WfV2Yithgul5gMHNuTJlU29AiEAkEY7V7jmrCVQqsZ+W/++f2fM56RIe209Rfwup3ivWXs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12395,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8YF2CRA9TVsSAnZWagAAwD0QAIFWxdQD0e+T+DOQUTHF\nWMhwo+R68oNnwQErmKiIpN2BlCgAF+/Za07g/mVXGZb1nFfjeKApP/mPaLB1\nZ5PEHX3NRBWFU5YUxDQ7G32V4yd57GabVfvrxEMFWWFr53GDM6LpdM7szI1K\nUMO8yeOL2UIY2WwErKj5wgZRLR/ITjBrjn6ZXPylBCeeldJs00L4GRiU6oVg\nRPLG3wiLM46peJz3+OEUkp8tx9j8vKswpvRzXzaTXl1VglGXJ0I/Cq2m4Pow\nQyvhGzgElJ2ANgniVXxDmOMcMQi5+Kyl8JkVVvQi5MAgaFiwmi3aJaIZNdd7\nX1b95IMktO/6tChwbM3hXXPe3jK+C09DSn9UKjQ3b96m7gHwNrS5x1PzluBf\ncTB5aOHmSkZ7l+GlPYYKj6vNgheGhXhcYEubNzE9o8ZSho/7IPf26HeJnbwI\naQHR6C6lwI3/jGW8zcirCcHLCZ6C+Pc5ajjMqRsQlLub57LqzraIKgI+iVo5\nbmTH+3K6h15/yzMkqUsR+7JhAg3F4KybQBM+3iRMa7H8FQ/Fb/ZG+ivjVpva\nPObChmIQpMdF36PDAeCEb3no+RhQ3MrZiHr0l9LEpmYxhuGda54NP2q2uV8p\nOxrUT+zzR2v8m7VwJ5ZVgn5nLlo7M527wYYFcnCei5Jq9rQV+PHPfd1EeOMM\nyyCR\r\n=bPOJ\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"14b9f5ea0762b850d4f70a13aaf88337567e9853","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.4-beta.14b9f5ea0762b850d4f70a13aaf88337567e9853.97_1643217270494_0.14469427324867534","host":"s3://npm-registry-packages"}},"0.12.4-beta.2e2b85daead0f07e4f2831eb17f4efb517bd932f.97":{"name":"@preply/ds-tokens","version":"0.12.4-beta.2e2b85daead0f07e4f2831eb17f4efb517bd932f.97","_id":"@preply/ds-tokens@0.12.4-beta.2e2b85daead0f07e4f2831eb17f4efb517bd932f.97","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"8cd0df32b499e02c5d9ac7055a58116f61e06827","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.4-beta.2e2b85daead0f07e4f2831eb17f4efb517bd932f.97.tgz","fileCount":3,"integrity":"sha512-EL8DnZdLfg4hOrvqUa2Pv8E/k1Mm/Ano1BaKFikolBbbVx708xmuwnYsr0cHgutnPEWczmou4XzH8oJoPrureg==","signatures":[{"sig":"MEUCIQCneKZZmQDEjZr2w2oPXXbRusmE+zfLKJHsnvhfqt6DbAIgEaxFXPazDt0ToGR7215Rlm8Jipr4gxynSaY23kzCB2E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12395,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8Y3pCRA9TVsSAnZWagAAbMkQAIe1TgIU3XFqhDidbp9z\n5U2Siw5oYbWE/nlwLL4p820ZTjaLQBFSYx/LVJviBasgQ18ihb/0ibJfE6u2\nmTv2w0uhl4lGgNggxui5e/cSU1jSAx0v1Lke8kVMJud9IyoRo5C5O7R2vOCH\nx72LVxdmOwuTcE/OnodUH3OYF2cNzHUsnl72DlIPXTkDyGutZ5UYr8KBJs+H\n+qMHOzmOMUahUcA73+WWp9/XfcenbIr+RvmcDs/gHwAg1yt3ceiDugMYQzah\nGS2iU2wSPBPpAM9J4gBrK0m+PnNFPKGyv7J60ir9V0hpLTe+Q9fmVo0GCTdP\nE072cJWkhLGTmTSFwzHSncjFVOlXMy/SfA+m179sWanqwlQKopFBIoBjJ0L7\nLIJkKj+eUWvmuvZjKfk5bKtvlEHia+zMUeXG0U2ug++z0MPPHFKZpE7ngwKT\nNLTtJtuQ9bVGNI/5oCFbqzmXwttGx/wLGaG8hvdEWgytUGLrl89mjDs3PP2j\nHE7lSmWAM+rKpsSPlVxnHLeG7lYZIV5EcZiQn8V0rdvssrN9xAR+m3DP32rW\ntYfCBf0qqvMbXOliX4wjsqWYHLZoUcdVvXNKzbBiYx06nxEP5+0/U5rmUZlV\nzajZkwwm4RvOY4jFdy701YaXwddo2s3mmw4nNvLY5kQoshpy+Z6ohjDG68vi\nrIst\r\n=TQlm\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"2e2b85daead0f07e4f2831eb17f4efb517bd932f","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.4-beta.2e2b85daead0f07e4f2831eb17f4efb517bd932f.97_1643220457353_0.5608816985672578","host":"s3://npm-registry-packages"}},"0.12.4-beta.318dba21cb8fd477a7a59b7c642b366b5da4cd24.95":{"name":"@preply/ds-tokens","version":"0.12.4-beta.318dba21cb8fd477a7a59b7c642b366b5da4cd24.95","_id":"@preply/ds-tokens@0.12.4-beta.318dba21cb8fd477a7a59b7c642b366b5da4cd24.95","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ffde8f68422c2ce4229ff53575043d4fe37647a9","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.4-beta.318dba21cb8fd477a7a59b7c642b366b5da4cd24.95.tgz","fileCount":10,"integrity":"sha512-3e1NmqVWCA7nMbS10SbKdJBGGk9iAmOa7XExd86MkwBvHTsWRG+tAcw2sstmnrRGN9K+8tZPvsLBiGXtRI0AfA==","signatures":[{"sig":"MEUCIQCpt9qCK00fixlgak23FLz0O4jstCLN0m3SfFFoP8WMtwIgQgXKEKr98cpkpvyqoM+Wa0L+n3CnUFP6K4oe1gVY73Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25550,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8ZIqCRA9TVsSAnZWagAAzAoP/3XAZ3JI/VacaEFydSv9\nQCcakhmqJ7gj+17D5QNoPqBqCYXCBP1x9WiZu2jg+5Zmt6F+FIDLzZV3EFAb\nO617vHz6iT5UQVmAocmwbi5kgY/mavX6JXNRe93BeHcfoC6lFRKcnm8p0sgg\nh4Lei0WBPz/lkn3kby6yge9W2mDqOtytNNDY67jWvqCumMefuOp5steToKsU\ngl/L0Zoq55fwk69UNBst7eV/0cvVjzj4GFhvG2awqz0gaZO+bg495/bmQnqh\nj+VgBQtscKD+6oLhG8P3x5VhwnLgNqOsLWf4pU/UH+B4JXWuzohQjPXyr22x\ngxlBXcyEpDtpnFFod8GRaltdy91b/19icHYom5g3GDqaehhXVUgW4YO1bmbv\n2zaxaBMwj9pk3yoiukB3tva9yRjLd/JQPdo0gOecXDX2BtSc/bQlKqzpiPyH\nwZb+TGZnYjQX90be+8GUXDpgeVB6KsvKQCzbfn1S9dnCDADjlpC4mT/ha2GK\n4YevwZGAa1XbnY6YmsW5wgyx39MB/cHh4dbothNhvUUhx0xutBGgZDw24xc5\naartH9pOfHJp3WZMWDn8TiivaLILHxanwVoIOoKigwQiRY8rMoXlOl4+0x2L\nNlH1q1CiCH60DVWtfPJFMl33piH5cV87iFQ68BpVf3EAp0dIfhIwy6B60S36\ng5bc\r\n=blfn\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - value must exist in themes.items\n    - for each token in tokens.items\n      - name must match a tokens pattern\n      - data must match the expected format depending on scheme true/false\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - theme must implement token\n      - token value must be set\n      - if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - value must be provided\n","gitHead":"318dba21cb8fd477a7a59b7c642b366b5da4cd24","_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.4-beta.318dba21cb8fd477a7a59b7c642b366b5da4cd24.95_1643221546735_0.1338007496168956","host":"s3://npm-registry-packages"}},"0.12.4":{"name":"@preply/ds-tokens","version":"0.12.4","_id":"@preply/ds-tokens@0.12.4","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"8cc5681c5f46576deabcc1554a6c540d75c50599","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.4.tgz","fileCount":10,"integrity":"sha512-YEgIJFfIGdb9JoVdI00WEPGhx7bHZpxq+cioShzfdeVR+r9b58BFVa57YtZd55UY9jHYKgbNTvmlP7fbriSjxA==","signatures":[{"sig":"MEUCIDFmCcQMQ+QGewpTX00vP4hDaI0Oar68AjdXbmrjzEVZAiEA7wiRERKJJS6u+G5YS7tb1yNT/E7+wTz3B4kbcPkUetA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8ZSKCRA9TVsSAnZWagAADJgP/iS09qwGw9eAYHygd+vv\nSt4u65e26wtflmIjidFJSAApyi7O4TgjuvdEYl3M+NkO899mzWcWY6wQWftU\nv3CC8aXR4qVJ62Hr9Q+3Lq3dIhA3NuBP7bgC+JyfAwN7Pf9chaO0VBxkn2cH\nEUOfaOsz6rYYm3cD01o2QchITXC+W+3VUq/m9ATyfNcqAytWRLdM7dmyst5i\n50seLcJ6YelhxiyKgAj+J6R8ugMhfcj6mdsL8OjffzkpLL4Mq72QSbL/+IPt\ngvXh+Q744avITmS3a4jelSQuDwKE4mEUyHyHIys7NHWZp26hW+WkKr10XAAv\n+7JNdi7qL9lpUcjzeL0lYgpPKW/+KNiGUpsZr3V44gnA+FZruTfpcG52bQ6S\n7MYC8QnU31Btpwm/1ng0GPVCNOeCWLAMrtU2nM25OdTycYpcbBsPMw621LEH\nQUxnQ1N2rzTp7ZY81GdPId4g0t0yCv6mfuB+/3wIfgmF5zhp0nhAny3PP1Wa\nZQ87h9vn9oQBkZvdIPmlI+VNT7lQZIm9eAU2e/+djGJrXG4a+0zit4vAARxv\n5Ety/eoyCbKAmQLNwyMnrb5+QFeenjNhOz2/OvKouhhBunXAO8JVaJRgMTzK\nd3iiRMeCzMEV3Ws0IuQRNA/xbqm3TYnRw8rarROKLvAjzM/sytWDeA/yUMG6\n13ug\r\n=Gv0n\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"d43d0f4a5d5f1faebdf525a44dce25b453fc066b","_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.4_1643222154713_0.5569879342099053","host":"s3://npm-registry-packages"}},"0.12.5-beta.84d5c5e8c9067b46db61a7f96556a522b6de935a.100":{"name":"@preply/ds-tokens","version":"0.12.5-beta.84d5c5e8c9067b46db61a7f96556a522b6de935a.100","_id":"@preply/ds-tokens@0.12.5-beta.84d5c5e8c9067b46db61a7f96556a522b6de935a.100","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"569669eb6f9f6464ec204281a6aee5ece612136e","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.84d5c5e8c9067b46db61a7f96556a522b6de935a.100.tgz","fileCount":3,"integrity":"sha512-9jTDgYugZ7pE65sy0b+5Rnv9g7f0D7tVVNewBpb61plxmnGK85iX2BkRM7lH6nNMXqufPxuKJygZAjrsyoLCdA==","signatures":[{"sig":"MEUCIQDn23kqNYrWxIBcP0h8jZXeVNet7JilVLkvK+Ab+5RF0gIgd9GJYHhwLfoZiWNqx5q6j3nhX6LnaMNHYZsxzjLcctQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8badCRA9TVsSAnZWagAAxKsP/iW2LUvBdbt35wyvHq2r\ntdQEK98T+IwimvqMph8DDSX6HPFLMv2T7UYEJ/4zvHv5vkIT/EXX1WAZhE9l\nvbKm7lpEiPvNLrLaD4o934PdEJI6TLtEwWiJsunrtUt++5VvPUkprdAmsJks\nTP9nvlSwDrN68RCuSd1LT8iIU190G73s0fgts0Dt2sUSQJvvq3z4dTnNLz19\nJ6WoaoQFJKzbb4YHY9tGivsqW5JpSI1VI8U20e8gJ2RWBygs6fIb3XkjBnM8\nRPIHPPBhJd7sWnfzG0LFM+Hjd3IcPV9ysqGb5eORZYV5QjwL9pfOu7VtQqgF\nosqzzMKFx9zl8lnYOgaJVpl8l5LyAIwcjBPahsADXxxzI39LqG13yarsse4M\nKek8vJ4RgkngWE4e5zIbz+0CBSEx2wCrjrgYtBGPK9ETR7njFR3LZILm3V38\n6w8y2N06OQpxU7/xuMlmnBt/BDBBtrVB+jf1xlDVfkV5WCO6jtuE9abKqibu\nvfn2qf6FuKXKJqTS5f2yP4YcftsOSM3W6D07hI+fqNEmJMM8axgdd15Y8Gyf\nfWRmA7SiM2u7881uOLoXDeQZqZ5W/io4NzFrf0Ev2vdM1cJWgyZBHSLMS4os\n+aHo7GnfeNridW215jKg/bPakqcsxuuZi/gU7Km8CkC30v9SpiI/MDGwtbmo\nw5Gr\r\n=auC/\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"84d5c5e8c9067b46db61a7f96556a522b6de935a","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.84d5c5e8c9067b46db61a7f96556a522b6de935a.100_1643230877182_0.8280233231173197","host":"s3://npm-registry-packages"}},"0.12.5-beta.29ed2b9e28ddc535847e617919a7fcbe2f3d881b.99":{"name":"@preply/ds-tokens","version":"0.12.5-beta.29ed2b9e28ddc535847e617919a7fcbe2f3d881b.99","_id":"@preply/ds-tokens@0.12.5-beta.29ed2b9e28ddc535847e617919a7fcbe2f3d881b.99","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"2d46ae886c47e88e789e99e3255151e67ab59a17","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.29ed2b9e28ddc535847e617919a7fcbe2f3d881b.99.tgz","fileCount":3,"integrity":"sha512-C5JPi9EXRWhnCyr6EBvhwJHkOu1l4WPpBjBRXQ64LpqtDilZj0uem6vgrgKElwAEJ98cB0M2GTFipDe/ivytLw==","signatures":[{"sig":"MEQCIEWU5BRl5FPll3QBax1tUKc5Z1BisUs6NKoFpdlhCq9hAiAplyG1SUN4xMo+mT8y1UtxM0uX1CR7EPc8gGKmkNmaqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12395,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8bfiCRA9TVsSAnZWagAAuVgP/1xh+TTFppq9jwf/0PRl\nSOczq7vzzcwMXu+IQTmoOXLUMKdUMznutf4OWrZ1zydIXB+UeGv9oiyiCMkl\nD7xLIKDrrDu/TLjfmeSA/GEZjXQfqHLIcXnnIqw6JyAZa6E4p1m48Kv+vnG2\n4LRDI7TDYo2frgMLYC6U+jk3HVpxXDaMTwTMlbROJUKr5ICkLtWC3omcaTCP\n+ezgoCctCSkpQMiS5kz3SKbgxS3g1p2LJ1iwGh9H9Q53ExRW1F+b/6JzSYyV\n/fueMFmu+hDoF6HtIJNgFMx+rxHh4pv3VB23tqTyJFCzJzmk48lsn8VR1dut\nXFi3t0/Hc4smozhJd/ojZsoUHYhayUqQ9xN+a80CAunjZWsyLrYxz1wSijN+\n6YUgfNgHwuDN3QdUS8+rGJuTgJM4lBnanyoSdaQJTQN3MHRTqdl4TSb7fh6a\ncEURVPM8tfpcbwOqtgyqbw+KKus/z+wG4VrSLTeyCTYi9SlepCKw9B8AX6As\nq54bt+hUFEcBB1/8kU+TU5sBczWHcpMZM3h+CkTTLlIdL/dZOolTFoPyGd/W\noA9SJdPN+yQFUasSOHIfjbdNUHgTZ3rnBJdaeNhTOofZPyR+vbwOJNkipLce\noNP9knzgr09f/SJr8jAkdNt+xFcpGbmEtmzYFTZA4rOpeWbA4LL8VAkifQYA\n9j2s\r\n=e8qV\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"29ed2b9e28ddc535847e617919a7fcbe2f3d881b","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.29ed2b9e28ddc535847e617919a7fcbe2f3d881b.99_1643231202458_0.05044650481739166","host":"s3://npm-registry-packages"}},"0.12.5-beta.09963455f830b84ef1e91e803affe68e9627bd93.101":{"name":"@preply/ds-tokens","version":"0.12.5-beta.09963455f830b84ef1e91e803affe68e9627bd93.101","_id":"@preply/ds-tokens@0.12.5-beta.09963455f830b84ef1e91e803affe68e9627bd93.101","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"9bfb86faec88d5c205a5196512a73759bed3c273","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.09963455f830b84ef1e91e803affe68e9627bd93.101.tgz","fileCount":3,"integrity":"sha512-CK2cmyngaU5cQJT6FfDSnL1i8c5AcvHRuKNDXwUtR2pj8vJTOyqivNtXNaAfPvPQmTtO3vwwnMFzx5OxWVjZjQ==","signatures":[{"sig":"MEUCIDc+0Zy2+QVIm0MX3L+/c4etsYWooXLImgGO/5IYjdVlAiEAxciQU5mnhQLVEi61Clg0/o8bQwf9twVW79eiIBwMEmQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8r0FCRA9TVsSAnZWagAAoYEP/3ox33HyaHeSyNElY8NF\nlswW+hQRdhpisEsOZhNTYAs0+lo3B1pfsobdjAekax0vVr00Ykn1RowPrtBT\nQWCQw6cENLD6AsRqrWmwUilVYvR8CSVPyU8mpdmItfzhuFCFmLzE4Q+Acypn\nBzLYKHYYZ/awwbQdP0+fzgd/kIu0aXKln8E56hK2DcFq6Eu1/SRowIZv4+NT\nTGq3eZVUuhZko8jHKQFQR4rLkQjL9ZJniUxpnqHdCpuE9oW2B1TQUH2yqY0h\nu6LxYN2v6FXzuwxFdVI4K0igO/bmugGm0xvXScM10FmDoK4kxZSm+xrFPJI4\nSIsDhpFebAf8TstAj4EX/4DYsuWxXRPep5FNvdeWVYRV+rvY8qT1ZFO5Rsbd\nlo5X8FX5pD88WE14A1rLFSHuVf6FPMEOdiGXHMGpzm8ZMdsDOh3thHGZWrO4\nrnuET3mDHfDkoGu0GkQ6R7EVmLDasUxEJwDSLb6wgoLM+7cPRmbENEFJUKMk\no7plBjih0nx+lnn7tvK7f80HJgSdrBXYGeUr74cFnurmpKG5o8eL/cHliizC\nOajVu5WkjJ/yG4Oub5Toj5k4HNyubTaAvLMoyeidp8r6cdeCvOeuWEBfc9Bx\n/9diCu7NXT50kpROZc1PRt4Pxw0GgcMuzAVLNl0+D47e8U7FdSMxK+7ASF9/\nm1e1\r\n=QnxV\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"09963455f830b84ef1e91e803affe68e9627bd93","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.09963455f830b84ef1e91e803affe68e9627bd93.101_1643298053768_0.6859724647491299","host":"s3://npm-registry-packages"}},"0.12.5-beta.3e75eec1a999d6a0327f66e9858712045ccdefdb.99":{"name":"@preply/ds-tokens","version":"0.12.5-beta.3e75eec1a999d6a0327f66e9858712045ccdefdb.99","_id":"@preply/ds-tokens@0.12.5-beta.3e75eec1a999d6a0327f66e9858712045ccdefdb.99","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"9d6dc24d75adc448ff66189b3388a19bf2a7ba84","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.3e75eec1a999d6a0327f66e9858712045ccdefdb.99.tgz","fileCount":3,"integrity":"sha512-qXS7MBUCSyCI0ZlMfrQDBqh+O1kObAJWilwv+hO4aEQbtwsK2HdEU5CKNJkeAqFb5SqmFQu6xKTrwJ6hQH8ZVg==","signatures":[{"sig":"MEUCIGt4w3UeWYvqmOB9Q6DpzhagqudbD09N0qvrJgRdADMqAiEAq+uxsr+0MF7b2vZImEJaSiN+LrN4h2kh9n8HjskhJwU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh88sqCRA9TVsSAnZWagAAkKsP/1Zj5+ZTCTZpTb7rc3VP\nfHmGTa7nXtEPm+C4NJRlkOqs1SFLK3jOEGVYC8Tf9lFczwiAzCVRr1SRMIyh\nCdw6XaDBwoG39iMW4d0lc9iThVL6uRZYthUQJx0W1Y3BRJXzQon1KLPZqjWI\n3Hv2NMdxi90bQ9EWNCUiBetqzp8m1p6o314T3szTBvJ09rVNxrRNahMiQoRF\n+poi616uA8C98Q9FleG4+q3nvmOYmmFM0wfTUxSKVRRMx2UERmI+qT1LFEpq\nLDSdOSgAB5DmvuntbYX3FMzoVsgAdGmRkCzgtzUbXahILinPX+w+1KE2j7Jr\nK0CoaGK8nIbL5Sx34ho20LEJAB91SMLn+92EUs3R7Yk1UI2wywRC67K7Gk56\nkNGLdGPBDW5CdfVTJ4BbqFN9FTZ915peRCP8vILzDOUkgB877YUCSryUTqFg\nq4GWsDGz6thbavMyg3/NubobI8BzAxGRufMNqqb/8CqsiTWCfr6Ti/MbhEA3\nPD3A5MYEDbFw1mnImBq5b2a+NEizNObDXEDbFVd8H+K4gMD7DHuDofRlw7Gz\nwvIB8Q8TCNUrpdHep8z6UoAsYGeB00Dnd17wPtZKuMhkNSCu+THcMuUdtUgD\nO2yYzlRHvX2S/VyFtfdl8CoNWEHEWRzTYAGLS+5tGTyt0mQrrww83UdeZwXo\nsrnC\r\n=A44t\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"3e75eec1a999d6a0327f66e9858712045ccdefdb","scripts":{"dev":"ts-node ./scripts/build.ts --watch --debug","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts --debug","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.3e75eec1a999d6a0327f66e9858712045ccdefdb.99_1643367210738_0.14527216056520187","host":"s3://npm-registry-packages"}},"0.12.5-beta.92dc5d6f9eb6ea982c12fa6322f81a803ebe1dad.106":{"name":"@preply/ds-tokens","version":"0.12.5-beta.92dc5d6f9eb6ea982c12fa6322f81a803ebe1dad.106","_id":"@preply/ds-tokens@0.12.5-beta.92dc5d6f9eb6ea982c12fa6322f81a803ebe1dad.106","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"a559ef35ac1478e45aae36b54179324db454bb03","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.92dc5d6f9eb6ea982c12fa6322f81a803ebe1dad.106.tgz","fileCount":3,"integrity":"sha512-ckBpxgRL/F4J7BD7u2GLNuPWRBnBM1A2YJWMa0JgR2Oz2zMNuI2KrYVJEVCt9AYaDpG/riXoJ1Qm7bifGEunvw==","signatures":[{"sig":"MEUCIQCQJIPBLanfM/9JFT9ttYDpN5KRDnevBfwLJ8PGlfoLbAIgLSsXuVlNxprc6/oDwLfzeW8kr/ZGQekXE9y770hrTZ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh98xDCRA9TVsSAnZWagAAuJ0P/2e/DMNOvJKHpFSlqzzU\nScbAO433G5tVgpzC/xSeMWyPC8qxW9ReAe3SXu+ujPdvS+aRsOMa+N/hdexP\ntw1wkPxBWBg1K70dJfJFVRwdHv+nUmoTUKZqPEmBqPP3s0Qtja47wTGQpCOT\nxRqtmULM8IgcgBDSnX7CKgNYopzVyj/09ASoK0YgyBaC/3UMIWgroLN/z23H\nhTwP+/9StOsJSNTwmlm27jjKm6QufvQvW9a7YICba3IrFqMXQWmkTZJfAehQ\nCHhEEqF12sWHBV9Z8ESRV5Y2tEnllTqCozasXX10pt/EjUzWQlbA2pJuzkNE\nnA+iie3G0qIDsunMEeloVZTyAFjC8hCUfTE8dRVgck8FfQerJnFfjXx401W5\nCy6rsmiyoIBFI6FqNUvb5V0WfpWBnOuUOU4ERg4uUHb8tY7WOUckwk2Lhfro\nR28PNS7mj6aL0u9D2EqzH92szA++EVaJzw8CbSJtne5IIvCjvOSdeH0r3Js8\nDc8X8fNWr/zO3paLBHarfpUYAPJVUXntp8cZ0x3PieCNxnbK2l29BDK9Wa+U\n3HZejBSoeOohLqgBbzUE81tpyfvNhOtVh3JJSCX6wa77yUpwykjoPNX6+N4X\nRPCVnkWYDqEwUV8kI6liISA5mHeDw7vIuZiVVNTCoLATK29EigU+s+XTi4QX\n2HHv\r\n=cN7y\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"92dc5d6f9eb6ea982c12fa6322f81a803ebe1dad","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.92dc5d6f9eb6ea982c12fa6322f81a803ebe1dad.106_1643629635098_0.5065317388964992","host":"s3://npm-registry-packages"}},"0.12.5-beta.5ae323c73052750e9ea07a474e9132246e13b4dd.106":{"name":"@preply/ds-tokens","version":"0.12.5-beta.5ae323c73052750e9ea07a474e9132246e13b4dd.106","_id":"@preply/ds-tokens@0.12.5-beta.5ae323c73052750e9ea07a474e9132246e13b4dd.106","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"4120ca251a23aaa75d30dcf7fae1c653cc751642","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.5ae323c73052750e9ea07a474e9132246e13b4dd.106.tgz","fileCount":3,"integrity":"sha512-LQHI4SUFvj7tr9OuHpH3H2hVWs+YE65ZF7zKpqHb0RMks5ZYasjUa1UBQsia1fhU6yMIo4ZGD+P9Q+nEIic5Sw==","signatures":[{"sig":"MEUCIQC120L7XuThrtNi0iDgSsM2W7hr4Wv7gJ5gTLgPSy8wPwIgIyvLb3urSUnzjQ30GSULC7h1lK28xHd9wuvsGiSqU6Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh99S9CRA9TVsSAnZWagAAHUcQAJp+eJhlsEDByfBb+rvz\nCXkq+yGrQ/nZn1E7ky1ygtcYt4TT4v5xFDhLxPC8XS8Q4ZL4Ehyi8r8tcAna\nmtMfUY152vCO04d3MGvtmen8WcNTxm25sDkpDtC/vTUjB5GEJ/F6WjtPCaP8\neNdEYyBEsELm+CC876vVrlK0nD/5jJjzQSGEAJO23IFsC2Q9Ou2MXVb7l90O\nx3LHOhcdK4NPMj9Lujp+JsCkhy98ux9QcoTzGjyH8hpJZ11Bgva6LQRvW/wS\nczWR1d01TLkL8E0KOyX5G/HJIblWz7P8Bfg1f3n7rGkk2/CaeL6lZN44H3go\n5mNy5d96ZYzc9+SSgbTLTAzXR7fvmeu/vgxpuu7spS9OONH8qYgiTNE7U63m\n6/jPhHbkXpOYDQ1I2Cc4b2d13JiJoso1kMRDNTRmhl1NY50ovKBNkr+yYace\nG03vGA/Lf8Ci3trWr4ZWdKJHsaAgpNK0mPk6QK0zPXPWAypEaNtel50CHQ9B\nCaAwu+gZWM170IqM1ZKynHh8tedrfDDuwXyx8c8UV7rsugSLMkfDksDioRDf\nHBJeVXGOvN18Zj4OjWaazRH/VErfYc3Q2SUkUmXlS0q+76jmw0a5xLn0hEDE\nfJX7PFBfVbqady09FtQ4eUiC651qUw9eNHQbvpus8yqMD71mvCnRfi2HFZr3\nc846\r\n=yOjq\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"5ae323c73052750e9ea07a474e9132246e13b4dd","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.5ae323c73052750e9ea07a474e9132246e13b4dd.106_1643631805610_0.767494455800783","host":"s3://npm-registry-packages"}},"0.12.5-beta.23cb12fcb00c8490a73081543dc65f62a9669d3e.107":{"name":"@preply/ds-tokens","version":"0.12.5-beta.23cb12fcb00c8490a73081543dc65f62a9669d3e.107","_id":"@preply/ds-tokens@0.12.5-beta.23cb12fcb00c8490a73081543dc65f62a9669d3e.107","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ebf15a8b9f2c4c2adc1a25a3cc524f21d3b3a8e3","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.23cb12fcb00c8490a73081543dc65f62a9669d3e.107.tgz","fileCount":3,"integrity":"sha512-NXMbXRtIrnmdMqthHgtrrKPQUlB26nNihWhdG+l2QE0M50uSjaMcc35Gll5dQoto1M1WcOAj2ucMh5ogPFQ4bg==","signatures":[{"sig":"MEYCIQCMVmJBjJXr6SzGhN1Jf1yb4ujCzoD0QChxSr8evAtEkAIhAIvlB5C+zRJsLRcmcKNhMCAdBpmzt7rwLsGi28DdAU2d","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh9/ZlCRA9TVsSAnZWagAAvr4QAJDoN23jhFkr1Zeqs7D5\nR9gm5FN76fhmR90vLUxMkZDixYu53ASVjalcjZbLyPMMbiRlE8CvqwNwvg0S\nE6VPlu2N9aMENRR9yAczeba5MvThhHARNRXr1Yq56oXVNa9GiVkLblLn4I8X\nlLk7Mk86S3YA7WM6xmDeqdACYHDsUswWuS6iU9k9zKl2W/mRIfrE+9qOsPrl\nGMQ8MIzqJHYO6NCLu9qzmuq92tjPQa40XEHXhnhkYJp+7aLzh5udioWQrSH/\ngoX0HUmm8WcbkDXE9bOJn2v8s3jKIRQ/muTrfUuHuVCeW9ed4Z2nvlZEDcmh\nYzJBfjLPGr7ityZqwWXOQfJ9FfUS6v/av7EMgxb9tiu7a9alIHvolOPXAvTP\nXinN8N23HoXx46nOD0aByFkT/As5FcvI6YxQI+fjRXKOTsZLSCF3jLFRlL7H\na0t8ZzWMjphm7Pd4poOIRcPDqMHHC3OyPB7UHpMvtbhkifp2WeJ312R+3GF5\n0UNcy7L04TBaOAtPETd9aoHLyn8Iw2HV7ce7AM+dc7b2+7OMAz4bPgPDWm40\nfMMMmbbb1MZBp1LL2X1PxlDrbTI/HOkqbDCcUgo+HKqEl2ALzsOMhahXEaJE\n9WeXwq7B7tTeT7VCI10dUo2VPIuB5+WQO3ArZRMBWYM7ia4rQZZrkizpiQeW\n4o9p\r\n=s4X+\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"23cb12fcb00c8490a73081543dc65f62a9669d3e","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.23cb12fcb00c8490a73081543dc65f62a9669d3e.107_1643640421559_0.26076392894659794","host":"s3://npm-registry-packages"}},"0.12.5-beta.865772b52dad0d8999ad7cbcd4699fe99295d925.108":{"name":"@preply/ds-tokens","version":"0.12.5-beta.865772b52dad0d8999ad7cbcd4699fe99295d925.108","_id":"@preply/ds-tokens@0.12.5-beta.865772b52dad0d8999ad7cbcd4699fe99295d925.108","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"1fcf6558e3eaf8de259f7caa3a2dd2604073df02","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.865772b52dad0d8999ad7cbcd4699fe99295d925.108.tgz","fileCount":3,"integrity":"sha512-JPdt5UKj/BxtDYRoeJLXuqPxx42jldm4aK1sB33OUoqO/Up5MPf7vo7B2iWCyeeEwhT549PRGAG4cba7/fFp3w==","signatures":[{"sig":"MEUCIQC9jZEnU71xr2WO+2RcmrWcUcCalIEWedFdlA+RIr3XhAIgGsYIpeo9ycBx/Qfa+5+q6AadBJmf86NDFSicScLN3C0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh9/lrCRA9TVsSAnZWagAAkZAP/3leg1YEpmF6YQ+JAmXX\nGglYfhtjVP6beUXG5tZmM8+lzTK6+eitrn3FugfCtROns8lMLAGISCXVZsK+\nlZG7CXSV205/v6J5MCdtYbzyHODd3PnV2/n4M6Pi1RIKBg0+pywlfXj4EUPS\nbWsuPgLTKSX49oDzD4G7B+CRMPaRa9uyQOcfgX+HRFBreP2RlM6cG6P3b9ow\niC2fxE+1yDSisDCap3fzTocZTzi6e/uyeo45we23d6aBv08GYM+vMkftxKmu\nlYh8bxJ6uMerAV2MU5Ean0opHqBFg0knOlk/a7rz8kfCApy55qlfhB5/n8Yj\nTlewFq9wetampxf/foMDjhbzu005BZIQaBpwQHz8utUIMeUgpTUNS0G+abIp\n3J8GsVmwQMfKrvhfhYulmHPgKGg1n1DsHnMPN0axDDCt17p0UKQtGXBVqxEh\n4k2t10LeRjsZCYWdEzALycudvY/QTPnc1Q8uOPMeH8x1JSPgD+ueXx7xOt47\nLhbtAKmjdrarkgygtgUCjb8fndlxMbH6wZrkMnD5pHwTuDzEiqvQ7fT71akX\nDcr70JDwnLbVWpcBWLoPJJF3DOn6cbIdwFeYGRB1D4O6txKobl+YV4V6s+Eg\nloulXWAq3kEzoGB0Fhc/Cm6vX7NI33OtIAZa9Zdt3GV4O8HLtGxUHNWPlFYO\nTG/4\r\n=33SN\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"865772b52dad0d8999ad7cbcd4699fe99295d925","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.865772b52dad0d8999ad7cbcd4699fe99295d925.108_1643641195851_0.22083204727969985","host":"s3://npm-registry-packages"}},"0.12.5-beta.1941379833edcfb088f7ea15d65bd3a976686eb1.110":{"name":"@preply/ds-tokens","version":"0.12.5-beta.1941379833edcfb088f7ea15d65bd3a976686eb1.110","_id":"@preply/ds-tokens@0.12.5-beta.1941379833edcfb088f7ea15d65bd3a976686eb1.110","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"805ede64b0685476c4383df654c1e59bff283663","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.1941379833edcfb088f7ea15d65bd3a976686eb1.110.tgz","fileCount":3,"integrity":"sha512-xHUwBsVgxdjOZCimQGh1Vxckg+Hjus5bzCGpZrf/VztWmNCRk74966RFQbwWLZ8LKg/9aNyF1PLEjRjJbBx1Eg==","signatures":[{"sig":"MEYCIQDQRpQay2feO84mWdXtoDr0rUvnMY+Mt80ZiCFQyCG42gIhAN5SuiJ6m1Ey+nAc9AIRC+svRryjiptuJyyfPHFAWbSJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+BnyCRA9TVsSAnZWagAAUWYP/3b7NlpIopIEU3jG2QcJ\nHiEmeN9IPDZr12uAwgff2jsm4opIAuHsthtQXPsPLxDwhHEuH4ZMdVRDjLiB\nLu2o7Yh6dLFHboAP3EzozRA4qLuznc7jBtkou8PZcgvrPuW691/D0S2aGAhC\nqLQSWZKYIkpQmAQ5EjwPjMyiEPVtLezyf/IdkPr14CxFNt+3UPzY+DdP4gye\nToAEhsJu3vMIMYotBblb5FyJhrPmdFyZ8tFo5Rcg6uGSbPREtNfqf2L9NY0H\nu1oVHG7o2zbwl/Q4kXoUhlosfl8kwflTUhxADbrxSdNvBrxaaoUL+ugMSojc\n1zERxnDZuAUWjJ5Muthzf99XbBvSjgUK6Qk4B9f3lUoL7FwJF7cneZ+ywwDB\nxlwZrsNJLd1pZYC4PqdN62o9pfJ+Zd6CVultDLQMIpbFmWzaSeTj82/vN1CC\ny3qNqSzOErr9hndK8dIGT7868zaTg+f/ygewrs9yBtTSngJi9XT7VLcmGH2A\n2cr8iPAapUk/GSRto/qyT0j5jRRZSi8t5CPrvZI9TUrladlEh6XCzq3KuiYi\npASTJibq8Ky04+rMU6UNZpOpPyDaeJP9ntpocPjCb96b5A8YdVpluUpbAYhr\n287qD8jC+t1/kejN0Z24wxdxesAqoQLNzI0T44BwVuOTa+nLaV0VHhhFUbzi\nTSj8\r\n=B/EI\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"1941379833edcfb088f7ea15d65bd3a976686eb1","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.1941379833edcfb088f7ea15d65bd3a976686eb1.110_1643649521982_0.12770112210118745","host":"s3://npm-registry-packages"}},"0.12.5-beta.0b9e8f03494b9a7267260e67538e53d81ea04bad.111":{"name":"@preply/ds-tokens","version":"0.12.5-beta.0b9e8f03494b9a7267260e67538e53d81ea04bad.111","_id":"@preply/ds-tokens@0.12.5-beta.0b9e8f03494b9a7267260e67538e53d81ea04bad.111","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"14ab72b7242617d3bcf6817a5dfb7d268d441621","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.0b9e8f03494b9a7267260e67538e53d81ea04bad.111.tgz","fileCount":3,"integrity":"sha512-4MZZcgHp11oRNbZKcfHmYxonu0Lss1ii5tOGubteum6Vs0UBVPGyeaIWfztbt5fvK6kRkRT9yrUSxa52gJZ33g==","signatures":[{"sig":"MEQCICRLycLnkjqaSxLYs4H7i8VcXI96vE45ZzpIjSUda3hrAiBniail/wQFJj0h1v6q1wpsjeRs37XCpGvnqkwCJ5zR2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+BtBCRA9TVsSAnZWagAA3PMQAJ1/+nf9+ODZ5KXdexfw\nNoIqS9EtS3f3g3WEuHiwtttEC/xuq8IhRgzv200QYG+cBXIRaYryskg+1R0P\nL9kZtTIo8pINsef7M269Hmjus2DJPpKRF/kkrAusHxjGen+5R0tyHQ3Acp4i\n5ywjiwd3YFq7XH6tfX6QJqs5FaJnw/X+cXPStxZWafOw1NX7PRMX5CB8fWtG\n08PirgW/CjMf3EUsJlqG6Lztv2JxpTFx6VlOunKP85tLwJvUTF46tGxgaawX\npBqbFkCOWOgszBxciyFceuUlXVgnkLr6LvpmcGZNCZaJjQm3rSnqGeVYWNpc\n3uSa1518NQ9hEoy2/40kiDEbzTp5+OCGSXQQaT/A08tm637uwCPUdRpDq5Fj\nqNQcwuY5O/6VFHZi2t3P/2hGS628gzDCAc9Pzj8w/b6NBnjrbAxpVvrgmkNR\na4+1s8e/oJ0wVuoMhi49yfSeeeIvIZSmI2DhtO9kwhf/rozTZVjJA5IiJkSx\nQeJ0O64rd/DWcElXPBgOQO47EROVusTF0nC0uMx8YXdaysW24FnkGefmt0Rr\nxcBK7u+Jem06EEJj3lJbzWQrjeMWs2vbyLVG5v7RREkvg71yZYcl6ylaMdAq\nRXaIqlWSWnDh+XEmpui8CKhuG+tnAoT5IRNPhUOkoeMWzl47vzcx9YILIAUx\nArY+\r\n=sODf\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"0b9e8f03494b9a7267260e67538e53d81ea04bad","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.0b9e8f03494b9a7267260e67538e53d81ea04bad.111_1643649857527_0.4631165190273916","host":"s3://npm-registry-packages"}},"0.12.5-beta.039c014235821a71cfb5dbc4f1eec9a996b945f5.112":{"name":"@preply/ds-tokens","version":"0.12.5-beta.039c014235821a71cfb5dbc4f1eec9a996b945f5.112","_id":"@preply/ds-tokens@0.12.5-beta.039c014235821a71cfb5dbc4f1eec9a996b945f5.112","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"48a3bce20de38388ec8dd2be7ba326f2d035b7e0","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.039c014235821a71cfb5dbc4f1eec9a996b945f5.112.tgz","fileCount":3,"integrity":"sha512-pCD7J7anW6Uv2fOirKQ0PNc03mz+cCsd0Jruz05p0l5TnWysQEz3pNturTD9I4ml1lvqbtcAFOqNuaVwzY0xCg==","signatures":[{"sig":"MEUCIAoUYw8jt3SHdYGesdU8Az2/5kqyjoz1UGCtSIHjR1QrAiEAhRQd9nn+IZmX2EynO69JvEMgV2E3O+bd65zGF5GNUoc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+CWGCRA9TVsSAnZWagAAfGwP/2BIGT1a1QypIKQiXfGJ\nfCHbk8J5jMCkTkLwxkdPd/G9wXErtldvnF3p14Irk4SDL3soCb6WZuDomMZA\nvuc24AR4sN1IODfr1pKnGNxg1YhemlnIyi8O3nra6DQRIrXKA25d2H1yyars\nXxmc3urE2vBV0HBzHVp24Rdmr8evqEy50CAVfsBFW0PyyXiEDkWDrkao5ybA\nUzNycLAd+3FQMicZ+/bZqaQosq0WEOiePR12DFRAV0NlOc8vdPMTD34JA7Hf\n6iHQ/zXGLzooxp6IufOYSjXz4yC8NkEwYNeEFN24Gbt8NF20+5hBIQQGU7yI\nq6jcr8wwubUuF7Bb7oo7P+A886WHeEuDoHNpMhJqTbM45aadsrKOA0CfyXkP\nrBCnbALSZCrZ9gmi/6eCZNS4zV8dh2R4aI/SX3L3UDBPyuQkKUj/yfUu6YVR\nqtSfe+vHRu5hOuxWOAV2EXCq8LmWN5/zHmo93yzKf6Lpzi4XHCPG1/bOLylJ\nl6QsVwVGzN4jpisc97HoxilqGvebd00XSJ7NjnHDUW3+pfNn+KQxfFhOqVA0\nzsnb74TB+FA2VOQKH6UHSj2YHR/H0f4aWMgdBfR2Fb4UJhrQqWxYi2DYfp3m\nE3G2HmZ98gtX4G4jJfxj4cQADBDQ0fRHab4BEHCv43SPbmZJ/1vr9rkX0UJY\nqLUa\r\n=AIJ7\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"039c014235821a71cfb5dbc4f1eec9a996b945f5","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.039c014235821a71cfb5dbc4f1eec9a996b945f5.112_1643652486214_0.6901139091827024","host":"s3://npm-registry-packages"}},"0.12.5-beta.2b37261722e7c85dca0545b7fe7acdacec4cc27a.99":{"name":"@preply/ds-tokens","version":"0.12.5-beta.2b37261722e7c85dca0545b7fe7acdacec4cc27a.99","_id":"@preply/ds-tokens@0.12.5-beta.2b37261722e7c85dca0545b7fe7acdacec4cc27a.99","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"1f3cd2edc2bb2ccb1f16a7f89f1174c1392278dd","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5-beta.2b37261722e7c85dca0545b7fe7acdacec4cc27a.99.tgz","fileCount":3,"integrity":"sha512-QONvFAyPvutLVvo6IaSUOPSAEUFdZfkYa6AYYKNBaJL/MM4URtVcK/GFzhorXZDzGZ9fhiDqr4V1kZlVcZplSQ==","signatures":[{"sig":"MEYCIQDxpx8sZH+XVBK1qsHxKV17xnFIJNshiMyCX+hJXPivsgIhAOMVa+ik5P+rbSd0jfkxtPjagQPzsvrqwGmPeLQ+y6ZM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+CkcCRA9TVsSAnZWagAAmfEP/ikhQOyQFx8uKJK6Tpxk\n6BuUiz4/ylkfNCjCvMQdziQVhAdD7puFe0X9mSo/VF3zettekrOEZKxMVzoy\n5+ykh1E3uEE9NRP98KjAG7faNVGRzYcVtPWAN5tNo7B98N8BUjSotVck2+RM\ngu8Q8kDOMvT0cd8DNVGkRWmcn5p/XMtS/GHInwfn5DtRPx4NYWlCiBrPxJ7M\n1oyUgToDfP0YFYHWYuZs0ErhnaxBT27f/8lrgwTwj723XuSsIIw5lhPZfwt5\n+4ezc0nXmdrXqjPEuxerKpJVzzO6ES5bgOOzug4Dw3UPmUR61tlAai0zAFVd\nZ0svajhDrGu6drC9Vd/E6baYeiTyfzQiHv6/kKJb7LrZUq4cw9pCXOcN2ZDI\nAoffVxbdgiO86hKZlcisZrIdX5SjsI2J/d5QmekPozs9InHcXc5kfpqMqOe9\nF+So5fJq0/E4yf9iUO/nK7Y8WKJ0/EhcgeWZOgjKuwxaDr3dXg6YC6bQVs1u\nGAD2HnTBF7z+4C2KzY7Os4ZMkzPJtlLMRQ+naIjaWbSoXioXac6AI8QI4XZr\nOYrY1LY5xrkdMKZzbFFKopc+SKw+MOqy3gy3uNCyVV9znJdI1jr9ZFHy97eC\nKvZKGLMY8Twib67P5jXl8x/CKcfeNLs/kDSb7fj8qAyjAeh79TMhmWzI/oyR\nuoyI\r\n=+6Is\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"2b37261722e7c85dca0545b7fe7acdacec4cc27a","scripts":{"dev":"ts-node ./scripts/build.ts --watch --debug","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts --debug","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5-beta.2b37261722e7c85dca0545b7fe7acdacec4cc27a.99_1643653404623_0.014505350171972076","host":"s3://npm-registry-packages"}},"0.12.5":{"name":"@preply/ds-tokens","version":"0.12.5","_id":"@preply/ds-tokens@0.12.5","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"77e13f8280b399554eec5559c5aa186ea958f7ac","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.5.tgz","fileCount":3,"integrity":"sha512-8lSx4lEUHLm9L3003Ahl144q599siWKs+/CWZ94+FCwNWw6Qf4Si8vPpemXTxzFWMlTqjGl886pVxoPvoTbsRw==","signatures":[{"sig":"MEYCIQDQ0DtiiXcGWIOyjSb7k4c9Fn/HdTvhNezMMVTPOiPeXAIhANr75EUU5H8JNylqh4XyjNT9EaszcLuySr62PRklq85S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+Cv/CRA9TVsSAnZWagAAlQ0P/jNXmic5d+nQuXQD2deR\n9HTaekTpuBLjNRByRu8x5C7fqp2D2BjKh1EziZbU49VClpwIrt/l66sMg5yD\noBo3CDswuiCIyYIYefdxlLQE7Ubsmvl7+gbh2pyqRfT4OLv35/AQJR1WYt/6\nxvRD+SQxN6opV007yR5l8NHjQ7EWaOo8xVKKtNuuEyjnNGKl/dmh4t63OJ2+\n9OraU+ndTXUyHwzFFvJs+ofkQyS7blZYUm1b9nbR5EFJT3INZPju5nJQWll0\n+HUpk6aa2bCt/60fJ9651XieE2AID7Ct3NeqBbXnZr78taxnHgbBO2xPCQmz\n41LISa01iQI5LXdev0Kc6FjeG0rx2qjAt4nJCYU6q0tSy9vRONAzloG1a70J\nDvHftIgUsLJoCw3X5WiGNHRbRIsJQjc3FWcLwYWuQP8GCY+ZM+kVUv78e0qi\nh+v+vn3iIgoxwNmjglW3J8nGTUuma1+/u5hl2aU+XdGGrnrUXyKOGJfl6jwQ\nIqcPzUC/ZL5uWMXdEF/FG8dZ8oQorVm0bmthdFCgQF4POq5TebpWtdg0ErJR\nhh3rwaMakxO2hxlr3HEIS3oTRm1hsE1CXah7s+n3BgOe+tOkhmyeT+AmaKIH\nEZRTjwBjnkZ9m8GUTICpU5YX+mAqv1galWnmo5aqlTBxDbmyWRAeKvwgtYR7\nQKdI\r\n=Ko5F\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"b7bed9504056e132405edea904cfa60c13ab41f1","scripts":{"dev":"ts-node ./scripts/build.ts --watch --debug","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts --debug","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.5_1643654143630_0.6610415004362535","host":"s3://npm-registry-packages"}},"0.12.6-beta.f1db4ffb1e53733ccf87ab848b64cdaa4156a17a.101":{"name":"@preply/ds-tokens","version":"0.12.6-beta.f1db4ffb1e53733ccf87ab848b64cdaa4156a17a.101","_id":"@preply/ds-tokens@0.12.6-beta.f1db4ffb1e53733ccf87ab848b64cdaa4156a17a.101","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"1ed0178cc2c16f5cbc75f163b40604b5d8d80b11","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.f1db4ffb1e53733ccf87ab848b64cdaa4156a17a.101.tgz","fileCount":3,"integrity":"sha512-b978trYGTQQrog7GE7p7b+hLDrBEo1M13ppgM+CH7PlneTUoS+9OKp3MttR3h7bHU/aU3IX+HokaUh4uL9BTJg==","signatures":[{"sig":"MEQCID2SZF5w0NK7QsICPYD5Yb4AYZyxUirHkV7ZWwpVaBNDAiAtxA1fH7XDbZdfbZlJG2iqPPZ0d/y4qbkefMirOIaN3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+PTtCRA9TVsSAnZWagAAM5AP/1mPgQCKdHtnrHE7p4vK\nSMCGg9h0jgwHi87DXlYqm8Hec1GZm6eJmjr6e/cA4Wu0f8kFDgLu37jK4pYS\nSbVjtDFQK/3tbkRzaqxMDvZq7bCLPak6c/bV0o7PQ6hFyGeIy7EsPOaKp/PM\nGOEWapE+HL+t/iQmGCXGDEKL6q5WOfOjW7UCq7QN4QWquY1Eu+vxKkmrUkn2\nWmIerLRreVv/dYRMCPv/LNP38PiI/vzC2bkg7Zee9cNIbIQWOmuoIzE7bPfY\nrVxEDs2RV471pZ3E2uuzW9yf8zX4Xo4RasA8uZurkWvNoeKg53R53yZpYnHW\n+W4/q8RQCoOEV8z0pGiUFYuYu/tRSPB4sLVoA5Y2UzSGuFBkiKuIVARoUmSz\nR0g3jgExa575sbujTOVt4q5vm/SbRS4abBwmGqu9SlHE8Oyv573FVBQ2pvBC\nAasqfssvRhoj/hhmKcOXaRqkAh6fpMy3d2XAEWFrTbZFEuUYW3kugHR7BuzY\nQn6XRAFn+Gai1Zl7iUEBoWTo96/03Cd01Bab824S20hWc2sgD/WKKWoz42OF\nk7BYoJWYgztQGtS88z0Ak8lp5PZoXNx0qbHxCYYT5+/r+n+u2yKORopEkIC5\n3qeFszevPRX0zi+NxwOvVBmMoPP+ZLprsWMrUKCpDUGRIekPO/RssseVb5JA\np1Xq\r\n=AJqr\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"f1db4ffb1e53733ccf87ab848b64cdaa4156a17a","scripts":{"dev":"ts-node ./scripts/build.ts --watch --debug","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts --debug","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.f1db4ffb1e53733ccf87ab848b64cdaa4156a17a.101_1643705580830_0.9833946452031039","host":"s3://npm-registry-packages"}},"0.12.6-beta.10c1e10ad8c190895dfb1de8e5ccdb7f6a1e2754.102":{"name":"@preply/ds-tokens","version":"0.12.6-beta.10c1e10ad8c190895dfb1de8e5ccdb7f6a1e2754.102","_id":"@preply/ds-tokens@0.12.6-beta.10c1e10ad8c190895dfb1de8e5ccdb7f6a1e2754.102","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"0c247f5490c449e8621e325ae0c01c2d0194bc77","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.10c1e10ad8c190895dfb1de8e5ccdb7f6a1e2754.102.tgz","fileCount":3,"integrity":"sha512-xohIzCKReSMqoxrkvXogn63DA17Ej0tnPdsEVBvSv9ooLwkZdmoy2+YED7plAD9/v7+vB2AYTnhlWN2A5ymorQ==","signatures":[{"sig":"MEUCIATkFspWvJR6B1p3hnoy+/a3b5U170Kzmih14/gy0ViDAiEAg0w4KDedkIB3G4J73rrHOxEivxvzGShiVruYKHCXQKA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+PwQCRA9TVsSAnZWagAAQy0P/RQpU25fSiCV548sX9bL\nu0jBasGUsgwdaIY4//sv1SJte8WBLwuzkKwikoRiP+JvxtVzTxiKobszRrbX\n2A05yp8p6S9iCuz/EOHbxXHUv7HdeemBaXWgGSYR90zhtpbgUY8W9Uy+/cgE\nym167E8Yodm8QUey6b7tNd0TdcxCAefGDPauWR51ZHlwbP76DxdTKerHrC8m\na6/jjbCjb38tb8L6VXKTi4NwpExAMlBevcoA+eX/NcLVJLe0vbkAqu9/LOjV\nexMiPSyFjlOiLJchff/Qc79OCRBiGZG3yVNpedINb3tr8whl+ehrfS7tmndS\nqix0afYjQsjOcjBkZesyw3NR0VswVH0ztU0rCCOOh8y+Zcx2DNp9pm3dgQ14\nY6m1gCLC9L9tw67j+Bs5i4/x+5y5uu6M6VunDPEuXzwBa0xYlFOXnaCuJgGz\nqAU9A/Mm3FrTYCuy6YAJSbx193zWwmI87T/H5eR65FsOH8eDAsCBE4ghQWWQ\nirW2osWtha/sDFKI7vrm1zddVZzpGUnwShLJiD9jozWlQkIyU31s8l4VILEb\nXe+o7oXnepOJ8k5eAV9+xVDgfl97bLXC3bli4bfgH80YqB8YQDNEIPJTxYra\nVG/yTUC7PdxADM95x06pmJn0bj42vRJ7xSJUNyoVtfRV05015d1JgHAN+DQy\n3hGJ\r\n=axSQ\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-lib`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\n## Tooling\n\nDetails about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Dependencies\n\nThis packages is essentially a `Node.js.` build-time package that generate codes therefore it depends on:\n\n- typescript - uses\n- chokidar, lodash, etc..\n\n**Note:** Theoretically could reuse some of the types from `@preply/ds-core` but we don't want to add that dependency because this package is actually responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n\n## How it works\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `schemes.json` declares which themes exist\n- `schemes.json` declares which color schemes exist in the system\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-core\n\n  - src/generated/token.ts\n  - src/generated/types.ts\n  - src/generated/options.ts\n  - src/generated/constants.ts\n\n- @preply/ds-theme-\\*\n  - src/generated/constants.ts\n  - src/generated/index.ts\n  - src/generated/styles/vars.module.less\n  - src/generated/styles/theme.module.less\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n","gitHead":"10c1e10ad8c190895dfb1de8e5ccdb7f6a1e2754","scripts":{"dev":"ts-node ./scripts/build.ts --watch --debug","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts --debug","clean":"rm -rf dist"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"^3.5.2","prettier":"^2.5.1","typescript":"^4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"^10.2.1","@types/node":"^16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.10c1e10ad8c190895dfb1de8e5ccdb7f6a1e2754.102_1643707407972_0.16164165354143467","host":"s3://npm-registry-packages"}},"0.12.6-beta.7876d065cfce064343d20ee9135fd8e01dc0029d.117":{"name":"@preply/ds-tokens","version":"0.12.6-beta.7876d065cfce064343d20ee9135fd8e01dc0029d.117","_id":"@preply/ds-tokens@0.12.6-beta.7876d065cfce064343d20ee9135fd8e01dc0029d.117","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"eac383df36daee3e7cda82597b7cd3f6948d6208","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.7876d065cfce064343d20ee9135fd8e01dc0029d.117.tgz","fileCount":3,"integrity":"sha512-X9Yw1/Zrm2tXn4oWDI0rIyD1XzRp/8eMJuRLQAztUlgs9Qwx2Zv8zfuI/Onowky0QZ/hAgtf6kBANvfCdQNdwQ==","signatures":[{"sig":"MEYCIQDHPdT5uGBU5j7/yhccwVrITxj+2jFZeaIpZEP14UPPCQIhAPzKv38S2PpLJpNaRgSV/jHBAqN3pnMtiawpP38/Eeb3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+Sk/CRA9TVsSAnZWagAAHQMP/iYOLv0DywGiEtwDEqU6\nB1E+THTM2KFujj59WHfJ/XKoBaDsDsEwqJHMt+wlTmKjZDH407a0GHhi4hng\noWztzPceqpUYXJswW3BcJA43FN4uYiqhgKRyhet/sQYmlFYw9hKBQKSDNGDk\nWGaWw27sekeR1Domghlj+CujhLGVPsJ0SMe2L7uLNWAJkYiLMfDC9TbhtI08\nLejRgyuGr5ROaHGqGnXRLeV3dsZiQc+Q3iGZtoWAdaFJsYjlMbqrZipOIJMk\nnKZf0I5Ib5iRpIZyHl0e1Vfzb04iJaqk+prGyXTngQPUmXpyOUSmrYAIh++9\nDTJp/AsGS0PDGrl6Arf4MZsgmJZ0TJMW3YAmTl0WODRxUTOGbszOIh836Trg\ngr5G/P5mr0FyyHD8l8ykNd3j1sDnz/91JsX/fz5OVd0xQaiSGEr13Vzrf6Ju\nR24VYQFtsASidiw1Btyzq8O4TD6ZjphkZxRIRKWLIsECAX6GHumk6hXqoTXs\nyu1ylbbtaYHyOkTQ8MqRKnhMMG1vYOkrieNocuYZtVrW1R7a+ZpKpjUjhyKs\nU12wZVxFuS6OB/er8NsY5BksYxtw35kSk3kJQz0N7g3HaS2HiOaQEzXVvUII\nm2DKmtYs/RJaFA2sg/TiMRt/46U7BTqdA6RnbGvS3UIdngzoobzk/yo9FJRC\nkeL4\r\n=vldI\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"7876d065cfce064343d20ee9135fd8e01dc0029d","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.7876d065cfce064343d20ee9135fd8e01dc0029d.117_1643718975508_0.27940897972531453","host":"s3://npm-registry-packages"}},"0.12.6-beta.e0ab1fc6ae12320281d313f1b56c1cede8d01127.120":{"name":"@preply/ds-tokens","version":"0.12.6-beta.e0ab1fc6ae12320281d313f1b56c1cede8d01127.120","_id":"@preply/ds-tokens@0.12.6-beta.e0ab1fc6ae12320281d313f1b56c1cede8d01127.120","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"05fd41f86055f4de23613655ec4fd9f6d7e6868d","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.e0ab1fc6ae12320281d313f1b56c1cede8d01127.120.tgz","fileCount":3,"integrity":"sha512-HHNZs7F4tZrfospdy8RjwWMavHH5Kfbl5+Yc6yn+fRer2h5+2TTaH/ClLx+dPmA6yQcfB6XPWGfI/C5ggHCInw==","signatures":[{"sig":"MEUCIAnlPhBlbelNH1PzaFwR97D0Vy7Z8mJDcmNSlRs/33AbAiEAmolWkmUfW/4kgupYODTBkRaWaEE5rE6FRbyno9Nx08A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+UQ+CRA9TVsSAnZWagAAvF8P/0s+cOnidTJuiUEmpb7z\nAcxzwilcDhSJXSb+0BJC/e70Eun7WllfoJYtm7GFBuBJhjgTpmE5TZdKQ6oi\nhAHVl6/xCKRt1fFVVGMgN7gNXX68cYLK3aqWep5vhssGhc3059u3tMrXKJC6\nSiSN71ldcfjKOT+wfiII8KjcQw34M1jC/zYWlBoXlcqhMtyDNJOv1UwMqVZT\n9z76FyYRAdGUEYRwYUYZzowf+qv/58fqwu5bwOKenqkjvV6LB5GSssxJS9DX\ngvzLB+ZxUoUDM0889RRTLNkgyKMGEaxwsJv6E3ljGH/Z2k/M5zQy41VOXeiP\nrWRvoq65oPWRn2+q2bW8PcoqL8viN+OnVdMKKW4NBPfgl9eTUwfr3PTYbFfF\nyxxQEJ6W53IH/ZYV2ofkTfgV8agCDoYuNV6kI/KYT3GH6Uq0I9P7j9AIHfD3\nEzwbS9L32CwfKGtJdi8VZV98tL1N1iaTtuVMJtZee4gJDWKYyLfB7ClcgVZ3\nZFBZyjFAcLFN2ttBk8gkbq8TJalIYJb0q2UaeMSIU9eMoRZEytrUFBKQemOa\nSEQnD9hUJwP3rb0jwFEe+nbOcNcJTqLAEqUSfgoLIS3782CxbcYdo+x5ShFT\ndSa1lKv/PN+CtdWad0o3bonZz9dCW4beKH2aX1HVGzjQR+XjacI2gEPvlRxw\nNOhn\r\n=dvoO\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"e0ab1fc6ae12320281d313f1b56c1cede8d01127","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.e0ab1fc6ae12320281d313f1b56c1cede8d01127.120_1643725885788_0.9567467038274635","host":"s3://npm-registry-packages"}},"0.12.6-beta.552b6b33ef94049214de098c54034ad43089fcd4.121":{"name":"@preply/ds-tokens","version":"0.12.6-beta.552b6b33ef94049214de098c54034ad43089fcd4.121","_id":"@preply/ds-tokens@0.12.6-beta.552b6b33ef94049214de098c54034ad43089fcd4.121","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"c58e3d84f76f9231454d36bbda0667873bdfbbff","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.552b6b33ef94049214de098c54034ad43089fcd4.121.tgz","fileCount":3,"integrity":"sha512-Kk6SbgwFA6Cun6beMkD1z1pyt80nalnP4Bv9y4/1xYfElPu/lyKYn1J/dvDM6t5pwpgDaZzEkIDn2k6vkJszbg==","signatures":[{"sig":"MEUCIAxPxyCLAWb536rqI1CTse+Efl7ybZsaFi0CG90qSSh5AiEA1eLxZCuLerhWf4j926RcGN+cda5Z2OsQ/in52yyQMoo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+qyCCRA9TVsSAnZWagAAzKQP/RE8eYyoYDiykpI8yM5s\ne61aRjqShAI6ME887NM0ChYDio3CFTSTxLa8b7zo99ubEA1zlPwG2nsYLcQ9\nppOdNSt1WCHLWI2gcZHL8GVAh9n4nomeX1yaYxTp8ZbTRMBS95jJr7QogQ0h\nITPGUpM7fVq2uEP4ak4YcqatVKT3N/WBqKIZcPCgWd2YneUIQfhqWXfo7FXO\nwVe67QBisDq78iKJ45P1ek33ymYsBox7xYf17D1HVPC5tsAxhOqAIbLpFK5J\n9niw8WCPp4R3oiRyp/U0cRnh2Dqp3qCqjOETF3Vor8+5MPWmGZMOVuJFsaAr\nGCv2v40mkXRidi4N1BqWbvc4L9EuQHoagVAnWmYPe8qC5DQdH337uGTHjweu\nw+mjJDdnU7ALor29o29RndGxYRd+Ma7yLMMGaYcEGaQsJMsuqtz4rEH5D8wz\n8zYebJopMHxh6LF8MaShhbMKsEY/FrSmOWpypx4juH0rawlS2eKyIwEx9UqO\niHOTFvAryLW9z7XMozNR5TknZtxtMu+6BN71R2lcYZCOKOP1QFNZNeudVYyT\nDI7PiA9aOybVhlEy+YXZph9FvBz+aGx4aDPKWUgzspsinr1lbD7Qy1gdxLj+\nw/o1DaNnVszAJQhmSJYoGscGNTqWtnmciHBW73L46cRTwWtglFpltJ+7lB5L\n5b1H\r\n=Fzi8\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"552b6b33ef94049214de098c54034ad43089fcd4","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.552b6b33ef94049214de098c54034ad43089fcd4.121_1643818114072_0.8622775888964738","host":"s3://npm-registry-packages"}},"0.12.6-beta.d516f1957370e9f28aa1e44f148e16dbaf61c903.121":{"name":"@preply/ds-tokens","version":"0.12.6-beta.d516f1957370e9f28aa1e44f148e16dbaf61c903.121","_id":"@preply/ds-tokens@0.12.6-beta.d516f1957370e9f28aa1e44f148e16dbaf61c903.121","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"b3ef7fe31a27ddae43d75d18a61fa5fc97844fd0","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.d516f1957370e9f28aa1e44f148e16dbaf61c903.121.tgz","fileCount":3,"integrity":"sha512-1XgBeM0l9BIjCeka3yu/7/CyKZuKHxImXo33i5UThlTvyS/4hIcZcK8KzeZtbUro6Yl+uejXBMqba4GgDI7iwg==","signatures":[{"sig":"MEUCIQDIKO3zYbFSYosTOFRC4IainO6kIpcn6+bYhZfJKkq6jwIgHPCKz01bvh+lrcSDSxpPwBVzctZPFHPnpnApGoyaqVI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+skuCRA9TVsSAnZWagAAo80P/jUPkPLDoSXflELgKkTg\n4VLeN48+REAr994Oxs3kBncml7A/zukVy3oFgKR4ZbuUrRDx3RL7AmVpjbss\nNb1HHY36A+9mG8L9amSo65H6stNZk1xyxgjYPWtvDmOy06nwfTmDOv80sbAs\nfSCAaAX/CrP6v0Fks+sozcQTLB0UdXUvbPB6CVvdahLIWm1QAoAFPeUY1Xyb\nSdCP/lcZ70KpBxMw6GfAhzxmWdDs0oU5mS9YQ8cTsbKhXEjhUqYNdn3KM0+M\nfSq27miuYdvNEBFr/lqJvelEQMo6C9r7UUFW72i8NvPWd9gyqoYL0ZajKzzd\nRlYyWiR8eJaJMm9YtQrdALrmnrNsuHufuPXzXnLIOxi4MvKVtoWz1tLtHVV/\nB4KfywMMTJOoW3vgcDdeGFac/wD7/fSyRvg528MhHAtqTCqUIFVwbTdIEoOh\nDNkIh0BihoT++5snoGVFxGkEkhbWqbOWqO5YYZ01h3ZljcVpN37NzhTfQfxl\n7WP077UrdWLPrJ47Vgd2b37MlZqjdd6YUDAQHWuNyWBmPCAZVYpObKm8Acvz\nZKgbOIexKxp3C5c2KRwWfZqs+ZvSZ+9Yg+ISBhXgFnniZ1YdLcDxXmFX5gVx\nBuFCgM2o3o8vQQ1r5+BUJ/C+jEdHUcsdshEoF4inlNv5W1fx8uzlt1h0QAh+\nGlc4\r\n=ICyp\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"d516f1957370e9f28aa1e44f148e16dbaf61c903","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.d516f1957370e9f28aa1e44f148e16dbaf61c903.121_1643825454338_0.07326160498847845","host":"s3://npm-registry-packages"}},"0.12.6-beta.7312c88c5022e4c14b65776fb113ba9b1a1eb2da.122":{"name":"@preply/ds-tokens","version":"0.12.6-beta.7312c88c5022e4c14b65776fb113ba9b1a1eb2da.122","_id":"@preply/ds-tokens@0.12.6-beta.7312c88c5022e4c14b65776fb113ba9b1a1eb2da.122","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"af1ad415609790041c319e11606a33ee722d8339","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.7312c88c5022e4c14b65776fb113ba9b1a1eb2da.122.tgz","fileCount":3,"integrity":"sha512-CJSnZ63msQKUqjF3WZc4zp4uJ3Yd/q4impIF7IVzqTszs6e/GlNYSJ+3tg5w27hr5e4Q0nKEr9e7VFrKvKj5EA==","signatures":[{"sig":"MEQCIAnoy3FoFbpx/t5lPDs3kNyTTE+/ZH/+sR9YxTaUnh2SAiBhILgbf61uhtKZQ4PGKIpwMZj177Sn6EQSpYmE/BjMIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+8SICRA9TVsSAnZWagAAJ1kP/0UaXRJoSi1SVwBDyq7G\nHZByKCu+l9DSl2R+i3N/q/6KHuhAeNMsaVTPHHWiLaTpgMVRyWZB3bXpnpIu\n9y0emm9dcvMjHoFEgFfGrLZbke/z90mMz9kTFglyzTHACk6rCZptDe4as76u\nyX+HRvAxnZjdVNwZpUZOx1Cg4nyk9UyAgwAz2epqgu71i2y9ZWcvouuvX552\nsNWdxMMYERQS4Zrn9wgjaxYV3tUJRSjXqwEO4MuI0DTKlTI1rIHIorne+C1z\nxv2dUojM4IUEmieVsdPmIpSE0mtYlpri/FnQXvxyqHUDBNuzU5QfH3Wi4VrZ\neQhKEY83Fs5Yn0LSG3yTHt6xkJJwdo28JoVa+t/6Y8SWRND3d80Jbsv++MAo\ngKDoqWh7sA7BZfPN/bj/CyaoojmeEZDq7/N/MF5uYMkkyT8UkXRzRMVSr/pR\n2lzRaQoKLOADV500LApBefwNoraG6ZkYDpwL/zYl6unsB9645vRejCoN7eZE\nITLEHQK+o1T6R3pMawrDuHOeqLbj6jW8W7lDpT254JPFOUhk9mAu7PAItoYv\nHGBbmMR7UDawLqqE98RGQuvqIUdrIV4ch5PXDdM0tRIIAb1HQNO+8THefJLZ\nXDqtrwKXVCa8jEKKqkzNg6YeRqkWWjFQza/35T+/GHzBhTyVghMhznktCsxF\nRHiZ\r\n=zt9C\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"7312c88c5022e4c14b65776fb113ba9b1a1eb2da","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.7312c88c5022e4c14b65776fb113ba9b1a1eb2da.122_1643889800781_0.4078792498426873","host":"s3://npm-registry-packages"}},"0.12.6-beta.3eac6e6354c9aa2901ccdfdc1ea07102f707e13b.123":{"name":"@preply/ds-tokens","version":"0.12.6-beta.3eac6e6354c9aa2901ccdfdc1ea07102f707e13b.123","_id":"@preply/ds-tokens@0.12.6-beta.3eac6e6354c9aa2901ccdfdc1ea07102f707e13b.123","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"b83ba75b2ea2acf14c59a2d8296f0e95a6a81eeb","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.3eac6e6354c9aa2901ccdfdc1ea07102f707e13b.123.tgz","fileCount":3,"integrity":"sha512-XrqouJbDfb8xj0NGdS0kIRWbJ3ol77+YF3rVpzpXpmYpK9tlwaOtvuu/JzvCJbziGIAiBzdsc7IQsbNwFQZDHA==","signatures":[{"sig":"MEUCIQDgCE8kGIBC9XMxUrP8F0vYCp/YNMyp0naxbZ//YziiMgIgWd2xIHAnathmpAs7WWzMRjRFmLSRNbZD88CbORoXAh0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+9HLCRA9TVsSAnZWagAATPkP/2NUrawyFYAXPFlEea5c\npwpm5r3KZ5pqhzTdRYgKxWQoLvdN933eNYZBFK1yV0RO9lK0gPDgV45Vb6jb\nL9nX4RWucDtHAKWIOuuGONGBrdsVYTKXonngQe6qIUH2SBboPFv8B9nR9gJa\nk+Zil82fKE/2hwD+O4FwwtVeDTYVJlzbL1U0Uf4hJJWrcRsgGKElrwy3NeGF\noM25b6yxtzz+a3lS0TSvg3rKqzgoX3KKlDKMVrxH9TlQrefjVz7wSV49lofX\n2hWr3yub2EhmlpB9DFDoto5Z0lRN9fMY6iFNBLX7WbOLh1AN50gFFU2O7s34\n13myP5IEB9wyc/YOoRT+xAI9o++/q0OksKldsEMXrUzc/Y0czukk7NGOpW9C\n2c+tYwP/xgiGiHk2yogzjY3v3mpxJ06j52P6D5s4/cTJ6XlD+4bIK7OzLVHx\nPbPb4+KUX5VijI+bHivXI7uomGf/SClsTopw5ULHAWC2dDO4YiHM4aEGff5+\n4vbD9JXXtOvbIOklVSWIpxgsgwXsbvI0OIjNbLgTbWdhTuaYKyBkpLbRrIK8\nz9v5jXk4ZkkjjZbsigjgNYlWtPGau8zvdwrgPNUnbsySTCCOE4Ref5dFbFOm\nY9/wdZTIJB0zZ9Wiv30EPLgD4bu+IOq3OXC3PBWcC2xM8K55B9kHKGTg3OSu\nSMDv\r\n=81nH\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"3eac6e6354c9aa2901ccdfdc1ea07102f707e13b","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.3eac6e6354c9aa2901ccdfdc1ea07102f707e13b.123_1643893195006_0.18679119520307208","host":"s3://npm-registry-packages"}},"0.12.6-beta.3a805302413dc460f9729b5faa99f4d705f96776.102":{"name":"@preply/ds-tokens","version":"0.12.6-beta.3a805302413dc460f9729b5faa99f4d705f96776.102","_id":"@preply/ds-tokens@0.12.6-beta.3a805302413dc460f9729b5faa99f4d705f96776.102","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"af60bb007376caeb245c7e40c8c1700c6d573ef0","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.3a805302413dc460f9729b5faa99f4d705f96776.102.tgz","fileCount":3,"integrity":"sha512-szOnWlq8BTsdb6obCDrBGFBXiOBnwrsMG50QxG+wSUcn8mUYCIaRkYEuPX5H9PN671rvUtdmQCA3Q79dgHHOVA==","signatures":[{"sig":"MEUCIDkX0+Zv9N8grD2bqBlcUkp6nATTt/JOrFpQYzNeMNi3AiEAnGF+OnvwOvK0KiqFepRwJ5k9hPqsIuKlR/jLCF8YdRM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/QFtCRA9TVsSAnZWagAA5F8P+wfJoWUMLThVAy7vkucY\nXAV21wHOiCqgZsugPa+8pNOq0DgVX+9yjbXXWl3mirRsiEGzveM5onuHBumn\nQIVY6QBe2QAyDWe/iSTLWpRzkYOQfyTdd+ZWztQN+YL1FcnvYqYZM1H8c1K5\n1+bApygHlgWGAuRCUDL8QRefSR7MW1WhCRXlPQWN8nIYCMI5pe0aDpjpzovP\nfikfKvd+TGxJxnkZPEkYJKTjCKjjq662H5EUpVDSuOqwzqIVItqVqYa0EV2C\nWCOPY6lh1u4shs0BEvJdJ5JZD2OvFDSJtBIUJjCJb9Nuhx+hbKkQBWpfmcXL\nJuXoIyEFCevJpp8x+UtAptJODOIRrnUzhap2f2TWjM/pO1LQfIaE4nCWXQT5\n/oM9ndZqMuqZWyAgeqU6bTXlytYCn2P0iypu3upYSh0W4i1+KLkaR4hjR4k/\nuYjeJsvw8LYw7bgcntvfkgxAnTtyYFcV9D1Bg0pI5mzjROQ8/nOL4rFGjHmR\nRkLP7Hyt5s/bSfqKnHLnuT18LcwyzU2Z7SAZNMAdQ0CzucZ4skRSzwz0Oimq\n6uSqKV6zTsxWNSnb69VffcTKcn8B6qXnFzXIJMyCc1B7XMXm3yBrbEwdW7e/\n+Il4ss9B3QASvd1bjYk/eOEXTah07XOC76dveSuAxoox504KjNPTHW1SYECi\nSE0f\r\n=6n+k\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"3a805302413dc460f9729b5faa99f4d705f96776","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.3a805302413dc460f9729b5faa99f4d705f96776.102_1643970925852_0.7111698728866191","host":"s3://npm-registry-packages"}},"0.12.6-beta.bdf2f6d755a8dd9bfacecd200a4595fbd0fb1361.104":{"name":"@preply/ds-tokens","version":"0.12.6-beta.bdf2f6d755a8dd9bfacecd200a4595fbd0fb1361.104","_id":"@preply/ds-tokens@0.12.6-beta.bdf2f6d755a8dd9bfacecd200a4595fbd0fb1361.104","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"cb63cc7750c5ffcacb9deaab3b6c928d36c246f7","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.bdf2f6d755a8dd9bfacecd200a4595fbd0fb1361.104.tgz","fileCount":3,"integrity":"sha512-ZpD4ioHTNZ+79Yam4ejjLhjYmlBIuJ1hvRT9AodfeRMOEyxESFq29KS8t1M7VwdesZy+4o+3/BwDHq1i8AmtlQ==","signatures":[{"sig":"MEUCIHvZcaFOIHK0NSzwAdVIabVH6asvOnfv+xjS2aIJUEuYAiEAhybFD/t1oYjgJE8hs3a+VuGBo3VSu/c/1lbj1juaPuk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/QaOCRA9TVsSAnZWagAAadgP/RZfN/kp43xvc4tCggm8\npEavYVKM9kivWYIltkvBsURBn4TT6v3BSy3XScBaahWm+7qnQFpjFyjKnEHF\nWcgC/KKhlqemUmZFI1W4rRLqnCUyHg9d5z0NOEwvXPVauyaGbTiwkRbcCUAs\nIRYc1Y7YH9wm+Xblh0nUJq8Dk1X0SYIq41qtp2MMy2DMe2J63uQ8jEG5n40a\n1TS53gkXncBf+o8XAX4s2Qp+Xog0YwMH/snWbSZapbOgw1GG43QnoJF6y9iK\nGD4it49B+EI+MtUsQcMCwb7L4VYesYqGtZt1JimzS7gL6WTFfxL3KMK58Rnx\nghrNrezgBwi3u8/bwPFXMUYgfUf6Ci4JgD51NXheoLuOCViI16XWo8LmoyAz\nAyrtuDoTeq4HZF6MXZURGkuSuGnkmN45DoO7vYNr9lrkq4S3f50pcT+jqmux\nkz17P/xANxTdf6kRQZyJ6Ay60eo9BWctn1TQzwztqpqib1DaLsNGpmojEsxP\nBzH8L6YPxqH1FI89vDfrCDLuSXwD33lWhFvcV3qo6PLTOwXmR8NHjie8QG3z\n0wfcq6R8Lo3zGfjY/uONSVv6ulZHQGaL5X2vs8dmP2KG98VRcsRjXYGHsa0R\n15mC8ecT5osJY7hQrvTVaBSgz4FaDX3atW+RZGImbvdxY+gelq6J6dK4wRmF\nt8FW\r\n=D6fU\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"bdf2f6d755a8dd9bfacecd200a4595fbd0fb1361","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.bdf2f6d755a8dd9bfacecd200a4595fbd0fb1361.104_1643972238798_0.05010874513722996","host":"s3://npm-registry-packages"}},"0.12.6-beta.a5bafbde162b6b4cbcb4031efbf36e3b38657479.103":{"name":"@preply/ds-tokens","version":"0.12.6-beta.a5bafbde162b6b4cbcb4031efbf36e3b38657479.103","_id":"@preply/ds-tokens@0.12.6-beta.a5bafbde162b6b4cbcb4031efbf36e3b38657479.103","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"f2b0f0b25e5cc0afe970922b84061fc271edd905","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.a5bafbde162b6b4cbcb4031efbf36e3b38657479.103.tgz","fileCount":3,"integrity":"sha512-2qy36zneFqRc5sx8qFLJS7qSZqd4WTUeORgmYxHjic4+eOx76GItk32Wv4Um04wtEPbO4whnWZqgYRnvbsuBhw==","signatures":[{"sig":"MEYCIQDZlEX7htyfryCskbVnB8eXo+ZXZPMbVeqDQWjjir28+QIhAN3kjtzSw5e1c/0zEwAjsHyZoY3Fjb6+2InCiwYHOOTT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/Qd+CRA9TVsSAnZWagAAVPUP+gIHMP3uP7TKVETKjDo0\nijUpSrTyAd8a+6am32QPEzHscc47lqNEfOsWD4SzVbAWh/xZXjUiO19cd2NZ\nqEDPGpnYr+vIJXmoejg4R428kjdGIwclhKp0ZcvD9Yxk2FCY52y4Gk2+YQEw\neMg5V9cgmOt2Ke9c59f+7D8k0nE6CwqpzblGt+gTBxVfAxkqOTQfUAjoESKx\n6IbC3GaIhZNwCMvOwVhPjrF1bRo8pliCngSN9vm/wIk7SJtSQc5D5m+dbXnJ\neJQOleT7/4AwmTSnFKLpF/qKjHA0c6VEqx+L4MlA5JDcuTQoFEh3n+28ppvR\nh1++fuEfsTHLmKELQXNTvIqSlcnxsNrXzMAj1J8krH9LvAg7oV6wdpew0MTI\nLgSgbXpl+iR0IxdkGwN2FXrXixrgvn1YG7lKwD44o6GPuswy6JyKXmiPG2wv\nBCi+lEyuDCKMl+f9TY0XMDaNdp0EmgRQZT9QrzUczmAEwe+6J9h/OUuxeBpM\nvjShbIP4coLMY1H4aidaFKcP8O1e5ASfs+ZKh4Gsoxk0RaAU4jGtJVs0pScN\n4LNcr3eYChCUp2W/Qj+aRDDzK6OSxk30vCPdYwjykkRnRAm71TvYecLNrHRw\nWN/J6Qqxum7OEL0e2JEv/n13mpB2AVBaT8iEgJSsLc1ikehEYEeixLtUkZjL\nbtzx\r\n=CX4g\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"a5bafbde162b6b4cbcb4031efbf36e3b38657479","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.a5bafbde162b6b4cbcb4031efbf36e3b38657479.103_1643972478527_0.8683039079243853","host":"s3://npm-registry-packages"}},"0.12.6-beta.3530ba24922aaa6911a1fc29a7b4fef8093283bb.103":{"name":"@preply/ds-tokens","version":"0.12.6-beta.3530ba24922aaa6911a1fc29a7b4fef8093283bb.103","_id":"@preply/ds-tokens@0.12.6-beta.3530ba24922aaa6911a1fc29a7b4fef8093283bb.103","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"06ed5eed0b21756fa73febc74c01984926f2e97c","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.3530ba24922aaa6911a1fc29a7b4fef8093283bb.103.tgz","fileCount":3,"integrity":"sha512-n1Hrhg7mQ2dV7MYQl1PWyCtjMAsCLL5NOPwcAQSTE1ezmedqFZw/SgcWBAxr+ap3pM4OjwDORY7FsfPpRl10IQ==","signatures":[{"sig":"MEQCIG4I467N5TOMYbB5OkNUr9rUSBobrkLgP4qzpkz7N6h2AiAcr/gHiNJunvmhyyw/xZOweksZuStOwQKTck3VlHGgJg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/QkbCRA9TVsSAnZWagAAfysQAINqulUl7yk4+LtkTEj+\nQKGQ9Hll6LOGNqJaGyY9nLLVloWfvku5PPuDSgJReLhRxSg5yJN63E3c73xO\nLEbowSH8zbg7yK21yPQC6DkaPxlV/huj5t7hDtxtyremKmw0nf3mr7ttSOey\nsM7nzBENOCXAtJINxqDY1AkNyIZsX1EZIJ9DtQNYtf8Q8kyL8RihvyLQBtld\nu4ttuF2nEcvyd4IrGtSRPtmJljzOoCTqSnHlQVHsIx+QYWG/6niejvnGW5sR\n42Yb7OxH/3zKWU4QzZDyFyaB5D9CtFtqoTWWgVJGgK5qN9CO/BBdnXg5OSxc\nsG4Y7yGaVT9VX02uMbs+fZVroaQ8fdKD0DoY287zd/AYMbB4S3lJkarMaKJp\nMbDdtk5GZnWzcQrR5nUEw59vlOlPE3/oWIZJa8OTbM5330W8kj9c4h57uRI3\nCtJHI7kSHstimYIPR0Z9SfSm3iV84wvHoo5xbbqDJ6iqt3zgvjhc3Zjd46xW\nig2/nMD7MiUysveSziZfF6fVLyQVF8C8BmbJkAZca51ajjA3iSLKuNylp2jU\nwx3kar+lv0d4alVSmS5ZFkqSH/ltjlZdHzXnZSK6XxP7MIp926bQcZMytoh/\nbbnWAZA7e+A5O3Ei9VMOVumSbDp7WZrAHyVeQIiX3J2/fk7aXkKdsqC1L0e5\nIp09\r\n=2gxx\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"3530ba24922aaa6911a1fc29a7b4fef8093283bb","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.3530ba24922aaa6911a1fc29a7b4fef8093283bb.103_1643972891663_0.20953044541023425","host":"s3://npm-registry-packages"}},"0.12.6-beta.37ba861421abcc2263eda2eb1cb25cfffd13a360.104":{"name":"@preply/ds-tokens","version":"0.12.6-beta.37ba861421abcc2263eda2eb1cb25cfffd13a360.104","_id":"@preply/ds-tokens@0.12.6-beta.37ba861421abcc2263eda2eb1cb25cfffd13a360.104","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"4cbb4dac858ce58b23255033dc5cb02df5831dc5","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.37ba861421abcc2263eda2eb1cb25cfffd13a360.104.tgz","fileCount":3,"integrity":"sha512-1SOAPO0zhCe8ffqmEbg5XPTAlgsqkrI6R93ECfGVw5thP/Pdbkw/xCi7hGaxiiCuRYD/K+k0S7wlTI/LSBagGg==","signatures":[{"sig":"MEYCIQC68q6hp+r1G6rDoGrAu2yTiShvV0gPzvl/Edyr99r+KAIhAPSq0g4cl4s3A32BXipmKMu0IQS8uCTPEbWAy6bUnLkM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/Qr7CRA9TVsSAnZWagAAhusP/05tgkIklp49xqwsd9PR\ntyOgjmWWfKcmhrScVF4Ywv+1Yo2AtmZ0h9J9d2l2BDP8NZsuSG5NMUal+0K5\n2SZBoZ44dqilbLmVXcwos9E0UGfDex2b0V867aFjILhBhOCB8xQ3PaLWJyaD\nD3AN6MBsRc9OpcBPXQ6Jzj6eLG69AU+vb9CKoefxanxTKZhPtJx3Z+CHpvtV\nJIljarMk/8y5f1SI7qKmDSo7Fq3dYUNbAhZd52fEu1LWISMGngcN6D6k6EuI\nysAoyUcwPaf1UD6y4VAAX2FRZL2gwvr9I30UG95kL5+qi3VH+UppDlR0ch8l\nl8UXpu1rygfFEX0q4bCAt9ted2loi4ioi9i1vWkEhJlPdtqt/vuCIYxO5Ovh\n69BRe+MlDFit11hjmLp9I0mgXujl0UdI7+l+t3RHwYgd5wmBiqtUDcEkRSeh\nyLQnRgpNmymlg1eadnfZS/9VatX0WcwtzjKAWZ/F4h9Gs0sKQ7F4iSczJW/5\ntdN/eX0m/EKIVGcmxlxKuCT0UNoIk7qEPvvGR/X4uQUqQ5ztwiJmMHLnRnNM\nisGpqY2bP6PRT5om8uvJ0vwtKXa5Kci3kXa6i8kkwp+RfTthkooZAWj5fQbJ\nvJAwJ/itJtdPmO2bgTvmI2UntkE8+pyIAgCqPoNN9sgJX2Pa58b2mtaurmQ0\nSNFq\r\n=oCnH\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"37ba861421abcc2263eda2eb1cb25cfffd13a360","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.37ba861421abcc2263eda2eb1cb25cfffd13a360.104_1643973371546_0.8477696059195188","host":"s3://npm-registry-packages"}},"0.12.6-beta.bd4cf1387b00dd7b81f8b1b22770b9d5995accfc.104":{"name":"@preply/ds-tokens","version":"0.12.6-beta.bd4cf1387b00dd7b81f8b1b22770b9d5995accfc.104","_id":"@preply/ds-tokens@0.12.6-beta.bd4cf1387b00dd7b81f8b1b22770b9d5995accfc.104","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"a0d8903f1810ae290c32ddd38458dac74bf34f28","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.bd4cf1387b00dd7b81f8b1b22770b9d5995accfc.104.tgz","fileCount":3,"integrity":"sha512-6gR629xCFK5zmhtk4D0MNyRb/r657PsRDunyBLToQEI7vHc14zwsfeubFdFFteNLGNkO6cUS+UhBIsd7q9vLyA==","signatures":[{"sig":"MEYCIQDmTzDIqlcwFW8qmCZHVdJKbeaGC6wOSojzfYZ6r8fBZgIhAKTMvS6L8AmxMHojdw73CEnf7G/Y7aNbXiOlHKnbV/Co","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17991,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/QvmCRA9TVsSAnZWagAAdM8P/R6ZbEczift9i243PuF8\nTVAL1pH4kzU74w4U0yGvXat3S0oDN+mK6QkE5e9y0gtkrGhp7AWhTfaCq0jF\nkQstRX9zpGu+eKrQrNx0UG3R59lvDby9aGp9JLruHP29WNo+SkXpvx5OvPSk\nKdbQzM6pUxt8sTed6IGOh2nT7TDa/ET+zTffMRRqT7dJxvrHD0OZGZUL8gzo\n09pfgyxFJ3y6eoR047bWHLB7/H0fo+qlN62Ps0RdcHlNgt4VF8TLijrhjM3J\nKcxZWv15PglACIpbCVSugm09mPusatxFpfzfRoIEh9r/z4WrYI4QKj3uFhh7\nNbRS1m/2yfsQF6l4xq4uUQ+zjblJy0Xv3/UxuIVhI4vqj6fCOOhrH7I9kMSt\nzPeppJ6X7aamxG1RBtKxdYyERt/QrDcFUZItVX+z4YTXTopoHg/o+35wWihe\ngrQX/KukyQscL7hZCbiUmB1JrFGEyvGMg4wxbPdVMbEEm8lVNOUrD0fzHwjj\nmbUOXqYQ6pGSpmFcEPmX96KWtGnWBD/w7Bz3d8MGK0fkrb1oXJ1T/NBSEtGO\npkWPpw9uOtqYMhnDo64EBusidSO7fI3DNNvnzNuar5z/CksiatAcV2xfzsT/\notehqvYUsvRF2b5wcMhiEs3FQpWHh6B1MrpiTSB7lI2Bqh2EnSKFnr7ZblPA\nPZp7\r\n=eC39\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"bd4cf1387b00dd7b81f8b1b22770b9d5995accfc","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.bd4cf1387b00dd7b81f8b1b22770b9d5995accfc.104_1643973606179_0.3730363742191156","host":"s3://npm-registry-packages"}},"0.12.6-beta.73e500c10c0cb5aff58cf434742c27004cabb7a8.104":{"name":"@preply/ds-tokens","version":"0.12.6-beta.73e500c10c0cb5aff58cf434742c27004cabb7a8.104","_id":"@preply/ds-tokens@0.12.6-beta.73e500c10c0cb5aff58cf434742c27004cabb7a8.104","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"88f73ba86cc22544c8020252938138052d2bb465","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.73e500c10c0cb5aff58cf434742c27004cabb7a8.104.tgz","fileCount":3,"integrity":"sha512-7CvxTPHmQbYOGGbRePssulTSQY8YxjPIl0YKWg9vDSVZPOaNX44QQ5OJwD+fU7jigHcCyJ/7cP0p6MwnF8h/vw==","signatures":[{"sig":"MEUCICpwKqBkAlI2lt7yDSwEmpAsbEXJtdP9N074lnSMRKXsAiEAviSZ25b7DJu7tw+fxwPi+Sv2ClVqN3KrpMBWbfPxllc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/RR4CRA9TVsSAnZWagAAMzgQAI3AAYDMqgiY1nrUnPye\ngXFjYALcOVOT389RVt/7Pi0BKiC0TqDK++DTUYIgXx9gPum9rzJh3BqIMhNF\nrjG7X2KFjLaXlwliGYVqXeWdPgL6zf/y5QT2lqkG79k2w9F6C/+L2VSALFNk\n3U67rF0lDtvGeHEi3MPxM6KdgE+Q5TQlOgkemfpgnOrYWR5Z5u8hS9kUUVI+\nh/+WCP31KfibC/xLCpuxra49pW5IZK/5dPa2p9C9jNiBUm1chlZxplTcznNU\ntA/qV5TDSpcJcCRlzggfxNN7CcBg3e2gnKPo6dr9ZEsr8Lp4Nwsqsq5v5nnZ\nbbHskc7diBnkTEB9DlqU+/aDzxOJoCoC7KMScVMN2DOBHq9uAEuEvV+EQ9V9\ndethp68spxgdVrNPym5zJGzCer8P0AYIz3uKpdko2OONKHDg8/TgvXiNn128\n4N+Fn3CDnuvCYIWYjUpl8TsZ6gHheV5Ojc1kBnnH1AuG1IRxTLBKOEKsG8iQ\n1fXsTqj/yZBayHZWWDqH0rpuvrv1903tG2/asAjIBD0PW7uoMrx8AFtYgH8T\nf5VhCyWq5Br8BEq+Q0eG7zXECI+6Q0v/OUNNzdjWi7gazlwFIM8Pv9letiKQ\nQ2NpD7UatJfYJmKQYDv+YdVcY78CkU3pehEzsionv2OhrKfbu24Sisou0s5F\nVXIv\r\n=doYC\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"73e500c10c0cb5aff58cf434742c27004cabb7a8","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.73e500c10c0cb5aff58cf434742c27004cabb7a8.104_1643975800198_0.00860724307363303","host":"s3://npm-registry-packages"}},"0.12.6-beta.d7e80ee879650b8267394c26b38ec76fae570815.109":{"name":"@preply/ds-tokens","version":"0.12.6-beta.d7e80ee879650b8267394c26b38ec76fae570815.109","_id":"@preply/ds-tokens@0.12.6-beta.d7e80ee879650b8267394c26b38ec76fae570815.109","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ebf78f673225fe4e74a962aa3fe948a423bacc25","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.12.6-beta.d7e80ee879650b8267394c26b38ec76fae570815.109.tgz","fileCount":3,"integrity":"sha512-9i3p2xuTE9YnxtYwo9qIhTlotAD+G/boxoAW6Z0A74r6XPw8BVMcH82smEWCVLN1hxLx21ca1aOAS3ZPRLfi3Q==","signatures":[{"sig":"MEYCIQDN9ikB5RE+547NgDY4dNtJN6ye1pSf5S/yv4t461Oo0QIhAKFuA0i9LVdc0yEWoU8ahRV3TQmGIM1zGmLC1Cd+K9pk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/R1SCRA9TVsSAnZWagAA1zAQAIFejH8zeCO9JdxfOSW1\nv9XCvx6JD/K2nhrQ79oV/XY/P7HtAEY5YIGcgHOJRTfz/LHYB6AeoXTy30Dk\nJnMtNf+gC4wVo9qiG3UUEUvX+p3bbvqAdEkHNwO2EzV1QwXQXkAxvKypiCh5\neXFLNzKcHYhD9ePbCaNBajyBUEmq6uoPpYmkENSNU12z1C02ORCWLIIafNjS\ngDEEJ+7Fhy3NOgF79hZUhuiieXnRk7LoFb3Gtq+zr6itqhp3zEVikCvmEDOD\nENY9wDGsDF7x6wHUp0xgJ1APsJegOLlYsfWec8MjETa2QO+hmAKfPqQwOXNH\ns5Tt/DvogI+RKohqiHIeSIhcwd4+HsydJYBYvYu1wkkHF2WKmr4TUIUfuNQd\nlnAcme75bXjf30hlHJK35hOqidjc2W5zuFMqvtm0rmu0W0kbpITDv2L6cL27\nrxmhtMyRhjEjJIKZ1o1fgOUrt7wSXIpho8ZOHgKYzD+SdoNYksbjWmLLX0hK\nnMYRD9ESvTGKrsA+mR3WHMSXiGuYGtF5MlGo/mR6p2sb0X2156dfb3HQoFP2\n6mI3xf8hTEnWW1Bt2wuiqbwt2xLE3Oc6Gjytsi9bEX4gBjRNmtgaAZnsP6Mx\n8My9Du/vBnqKwcNe3ODS+WR7GJ1aWDzEViAAP3W317FllGQWt/oIektHtyjr\nmHlL\r\n=cXBK\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"d7e80ee879650b8267394c26b38ec76fae570815","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.12.6-beta.d7e80ee879650b8267394c26b38ec76fae570815.109_1643978066061_0.777840060623529","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@preply/ds-tokens","version":"0.13.0","_id":"@preply/ds-tokens@0.13.0","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"e2230789f492b6ab64af6a15282c73aef987a9c7","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.0.tgz","fileCount":3,"integrity":"sha512-MK5Hdb1oPmlU8dhpUveGnVJnwiXSw1E9GiWxm3NzobPe3wtvg+R01izmlaqQkRfS7Ed0Q4uUIrBWeSakXW2NIA==","signatures":[{"sig":"MEQCICbAtPzv0gebDFlaa3YoVNrGt10PaI4cLfCjBVA7X6s0AiAKCsQFIgEeOJZosVoMRF6QEV/FWA0TkP5pud8O8iaVoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/R92CRA9TVsSAnZWagAAn2UP/0MjVXIq9aEXXLzke8Be\n/8yY5I2F+6dcfjbO3n7vQ3uWmX2kTbg/Is3qPA2ZZA0KoxO8o4l/J3vc11Gx\n0zZq4kHnqOj5boFzEjCXAUwMYlcSGZeONxgr3dvHvy6YzEND7EWLmWmj7FXK\nizVhfZjr6ieJmBZv69R41le9NP7V0JABig+Uub6DrvH5ckTbz1iC+ZipAMO2\nggCuA3bzG98X+4rNB04ds+iDenF9YcTfTMvbto3QMEqYKiHW9Yemo+sicCgc\nH0RLEIIaWG3nzJQcfr/qvQIv0pSYhXm+/qhNBUUgmQQ3m0xwNBZVt4IU5w7B\nT5r9T8ZRpK7l3O7y3S+KbjQlzkDlyTqWN0gnBXl+Ihyq1qY6ZZQ2P0huBNye\nV9cjZ6rtpujfml+avdVom+utaMISzResHjYgQWLq9Tr4nhy4lCu5ox2bkDjH\nC1fFnCLbA+J3KMPieMACL/Lev5GkbK9wYTxExjCFVGfITnM48czFZ8SMcWb5\no6Y7FYawxg4eNpA/YUooGQiu34i/IUiH7W5T1TdFHfV263mIhW2mAgWg01KP\nlNlOcVfi3FkDBctpvq/FM7hrNftINBux/5G2hp62V47O1MpH6ePn1yIewoMA\nTxdC6redEyPuUmVRUb025qEyt/QEC90XiTh1nvSDPKzv/Miz2Dvr4rpUer1Q\noGKG\r\n=dYED\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"ddbd096d501bc90959b2622c5981b6193d760e79","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.0_1643978614037_0.440716927059315","host":"s3://npm-registry-packages"}},"0.13.1-beta.dd23b0049117d14055b5f2e8685bf0fd16b8f794.111":{"name":"@preply/ds-tokens","version":"0.13.1-beta.dd23b0049117d14055b5f2e8685bf0fd16b8f794.111","_id":"@preply/ds-tokens@0.13.1-beta.dd23b0049117d14055b5f2e8685bf0fd16b8f794.111","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"7b676b5701a6b84b017374b14d029486653726b2","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.dd23b0049117d14055b5f2e8685bf0fd16b8f794.111.tgz","fileCount":3,"integrity":"sha512-l99ZPDhMODJWLCbyF6VOOjqVkwe5sgIgmZ3Hef2mrv81wNKpTkS38Zq/DrDuc2xBZmAJy+e2w2AXLUZIfBT/ew==","signatures":[{"sig":"MEUCIGe7/Eo1zB3XqIpmrSpf4S+RrCQx3C/LreJaMQiXhERAAiEA9TuTf67gb+y7p/WiTu8RHqs85wSWtuYjLUZTOfjSCmc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/SMMCRA9TVsSAnZWagAAknYP/0zsmrgu+KAQIr/vU0Ch\ni4Ab5Iv9phslFTgzxeEhOJCVN1TnNq8Taxznx/z+QSnfYlOSNU0TcF7DxPKo\ngg4fr2IdjPU30VYMx1fHpJ3yREsDk/4M15VChEjlnbviPWxQe3qs+9V8WdZT\niIbGWT9/M7qKZaXR4N3yvQzPyJoKOMZlx9SSXRxEEQe4vaP4aqlC/TIk0XRp\nYNgsI6eEX0C9qEXNXdhgDs1dRfN/Jf/NWOO59Z7NkQEcZw2U57BRr5tgM4ZU\nTNK5hwe9fN+haMXhmcq/eABFG+op+4TMiDuDUbmW1ENyFnnzxt+t/uInjG68\nLywmI/JLeYVJp74UagU1gC+MsKHMsAT2VSzny7MpqjYGkmVHKSs1cpe22aIc\ncOnouPvyO/I48tOyPMSqePQneclJM1vk7RLJUYHbrqOVq9M24xGz/K8rB+rh\nsq6+zC6ettlMlnDBED2kGXnTztKiKgSNtcnjpauNvPZRbsybtDEyjRk19zsN\n0+H6Vsp47GobQFUZ3nEIIuUZvQH15qOY2Ni66UeVoVs9YIXmRK06MyHUejpD\n5NezT9aKtumAm00Mot3xXXFRAW1tB+RbJSkfq2aBZpZ7gR9aM1Yx/aQ8ZJkn\n0AgscAsXOCJSd/ZZ+IWgjZUPoSRg7FnO+9KUaBM8m/ZZ81XIq7vOTpdbq8Aa\n2qAS\r\n=gCzZ\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"dd23b0049117d14055b5f2e8685bf0fd16b8f794","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.dd23b0049117d14055b5f2e8685bf0fd16b8f794.111_1643979532212_0.3864518469458289","host":"s3://npm-registry-packages"}},"0.13.1-beta.401bfa59c7b2e85ad1aa1c87b3b963a3083c1899.112":{"name":"@preply/ds-tokens","version":"0.13.1-beta.401bfa59c7b2e85ad1aa1c87b3b963a3083c1899.112","_id":"@preply/ds-tokens@0.13.1-beta.401bfa59c7b2e85ad1aa1c87b3b963a3083c1899.112","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"eb631a24b2206c86f4e80857ecf3c4a4038a196b","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.401bfa59c7b2e85ad1aa1c87b3b963a3083c1899.112.tgz","fileCount":3,"integrity":"sha512-KwevbnOvL5j/cfNMfiOH6cOXZtCHflD1oPj1e3fj6c63SYwIryrzuJ+YW/MIxxjC/2FR+hmHkrg/EOyoYKeCsQ==","signatures":[{"sig":"MEYCIQCfT47b0m9oi7jO0h8mYCPqFtD8exAUAo3p9RrmXpA4BAIhAJI5RrxfGeHQm7w9CSxhdgRIS2ExVOt+WBTp8xQ1y85B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/SWZCRA9TVsSAnZWagAAIeUP/j/c3VJaLlGr7GpUVAuG\nzS6ERLS/44ZUtDi47ofdfYQRuXdzjZUe1LBi5unzQRR2sw+G1we5Uhimj0zr\ng9uouPD8I1p2dPyA9OcAW2TPZ8+VtU+ixxO9Y5Abq1llL2Add5FzLSL/OQ77\n40dsW0x+CmHzl+OIhIwTJ32ELx71rMcQNK8J/RD0a25cPbWj7InpyKsc93pE\nVW2UjzRLgq/qhD7iK9/wKIk/Q9H/FrNGnTiNs/L8u27jwV1oWqQSzjTwyTb1\nY/BTyhaRhwAgxQKvwC0PT8h3JldvsLiZ855Hwlrad3hVK8ruB766vz8QSYck\npqqlWlM5ae+AfeLlx4dwCeOvoJMuGN/2SWURo3ydX+KxJzng9R6zSxIIzL+w\ng8GXa08gJjw9wGeR4RyxDKE8qXY3oaaFVzlZjxrYGFyNMLUfZMQd4h97YIOF\ncgCrUIv4hSgpEredbp+SQM6vKIH2l+VqS3xFVn3OlmAPqutLmOXAG6emjgjE\nZKPmaKqRMCq5ZyOaCS3XOhWXMCaH2dPzk63QvgF5BBWsWnsBQoSdeZ1VOQdu\naBC8WwFrdxRKEpFE6gX77iamtZO6qCuQWocxk91SzHCENHV8QM4MoLaQpscl\nLkVGBKM26sFdlR62Yt8QjS+T214pbFP8+UKsncvEGU9IcHSNheDBK1YTx4lM\nsrGe\r\n=PNcA\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"401bfa59c7b2e85ad1aa1c87b3b963a3083c1899","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.401bfa59c7b2e85ad1aa1c87b3b963a3083c1899.112_1643980184924_0.5022514248724812","host":"s3://npm-registry-packages"}},"0.13.1-beta.7e539b1c4411cf69da20c46c13cd2e411d76b672.112":{"name":"@preply/ds-tokens","version":"0.13.1-beta.7e539b1c4411cf69da20c46c13cd2e411d76b672.112","_id":"@preply/ds-tokens@0.13.1-beta.7e539b1c4411cf69da20c46c13cd2e411d76b672.112","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"545e1974cf4df8a0ace7a26118e919e953600ac3","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.7e539b1c4411cf69da20c46c13cd2e411d76b672.112.tgz","fileCount":3,"integrity":"sha512-SiAyJa7RQs3EmlyKexXsxztG8N4GJHH6+RkPUA/SqKChoEkXfAtnZUCrcMrktb0yO/y+i3XFCA3wbQh097OlUg==","signatures":[{"sig":"MEUCIF/c3FVwyVYEzyr0D+yVgOAZUlNi1HppdRdYjivkUTP4AiEAt4eKA77ctBRfGHQACHi2zqF2yexuzdJUR7pNmrane3g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/SbjCRA9TVsSAnZWagAAADsP/2FqHyFj1KJZG+8laOui\nO3zxR/JidTBPPbcFS82jUpfG4wjv7bffGHr/fsREa1QtHVrfPazCeuhocDWa\nrv5F92qlhDxFzGLu5NU6p5+Qvx5pcbOOgJVPAKLB8RyQzGgV2iakrVZLKaxf\nvYvvRRZnMhlRx+FFp/Wv46YGwg+uKK+Hdvi1mJGairopy20tpdhs5xZZQMx7\nrElmQY/sMIA8boUGRqNSynAEXipxtN7XsYXY+jBvma6eb/9lKBsZ5Szb4NG+\nLOgdBW/etHJSzs12vQXGeVSPQoTRsQ0+jkHH9M+kZnUqxXQmmbd1S6ww4CBT\nwPGWXmyDW5t0jmmCqqTXfH5Oqne0f0UhZ6KK+lx1qM3t9FWDXmLaTNFAQZ/v\nMEYlU8bzRzJnuWs/4B11L6S5DHRLprrFlC7tCcOyGS8Mo7spnQmdB6ywM40A\nFT3/z/vxZkOSOtqFJn7QL9E2tKQCVvzFzoHcxgJrBrvjhw+3edPnH5kMevk1\n5WezEblFiYRBj2Lxi3a9lXMJ94hVvF2WuR4Cr7068ngNXhIOTvxcLRgD88k2\nKQ0UFK53+YgKH1DpDI5cmabBYCyrhHHWp72racc3hOKEnzBX4QtfsTWl/PWN\nslW3qE3LoN4X1js6YL3qmzlduGSXHbRKN/Hto9z6+5WpElFyze7XgsXC8HoP\ncPCL\r\n=mKtS\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"7e539b1c4411cf69da20c46c13cd2e411d76b672","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.7e539b1c4411cf69da20c46c13cd2e411d76b672.112_1643980515447_0.5971289403728186","host":"s3://npm-registry-packages"}},"0.13.1-beta.c1e33b6c5644c50ff272e8586b934f0e8aa57b3d.115":{"name":"@preply/ds-tokens","version":"0.13.1-beta.c1e33b6c5644c50ff272e8586b934f0e8aa57b3d.115","_id":"@preply/ds-tokens@0.13.1-beta.c1e33b6c5644c50ff272e8586b934f0e8aa57b3d.115","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"de60bb8bf1cb715280b9b145015470ae3e17787c","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.c1e33b6c5644c50ff272e8586b934f0e8aa57b3d.115.tgz","fileCount":3,"integrity":"sha512-NUVZRg9euJAey8nxy9jiwHNE/1qH4KVQulp6cMUJkT7qjmaaZZZVpWOB6U2Mt10XXnkois0/UKfDy0NO0qFbdQ==","signatures":[{"sig":"MEUCIQC7nQYVof5OqI/fewqMzzaXd2cYdx71JBYD8FZNcjAutwIgJjr3OBSZOfxU4VYRq4E3Qfj3vk/PYGtekHwIKWHZ/dA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18877,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/TAWCRA9TVsSAnZWagAAAKgQAKE+Tbf7iGaqjwf3h1ND\nyEeWBoiR+tQPGL9LExGT8kynEvm3VMeCagTjVxp5244CWJ7yMz8QbGTC7FD8\n9auD7jEqAkoIlP3AU9RwMaJO6BZZy/ZlzdcylXkxmKEdtpxnysU5qDGrHQuC\nKIyaF9YG7s5m1uO3ZjsjJeEZEBSbZu4tHGpIPNFR1nVy40JIc31OfEP6pE/e\nHXTypoGw8NPxMWDTFRKSCcwFdNvzOxStMCCaLt9uEVXt2/9J7qBP0HN3p9Gn\nncw8CDwRANNodiXi1QTiFbSfeAE3mCE5OxhHtwoA2SaMsqz8YwqeBJJtUzfs\nd2YK49rb1/ZX5kktu8UasNmwYAao4v1V1SrCbyr5sWNIYrabjRimSDSY7IoC\n8mq0tkXT8FFltZQxTWw7mcNArAb7TlZPck7R+5EVjbMUg8uNsDn+Nx+SXmPE\nLyYVv0ifchgbdfEUpZRdfZiu9XDK8+63GX7xrPj6gj/8Wg0IDv5MMJA5PsmK\nwVqt+j5uFwVMPY7dUI5QVpDdwg2JHBrMx8WV6OY8fuGK7a31Fgj9p55ACLIO\n2+TIFWjkWFUz3ua/ioJ2yaCtx1dZshbqRUxRm+PeuFpc3cWdBUxI2RDAHZLp\nrTYWVP0PQaygqJwJJuX0dfCfhdfenF8hxG7SOOTod/UCqGZgR3YaAKIk4da5\nu1P4\r\n=U3vt\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"c1e33b6c5644c50ff272e8586b934f0e8aa57b3d","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.c1e33b6c5644c50ff272e8586b934f0e8aa57b3d.115_1643982870688_0.7506905238030286","host":"s3://npm-registry-packages"}},"0.13.1-beta.f1e80d8c10fd4f8b5079438d61c2a2c4c89fcab9.110":{"name":"@preply/ds-tokens","version":"0.13.1-beta.f1e80d8c10fd4f8b5079438d61c2a2c4c89fcab9.110","_id":"@preply/ds-tokens@0.13.1-beta.f1e80d8c10fd4f8b5079438d61c2a2c4c89fcab9.110","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"29cc5e036fb693f8fe1bc4821b707751f30f22dd","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.f1e80d8c10fd4f8b5079438d61c2a2c4c89fcab9.110.tgz","fileCount":3,"integrity":"sha512-jzQtovxjLWH/yoW8i0KS5RpsfY3eiJ8iXxQy2G9XH+WXsW3eOA3uDyr1Is5BD61QhPigg5HxGgmZhoxDE75xTQ==","signatures":[{"sig":"MEUCIQD2cmcTycOY6oeE3+76RVTqYwSgAyFaAzEo/rKGobfEuQIgUYEyS/GtKxrEQCDx8peZzQM4hwdgxide7m43hPcxSI0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAOkMCRA9TVsSAnZWagAA0kEP/jHyZnnv7HH4fwRbJIN5\ngTSb7SuYNZpZaWaN5tfxB1GZBY/0FDWfchPRigHYk6MDNkqYTbxvjc6CVkES\nVP/lxKv5p/8/JKmswTwi4RblqTwGXowR/nFjoR/1Mfv72VEfcxHQUJ+YvMfk\njyswJuo7gm6SDPxRgUFrRWpZeciffbmcpXeqrwegaPEBh7qP5VixyeuzyMpL\nlCxG/ZM3VLATJcSU1o2YFRMdkmwud0sdojyPLn+o+hg39yhG51kTima47hGz\nl5MccNfWfEG0xpMkuE+FAPHWPrBBf4rsesUCaa7GbjTa2ZlWLHux93iLtkvh\nBXpktf2MSKw015+aL/wF67ZkTjl6UYVMEllkhiivlZU17FC0Cs+O29+tp2+E\n5PnjtnyeH4tW83bz1gMzCwTCkRmDWcL7YCEwDuGvYYJVonHoTBMKFIqSbL6X\nVUEJYxcm0c2G+3gdDgO3UEgXZ9t/Do+aJ7aQPVMZhgm4B53YGo+rYJwHWpsZ\n9WR8TA7EaW/FKzTQVKedJlhU/B3vUzgnMFDXG5MpxKtJNB+nXTV/upzxhIiS\nSgjhOLEVjQzTgmC7nUuXZrAvEtm/Qt6L2rqZATGEO81NwgtADR6vDAks7LK2\nR5ZAuTpF4s+PCl5cLZ/xBKUU8vzPCVevOFySzfwbWGOdTan/0QK3ExG6GEK0\np6+Q\r\n=q+vR\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"f1e80d8c10fd4f8b5079438d61c2a2c4c89fcab9","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.f1e80d8c10fd4f8b5079438d61c2a2c4c89fcab9.110_1644226828629_0.4621832426541992","host":"s3://npm-registry-packages"}},"0.13.1-beta.f2fbad941230bd1d23d55020fd3c3ca9e7848246.109":{"name":"@preply/ds-tokens","version":"0.13.1-beta.f2fbad941230bd1d23d55020fd3c3ca9e7848246.109","_id":"@preply/ds-tokens@0.13.1-beta.f2fbad941230bd1d23d55020fd3c3ca9e7848246.109","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"4dd81a5b5d3eb3c80f5f695284a614857f3abf19","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.f2fbad941230bd1d23d55020fd3c3ca9e7848246.109.tgz","fileCount":3,"integrity":"sha512-GaNf7PF6JG8GlWu8xpmv1na70wNwdpiD/MT1XBaROe7h6+H5sYw0cokeKt3x04rYvWQ2WbvHKpU0Ty4Ql3It4Q==","signatures":[{"sig":"MEQCIEZTebv+pxaennEAc5sNkapWFYHA7Bt9GDOW12rpYTieAiBPTXTgMqvCbwgV0MHbd9twiELwmUCMcja1H2Y8+LPphw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBQvjCRA9TVsSAnZWagAAEUwP/0GZ91Jh2/2EE6FR4UQ5\nWtLqOZlFAPGHzvSGgcg8DM+HHoom2gDQpyUHr0831rs67DO4jkAYXt54aeLx\nyjMzuExPRgrd1nhZdosWbB4sy3ZQs4rtGf7qAEcRobclalTqF79ZndM7kfxv\nBBw9Pfhh30E2cwSlZEDzcF7llzT0/blOkgp/ZEKF7jB+Y5Gis+L11N+mXq6a\n8+OsDxpZhdnQQlRouTsQ3Uq/oLAZWu60HNyeQ3W4ayuBqnuZn5L2bHCpZ4Ry\n3cF4+GT9JbNHFg925xKUU9u9/DukV2gCXltCcBUYtkFO6cAtKWHtzg73Ox79\n7Tn1ePTjqA2BUoBukTMColj6k8uA8Zdz8o6XE5rwXZz8JPsnU6sJhow4aFXW\nXRtpeceDV61f+N1Jz/+CB7MDIKIDVBE5BUYqpXea53W0DHpabzEGAyhRb95M\nHMnWNyUfz7tqOhYhre7jWfJ5XCUaQE+tjp/FsOmA1hjKxhh/q8SgYe/9oURb\nR4VqeGkIjVGQLM6RV2h91ug1EwPNp3boQuHVttvESowIBgcerpCTn35TK52C\n/2WNlnnqS9eU6vccLob5AkPBZFefhUZLYllaFGCAqFSdrGnbbaD8HepFTYCF\nUMft8CTksL6cVJwvVshbpCZi+rYkWhlX4ASsoZGiljbg2jh5KvzMEdPFF6iD\nXZ+d\r\n=lp4v\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"f2fbad941230bd1d23d55020fd3c3ca9e7848246","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.f2fbad941230bd1d23d55020fd3c3ca9e7848246.109_1644497891515_0.2877404606064433","host":"s3://npm-registry-packages"}},"0.13.1-beta.69b1dd46d2e456f0b85c7a327d92785bdf869817.110":{"name":"@preply/ds-tokens","version":"0.13.1-beta.69b1dd46d2e456f0b85c7a327d92785bdf869817.110","_id":"@preply/ds-tokens@0.13.1-beta.69b1dd46d2e456f0b85c7a327d92785bdf869817.110","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"0afd338ba4f0aeffb3fe08b811b2a4d74abb8098","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.69b1dd46d2e456f0b85c7a327d92785bdf869817.110.tgz","fileCount":3,"integrity":"sha512-wVcV3yjhStT6CHO3vZViIcOa/8lBlaYAWB/+Xs9haOkMbO4cv4L8zMco2FaxT46Ypx4huiEg6zCO6uX4OH/m6Q==","signatures":[{"sig":"MEUCIDmOkjC6HuwZYpuMSccMeBfFI2LVjpVa60n/0fbdU0LZAiEA+UYfV1uoC6c2CGXGt9pw0m7uuRC9AwrrBLUpSNqtCz8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBQyYCRA9TVsSAnZWagAA/+QP/jWOVWq6Gol2EjVJFupA\nfaBOB5scM9fY1/QIGq3xAFi/Rc3xguFPuMXefPk5A40bqadZ90xaTC0Nd7s2\nSBMl/QCv3mg6T0Hc2b1buoQIA8LtFheNhsIrrbOFs9aCOXc5HU8pdGOFHBNs\nMEl3wgrZCkasCr8LHVNtCprKOzFY+YCZtx7b5UdKVxLiNi/fQtV+BK8bCWvI\nUdmd2EI/T/U1VCRrQt73kSNv9blwysYEeIr2Hc5j3v7iZq8WgvZQUn8hTBSU\nhYa+qnzm9HnHuHnIpJkCB3TJiEy993vymYrbDMa9/85VnItSfL9okKHR+JJx\nfor6RWRSSqfjqnDJ9+veC1mdK3Dilfz3mzbz0JmzBHbIo8GPo4TlPvI+dS8s\n/4RiTOfLGzRXv1MNbl0HlGNGv1v9Gw5lf40SaaSFl4KMcxvZeuxkMwAsDBRg\nm8p8Jhp0arHx/xfZGjjTDIYGGIbkfcTWDFjdGt+meZ21BhtPlZDBbMi+WVL8\njMHW4OX/PGK6j/2eRZG5NAlEdwiBkvWu5X+Xkc2le6DKiVkl5hmLPIDTkQiN\nPcoYtjdNfh3V/ynbrq5UOfZ8HUPFA3LC6kE6hQjFIvRfLM1IJrhWu8xI/AOR\nsEsWjnPsXz1s7QnpxQzzxn4OnIcr66LohMf+wh51xAv4bpCd/dvsKQyHj8vN\n7uOB\r\n=AXbs\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"69b1dd46d2e456f0b85c7a327d92785bdf869817","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.69b1dd46d2e456f0b85c7a327d92785bdf869817.110_1644498071694_0.5120457846217077","host":"s3://npm-registry-packages"}},"0.13.1-beta.3c6458154ef2a49f2276267361dff8886c88acf1.109":{"name":"@preply/ds-tokens","version":"0.13.1-beta.3c6458154ef2a49f2276267361dff8886c88acf1.109","_id":"@preply/ds-tokens@0.13.1-beta.3c6458154ef2a49f2276267361dff8886c88acf1.109","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"9da6e9629a2953e5fcdadb8c92a2f5a678da0fbd","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.3c6458154ef2a49f2276267361dff8886c88acf1.109.tgz","fileCount":3,"integrity":"sha512-fw7Q8aU9t3SE05fBqIfb0VHZhmfQh2OZRzk5fdFkL3wmQuTeqHl9FrVDvjEVdlmPkHeXZpOXZQT76jTsCcmQew==","signatures":[{"sig":"MEYCIQDnY7JNt9an6p0ClbJVb4F2pVEO6oX0Tbs9YplzuzN2IgIhAJ2gNUOeV36gxBQi5eBmHKAIdVmVnhSrRW9pUmav6DSf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBRmiCRA9TVsSAnZWagAA18QP/0z5LXZwrQwgFYL11fki\nR8cORXIivaqeWPBiOZ1Z1UQFXdibUOxE7hqytQRotbnDc+8u0Pvj9iwWlowr\nhNN8l16yK3H5YRKeJI//TMaVTPx7HLnFaGdH9XCwBu0Uq6JKJSxCCmPplwWB\nhjymwPzO6FUtMEpVz9cQok5QDz3KUdHSAaKItKZxZBqnv/Svu3wCS9/ZVhZz\n2SBS1bSbMRiBSQyA+sZahXJdfYg21Ct0DU4JWsLfxQcPfB2WxHVl7osERbOQ\nPoGDC23QUacFDb3R+iyz5iPGSQpd8n8GFb09b5FchBYuRinT40u1cH2ZA+Of\nT+Up3AUiAkzcyLCVQnL7/tLn0+FDzSHyQ0IVTZ5m8vqbRJh6Nb+atU/4UxME\nwBzsUTIbz9LOlas9M4qcyWJImBZxg12A3b8jLIh0EjcNLhEwt41S1k9K0yvh\nk0UzXDeplnpI6mGaohnlf9705Y3FZk6jD8ya8mdFRrYjsDbeZXfNjYlAhKP6\nuaxxKRJomrMKQG0sxOp3ORZyRU7VEMrxv3XBhnglS6bhIRNJG1cRH6zpPA5z\nfbX96VkXzB+IRiK6BJN8Lvl3CnozING7SXrXRMdZ1j4jU7Vq1SH7sZjqJsMe\nvPODtTnNKSfjkTSnUfvnqtCmAt5hxsuqpmDce0lz2ygKa4TAzIp6qhVzAyhB\n/hUe\r\n=/QCM\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"3c6458154ef2a49f2276267361dff8886c88acf1","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.3c6458154ef2a49f2276267361dff8886c88acf1.109_1644501410472_0.7079133534857045","host":"s3://npm-registry-packages"}},"0.13.1-beta.69379b4492061e205e609c3fdfb027259d77b15e.110":{"name":"@preply/ds-tokens","version":"0.13.1-beta.69379b4492061e205e609c3fdfb027259d77b15e.110","_id":"@preply/ds-tokens@0.13.1-beta.69379b4492061e205e609c3fdfb027259d77b15e.110","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ad1f7f3a4ac5c0347a2d1446ab95d5dfad034432","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.69379b4492061e205e609c3fdfb027259d77b15e.110.tgz","fileCount":3,"integrity":"sha512-yEQeUxPVnqqMIpCSxAAYOcXMt2Ucbgcju66sR5mIpppG7/psiDf8yNofBUuf49gul+f0cg0kA8nqa6n4iIHDfg==","signatures":[{"sig":"MEYCIQCZcNw4oZXP2nbhehJRQQ6Ck15YsUo+zqvHvQsCzXUXbAIhANjEywtYZplP6L7URsV+FjbOo+ctg9cahGvgE0+5Gmux","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBR8ECRA9TVsSAnZWagAA+U8P/RikPDiYu0ZqD0/VTPwb\n/njANrmtNVHpI3jM6MRPWhiNrI2BC7GKQuRMnf2UiSvTR+6NzQb/fFLsKp+N\nO52HLWvA4el4etpcOOSnaVw4x+7EHwQK/a6nWrM2EqcyHVumtITgGjmRZ12V\nwNYIQpQUsZByDgjDFOXr7YuojJWJKMgicYFr0Wbmj7vHGV1geVevMic3K0fM\nie6LdonlH0E/CvgDv6hgJPSgosNINN6nx9J0IMjYrqpUInn6ZEA2veP1OS/p\nBT+Leypdt8VIriLhhZAEPA697v26NTyJzKRjnyTC3PUYBIzHEYo9UJCX5q+2\n7s0wREDyyHAhFkKLgWzV//KwlqA4V+h9Mr0Ba3sp5WHi+FrMGFdyawJzqMQi\nI/0KGdb9YPkH12Xx/Cuh2Lyoxw3dgNKr28T+JhLix1HKRFZwoP55Fsj2kr1j\nPDiQ3rirXZ02Lq90iDZwiZnUfXjGeEsSVIUzV0Ola2EZMGd/hrhnB/lDQagj\n3WztwXgUMnriNnWIk64BvYwJXLnh3ZlF0NqTaG9W2NQqFyHC8JerzUZpCX+i\n46ZC2qn0MRppjFeYHjOZn/fFmj7GAbJraLOP41Rs2QGzwIuBLdt8Ac1RfpT7\nY3Dp9iIx6uaoOIVKv3FLBy9lcTkzK449C2cz84yh9z8BKIXo7l+a0+cPFwMH\nipqz\r\n=q6y/\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"69379b4492061e205e609c3fdfb027259d77b15e","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.69379b4492061e205e609c3fdfb027259d77b15e.110_1644502787964_0.731166831290945","host":"s3://npm-registry-packages"}},"0.13.1-beta.381144679c6c22d2be0c0123dd4b64ca7b79ce7c.110":{"name":"@preply/ds-tokens","version":"0.13.1-beta.381144679c6c22d2be0c0123dd4b64ca7b79ce7c.110","_id":"@preply/ds-tokens@0.13.1-beta.381144679c6c22d2be0c0123dd4b64ca7b79ce7c.110","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"836604c8ed691e2a2a47e987450f19144cc40ca3","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.381144679c6c22d2be0c0123dd4b64ca7b79ce7c.110.tgz","fileCount":3,"integrity":"sha512-1qfABSxwtEsiq5QGR2uLpC/N2H970M/bdZoC8li2nDJwUPw/vRYq5pfP2PLKdqWyNKfHO0WlCrql/94fV7r/Ew==","signatures":[{"sig":"MEQCIDcGr0p9ZHhCi5ojYhkrN4c+UyTe/cmO4+dP9MBZ6QF1AiACtnUeMwNLeQKL78iEbbV6+HMsiNhO970n4dxqjSKh3Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBTm9CRA9TVsSAnZWagAAWWwQAKEqKv92cRfluvVVxqxA\nM8d7Srr4pzl5agZoNU8BBaZCt7gWDYR1rJpd/tvTLdB27gLGuizIuor6RVOP\nq/lgEKZhGqNn4ES8R2sQAO29QTXJx18K3fjOG7651/oC5aldA1o6hqkyoByx\nCey59Wf9yQhr6vUZGT/p7esDhwfwqqP8FJXM9anvyQAPLwnCm2s1RRlMS2FD\n6kH+MxuqxquMsTZ67IA70M/eSDqhgPCdzX1JzpycYNYXQ4D5DMLS+srehkWw\na4Jwa56njFu8cKldOOttvOoj9X3ETz2l27z+SWe6DTgW82ZiofVd93Zc6y/i\nCjfkaHx5knzZz5GdLhaC9N95COnGg5r0QvlvMi37wqIHRgYpsAWyhMAfFWER\n2rY2N+YpAsHpikAVXuCXz92C9Dedh/FOZ5JDJ1uh/7VjJh5qJXKluRYeeDnP\no+uCrKCUu0QmaCePqWw/8iG91hi45hngwnIQxFoDS18qtfV3J3MICdtl+nKX\nH3FN7t9bgihAPma6yeiENxxHvPsqnl5DYOWPTYO8nid1E0NPAbJVY6/Ay7z2\ng+wGba6NDAtPPDkDHArGtpVzinvcx6vx95bAmGafJ5SH7HDZ3VG1qnXhAM8t\nzjCeYTopU4GwlYP6YTL72aDkH4Wj0h/HMlPYD/HTdqlxxcjf1EiFFG1FjY4U\nGwHX\r\n=eigd\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"381144679c6c22d2be0c0123dd4b64ca7b79ce7c","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.381144679c6c22d2be0c0123dd4b64ca7b79ce7c.110_1644509629160_0.021822349420118847","host":"s3://npm-registry-packages"}},"0.13.1-beta.82209c8329d085e1ae76bf554bb98645bce354f1.113":{"name":"@preply/ds-tokens","version":"0.13.1-beta.82209c8329d085e1ae76bf554bb98645bce354f1.113","_id":"@preply/ds-tokens@0.13.1-beta.82209c8329d085e1ae76bf554bb98645bce354f1.113","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"c7d9085b86ab9a3317604d9f87e135668f49cf7e","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.13.1-beta.82209c8329d085e1ae76bf554bb98645bce354f1.113.tgz","fileCount":3,"integrity":"sha512-0/3+2Gn+1spz/FujWYPpIDyOOkEFpt7C6yUsF1jNtMNL3CPr4UA7z9+IJVIWR5znh8tuGmYQ2eJJ43v6xJfARA==","signatures":[{"sig":"MEYCIQD4bVIo6MM7V9VWZ0J9PdAPHpA2fmSuJ7qkBv5gUBv9oAIhAIAVMua6iqgAr4bnVrSma5B19zuqx2ZO/LQKpsCSSZpf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBTs5CRA9TVsSAnZWagAAuIoP/1ZW/PR7AjDw1HBXd8ue\nKYFaMCDkZTA92AuMs9O28hh+qG6JTbwdujAgl9/QnDRaMustEsKMsp3tUV58\n39A6j2A8u99PYS+pTMxSesykmtHC1GQ5sxPdzTQRN2Krvv/M6Z6YAyEMIA7u\nuoKEQ02R3YYtngz68JnaMqfXlvxtsG0i1xN8HnpLY6+txM4FCj53SMFlVOl8\nzopI8S3bHjQPoCDFmMo0Xd/tHNLVlRzR2f94H5BfY4z/voY5kF3fgy+XOj2W\nC4zk7k7q8iDFFO741MNMN14azQojxJhIQ4kgA9TmBEvEv7C9fQ+IG4zYedFO\ns4XQ0B+/IlYJcyjOkt7bqxZgnbMvNHNk7QngFLAR7mNaiO2armBR6lUZMlon\n8D0ZjVgR2MzNcmRcRDDwAyrpwDnT8VHPvE2mKU+I4jC9BquTD+jJfVetiZHp\nOdPQZ6WT/zE55BrvqmyXYdmJNk/gj1v1F5o58wE1rUtQ+34Ydy+m7CsCi/AK\nOHTLqpByJ5CwCutEgoLatf7rvsJL0o/WHtqe4dtcPhlUttV2PK/hy+4rPraD\n3q4Sg1to988ZjFCAsYF5e/r+LZFvcVbbP5q0+h1CBdvZ+dyyJ0L7eB7A4dKL\ni6+xx0wk4RzLS7hd3BnvGkULpietUIlZV2Kb7tC5MdwwVWDAUL8VgaQjcOuV\nafiV\r\n=rjqO\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"82209c8329d085e1ae76bf554bb98645bce354f1","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.13.1-beta.82209c8329d085e1ae76bf554bb98645bce354f1.113_1644510009379_0.11230714085025939","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@preply/ds-tokens","version":"0.14.0","_id":"@preply/ds-tokens@0.14.0","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"0403aa63433d35af833a80c925810c0f79b4913f","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.0.tgz","fileCount":3,"integrity":"sha512-gdWqoUKylDAUCKh3AySpm0Joqkxeoob4wcmdUmYMD293yx3secHJKZBv5IU06xKiAjy9pkvMotBhhN63+mZrYQ==","signatures":[{"sig":"MEUCIDEJIry+jBRCP/WQLcPjdw/tgcpzF/oP2KxHpVDB53PjAiEA/N2TX8KVsCI39raXb6hWC6ailPlpTjuQZ6hU9A/dAH0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBUFdCRA9TVsSAnZWagAAPuEP/Azp3iadnQGYUjHbCnBg\n8akBr5L15Ko2Tn+jTWiL5Gwm2elmur9UIiFssbBZRju1fCdZa0G99xwJgAiP\nCS9WVRxhH0YO4hCSHLGWpdJ75iDYhTXCPrntFkmabamVa1vEat9jbOqylKH/\njO+m8eJ7/wx+XhVOms2sVnZyMuAS8anHLXyb2dz3Y59ujcNBzV/s3GSuCRp1\nDxE9Qh0h4cwUQObclKG+yoblw+AdqNYy1q+K+O7fR5gymx0rb281YaIMZ8lW\nnmytUHxW1YNZ8BHfsPnWi2spnEoQsWCSqr22d/cKPzZ4323JSiTK/fcnthsV\n2ybYvVsoT/5/93sCiggRF6OAMpkDywCtF6ypcxdw5/fW03sMtMJp1REQv6DY\nhGPTClfEZGIINI3a/vtEt8brfIU1hyr5pzfTqE+NO4LIFSOCQM1tyPggO5PD\njO7i9+RpGTH+cECrj8LdX5cPC6+4NjEGfjwHtgchpDcmJuNqk2oGruBFVwPR\nEIvUzBXaJ/OGO9kpctKoEjB+9boW4q8v5gsAGBkECZef6i8dOZZlwn0CiOQR\nNwnZ95TKbaGx1soCYxk/ezFSJB9dwjK2XWQha6R6/03AQQSICAv3eTpGI2vk\nnYo6o/BQZ8V7fu3e5tIR52PkHzl9Juv1yj4L320R2ylajMt+x8+OxZTwqY+g\n8LMp\r\n=EAp3\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"5238a660b25ac08471bf69b32be22e819880841f","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.0_1644511580955_0.027486701332903873","host":"s3://npm-registry-packages"}},"0.14.1-beta.d4f4ecb20d89ff2a6804447a4c33f72da312c646.113":{"name":"@preply/ds-tokens","version":"0.14.1-beta.d4f4ecb20d89ff2a6804447a4c33f72da312c646.113","_id":"@preply/ds-tokens@0.14.1-beta.d4f4ecb20d89ff2a6804447a4c33f72da312c646.113","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"3cbaa933b6254f0b0196054a0f709fda314620ce","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.d4f4ecb20d89ff2a6804447a4c33f72da312c646.113.tgz","fileCount":3,"integrity":"sha512-CmcwhKiLbHUPUH2A0GCWoFI+xozqosMxBBnqdLE3BJbdhJW7NCSbNUzNsv0okYKbArHin43p9mWTJuK/3G2aeg==","signatures":[{"sig":"MEQCIFJvY9TNZeodS8Oj5Lf8d+73iS5zbmHlEPZ+eD8Kx19FAiBfTu41Xe3grCmEqAXHtplSs0GY16U9yqaOz44mzurgrg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18497,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCiwECRA9TVsSAnZWagAAauIP+gM7KlScRFCC0YMWQ8HL\nhREReb6uAo95SGHP358QSrMRb4EZJxAdDyc6EDcjwTAjCAOrIOkjNNgljuqV\nrdH07W8bfCPAdljGHkJ43+k25b6Os3dJwqQxrdxm8dfYKB4Pve8H20X//o/w\nlqZivuQ74tpfH5Gk57fZpqwumtV6vVEcZbFKZND8GgdZJZngKRKQZXqztzrp\nJNRFNaSpVqdcfMckC0aNqJdKdRv+dHLYa7CHT8VcyN7mhNco2tT3W/M7zErc\nXbX3W66ob3N1YHH1SiyyWh+KCReuZyBxwSrBevdXcDtTyL7bOmt31lC52YAy\nypmnjsX6AMqkkOn/HKLOnPEebTuDXwNY44Zb0TNUC7ztW3MF/QMBOrI+4401\n9NVmoKf/l9OLFCs/tWNlHyP6uoHMT70lnGs4/lDPj3enmUTINzQ3/kxBCR2u\nQ/DN6MJwwIPyLCzxYDCk8UKZWpu+SfZZNqPWpqcWy+Q6DYYVXjaFI6Dspyvl\nr3UoiqtipPDbFU3uKHRRijrluwkyQT6G7ILKeEKwMUhG1mI2CP6RXHEYfDM4\n/s5J03zy60UWD588ou5lxaGv4/d7wOZrzsiYhNOoMkOAVxa26oz3BM8hgOeZ\nDvrFkqoZus9yumI64fxoWLO1Vc+UMco8JopuVYzfmgvRucMl32OGL2N0sZLY\nF+5T\r\n=Fob1\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"d4f4ecb20d89ff2a6804447a4c33f72da312c646","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.d4f4ecb20d89ff2a6804447a4c33f72da312c646.113_1644833796368_0.5269929809399745","host":"s3://npm-registry-packages"}},"0.14.1-beta.ff79efae2edf5863acd53195d92fe5c830f46cdd.115":{"name":"@preply/ds-tokens","version":"0.14.1-beta.ff79efae2edf5863acd53195d92fe5c830f46cdd.115","_id":"@preply/ds-tokens@0.14.1-beta.ff79efae2edf5863acd53195d92fe5c830f46cdd.115","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ae10d0cf195f4b17fb118f461a9f21807acbe20c","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.ff79efae2edf5863acd53195d92fe5c830f46cdd.115.tgz","fileCount":3,"integrity":"sha512-y3b/zPMb9q62roJgSqYMubjTcT9xi2YKF/KNnyDaEciJD3RseXdaNYAd/vylWSb1qSqqPGUYjM7IoZm4mq4JIw==","signatures":[{"sig":"MEQCICfUN3dk15az1bE/948tyY9Rv0l6lVaBa+y9t78lUbz8AiAbQFrKJOzPBdNrLRyIixvKlLOBjVhVaZs2Rk10bPNHzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCi++CRA9TVsSAnZWagAA3NkQAKLagSCIgAhMlGqGRZKt\n063qV55i7ayKFTQuciKqO2pwXSvSgOS1in5EmOqzEzZJH0P7SVGhtdyPmrML\nMbiz3pn6GkTyoz+y00WRHhtNNcvEuJmjzDR6bRZDLscQnLCzRgCBebqg1P0o\nnoKggu8pT738rI2ZRcD+YAEn3lE3AI8q6y4c0jx9W8CCML/hz99RA8J8Q9JZ\n0yQ1Oi8+rmbzSup92U89AbTv5RXJNHElrH27Jg9cGX3OACif0x779EYRRErl\nB2JKIwRMUf4B/QhNppiNoeHsinvuNUx4O6oMmJHqHrvzJRcHlWyCEvCGTYKR\na69Of5NfXyZRmt4/ztTLTW9sXwecN6u3PJcr74CTJtCyMfqOz6EvoZCaSbXn\nFv8fuynsJI2Izn0gBfyqbfr7vsmBC+2OeCUh4lkkCvO11ScIaGqqYyiuvWiA\n1APZKY1nOvaONishphFlgxaqUukfjB0iy6MhIAHsb1n/+7sRqKpDmaVfVt56\ne/B2ELFnPPKHe84yx2ntiQzUX9mkZd44/Dn2Tj1eidJ+05+uTu58ShnQrqk+\nZKpSddjNCDPA8Zr3kDOybf/x//tLyj3aFW8Ag8HtIZ0KXaD2lsIwTUaeL6K7\n13TktxmrBqOEqcd1LifTuC1GpWvBcc3KGQDAysF53vaPw0OqHckMgzKAavty\n9PLm\r\n=nawj\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"ff79efae2edf5863acd53195d92fe5c830f46cdd","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.ff79efae2edf5863acd53195d92fe5c830f46cdd.115_1644834750491_0.5450977004437259","host":"s3://npm-registry-packages"}},"0.14.1-beta.959c9682d434dfb737ca8ad0a369ca0a8f2d4023.116":{"name":"@preply/ds-tokens","version":"0.14.1-beta.959c9682d434dfb737ca8ad0a369ca0a8f2d4023.116","_id":"@preply/ds-tokens@0.14.1-beta.959c9682d434dfb737ca8ad0a369ca0a8f2d4023.116","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"54966faeb9561f868c43b36acf839e8f67db2bf5","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.959c9682d434dfb737ca8ad0a369ca0a8f2d4023.116.tgz","fileCount":3,"integrity":"sha512-OES8fxW8pO2KOS8NA6anWmpt6N8Yi+HKEFz5oPUDWFbaIyV9x24QGVIqjQk+MOj1AP1TbECnTcIqmTT41jvBMg==","signatures":[{"sig":"MEUCIQD3rEAlmfYkkJY3MCc6IuVrvo79D9Y+AHOpCP1E8j3LrQIgGt83j+MGCrrmd/FOG7BlRmqnT2Rnxd/YzZ3A3eZ6CkU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCjC0CRA9TVsSAnZWagAADw8P/ipMVmRm75iYL+NuILks\nZGxH3JIEEc3ArykkBSdTfp/nWwFWuOo3hD/PtFG78YSU+G9xtzcP1zWBpuRe\nkBzRaiahTOlypxxwMk/WKLIVByYohKKD83P+V9k1JmvBtrJA9ojZcC7XRG+A\nA1MSkJt0VuGVRPhTBNKTDfZ8HVd0nk4GgajSgJv/40NSZmLROwsY7EJuqToA\nN4JdOC1MB6r1cwzb3I6za2qBCzOBRT5GwML8J+On/TS1+5knGBZHH1z6sOOj\n2egHdjbVJmy36cZ0EDM0BDB/m8FfrvB223b8EFR/NojjnRgb8304H/rtVnaI\nlBCOdEF9UIBJFrYXjzVDH5CyS4Z8IVx6kbPQVCs1/M6aOc2KVQpokVcIZ8z5\nWrLx1+Xzr174phdVpwZMu59QUqXSwXavIUE6E04Ov/mEtWOAiT+fbdLWsR6K\nznYb+VUvSt9fR2a6FYh54BjrKx8fISBvbsG+MPHmF3AQPCsGu5gYXHHXabnH\nAxknnNAy0gUXmO8dg9QOfUzUEIQvQznNJQOUug+TODBZOljvoKd0fldh9ebV\n6clUCwpq4oKGnT/JKNg/BjQjPwuLLgK5nCbf6btu6/mDWIynZGi4mIbhebxg\nt7Q4rKhWqXvE9SoiYmk4Ol56fvatdZ+EtxIkgzjWggUPuBSCRLW21pmKmTbX\n53HF\r\n=Tc4i\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"959c9682d434dfb737ca8ad0a369ca0a8f2d4023","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.959c9682d434dfb737ca8ad0a369ca0a8f2d4023.116_1644834995927_0.6654616780091767","host":"s3://npm-registry-packages"}},"0.14.1-beta.6df6732ec1e20b9a955e7d790f12d1c4190ff99d.117":{"name":"@preply/ds-tokens","version":"0.14.1-beta.6df6732ec1e20b9a955e7d790f12d1c4190ff99d.117","_id":"@preply/ds-tokens@0.14.1-beta.6df6732ec1e20b9a955e7d790f12d1c4190ff99d.117","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"4892a9298c396a6a010431e93811b0dc9e6e46a8","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.6df6732ec1e20b9a955e7d790f12d1c4190ff99d.117.tgz","fileCount":3,"integrity":"sha512-W9jeENv8Hm5F572KiUfpAJKly6SY0RbudX8KlAUmW/NJdtzHduna8SSDKWiLxY1pFmG7G1Poi8jJiT8QFIR4EQ==","signatures":[{"sig":"MEYCIQDPcTRZgMVbVVIxkrCaxZXd8s57Yr3o9TMabM+L282LmwIhANarWLt9URaMvnPbv4O4/KT0msAEG1l3qpHoppDeKdso","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCjIYCRA9TVsSAnZWagAAd6MP/2rgkuETqslPCzss09yv\ne7oGspW/2ymsJTEdwZhuT5RauWEi6DKV+9LOSHXeULelFJ7sZQeiKDepcXRP\nZ7OI0Iti7wYf4znZbTON7cxRxS0QH++yjo7VW61GCt2Bm6/Q/Te65OH0SuYB\n5/BWgKTcigwQaqpfiUQ83kC6zHXXkBCrFZRAqTXFLlJGBCp4BWgN3eYqHUGA\ngQpUCO0W7Lg6977Ojk7Cfuz71IiXIQHOHwK49QIUD1NrIVRTwqJ8v5nnU/xQ\nR/rTj/sNMUa+qMA0vCaAk6/Wf1fmoyx/rVoGQwUkw2whBMTRUxCOZB9PmzG7\nB+1vAXvSt7yz8prNHAnDud6vq16cRoF9CHLxppw5ikBqiudODW8Z3/wxi+Cv\nRUIrSoZkifvO8rLW8lh1z/DfxPJNgUx1DODVln8qcQE64+0Dj5bF/OunWoOU\ncMOoFQUS/xOqDIoiu2phRN5ZT/ViCWjGKOgKMEBaVYdEF//b/FDZXER6NSdH\nFgo3Bqx/kETuS1mUPPDQjvDCSry2BTbUbZ5XRB1hLCve3TX7f/x4wdro54+2\nfIc43zKcNZizLtOON5w9zMCyEXXobGz/XHeDg1c8tfwDjHLGTc0bYWzL+sBM\nGEIS7Px4CdiEjBh/0dY/Gwn2son/9JTJho1HX49TlMyEo5Vzz4MiLfDcukeY\nb+u9\r\n=hhRQ\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"6df6732ec1e20b9a955e7d790f12d1c4190ff99d","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.6df6732ec1e20b9a955e7d790f12d1c4190ff99d.117_1644835352462_0.5688461438731645","host":"s3://npm-registry-packages"}},"0.14.1-beta.318cdfbe2688debdc5c00b8e6dd4cd0eccdafa87.113":{"name":"@preply/ds-tokens","version":"0.14.1-beta.318cdfbe2688debdc5c00b8e6dd4cd0eccdafa87.113","_id":"@preply/ds-tokens@0.14.1-beta.318cdfbe2688debdc5c00b8e6dd4cd0eccdafa87.113","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"5d8f89f7c81a8d32388b29e3c3ed34f6a245ecdc","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.318cdfbe2688debdc5c00b8e6dd4cd0eccdafa87.113.tgz","fileCount":3,"integrity":"sha512-N7j33Bsy+rG0XawGINsPhRl+D9Cag33/9QN+HhZDoXsteoAfNtVRJLVCwx+oczVClzbTyWeIoK2CpOPv0vl+dQ==","signatures":[{"sig":"MEYCIQDcYMH5lS5sRrrlme3cxn8fTdhk1pWA6D0TseH/JN3FugIhAJ3T9UJaDV6JbGfuNhUCVWnNSbHHEJ9wD5nfunL0icnZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCnqJCRA9TVsSAnZWagAACpEP/3MziI2lmbWbjEbBpEFc\nOEVUaEHLljZTM+5boDP8wFmQzAmqZ3E2/MxdjBsLmlNju1i6pKEe3XXxVw5l\ndUXKZCpqdGUyj6RoIlONx4IQGzfTfker5ET4EXKPH6UwoMmVHY7pFCU9LJCn\nwyq9+FDBiW4Fpm/nvlmKh42cLet9QRX7styHVC0tP5ev6n0lnbCdE94U+61U\nNywdgXaaWPAmNy035gQjpBUNjdbFMDWH5DFrTTRF9BmX0PeZwb+5IjbqdD+K\nPJe2lok2z0/FKBFe0h7T1eYoHwYQ3dPvHKOqlQFHaN++hrB8kmq9ltDEDW9x\nDYoRVZsESEy9EXqUmzSITnfh+v3rGLVdToa3uITMlCLylXAFTaln88rgAhF8\nck2Zcfru3ZZotslHOsKDnuVNSIU/2QAim1eXnyOduTJuWD4gqGLTxP0UoJVX\ntaVK8y5paGxqdebFEVCe3yOGyXTyCyOsBpAfjkAtVsYElVWHpO3QMlau+mFC\n9cdYJnez3jLIT1RXbcFU66I37OpFKwgijKhkzknEyVP5vODy5pYgLiUVu3r1\nDaXgIV/DPEfh4lckR8ql5Al6jUYhjtXK/7CjV3AhismVuFdh5MNmmakQmG1F\nC0pavVl2kLqJd/mhv9J5q2oL/648EkFvighfEkw+HNqIpflzOk9dBT7brVC7\nt4ia\r\n=v7pk\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"318cdfbe2688debdc5c00b8e6dd4cd0eccdafa87","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.318cdfbe2688debdc5c00b8e6dd4cd0eccdafa87.113_1644853897633_0.14349245583190107","host":"s3://npm-registry-packages"}},"0.14.1-beta.3f8548a41a29006acf0620fa9703f915918da8c0.115":{"name":"@preply/ds-tokens","version":"0.14.1-beta.3f8548a41a29006acf0620fa9703f915918da8c0.115","_id":"@preply/ds-tokens@0.14.1-beta.3f8548a41a29006acf0620fa9703f915918da8c0.115","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"edb10535e01794acfcdaff7e5af6d483e17662d8","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.3f8548a41a29006acf0620fa9703f915918da8c0.115.tgz","fileCount":3,"integrity":"sha512-UUKo2gRLvFc8Gb/ZlaT6o/eJYXZTQ+9hdW2tQEDX+FYmYVjR5vUvwyKjXcWHSqwAqKRBZiFA+YfeUMgCBUTdtg==","signatures":[{"sig":"MEUCIDaCxqjBZ3AGS4jsQ86OxpN4YXSJ52/dmLh2Ro17K/yWAiEA3O9Xe+1bo0Kry8JxLH/xQVig5jMej3VBZE5vKBaefkM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCoFkCRA9TVsSAnZWagAABGAQAKRhKPM14oh1J74aieS8\nj3ebarf6KBeishVepxmRrJmPyNAzwEt0GTNiOxSUPqMO/kbpcPozTEXFAVUM\nOQxfP7DwBUEUsLyq/mvLt/9CUd48kwN8EE1MK0pbeC48GukEqEn0u3lBqxi9\nKKlL/a2sQjrK/m24XKt88k7tYMEkNlVRr299Q0MXhYX8lHJIUXpFiDh3ahGM\nJhHTefA7x7DdVNQ6mgOVSaJXfDJ9dFPJfGiHaMlfV3EimqA27NeXRVWmTgtH\nRkE/SMLTuqsdRU6D0vYRcENdx1McR2tbPHr6Zq8SQEd8imztB02QGSe5v47G\nW7j3Zx58Q6/wFMbNA5GvYbLXYzFV95tpOjfNBvtx/eeKX3lnZwKJWuwHwH2m\ncNARENGwdtgQhKL5RoleV6dG4jMFnbATeAKvaZde3H67ainwDyprQXAObqA3\nXquTv6GoDkY8O5kGfDfvxyRqRIxSh416LltgMJuEPgYWQsTcapD7ry849n5V\nzpMF65KWWWuarIsUNtCCwfxu8bv1EEuIyCLKaTTV0rp5nHvR+JllqkLSa2Dy\nG3Q+4sUc1ADCLG086CQDkp+NcfyaxCl5hlWNj9JPyG5LF3MM2aHqGZyrQpTR\n7qaMmYUUc6HLk3UDi6zxFl3e4RbVg6kJM3AcRRi0cMoXeEyD1xDwmARBTDsf\nabJq\r\n=Z6AF\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"3f8548a41a29006acf0620fa9703f915918da8c0","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.3f8548a41a29006acf0620fa9703f915918da8c0.115_1644855652739_0.5415054124821819","host":"s3://npm-registry-packages"}},"0.14.1-beta.6bdb5d98813c13559b02b213e646878090c664df.114":{"name":"@preply/ds-tokens","version":"0.14.1-beta.6bdb5d98813c13559b02b213e646878090c664df.114","_id":"@preply/ds-tokens@0.14.1-beta.6bdb5d98813c13559b02b213e646878090c664df.114","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"f47fb5f97075a2c7deaaa6fa3e95e471ac1d53e4","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.6bdb5d98813c13559b02b213e646878090c664df.114.tgz","fileCount":3,"integrity":"sha512-LtWEAHIMt0vM02dvN3C95gxg/u6oA1aGFfQgjEnzprAUgXjnCqYBGhWa9b58Rmx9mFMpYiF+eNXbLoqV2ciCtQ==","signatures":[{"sig":"MEUCIQCahq3Z9NccNzdwlaOXCLGaV/pSrW8+r3lZdQepXyV48QIgLYROGnytPXTK8gEjJZMMmbzYwHkOnM7EhIIah4yZDm0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCphZCRA9TVsSAnZWagAAXhoP/j+gyJqxmqOunNme8I4U\nl5PtLFaIVKH2+HBJdS8GsL+mZfWVX1VVtH0rHDMjEPxZ67NfnImMBFs3Ci8i\nn1DEEtnldhrK2MhLXvJf/mlzpTKsXyNsyXXkN+RvHD8emypo6D2Gz1XzaHAl\ns8uCv4C9rJuSVURB9QCYIzd4DYrH9G6+VkybYhS4O5GjBXA7RVEInvQo8MvU\nzRe09HdizebbDFSgqdqB952IJUxWrmRs16lN49BpnHzVRMK5GghPqDbWqr03\nZFs+q6OY6hKyggMrHFbDaRbUEWUNaoV5YqFUwDK0ai/vlyJnnkrKcVWUl7pL\n8p9calN/OfyvcVAkk7R7qs3U454IRoeuoX7Rtq8TMRLWeaEZnivSb3ube8lV\nnS/6wtylE2a9C1AgWlGka2gaArbtYwfBPFc6zIyGn613IfAkIe//2jgYJyqI\nIxrs06fVFFozvxkD+z+DgRnnLA1hSRhIrKf55onThmJwXl7XJW8KU8eQplw3\nv4pzfHYGUwrTANsdd5ODjMhzPB4WgJ+xqDUhrVHYJdKyR0amNp0BtGhaqrkV\n3r9hCCn2Jtw6M6bEfCbDzBLBqYfOPYnvfTBJ4GkzcterFfszyVZFnr2j4UAL\nIuPWytsLsuHWdzjVJYGn6G8wx4lRGYxeoQ1X80fx8EuzPv4AqXb7LXDNins2\nKST5\r\n=cJfQ\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"6bdb5d98813c13559b02b213e646878090c664df","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.6bdb5d98813c13559b02b213e646878090c664df.114_1644861529472_0.10155574905943121","host":"s3://npm-registry-packages"}},"0.14.1-beta.0fef52c1472dbe57c4e68d7ff4a549f636af84c1.114":{"name":"@preply/ds-tokens","version":"0.14.1-beta.0fef52c1472dbe57c4e68d7ff4a549f636af84c1.114","_id":"@preply/ds-tokens@0.14.1-beta.0fef52c1472dbe57c4e68d7ff4a549f636af84c1.114","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"a9215b3febf494664e069c0b5412aecfac117a32","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.0fef52c1472dbe57c4e68d7ff4a549f636af84c1.114.tgz","fileCount":3,"integrity":"sha512-+4C566jWoIJnkOLGRK407jYj8/NbAfU6/S6Z52A+zjwGSyppV6wlCAg+xX2T/YThDDf+pnkHWzfJNjBXNrLIjA==","signatures":[{"sig":"MEYCIQClgqBFAp4jP2RbcpfqVlNnjwpgVIZ4BLlIOl81Em517QIhAJjItGnnJXDStoZ7v7KzVmjmJBqfgySlzlLELdd3cY1a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCpt2CRA9TVsSAnZWagAA8E4QAJB8t8IUgkJUtQyK9jEb\nkl4Oo432kycXBCUjwnhwAoq8JrAG+kVErsmaYbJJedn0vF5y8eFgQ9J1X0PS\nSD74IENsN3AbkhUBSgeREDAQcOhkHZI5ENoy8z+Jw3sTs0EKlODypM2LYY1/\nYe9riUxhsRZBTpqaca5dwzIxQ+vUgaY7qBLHHtgziPEYjNOsmRK/E6AbgEfZ\nIOQf6iPLYSp9KW1dyqd6oPhuJakdpTAYBUyAzQ0iteH+8G5mhywsiT1yeqtE\nDFh07gpHHYEY9kgBpMuWwiEKt2h+MSVPMTVR07pKQcm03h8YPJlKivVEOJD1\n+p7eihggq6UZSbPT90Lo5i4HjdktiQ+8gBC+03jDzViuc+30mnrNIlHEwzS6\nslK+zfGNyS6qB2jfI0Lt740jFc7Qc6ysx1w2pxvAZyvMdfnC7Yl59E5nSdgi\nxwCK0FFKoHmMdWDvdwALK5iuNuVCFQqML3tvz8/boOBKyf15KBsNvJ5oIhZy\n1bpSSbmk3VZ8yIczHPVRD/TrehJxZwXct1HL2qJoCj4g35glw3oPSDUYimC0\n9WPH0e/GpqgKxTnBTfr8B7+OPrJqfkszpD6jQ9sdFltc2pflzlZh/wP9T7We\n03vtr6GtjaqmLHA7iymXpRnAXgWk4E7RPG4mPtFQb83sEaIHXcDZPBYPTMew\nKw/e\r\n=lPAd\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"0fef52c1472dbe57c4e68d7ff4a549f636af84c1","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.0fef52c1472dbe57c4e68d7ff4a549f636af84c1.114_1644862326275_0.014415143761701055","host":"s3://npm-registry-packages"}},"0.14.1-beta.c907faa83096143e909e56a60464e3ba2132d737.115":{"name":"@preply/ds-tokens","version":"0.14.1-beta.c907faa83096143e909e56a60464e3ba2132d737.115","_id":"@preply/ds-tokens@0.14.1-beta.c907faa83096143e909e56a60464e3ba2132d737.115","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ee14c23d05150d793494c91d2b3bee5523f928f6","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.c907faa83096143e909e56a60464e3ba2132d737.115.tgz","fileCount":3,"integrity":"sha512-Kxn6nhAW8tJ+8fu0MchqH+jDWqk/AiuN4PK42fMq2MO7N985GpMqWG28juZKa26q7GWzgAXsEwYNHSWexhjCGQ==","signatures":[{"sig":"MEUCIHQScsAKMAe3iZYWVlrt9OMa8Fdao/5ZJnmlxVJiJDxnAiEA6pL61+QI0zRH0BSe2WLh8r6dTL4AFsn1xryEGJ6PHM8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC1KuCRA9TVsSAnZWagAAlSIP/2KyGZASAZCKpMEY+SPH\nzsIlfyGHhbNdrmyg05RCLNzOwlpdKe/c/jgtr1b0IuuTHL9WBimpZVLt7yeV\nZckJlx/WHQ+hTphHgi/eCTIdF8/LAYD4VRTo7foiWxZuf7X1WyChgBB3F+7D\nBJYqBAMGXRc4L4KjnqMYi4QeT6CfyOoe9Iw5By6NBql0odJlyRrIyf0kqyeP\nQRAqALP/Mq844ubvgQdlGWG4rieMVTukTq47bgBn4reSoliIcep080jXdjIx\naGGTsLxtvM7Mo4pRKrSsUtxUFz/XFEWjFFEpHWmMaxz4/GzyYPY0Yzg65TIP\nIegusrDb/L86h6D8dlC8o1WxiuGc+twsFufTZH6s8sZFiFam+QjdPWs/9mGA\nbG671yAnvlO4ZZS5N7KINVftvNvaKzpWpF6zJSXRiXlkLUrttm10rAq+bUZJ\n/5THggA4gXl3QTQ6sp5VCN5i/kAWzBqa1uJipl5RRNaSQsmmVDSYnH8rG2L4\nLn6fyDBuJQYnyoJTncTU2UZF8HHIj4kgUE8vRoKV9D0SyGo/QzwinwWZJtrI\nODUppx6wIgHSvUuMNo1oeBOnt3BUdBg2a+z3f0s+1AYCfDvY/031S96CWC+z\nvlNzojJlFAhATtzDPRwmSFVTXN2r8Zkv1DaZLvkxum20455T4F4qpSj0m+/W\nAzQx\r\n=LzUO\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"c907faa83096143e909e56a60464e3ba2132d737","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.c907faa83096143e909e56a60464e3ba2132d737.115_1644909230398_0.7554607409096883","host":"s3://npm-registry-packages"}},"0.14.1-beta.ddc02bf5db8cf1a62d9e54f969962df2b6d4f703.120":{"name":"@preply/ds-tokens","version":"0.14.1-beta.ddc02bf5db8cf1a62d9e54f969962df2b6d4f703.120","_id":"@preply/ds-tokens@0.14.1-beta.ddc02bf5db8cf1a62d9e54f969962df2b6d4f703.120","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"c90366dac62d528fa2452a2c28cb25cf726fa8d7","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.ddc02bf5db8cf1a62d9e54f969962df2b6d4f703.120.tgz","fileCount":3,"integrity":"sha512-lT+PjbGJYMa1uhGSsvUl5kSQG5OgBXtJ+jKB5sMJwk/fXLIZYaA73sFylWVALUpfHYJzDAkpYJRXP2u9O3O54w==","signatures":[{"sig":"MEUCIQCuetcAt0tE/8yYsB/DATsG9UecEUUxDnflemGnMKIPeQIgEkkQjIHswdkKhZTaVy/ug09iDePQyenvjAE8xCCu3DA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC1WbCRA9TVsSAnZWagAAM08P/A0ddTd+7JncmHDvZxP/\ngdL6pSGdqxDNIee+HNJ2T8Uq0vM7S91qW349yatnZBHUHT/tsx4manipfW8s\ndEHoDKv/M8+QZgUy9a6zyLaSD3ff3kqr7QX6GaWPXke4oWI700o3ve9/ZU4f\nXpRrsOc6wLH7c56trdhu8hU/0i3QAaXMQ6qcbD3Jm6qHkYmQplamLZid7Yd8\nUkFRr7YmlCJ3wUo85qwJDBfV/NEQdf1kvBelhOCMTBIEV6+4Oknwi5O3lBRj\nacnW1uhFYv97vQzTdUmROXLbbqTFb31/wv4gRZdioo8lEiLHIWI3JyfmTSB7\ni2kuNknNXAL2RKyxCO07WmT2U/PqSZ1gcVxzIDvgfw08oJKEB2ZVjJ72SVmL\niS8tSdAttiYmibzDZunFexKOWFu8nppgkc4G0Sv02g6Mj2tjKeGD4c6rRNdz\nTcgxxY7yegzytzKcgsEO/eRxn0Sw6MxKCM01xhoKR9/j+EUgz5R7fmyGC9h7\nUKXH2cB0l+ZLim9vc6mP/hRD9fGhEQ8DM2u2FeCGeY0alxUJ0a77TCLdwMUk\n1ULxEodEPhFK0jwDiBjhKIOsSye5xcMfePEnWwLAcvzJt6HB8YsE7QWcGNPY\nzutu1+QMBraspf6ChWTR3IU96pCuNQF4fx+5e69Kd2nt4Kc3mDALWLQmkCUm\nffHR\r\n=lygt\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"ddc02bf5db8cf1a62d9e54f969962df2b6d4f703","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.ddc02bf5db8cf1a62d9e54f969962df2b6d4f703.120_1644909979110_0.8717952160761009","host":"s3://npm-registry-packages"}},"0.14.1-beta.1b522df449a3ac0308d73fdc6ec41d4b455e93dc.115":{"name":"@preply/ds-tokens","version":"0.14.1-beta.1b522df449a3ac0308d73fdc6ec41d4b455e93dc.115","_id":"@preply/ds-tokens@0.14.1-beta.1b522df449a3ac0308d73fdc6ec41d4b455e93dc.115","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"884953346937db62ea15f93c7d1d9a9d36930d95","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.1b522df449a3ac0308d73fdc6ec41d4b455e93dc.115.tgz","fileCount":3,"integrity":"sha512-OgSgvZVtmtBBf7qWnq67V0u+JYIDYTWptugXX6+Rycc8A20h9vg2GQySslxKd6TueA65SsokEnS3TNAgaEjJfg==","signatures":[{"sig":"MEUCICC+zNPp2VQo4HD62R0rT/GYGCBJZSiLcQGo9FZTrSIzAiEAxXDLQNQLLZPXxV9wuIU1TM6Ane8cmN28nPgqBxE+e2M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC4PbCRA9TVsSAnZWagAAHlcQAJ0IBCd6OxgisBDnpzMU\nXOMN0cV5mKkN4FTpD/EAKFwUZSkK/fe0hoS9y+wxy5C6zLJgHe5Epx3ilj4N\nZgQko4XQKICjFnE6X0naosOnh9xVeHBtBLLhnNdkdGfimJ4MMsEb4xS1BJ8c\neuieRbZOohuoo9yfDwDHAfZ29LMo+fwcqMN+OhlYw5KUimH5Btw1SRMuvVk0\ndKQ54oTWSSmxFUHLDztjXHElzQpcMntNyhgMFucx0zOJMm8mj4YH1tudTlW2\n9giQYlnmjoDraoKl8YfOTp6buBN+zVBHmb5BBwwq2VcYjgkouLIlnZVNV0Wm\nLWqRU+eZcAxV8tQqsd4upRmF36dnWhFmYdCC3DC29vIjlAjq39cYtJEjmH15\n8adUkoy/yxr8RyYJQyarx7Y+nwAhL9wYC4epM1P77Tf4ST9w/4mI2IknUUUU\n/g+939mcopMuuU5+dtiDsUMj58+SPJEhjIWZCLnY5rEqwcCjCpBTVs9JCeXx\noXvviasFZorccCI8V4vVfv9i5voNYGXGWnA4H3Y+xiHRhqYQk1W0O109dmTB\nca1sTfpaNG03cuyFkB3KSoxX9U1Exrx7V5nFFD6WmRTK5C+b2sd3p1GENI0Y\nfw28BXl2KzQ8Wr0ouw3PF7iFiBUbOGFUInL2xP4FUxEdk+TDaseggvsSml5e\n2QKN\r\n=7BQh\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"1b522df449a3ac0308d73fdc6ec41d4b455e93dc","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.1b522df449a3ac0308d73fdc6ec41d4b455e93dc.115_1644921819379_0.7195888184361954","host":"s3://npm-registry-packages"}},"0.14.1-beta.4745acc1159371d8e3403496c32a08c5a71a605b.121":{"name":"@preply/ds-tokens","version":"0.14.1-beta.4745acc1159371d8e3403496c32a08c5a71a605b.121","_id":"@preply/ds-tokens@0.14.1-beta.4745acc1159371d8e3403496c32a08c5a71a605b.121","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"3ccb85427a164a13a97aebd794abc92a3421c6ed","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.4745acc1159371d8e3403496c32a08c5a71a605b.121.tgz","fileCount":3,"integrity":"sha512-axQ7N3tbUDeMOMfHkC+GyzQMQUnwHWwiQr295zZJRzMlJGHCUMVEBOHF8PzY96O+KJkBCpLKpe2/kTk5SdYpAQ==","signatures":[{"sig":"MEQCICMq99gQh45pu/qNObzJoxGr/ZZ/xEPuNH/nxLxCkcGHAiAnPqiPPtCFTcUA7/M9Xodw5AZTGTITltTQ1A/yJSFrmw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC67OCRA9TVsSAnZWagAA0UQP/3cyTLz2VGuSUwaFSTNc\nDZx8FYGXAixOFj7uFVngMIIBhoyE5zspBuY4xDi4cbEr8oObRZFU8J0055cx\nfpOcdm8+nuS/OKsmnfB0xeuc67lvn3FMwEcrMuv+VlHGT6KN7genPJSxX+0E\nqpb2e2gpRav0gyKTZX7eP58zet+o4zF+kGCA2OyGyGxvZJkyDc26vtjOQKhC\nFplDmDj5V/Uhf1U8ZfIat1fIuQTkpokXImJYOrezBsEWPW/VMMJBStRLVESD\nwE9RXSW5FLuethlEqT871R63WYPI5O83crEWMsEDCfb6KiOoL+W07g9B2fmw\nRKhH21KlsF0A1NC94cVx8Cb/jRXBWJQp9Jfqno+S/OQDwzfJGoXLZl3j6TBb\nyNWB0PDlQlOxDVqQJ76Ju37vFcRoOKvigjZJ5sJUWS1sfPNThXlawgSjam2B\nsG3p8WZWKjSuha7SGr2x7fByQxYDZsfZrK83EE6JE73B3KzcCxsl21R2syOi\nnRBNNQgM7os39GZtlUOI8ower1akHesc0uQCivdypLctxxgaggiqh2DrWeWX\ndCrEP9hhxn4cfrkHTey2uG1Zuo1KABXyZPff/wSyHC2gZu/tQzDOXYThLQbo\nalZr8sJhznoglR+I1p5Orj4ibM6V5uFXT+diGAKLrIrrRdZ4jD8PwRvwNmGN\nZh+V\r\n=onxa\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"4745acc1159371d8e3403496c32a08c5a71a605b","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.4745acc1159371d8e3403496c32a08c5a71a605b.121_1644932814234_0.14929893581912768","host":"s3://npm-registry-packages"}},"0.14.1-beta.7911c798304d5a97b78e5a59e300f439ba587530.122":{"name":"@preply/ds-tokens","version":"0.14.1-beta.7911c798304d5a97b78e5a59e300f439ba587530.122","_id":"@preply/ds-tokens@0.14.1-beta.7911c798304d5a97b78e5a59e300f439ba587530.122","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"34e582dbaf1b7a70f561b2a2a3df4ba0f9701647","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.7911c798304d5a97b78e5a59e300f439ba587530.122.tgz","fileCount":3,"integrity":"sha512-HYi2PsS/EbWSVOPAJIcci6htEZCbf0ANV7Mhhjxa+T02Y1eD7h0riGUS6iYnZ1EGXXiV9Fc9htPJoH2tvg7nwg==","signatures":[{"sig":"MEYCIQDaRFVzBJ6eW2qUl7ZJG5TSp1T1vS179WeYnpwxmllvawIhAOZg0BcETsESo7x/fZ6Q79gcYDXTXdfmWQqDiPsRcPIM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC73NCRA9TVsSAnZWagAACMUP/RuBOGhzWDxpuuR6Ulg3\njT62C4rk/kdIeVi75+h0Fb/vaJZQdg23O20n+ZetavrriGDjS8He55V0oGZ6\n/xAPi+ty1XkWycSvPQea1M6UsdpQtRLPUtpsE6Mp7Nh0sm1/R24dmv38G7sU\nxdkVAXKCJcytu2Hxb/Kd7fag5tyXR9PQ82mDe7z3Ly3xReCmc7IA3N734+Wj\nrqAM7+uT0MIqQe4NP+t8BRxvJTYyqGRCH2XdUNOD2Cn6OgFqvrVk5rTTjwkv\n6SVw6iGwCn5O8hzm6ffuY9xsiPaTGSEPyVUI6QajO/CInCsHq9uEOlub/pnO\nv37E31I9uI8PnckBuuoqY6MPMhvAiVaAtSzA26BVr9h17cvYr19GL4ALzvVX\nEMX9wtTEnkg7BuNr6TZNYpE6D9pb9r/xwUgalgAQpngex5ZvHVeAviaDQU38\nnxNhvMiMckM2XmoJSaAUiwen98aZCyzENoL0px3puU3eXswHTDxw6oab5JjB\nu54uyh1fGVlViOVtHHygxVpaz2WXz1RaaUXpkug8M6tTblSkGNNS5+VlvSR1\nCNX4eJsati9y9g/MFEqogUF4wnq10T784pCrzeGhF1KvirZdTkpklDdZykyL\nK1ZOovzv733z+fYwxCI/l4ouEj7fpoHKdSdcphLvK+vYktcg4jUIxYDaQ+k3\n+QXG\r\n=C0xX\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"7911c798304d5a97b78e5a59e300f439ba587530","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.7911c798304d5a97b78e5a59e300f439ba587530.122_1644936653133_0.5295172421841334","host":"s3://npm-registry-packages"}},"0.14.1-beta.82f514cdbc3437c86fd992d8ea83fd2d82a32885.116":{"name":"@preply/ds-tokens","version":"0.14.1-beta.82f514cdbc3437c86fd992d8ea83fd2d82a32885.116","_id":"@preply/ds-tokens@0.14.1-beta.82f514cdbc3437c86fd992d8ea83fd2d82a32885.116","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"0d828c74757aed20065a4fab0bc835da6022055b","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.82f514cdbc3437c86fd992d8ea83fd2d82a32885.116.tgz","fileCount":3,"integrity":"sha512-uvWzaGQl1Ptm0YCk2EFSOa1JwOWDz8I7IUn/N86b+QEqm8Vimm5KonBSEY4R5k9CshKzNweCxP+3ZUgStghOaA==","signatures":[{"sig":"MEUCIQDsPJ1zNaxaUcFhlho2NtUXZEjYhQT864jyu/8lnDolWQIgWY1jzpmwAeODRjq3Q+VGSsbuOUuV0NK5iLSoZsWNEEc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDL61CRA9TVsSAnZWagAAyvQQAKTQZAe4srOQku3oDVCk\nhee4nYgRyDHvpR+LuDVBgzyZSuXRbA9k0WVDR2Y6UvVWpSni++djTAoXM4uD\nGA4tEf2ZU1MZ1i1LA7VntadqYtSnkthbMRlH6LtAlpzjjxuiXDQh1w8MRBWx\ngDqmJ5Mkfy1ntfjoTCz0Jh7/UZ8g+5gX36iMbmI2dg/DFSDJZaVkyGINpNUj\nShopQm03snGzYAcUod1rZuuhXGwsSMTk+xtijSWvv/6TIU2cNuamH+b/5Gew\nPnU1rZYQb38lx66O10tsXVAposS4HC76Guk3Vj+lsAjfzNB8qaHcRgoL/8og\nymP+TAw9onFLvGqVjKx3VCUgyQH4PX+k1DdcGANNaoZENyRIRll+94446A6D\nQrZtGJAMkff4Kjv24N1Afs1X6QqLiZxKD8bAcTq8rnrqIjIzwlo2MO67LEYf\nPOsX5QLNBjV2jhDidyMHHQJcV3ryn0kOYtYR114qeSUG5iUK7GXx50ZbELo9\naY7oiaeoKNZZPOv/XR3otnL0Kr7hfF2Btgw18p3fxXKwUsPrrxzm4SmU8LCT\nk11LsdH9udIYs+IB3pRhTqBrPIR9nL7hmJl9hz8CTZ4HGYCQJjsh6bgGKCEJ\naJIRUUYv5Gz09idYCiCefaQhNUIn2FzZAXXuVrzxVQ7Op1si8wBbwjkD0kGh\nAc7d\r\n=vRDv\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"82f514cdbc3437c86fd992d8ea83fd2d82a32885","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.82f514cdbc3437c86fd992d8ea83fd2d82a32885.116_1645002421795_0.7678550709875165","host":"s3://npm-registry-packages"}},"0.14.1-beta.73cb7d7dbbc39f5d762aa7aa6c2b61638d503cfa.118":{"name":"@preply/ds-tokens","version":"0.14.1-beta.73cb7d7dbbc39f5d762aa7aa6c2b61638d503cfa.118","_id":"@preply/ds-tokens@0.14.1-beta.73cb7d7dbbc39f5d762aa7aa6c2b61638d503cfa.118","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"17ed3ce4e831dfb09f1b901acfdfc1f87367f3fb","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.73cb7d7dbbc39f5d762aa7aa6c2b61638d503cfa.118.tgz","fileCount":3,"integrity":"sha512-m5qpLjCXybFOVJ41O4Vxr//xMMzDXrcIxf2cFDcdgZvrkJSrER1gZuW/WjumDZlc4+EL8nSVWCvjznWBps10hg==","signatures":[{"sig":"MEQCICNXD23DZQMpmR1Yud5Lst7OQQ3wZ0UG++YKheVlpNdfAiAejPyY3xduoUPdfV+NMM3ZLrji5lu9En5UysmEMZRirw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiDnd2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmxA/6AhAcdfMsy9NDMcp8zcm2eNUPnpuvoguPctc7jlzeHgBBPrbr\r\nmEH55VppHMDlIUhTKm5pf0A+yaTHH6EkS2AeiaXlBJK/RgrF2Kzl53Ic4nR6\r\n2hnjWo1nC+N4+ZyLwQmHTjaRqNS0IlvjQi88bZu58JZ9Dm0nS7C1n2ZdszEx\r\njifprcw98bLYXIBERt5uYl+Ef4iz/tDUkcmX4cfH/TxfHh92m0lLo2e4Bu11\r\nYJC6HuZAnuNS2gukeNI5U4Zj8ikCJFrjRIUO11j1m7RW6BlOt1k7ZVmQaLvr\r\n5fxtwT8NJhesFcrX7lZdH5J8ZJA0ojKVJTchlr/PEfYo9/JwaPldoXaQ1XuN\r\np6F65wyusQc3CP4JWnS2cSUFMP0iJxHbGfAn2I7HuFAa+nu+6ln7dyik+Sf3\r\n55Iema3qoGh/bf81PKi2eeBHwJ8jpG9iYNTFixX1faFCs39hte9pCHmrbhOs\r\nULz1eYF541x/JUz8GyvFd06jSPhQSppvcnvX6Q44ELJ+t8riYN+8kAJ84m46\r\nZNeb3UZQhtU77ul48LJcEs9717KHyBCq0YEQS8XrUYYkPa0dYG1F0N34uKid\r\nCGwJ7Im0+nHyWAV+l6aJTc9HSHK1rSackF2PAcxJV6fIeYvvcZFcukAMnNY7\r\nbUG5fUuizykqocdaAIoKCYtr1umNqEy8f+Q=\r\n=isTp\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"73cb7d7dbbc39f5d762aa7aa6c2b61638d503cfa","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.73cb7d7dbbc39f5d762aa7aa6c2b61638d503cfa.118_1645115254700_0.22224585237545136","host":"s3://npm-registry-packages"}},"0.14.1-beta.347a3b2426d67cdf862cc50320a05ff2a55ccb21.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.347a3b2426d67cdf862cc50320a05ff2a55ccb21.119","_id":"@preply/ds-tokens@0.14.1-beta.347a3b2426d67cdf862cc50320a05ff2a55ccb21.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"f1ce8a25cf36f235c1e0ecbaa5d9ff990ef554c6","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.347a3b2426d67cdf862cc50320a05ff2a55ccb21.119.tgz","fileCount":3,"integrity":"sha512-YXmQtrsIWnKIiarxlaNvr5sxGrW90g1R+3NoZJXgL5IwXi3ZupIn41mepEl0hYPdnjNOEZ/Gp7eEeJ0JKuK2Og==","signatures":[{"sig":"MEQCIF99d4rdQjmYccEzMmy25Vi/noe9dZr7PWiaXxHHDmA6AiBxZUUcRSYvGDHsWzagTmmtEA7gx6lmTa+iGLUwsPXRVA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiDnhUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoY8A//d6tlOkxW1w2uDsTdNARCarhFpPND2X3LkU0j3u9m7DJOuwRb\r\nWqP/XeffLByrf59iHDWGNgJaJVVl2fFs01roNP1VF+x7zVomtBBhYffTnaLO\r\npx5lvyYTmgfG9IU7uZMdqdq2rQxbnwCW/Q4o2CdTtZOejym8UcvXW2ZCptUS\r\nirj6bRoHMFJ+EXpf2HUfR965Y52u/9HFcvAaJM362gHRQ1mnWjf7GGidBqUX\r\nFmFFuvjq9OUzdA7UTtWgTcv/qb38+CVaPfRpnGLOabpDQvFMQ5kUiviMUZxr\r\nOb3l4bdMja+gd568pApakaOyCgTN4XO0EVWNkOL3OnkCTzBYNUm8BnXHtkSB\r\n+U5T+KwvL+10KsOnufqf1tPt1rv7Ddkj+QlA9qEJiKjsP89K8xG1yMn+mkW7\r\nL/itiTVsiQQJMQa/GRABCijQG3ieNwgFP1kQoH46o+pIeMphAws1Wei8XjZ2\r\nQjRMyzvLNT0nsbTt3XVMfq8z4iHRaA8vBYpazgGvCn4zR6+sDFLj3/RA+skE\r\nAGRO+7TAJzd4pH292gti8A+0WA8+aQOjHIUVF8Yh2+ork4GZVwNySoUB+WMT\r\n5uxqtQWPXdvIxswuA0WzbcOhE5bMGFzydQRXPHgRwy+cZK/pNPE98cVv+BlD\r\n2/x2cx2q3rkTf4a3qtdYcdTBs3hK5ZmzsTU=\r\n=xaiX\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"347a3b2426d67cdf862cc50320a05ff2a55ccb21","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.347a3b2426d67cdf862cc50320a05ff2a55ccb21.119_1645115476840_0.810040301683554","host":"s3://npm-registry-packages"}},"0.14.1-beta.61758c49ce7d5c5237b50bf2fb4681693bedf769.117":{"name":"@preply/ds-tokens","version":"0.14.1-beta.61758c49ce7d5c5237b50bf2fb4681693bedf769.117","_id":"@preply/ds-tokens@0.14.1-beta.61758c49ce7d5c5237b50bf2fb4681693bedf769.117","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"735068401ebc43b35a50ebc407d0d99aa0bf3aad","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.61758c49ce7d5c5237b50bf2fb4681693bedf769.117.tgz","fileCount":3,"integrity":"sha512-xZ4f4fAmk9f+qVKq2xoF2/jUx1zvNK6cKs09YnGVVEnxLdiJYHAQUAPP3s7WX5cnQRqvE8xJQSg1I35KeNQ3yg==","signatures":[{"sig":"MEYCIQCr82Com+G2cfoeK9fF4dBtFbV/ja6lWDJEWbfA+1kAywIhAPrEZ2EuGTwQa5tXQ0+6sLJGEVDRSUwnei7R4v+dq5vl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD31pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrL6w//VjrlrwrKVI6DCU2SAtKL/dDU7Qfj/sdgFlh/n9w2ezLNL8MB\r\nw/yxAnz5Kd0SIWt6FbSBbWaaL/nF8oPpT/MYC7Q0PRfMm6XbxfBBBf1jUyZR\r\nrloEsaBjGScFwfWINhEJAHDcwH7zoqCmsw4SpiwaZvI3/x//WZn4D0g4NpmA\r\nicTo0GOG/pDtPrYZGVZjP5JH2vHHBLsFVUbtWRJQRES0duz+3hw3Kyp2rbix\r\nxYMlhS5jtuq9teOA+dT6bQPN4jCDjQJgrReKS+Ry/RrSnKjsWAiBSUv7fETC\r\nNNfGfB97vUt4QK+5NhYc3Ng7kEcj2zxrpj8Lec5USgbdQ/cJp8Uri9BG6zvU\r\nArWxySD3XDrcj/vmU1pCvBJsD3VutvMgr4fwlm9HKmHiNFJhrki7dUyc/hRt\r\n2DVpIRkmrj2jND1Bzieiifugmyfiezqh6RduL6mZEDwr3j3p4tKOBxmsX/KT\r\n4pYsRBMBWih8+OYzYUKxobVSd3H4PGSjAzfF+BITJFvGWnbi2kObMGtDc2q3\r\nEk+e+kSX1j15unZ9k11444RlIrQDl4Qc/KvvbvJbt3rDPg0x3MrsxA2AFdX4\r\nNuhMnyANOH01U5oh8RDQ3Cz7AkYvZQNzxsZVfrREq+bnh4qQakuB6dJo4UuC\r\nUUXBcZwm2+cZlU/KBVzb3sMM89WnPOigT8E=\r\n=jQxV\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"61758c49ce7d5c5237b50bf2fb4681693bedf769","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.61758c49ce7d5c5237b50bf2fb4681693bedf769.117_1645182312792_0.911022881139961","host":"s3://npm-registry-packages"}},"0.14.1-beta.1221201ea1298b6603f51b9e31a7e75977ad6b0f.120":{"name":"@preply/ds-tokens","version":"0.14.1-beta.1221201ea1298b6603f51b9e31a7e75977ad6b0f.120","_id":"@preply/ds-tokens@0.14.1-beta.1221201ea1298b6603f51b9e31a7e75977ad6b0f.120","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"fc822c691a5602a085f97c50cf47258a52621b0f","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.1221201ea1298b6603f51b9e31a7e75977ad6b0f.120.tgz","fileCount":3,"integrity":"sha512-J7c15zEwPXIgCjplRCYmfgbPxa+tmPBLLgbA9AYGX9Qh7/PSUWvSjWanLRrLySZvBrUvCu5ZFPxi5Pg71vXNiQ==","signatures":[{"sig":"MEYCIQD3IudEUSQS48ebBNKrydBI+Eya4KOKXZTRX9zZ+u+jPgIhAKusZPnpeU94d487S7W8pfMjx6S+A30h+OIiBQnzmmoC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD4Y6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmra0hAAhwIabdn6cBCB3YXaUypKoh7hpM5z+tct1lRqnd6G8+pPZI8P\r\n3KnATnxjAHmFUqlkIaDUgXXPtju1nYwAuO/KiAUbYAOvpUWwcTvVTBr9zEt2\r\n8rYcyTvESsixk1pLzUIcifedS9WwRzI4HKdv1nrNu7+489JYlRY1IGZ3xpes\r\no2ujzo+LfKlA63P3qWymUT+aq45Q+OOrQO4Atk3Kwj1robZUnolgDy4wMf7n\r\n3CEo4Gn7JXsQJFojF93+YoEXqRUYfJcc61tkMAVWi0nFCOIIh86U99DMSw52\r\npA028rj8+88rjxRW+EAJGWvsCPa9HSbClaj04pbRIzK6cZrgb04weLLlKAzb\r\nw3YqTjPc/BLh2io3xIqAMHOOI4lliuH5HQoxb3ghhDHWYUM+FPHFm3CQwrrD\r\n+BhtORKFRte1HWxfF/6iwmUpoUdCSxE4cCq8mhZsT4Y4YQu+0al5RjKUIr9G\r\npOi/kIR3YLItjnnDAuFSMbDya/mhVKn82w1yAIHZDQ6J78sYs0fy8+kFv1FJ\r\n3NySJKT+RJcykdR5ix6NaqBJgsAtvV4Cs2RQOtKUI9nd45Vizob+sG94dVGE\r\nXT3qNvEte0aHrqSNdYent6p2Jj2Vo8oLSxicl8VYqlK3hN5Cibd+etu9XKZT\r\nYCxORo1PvaQ/R/Txa10Uz3TvoUEVRp5vlgs=\r\n=ogSV\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"1221201ea1298b6603f51b9e31a7e75977ad6b0f","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.1221201ea1298b6603f51b9e31a7e75977ad6b0f.120_1645184570346_0.9290345399892952","host":"s3://npm-registry-packages"}},"0.14.1-beta.7ae4b5af121b2de26696279ecb73c9bf5e957465.118":{"name":"@preply/ds-tokens","version":"0.14.1-beta.7ae4b5af121b2de26696279ecb73c9bf5e957465.118","_id":"@preply/ds-tokens@0.14.1-beta.7ae4b5af121b2de26696279ecb73c9bf5e957465.118","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"60b8f35fc58f6c90e40e6d17330598820c9495d3","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.7ae4b5af121b2de26696279ecb73c9bf5e957465.118.tgz","fileCount":3,"integrity":"sha512-uV08iNPcDI+jEMRTJtqaRy90w+0a7ebww8m04PmoLoo5an+f5zd897KsW43DpZ7vfRZwvb3O1MCrMGldEwM0lQ==","signatures":[{"sig":"MEUCIAtorlpG5C+Mnq6XUC4aR+b1RzQLSl48USLpa4Ib4Ch1AiEAsxtbNbF9/u3171tN6AKf3e+NZvCeMazwTt1yJrgyugU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD4hMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpm4A//cFmWUQ7SWGqV6HSZCU4dnaMzC/dnWne9Rhj7J30K2zoLPSUW\r\n3VdVIIEwm/5+KRilCvrJWte9JAOnbK3TFwl4r807AH2ekVvVXGdbdWUaIItU\r\nFUxBK2boL/W0zuLXAa7ZrZsi8UoZA2Vaf6WfYRTBXfJCAnZiS7UgvbbtISTN\r\n6YgMWEfEiP6Y1oVUmHnuXHjFhkkHO2Pcx/A8OnYNJZo0VGnobDNKaDHKRSv4\r\nTT878djoY+/l4/nI68cS+luA2VlQu3NBu6g5nkzLURpgB9f0UWkz4gdVJ8KA\r\ntIV9AfRdx/VcjwhdATJUhelmRTPyCoIdx/DhZ93uNsQM5rdxyuNfF4g80/zb\r\nHOcJ9lWaDL1yAHZOGjo9CGjseGv+v6pl8s9crI7q5nLnbs+Db5nOiSpcEZyf\r\nA8ocS38UWfvU36S6+Zsqh2v5hlupsjjkknckY34pDnpomh86Zs25hZ9ISvaH\r\nF48SU7fLShMGfMpNZQ0Khwb/teMTF9v5BquYoPsSxm7imsa7VYf8hB2qUwRz\r\nRby0OC7eWpr1v9tegWBe62zA2Mo4RTbYtgRb5CK2hYsfXFunwQdzUtgqufPS\r\nMftIY4d1K6V7PEmwHMyGbPvATY2L7rM394fL+JIwjRVMU0k+UpGtwVbHiybx\r\n/H6ZyVYyfkuS12/gbsioAeAJ1sQc82WhGVo=\r\n=8Bdd\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"7ae4b5af121b2de26696279ecb73c9bf5e957465","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.7ae4b5af121b2de26696279ecb73c9bf5e957465.118_1645185100433_0.3350948457319278","host":"s3://npm-registry-packages"}},"0.14.1-beta.be258f3e134ff658bdc45e502b49e42d9edd71f1.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.be258f3e134ff658bdc45e502b49e42d9edd71f1.119","_id":"@preply/ds-tokens@0.14.1-beta.be258f3e134ff658bdc45e502b49e42d9edd71f1.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"3309e4c63df7528f5eeeddc32cfb8d1a0984da73","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.be258f3e134ff658bdc45e502b49e42d9edd71f1.119.tgz","fileCount":3,"integrity":"sha512-CRozYpzMMyU09Ba7zNDBGyA1bnYufraE7bDKOsdozwoe1znR2n3NBigdgBYdUzc/SlNrMjfDPWALuUDvnIw5rQ==","signatures":[{"sig":"MEQCIFy3Jrx4WEBSKQyFJWYmL5+1i2qkUQqZr7odsd1soP1oAiBqNvOpNiqtjBF2jukj17fjhqngtGY52G19AfFtfwglbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD5E4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTtRAAlwiiExvxm/QuKKYMHlAA2oZ+lCPfI87wbHvEFvXCAjSUGy/w\r\nlwk5CT+wDqnq81TAidKJM/SShK+wBJTPJO7fTisq1rbG5SYPpWe7ElBfQlKW\r\nfEC6vQrEulp6BYyhSJPmDJVlBc1CrWJMimXr/7q6b5jurr0v8T1SL8ISWn1+\r\n9kXEmmSjmgEbiFtnRhE+PQ7ga1Mm0E2vsApM8d8EQuIbJweE5bpNQHKuqiRj\r\nxok+CjKyvdHVjav2qpgWwhUDuUgxW3mMeWis9VmP9b84vQdNhjKgW3aoY2qx\r\niuRXfzT7nGI8OVH10U9joWI64ZjAKhnpQS6l2gAuc1Mnk8OZO2Patjbamcaq\r\nwnCGgCWBg63Zk4YmkkC/pqZ5Pcdx/gA9xnTXOLUcp0BwLyiM1xP1qSvnlgRJ\r\n5kAKoy60PxAgM/qkbdIBGycWGxrRJ36wZQY0spIZjsvrjcwDHM/cwJPjD/LS\r\nwlzsjzJa7cOgZ9RK4GB8TSKTxhIAwQrRkSLJGbNE0cGHQeVG0Lw8mFu6lwgm\r\nG6EaPj6oREe2Ef/Pyr51H0S3oL7HwW17xvAfXxfutb1MAISYLY8BqUXwNpVE\r\nPXRk1eRkz6OP19HZEoL2XAR+PJUhe0QujzfmWtf53D89jCfAg0+Pt0UGYcMj\r\nOJngMbLunc7RoY512QQLnQngOZMrv9LA4+U=\r\n=Om/i\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"be258f3e134ff658bdc45e502b49e42d9edd71f1","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.be258f3e134ff658bdc45e502b49e42d9edd71f1.119_1645187384609_0.8082353854242306","host":"s3://npm-registry-packages"}},"0.14.1-beta.8dcb5228590e31674dbf842c4832323f81d0aadb.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.8dcb5228590e31674dbf842c4832323f81d0aadb.119","_id":"@preply/ds-tokens@0.14.1-beta.8dcb5228590e31674dbf842c4832323f81d0aadb.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"f34feb8bd300a5006599dd75adff53bc807e0583","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.8dcb5228590e31674dbf842c4832323f81d0aadb.119.tgz","fileCount":3,"integrity":"sha512-MRcC+hefi3BSfxPaacic16Gp8syWuB7k/kKdjv+A6vv9tHypKxWzcAIZkPAAdAZpRVQn2eL6I1rWPNC38Qi3Dw==","signatures":[{"sig":"MEUCIENhxm2/BTQNrjD1aTqZ8uPxl6gh4vHV9jMuCeQmqriUAiEA8kMcC6Zd1mQY9X3IUIUmqr2HMKNToAVmoUBK5lNxkhA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD5kyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6NQ//Ul/m5d1EaZDNjJAU3SO5iw5N2Oi1YqkjzV6eyftj50rPiJ81\r\nQezHBj1R/HKwYrur4D4XyhC4LZT6Y5Dc83iaCa2ZRU5X3uL617C+LOKGYqu6\r\nMprNPRpZh7vYPjWWDglleUNmGryEEDjW3k/FJ9B2nAYhrPdEzkUeF/hXqggU\r\n/RPudzpNx5T4TnSFlQhNp7TvuIsI/dBnWWDIhdr26rz0ItLf3XsJ6Cuj3FG5\r\nvteL4CEyCohrIg7vtoUxlmMwZ2h9Lu1fFQuxktvI0RTymGsyUPhIYy8h+tsL\r\nJmNPDTi5vcbpbV53EjE6vTnAJAZmSYv068SvTfQlG8btpyQjMcUJjTdofZyI\r\niV/el0TLPC23eJ1E7o1D4/OxDfroVdo8IR4zQ6zIELRb7DiwrfxtwDtNOuEe\r\nI1sWeiMwB+NUonPcvCIdz6HvCF/giyYkF8RqY038DHr5lQSIById/AuU636/\r\npoqjOKjhsZ9l+V+QpxWLw1Hg2AXmNuhqCsyrGaOY7OaUDYMtVSH/WqDwUVdX\r\nrDLFXGZnCJY1l1T4SRqpGw5SAowKnwE5QmxziGCk8M4usaEncTDY3LhXsPDS\r\nMcWpLzCY8BRVO34GKeq/HtMQnBGYctCdogeeNnT/BhwKtBSUyr1MjFmRI8g9\r\nVOHd+/sWr413nxJyII//rQOPfBgmafwRUwk=\r\n=KjTW\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"8dcb5228590e31674dbf842c4832323f81d0aadb","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.8dcb5228590e31674dbf842c4832323f81d0aadb.119_1645189426278_0.4442295886207508","host":"s3://npm-registry-packages"}},"0.14.1-beta.aa35b60f452f21e0c3285fa59b6e3ee0c32270ea.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.aa35b60f452f21e0c3285fa59b6e3ee0c32270ea.119","_id":"@preply/ds-tokens@0.14.1-beta.aa35b60f452f21e0c3285fa59b6e3ee0c32270ea.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"985c3dc0f87b26be78271af310d0935a3a973831","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.aa35b60f452f21e0c3285fa59b6e3ee0c32270ea.119.tgz","fileCount":3,"integrity":"sha512-ZEbqbQMb3Zyap/JJjXrKqTmOUwL+6jj/9GsyxARj9PX/ai7/sUWQuliTLY51447LC4ebUmKaW/zxAO05vkipXw==","signatures":[{"sig":"MEQCIBKq/ZNl52H2Qdt2I8AfZIbqf9vc7+a3MASk4OC4JABbAiA/L2lTBA2DghOuqTIbQltG8OaaAnaPy7iDrwtiI1Gaxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD5oNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo4jBAAnIJNWjXvvY++9xcGB27XkKVcftw9Cjv0xVFpYL6oEvWTcdU6\r\no84DE1KtTc8avKifzPEc/SmJxPHtuM9LtDwuiwFEuTJyNl5zGLV1+FxuGJeU\r\nIrnbdB9EyDDFwFu2DpS3H0HxxSwtP6IyvwJAWFobWCPO46Or1DoPKGi+1Ban\r\nAOhko9ew+6P8FJ8kOUHsnnU1iMLaO7rfdZNnlYGnAc8VsXa8TsXZwxQ55QAr\r\nEX5MgqfyzqxZmxqjT2riVgQv92AF9UTpnpZ95qJqWD/Ym9O6abwOW+sgo0qO\r\nCyXzJkuZkrIrPbljacnD5EksuP6H2HtcR+MLp5+f6JA55Jo2GFogF0p3nGnM\r\nfyZniuHy/8CwQVHCBv8Ta5AtnxvvoqwDaQCxmRYHzsRuDFl/b3L9og8KaEXX\r\n6OhEP3HZssKvqLmF0SrKxf5WJIHOpGKLE/BiocU1K1Lk946KRtqzKwfwpk7n\r\n7VFmp1Flwl3LIIIvSMGN6NQEmCq9qCTnzRdizg2edkRbRrGbJrv/3RlMSDVw\r\ncWK/YKP192J4ZReredXSCY+HsFx30a8syNhTNe9V04R9MN0rQqtBwCbbaxvq\r\ncgdpKNdy0haolS8idVxZ5agbfKTDrUCj1Y/CO4nHWUoMu8I7fJpC2jGcbP+q\r\n239z3SEWQKQNVGDqy0qqa54zpTnynQS1zXE=\r\n=a4Y3\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"aa35b60f452f21e0c3285fa59b6e3ee0c32270ea","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.aa35b60f452f21e0c3285fa59b6e3ee0c32270ea.119_1645189645572_0.781390234439757","host":"s3://npm-registry-packages"}},"0.14.1-beta.869ae1e19f5a56192ef2be535bc693ed175aec54.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.869ae1e19f5a56192ef2be535bc693ed175aec54.119","_id":"@preply/ds-tokens@0.14.1-beta.869ae1e19f5a56192ef2be535bc693ed175aec54.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"8f1bfcb3da3fc4c6ebd7fd60a363664d157b834b","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.869ae1e19f5a56192ef2be535bc693ed175aec54.119.tgz","fileCount":3,"integrity":"sha512-LEg94KrmQxIrpyvt+AY4a8bb0EI5A1mi7dQ1UhN8WdgCRmEp5CQG61jL7A94Xv4I+ee0DqPhdOxLaWgWtrGwqg==","signatures":[{"sig":"MEUCICAHMzFQVeHqjBo5OBI7+hDOIc/9+b8GMh2GZl9sHsDsAiEA1QpfsA5wL8c4Uh5wH+YFuJavczcW9k2+OimDUguArtM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD5vnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpU0g//R3D7YcOkN/u/5I7zxhsE/280UdWV53lL0XM35iyxCYnCCaNO\r\n6sefvArtta1WtDH1VAiUJIEstan1t/h0KcEOpa3DZvVzS4sTwIpqPsIyHaNk\r\ny3V4+gjs9qxriMmTVh+WA9Qd2fz5q4A0ssAk7Nf3PvnVKDGWZEUtHXBYkANz\r\n4hdXMa1wK5pmf4OvTUtwvAwnMIyZNVc65F+B9i+15WV+AKYP1w9ooeofdQW6\r\nN/Y+ILDqOpDDjl3iGF8Jd1ecKWltJcc95RJUzAIBIzxWP9kSANlN+8HJ5S+u\r\nARXusPtUCDOU8grWB1KvymT6OKzbFhfeoufyWCbIaB8HX8/sq3gjeCAouakz\r\n61BYGNdzT6yg3RZCPfClYHIPv6b+aOZv3HIeld8xxqdSq8jP4Ps2CxcU5tcp\r\nkVc8shgZoRQ8X/kAkBYxVj6M5G+8f7W6rrQVoP9bCLOhDy03rj02WQo5UXXe\r\ndn4nM5nvHg7f9sF8rYh7XRFsDQ+kl6tch40YG1yWxy+X1wxMsEGkO3fA5fHI\r\nf/sPvehmicx70dgdErtXif7eqzcR3Ki/Zpnl6ccfLrSd7AFt402hq+F9oCHt\r\n2SbwkPP5YUmxprRDS+n3h4NB/8eNR1EmlRiSKonCLSDNGs0lzsLYbmrjBhpv\r\nLcZYCsoM1btc7G1+NA/UzFJXymS1EG9L4fQ=\r\n=yphN\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"869ae1e19f5a56192ef2be535bc693ed175aec54","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.869ae1e19f5a56192ef2be535bc693ed175aec54.119_1645190119213_0.8602626051364244","host":"s3://npm-registry-packages"}},"0.14.1-beta.9e318027c208c29fdd151c503af7be098fcd595c.120":{"name":"@preply/ds-tokens","version":"0.14.1-beta.9e318027c208c29fdd151c503af7be098fcd595c.120","_id":"@preply/ds-tokens@0.14.1-beta.9e318027c208c29fdd151c503af7be098fcd595c.120","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"fd2cea6db8d51c726c63474de5f6b56fed960098","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.9e318027c208c29fdd151c503af7be098fcd595c.120.tgz","fileCount":3,"integrity":"sha512-FMri4M6Z8PLFTmahd79MUTaITlTaDs26f2w5b5qPE0h5CYrBd1OLRWGUoC7kWdQISkkazGX+nQJy+0zE5DDv1w==","signatures":[{"sig":"MEYCIQCCXxwtfu3M7oT20Xz0LKeStvlaawUFBAMMu/SGGG/JsQIhANY6BL0NlZGxPBtsAVjEkDzceYXpA9qC7iXl8JPQmf+s","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD87rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5hw//ZE6OYyBuTVpihuFwW3T7s8KcAAPCnbKAaLUvcOZZwwRilBVb\r\nVrsS/BAnEUv3QYib8D0hxS03cdDp4OnoXapEY1jy5akuuC2x2qiIH7iDzVv5\r\nt/afDiU0gpY5Fc58Crkk1FiGjmbej2yTqCWaxwds2JLmUROLAcSFuXuB0/G/\r\n7+OvdKEFZpaPVzBwBS75K5N8q7fjQlukPuCjW4kBHx/AflwL9Tu+7BV1ST8s\r\nXYbkxZTCfIZRfsrYVNiK2lyjq+7oEV5cru7RSk/bq0csoBzW4/PS51S+WLsA\r\nig9R8hqsXr+g4urM3wreay1VG+RkrOUanILu5xKZ7F2vfiDHX4/gpmQ103DP\r\nygf/8X7EYIhta5mW0jRz3iyEGrgMeFruyuO31o6hmBw96BxSBhiEg0mWfygE\r\nzHOlCANzzY4hcpkMa3m8swiVZmNOw5LaFBPG01emZ4/MhWKqYxn605CHEJFv\r\nkP57Xjtf1TX6lx9rSTg0hrSe3Hjk5jiw/zHZnQOmLtG4VKw536FZgho2nHCX\r\ng3T64j2fy61PYcZdIwMl2uG5ij6bHuZxw7EQBr62isrk9a8Zoy8IvxTgKDIZ\r\n4mJNyCUS6vx8yoPxkdfn291LpuIhPB17mzKNmTx/wh5AtGGt1WzqVZxn+7ef\r\n/e7Z3Pnh+NSVhM4EAUoyaoqmt9YGn5ogY2E=\r\n=T6Uz\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"9e318027c208c29fdd151c503af7be098fcd595c","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.9e318027c208c29fdd151c503af7be098fcd595c.120_1645203179664_0.7881653460794731","host":"s3://npm-registry-packages"}},"0.14.1-beta.eea85aef94278175c94d4f2b643311a4075ece3b.120":{"name":"@preply/ds-tokens","version":"0.14.1-beta.eea85aef94278175c94d4f2b643311a4075ece3b.120","_id":"@preply/ds-tokens@0.14.1-beta.eea85aef94278175c94d4f2b643311a4075ece3b.120","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"e0bd9cf0692a4c984f2c2bbb11b109232b9fc312","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.eea85aef94278175c94d4f2b643311a4075ece3b.120.tgz","fileCount":3,"integrity":"sha512-RTPCgJxTKbHkMr3bq8hh1OU5rtKVZePRMS0eJ9ayYMCE5yXaLptYZZZJyMWhHIJK2ANLAA1uvenYG+PAiaCoDA==","signatures":[{"sig":"MEYCIQCYtLgfZen+9aE2JAFXUBIHUuaJb+IpzJYBqSff+cDQQgIhAMecBuj54wK0mer8xzdeq8WQXTcp4KjCdTe7zBQkdtjN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD8/FACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4zA/9HxHydcvNuxcLw1XnGi4lVKGDW1viT+qF/mPjfUqWImqJUj2a\r\nK4NAQ0bGKF1Bwo4D2MOZ126ptioQj0CkIbUv949px6E5wueLzxqXiT/Sbxhs\r\niUsrJBo/qySYvpYQ/IQEbFrW7wEHybZG0RNO1PYCQOKSeDnzCuvVe27tesMO\r\nDJQwMhviGQRT+75kt7Yf5TluLs30tRsG+J/3XoOgiCGo/bSYpk3ES7uNYiSE\r\nV2x5nHwzxkIdeo1Jd+e8efW0Q5wMW6Ve/WZXDDuIS3DeFl0qXMEg7V2v7/eu\r\nZvL963n7FnC0V2NUA/kcDM949C5mM1UwBOkk7DrZ3VtzUu2+q9QeOLOH29Pl\r\n8SwhnizgPA7p0pTCyx+VVHzAZmiW1NsvgVjPf+7tm7UCv/iviNQqXHWIqbdQ\r\n6jnosOmR1kisiU/UOZwOtXhwaH8rOSB5P5w34K6rCWOfNtaoxdlmnzpL0jYk\r\nt6FcPlL1aUHJ9tocj3bvT4JMReEBsaLBa9Z+ytALetsT36eghdu/+ggq8OHI\r\neVZl/051mBwlV+60hkub+LKfVT3r55UXu7mxIB3sAsoipjwYuPkVVFzBAmFR\r\niPZ63KR+uAa9e3x8P1erj+6dwnwioj6cKwhGdnsE/92utIvymXBIgrY54Fuq\r\nOmbF5WYWzCCf3BgNmUO3l2AbBAbeQU8aGOU=\r\n=J2cK\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"eea85aef94278175c94d4f2b643311a4075ece3b","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.eea85aef94278175c94d4f2b643311a4075ece3b.120_1645203397803_0.7244142879131794","host":"s3://npm-registry-packages"}},"0.14.1-beta.7ff924e365888530f4dd4fa43cbecbecaff50f88.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.7ff924e365888530f4dd4fa43cbecbecaff50f88.119","_id":"@preply/ds-tokens@0.14.1-beta.7ff924e365888530f4dd4fa43cbecbecaff50f88.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"249ed7c766cd604b92ce0c6ffba2fb78c412b844","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.7ff924e365888530f4dd4fa43cbecbecaff50f88.119.tgz","fileCount":3,"integrity":"sha512-sSl9oORm8YGDY0/xKkUFNGi47tVVB1yNkLzmOLAxac6YaKgQW89hoF99rSwmPgudGINR+r30tydlNGcwoz7t4Q==","signatures":[{"sig":"MEYCIQDgCHTZZ5lExSyX9nk6bcvoBhU28WOIy8qj9uN3oB+d6wIhAJ1aJdwqQ4euxiZC/xleqQYGic653ta80sqraaSlKpWn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE2POACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoxSw/9FZy+ioo0NA5w0G2usP3sY3RpRcqBZdoFrE9syRWsBJq6rY4m\r\nB7ev4GHZQmKtuK59PMQZGyW5satlQ1D/PAT7BRPwOROgbd0j7Gbm0HjFsjk2\r\nPncoXwnTV5zqmNdK3ypUva/NPhrhkRy+AWwMT2K//5hB2xqjZ0IaoFnxt+kN\r\n7oXX1bWp2cncHS4Cvhy2oufzneneftZtcQ+ZctX7h9Cq1ichG+QxqY/qIeE3\r\nyMAdwVzA7kuB/zW/aVjUylq2qw9REDxmPwgNNDPRssTdpVmKC0n0o/26ltNR\r\nxf9Iw+YavzjBwGQ7KMXOtArGyWtTdxfDqZY5lPQruX5UK8F4mObMQtFx1Ync\r\npp36VJ1PBxHL+5qi/GOkFfbn08G/lBxqTU6yaoclPyiX9HiLPivmBvWURM32\r\nQvYrL4ZOhGphesnIXxItTXmo+oOpfITGWtT3Chxj+aA1TT05RFSrWweEg44u\r\nm64YwJ7J2lNB/2o4lDwzPpg9wXp3VdVxuF240FfAB1uqx6It6MQi8LZ8j3cT\r\nYR2Oeb1JtPRisLrRb28z1us7ys6MCRLBw1W4uGUW2j3/7iYzT4DcSkwESfkN\r\n/C5K1BaWSPO+xZ0vFcJMXm5UUsHREOJLqgSrgJ8colAN8LSzhUxWMEXBzFi+\r\nbWCOH6Xc1uA6xsOHBbxwy8VbEaK0hJ789KQ=\r\n=nV5r\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"7ff924e365888530f4dd4fa43cbecbecaff50f88","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.7ff924e365888530f4dd4fa43cbecbecaff50f88.119_1645437902306_0.8180763985614996","host":"s3://npm-registry-packages"}},"0.14.1-beta.42f03501e5887aac2f8f91891ee8dbd2ab01c00c.123":{"name":"@preply/ds-tokens","version":"0.14.1-beta.42f03501e5887aac2f8f91891ee8dbd2ab01c00c.123","_id":"@preply/ds-tokens@0.14.1-beta.42f03501e5887aac2f8f91891ee8dbd2ab01c00c.123","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"f901b2996398d119df1c9c551f9ca4a7a9aef821","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.42f03501e5887aac2f8f91891ee8dbd2ab01c00c.123.tgz","fileCount":3,"integrity":"sha512-2ApZGQfsbNPBmxnETyU45VFqKr+IUj4RwlrNpHfaDF/bYOFYvhZfnwRX39xN0lVeSiSDxids/42DtCLo/62QlQ==","signatures":[{"sig":"MEUCIQCY9Li8vlDYVsjM8v0tyL3gfn2PhMu9WAaBQdfbLahzDgIgPonod6QZn2eiJZsTqvzsbgbDX7YTfIhtekl0mUpZHPI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE2SRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQTg//bUAMAoGcJ7j80JCCGVkhcaFqvZWZAf3icm+/QnwxOdQhCjOZ\r\ntgm6oy3QhxSi8fv4Usz9JZ/L5j3J/RumHUjb96EVbSgwU434SqeTfktedK2v\r\nhb0fdDF3xL1xzwra1V91JKPrGOeeOkGIK0RG+Gw2pWEmoDGZvUQiCoD2A4IP\r\nL1EfyoYnQ2PP/FgMYt551ZfyvYCFA6lORw92s0v6/2vK7dzxlQnuxduCaOV1\r\n67rbEwE43iwEtGu6hyiWqbI/u2tK8qHzeyicTtd4g3i/SeUavxNVoApL0wat\r\n7IvDfmlqBFHU5hRb2wK/JOPEphxDPt0wS4ewq9mnlhIk6Lv3ZWqDtKH4U/tA\r\n5zFxgG/g4LBP9GtKz4kurBztJoNvE8So9YG/hWoiPfrQ3FZ38J49D6SsWh3L\r\nPfyqmJp4kKlKjTXKIhVTeolSVJLZAYruXqcfnYRvMCKe3HnAod7X/ZKuyQGx\r\ntZ++18QSPnrm7wPXSq6JpoExks2+Wp7oKgzyegyE7tbaMM5QxHkwbpPcmh3I\r\n0Bps0Rm/9wnQBx4z4JKD2YC6PAFf3RjLCt8mbh+SArEtCXRYUAfFAs4Eu7UF\r\n24OF4aW4uSPJJzAwa1StAZceXP/XUvNsSSLKPCGt7WrCSf2FOwD2Lu00IYf5\r\nFYm+dE0MtHJ9KmV1YDV/fJD1+h1HTUSlX/A=\r\n=1Tx6\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"42f03501e5887aac2f8f91891ee8dbd2ab01c00c","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.42f03501e5887aac2f8f91891ee8dbd2ab01c00c.123_1645438097196_0.1655311818630434","host":"s3://npm-registry-packages"}},"0.14.1-beta.be6aef12385b6576bb04665d01c1024d76758832.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.be6aef12385b6576bb04665d01c1024d76758832.119","_id":"@preply/ds-tokens@0.14.1-beta.be6aef12385b6576bb04665d01c1024d76758832.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"4b4c5757b9914b318ce830e7b40f064219029e25","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.be6aef12385b6576bb04665d01c1024d76758832.119.tgz","fileCount":3,"integrity":"sha512-FJl71fzwWNCiUjU+q6JekILXD5UlyhN1wo5vpuyyJj8TUDbzcHk0hd4EJ7cszJOEWzgKxVfW/4qsdGFuiv5bJQ==","signatures":[{"sig":"MEUCIGxasuCFrqBj7HZH01wahP4yTlSusr+B0yldRKkl+VEgAiEA6BP9cABpqeWyPM0ndjhUi++A0uCTmFlidjCLFpvYFwM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE2SvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXJw/9FZLTHgqrY4Ag8gnEPOnRc4lmvbN0v9Bc4zlI21N3CzMAwoOt\r\nOV0OGCWokCieaCxYDOd5QiCN/kzEAQ30jhJK2rmJkQYn9LBmf+aJRifPP04f\r\nvGsAjfQj7LPHuCbCHLgalGBEWaKO5ZI02cTbrF+FM9WiPhtTqLXv70feGIiw\r\nV06Mk0pEa410/oxeN+E6rMf/8SpYAgP7u+mGhG+REa+nfSFvgRkZ/xR3kpRN\r\nMBFmI5txyxjP4rOeixuk3Y2/uDjbuliEkjv0N+KRmH2bUaMdfk2lw1bKB7ee\r\n8ss6kHeBvQF653RjHOoC9jDhNHnpQOUIqsVihG87S8K2CYdG84NSlBSMX48I\r\nR/mFzdmVm/1A1kF8qwZh31LQakcOTLb9hqZgHzuHfqYu8/nbnIdJHoJlPT1S\r\nEqc2Wh7BVvjpXgl/LUCjbep0/7y3nNAFH3e5QeL1T2GqsxlZVPtfwhNGX5Zk\r\nJUWWgvBdCmziKmmOq2wiafa9W9BQsZa7wyLrFpHG/qyXja7Lqr30v33+vzvr\r\nc1WtggvPEgnpV3pgM16YJNGoj3JaSyd2sgG4g+rIs5lr3E406mdfIdeeWOIo\r\nad9auIaXyfFeyWkuuAPC0bGKUjAO2pITkl/o/brSMQg4wNcZlBAlx1/tu+bT\r\nQMx3vtqwNGT6TNEyWDYlnKAO60xTyK25+bU=\r\n=OVqq\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"be6aef12385b6576bb04665d01c1024d76758832","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.be6aef12385b6576bb04665d01c1024d76758832.119_1645438127129_0.0769588100146148","host":"s3://npm-registry-packages"}},"0.14.1-beta.4a0f8108fa329c98d571276f1db5215142c81caf.119":{"name":"@preply/ds-tokens","version":"0.14.1-beta.4a0f8108fa329c98d571276f1db5215142c81caf.119","_id":"@preply/ds-tokens@0.14.1-beta.4a0f8108fa329c98d571276f1db5215142c81caf.119","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"9c71eb34bd1ec50d141cc42116329ba075862253","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.4a0f8108fa329c98d571276f1db5215142c81caf.119.tgz","fileCount":3,"integrity":"sha512-wPAJ1mNRwcnBJle1BcaMDoVbq0EOVJknQxWnJ9uYK4hTR/CJw/mn7CqxsBD2v9t/0lDTyXiUF+eFGph+e9u1BQ==","signatures":[{"sig":"MEUCIQC2oB1jLCPoWh+67cVMtfSlYhqc9+lh1gcAJqR8JHWcagIgN1M8O43/GQx1QWBVwj7sA3VFZFDByfJNOLKt3IHNkEY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE2T+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpz0Q/+OOSElTLGeSyDwyXw4oWhT2FH/2DlYkdxkGuR3h1fILBPtl86\r\nGDujJtAHl7Vp76igVdCzmt8Xlse7IlFcTScdo1UtdnVn9CaCJzaqgDdXa+MB\r\n6QHz8at34T6nZOzT7p2bMnPeb/bhvAgagDH7nCijjyJ+FKBvt8uA8p8PDq65\r\ndIeBA8Z0vtp/b61GIq0WCJ+dmHJCDZzQllZ6FzUm21wfrLMr4vqsj3dMB0pC\r\nQdI83aWg4QtQE9V+bakdENOGQqbtOaCibsC48Zl+oLPkeB+GVI6N8ForsN/s\r\nfXonEwUnuxDUQweoXtMwFWgzvhPkHLiXHk8/8Qyv1hn5BDhaM52FVp+0ho+X\r\naQPTL9rFpa5NAjCxNJrPg338hdAVNCAfDcZP9Pqj5DElSBewIsB1DPlW/Hp1\r\nbu1ieaRkCPmH9jLplzuUtOh5bXncQ4kIqMqlVkLXoE6xkLsuyvwhRWNEeqxH\r\ng0Gv9L/tcZGF3NrC5l+jFd2HKxGB5rxt7yrClv4KIbRkMX3K7wsZeORVTdr2\r\nIBORlLX/oKGfyJuDKOgro8q5UMaQLEXiDByWprAGo/6IfcvitjdFNccW2v4j\r\nA8mBK3h2cdjqB+jVcR4EM0o2Yb3IcyzO8zMyaUVeNbUH8Qa6ZQoirVZfBgfo\r\n9pxNYSG7yvk1YLFlJD3wmbgB7t7MxyLY8fg=\r\n=YBxH\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"4a0f8108fa329c98d571276f1db5215142c81caf","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.4a0f8108fa329c98d571276f1db5215142c81caf.119_1645438206703_0.19264348481261728","host":"s3://npm-registry-packages"}},"0.14.1-beta.9a7c4f48ff28e6b281cf92e11c3fc3bc17dff15d.124":{"name":"@preply/ds-tokens","version":"0.14.1-beta.9a7c4f48ff28e6b281cf92e11c3fc3bc17dff15d.124","_id":"@preply/ds-tokens@0.14.1-beta.9a7c4f48ff28e6b281cf92e11c3fc3bc17dff15d.124","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"39b02f76ee11c0a67a66afbfc589109c82cb0c38","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.14.1-beta.9a7c4f48ff28e6b281cf92e11c3fc3bc17dff15d.124.tgz","fileCount":3,"integrity":"sha512-nLADuvPiF3MAoqswrqtUsLmOOH1gtpa16xJT6qcYBdlTyxxIdTU4W1eHVe2PfeDNJXVVobReEoMwQACSmBzr4w==","signatures":[{"sig":"MEUCIHAeb6EAjZR5XJz5pOwyv+zIpVUR/81+eAgUU5ETyYMbAiEA59TTADOacQ2dwsrE5o8ulRcIFLqfk4/S+fg8cXSOtKw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE2lJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoEWw//fDAecDrmQ5LRxCDSdNm1D2AAohC11u5AbFI0OFzorinOy9LL\r\nFVpmsUUAe7zgk58SsQUXZS4XixZXsVF66LNJLdbNL8oVDkf2aWhTUCshT+4X\r\nu5ow4ssLpwdvm0dplERDzjeCIUw/mM5RiVFzuUGnYjaT/tUSgA2vk7CuKf1C\r\njn3JvXOQCT8UgmZm7TcWA+oSJMkcnDruwj3QiYZeHwmHynDMszJLcbSOPFWU\r\niORJF8TFThzlu8YXnBqE5qGMNC01Hfi7brEtQcq8PQoRvPclZJPNotPHeUp+\r\nYEmHmUTmYknctO1WSrcviSCcZkySsxJ9HZBohA1wqT1DAThR4S4GFocIaRvk\r\nrJecmKvRswM/Phy/q94wEZvvqrYETjJTl6GupYfMtYydjbFeZPTd1i8FVXQ+\r\nauYoZjaeWYghCQ+kbhejPuS6tz7jge1fOUc1YRqpp/LouF8t/YRlmKZaabuh\r\nHhj9Mff0VfuSRRY32j5b3AbBm/Z6qNYVuLzV/MJIjZq4dEin6zPbZuaXFgXV\r\nppe/xHDvVxc18AVUZT903irG6dKaBOTJg5DpH//Y1x96Nb33LvJ3gJI8pa13\r\nKi76qwgwoxeba0KDq/EqASLAW0kkJAKTwIeIDQWmb0SVfKLkXT/RpPikalia\r\nq/SW7Em+qGGDORR3PQE81mzOufXvUMRi0m8=\r\n=PrnS\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"9a7c4f48ff28e6b281cf92e11c3fc3bc17dff15d","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.14.1-beta.9a7c4f48ff28e6b281cf92e11c3fc3bc17dff15d.124_1645439305436_0.9797887968733199","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@preply/ds-tokens","version":"0.15.0","_id":"@preply/ds-tokens@0.15.0","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"e2bc00d6c7b7ec87193fe39ddeb9a0b2c0867f73","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.0.tgz","fileCount":3,"integrity":"sha512-B4UEGPX+1OdXZ+LdUlD+9gPlBaO9TQbecw1MMdPAQatnN3zUDoJZiY/OhArXy0N87pJWZGaoR+iDiyZMZl80rQ==","signatures":[{"sig":"MEQCIA1Bn+Jf2ankJhVHTgUetrSA23txiM/E26E3NQ7wwtz8AiBk+1rfo5b0TOBNUUUAXQ9zjxsUfYuho7GD//aSstIrOQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE55EACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6VBAAjDAvQVL3qJWHSimdYm3RVVruFfCM8l9aLx/yCy0Rbkkkx9zA\r\nKp4OfVj/DxcugIdaA5El8Vl3v1Pez1wzSjDzyu29Du8ZbZAvRemHfHbHjNO3\r\nPjyB6Hqllfqqw1EASdhLivsFLRNk4V4/9SjTNvIYIVj0YarnR2NhmddUG5M2\r\nQ4Qd/iMkH1H6vvpSNyueqZbXczjp0LDkgfz2VOUVygn/iJNPPx6YA+TdL83k\r\n4iAe73rdfFzWgCHmsuq/JKFIc6/wL2wj8/cohAjCqC2tnJPFohnUMq78aRRa\r\nwIs47rwBCMJoW0HoeF/TrWB1gtHFOTr4YWR1t4ksELi7GgaV1KVKEz0csNZm\r\nWwu7UuQALLrdi6UC+4qM7PFBMRPC0HEFAuZ4y97NKz+ShlW0QcsnNdlaXvWE\r\n3AfYIfQU86e9iw2VrMgJQD5Q/J9SDTqsTFpRubgGSVjIReH++yKv3ZBqO/6b\r\nEFvNXhPSUY7dEouMPDdxN50uZ0OaV/sZMl0oNHRFkuSB3tYMOD2NH434lsKo\r\noB63dpfVe6c2FiFCh2xsuoN3E7SgTshBEn2GalnExfPRcLCSN7woneDjG8da\r\nB2t+2aljqWydj5rhFQFxUcTsrElxELojxU1BWC7HSzZ65Smrq4+glJ7ZjpHn\r\n2Zv/MgnBBdX5yWFRczwawktHiqWh9msVwP4=\r\n=0LJR\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"471988f86d43dc6ffbb07f1fd76a4f759955fd40","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.0_1645452868511_0.8346884492891808","host":"s3://npm-registry-packages"}},"0.15.1-beta.6b0f2cd41223f0a3222bd004cd379a76368d9c91.120":{"name":"@preply/ds-tokens","version":"0.15.1-beta.6b0f2cd41223f0a3222bd004cd379a76368d9c91.120","_id":"@preply/ds-tokens@0.15.1-beta.6b0f2cd41223f0a3222bd004cd379a76368d9c91.120","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"c0d2b76b4d2f0bebfef73d5f192f2364070dc1bf","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.6b0f2cd41223f0a3222bd004cd379a76368d9c91.120.tgz","fileCount":3,"integrity":"sha512-24MaCvlc9BIl+i+hd/zcRLKp3FStQJJWF7XhsuKG4wL3rQZoyj6+79xoYBvYI0BEyMvRSgJZtQvp5mlS08MYyw==","signatures":[{"sig":"MEYCIQCxIKpRnlp9evauJROxy7XJd6fsfbLIxXv4wy6Y8I5ETgIhAJ8CRn/m7YMFvrpu7JlsdM79tqOVw9kasuyd2dbDVabo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE6B/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3gg/+OwmJIJFADPP9hVGj33QS+9pYWBOc31HIl4ljFa3bQMj4obFj\r\ny/DppypPFobGn3asYeZaPwwbKM+d66mPqkp74YHuclde0GrdeZRJGrGvfWaF\r\n9vWO1EL/ciViPXdXMw32YMl5IvNs2p3jLkgooNwyWM2Im2E2kxPkF4FstRBl\r\ny74c4Qu5m052TsB+4Dchkuj5cQ4KUjDUZYdw9IxXtEbjbz+ZV5J/OfFhCLtJ\r\nLken/WfhiZXCvrsGCR/uvTrDiv7m5K/rtnee8U9VXh/cjFALZYxRBhZbtD3u\r\nmtfs+bTOoMQUDaRm53U3Av60GX+x4MY7UEGIp5cF9Y9in/z5kkUP0H8QCk7j\r\nsfe/+ywADvUHTpg0KEEU4YbQIaeiMEQzqgiY5C0pxmmq980EqM/0dE1mYSDt\r\nzF/VcuBeXc4/whtrDk02nz2oya3lnayjqMuwqzijNPxiApot5DZ3/11KsAkM\r\n1vOhFd9tq3fXig/c4NAlbcXIoRALeH4mEM6B0eXLTkCfTMPCx6YuI81rrqUU\r\ngu8UDnG4SVDi8VPx402J1VnY06qXSRxVOmF534r0nprXsr/XFJNO+3utK/TX\r\nxGe8lwNYgrGS2d0tU+Ya+cgerkEhljWQjIRHhLEmx+7VUEpE2g89vpy0h1Fv\r\nvoTvP/78ngRv1iMHv7EMnym97j61++w4Gi4=\r\n=Zj2j\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/index.ts\n  - src/generated/constants.ts\n  - src/generated/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"6b0f2cd41223f0a3222bd004cd379a76368d9c91","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.6b0f2cd41223f0a3222bd004cd379a76368d9c91.120_1645453439246_0.010469371547652484","host":"s3://npm-registry-packages"}},"0.15.1-beta.494529817df191f76cecf6cc898ead43ec753ccb.121":{"name":"@preply/ds-tokens","version":"0.15.1-beta.494529817df191f76cecf6cc898ead43ec753ccb.121","_id":"@preply/ds-tokens@0.15.1-beta.494529817df191f76cecf6cc898ead43ec753ccb.121","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"fdf38a1da21e79ae46e02b9e514dfdd03232e150","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.494529817df191f76cecf6cc898ead43ec753ccb.121.tgz","fileCount":3,"integrity":"sha512-Xk62jVggXRW5C26qzmEYkJQja08iLBv1xh2AbWZ7MlyDqNm6GO/hyyN7VD1j/AOv7iO/vZlgQIxTNTI7Wd7EFA==","signatures":[{"sig":"MEUCIA7uG6eLSovhxITnlAIHoY2PvJWL29/l/OiBkDkW/42XAiEAtdSBwUU3bf7cWHo4imYd5mvzQQEtrP/DXpBPHPYC2Bw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE6ObACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogZg/7BFJiupXANdCZxx9PrcLOus3ElHUYNClC43jWjZ3BnvFg1/lb\r\naBNsoZEHHbm9o1Dc0QzA4fc+CXXF7UhG8YsPyWolPFwMAzHMVJ7kJO44D8Ja\r\n9ORrwranWNrsMi3lhXNVb0RetI6YwgjjlHLMKDe2QU7ubZp2X16NRQMNMZi0\r\nwzOGTpGF5rqTrj2Cqrt+JJSWakItmATS6jI7cHOgzrXPgpkfgCQ6zfOeGLdB\r\n65I6faLJyaDMpw4EHcS3elqmaIEE/YxLNJ710tY7F9E5DfGqoCGN5OtI2BZT\r\n5EUs1EEgrX6s3Ct9o293I7TMQ6f5vr0u3geQi4mpquCxp+d2ukGuSnnFWfPi\r\nltaiSf/WrS1Mn5RECFao6iC0cK6UP4LkUvEEsmhXbOL38tVixQD7Wycd5EeJ\r\nz9uHcO2P5RFK/jyPiYTH8Jm8FekiyKMJEqvYqY8bgsiZv7sTILudJMq5SBjs\r\n9tgLBOMFjxv+PgAdJ6/Qzp74N11xduqY4SOx69msGa2XRjtRc9KKJzo2b1lq\r\nPPE8/dlY5s9kIWjQvu4b0vaIagAluvTPvxuneLgjp2wlZPi6vVOGBZ3Cwllb\r\nDFiDfp6KUSJ52sncxTP+EkQlxU3N/kWJDiFRUkPVN2rAGNuO07t1f05O2GbE\r\nSo+HhXy30Yajd+U/yAzhewvowyNfFRFs8CA=\r\n=BMSb\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"494529817df191f76cecf6cc898ead43ec753ccb","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.494529817df191f76cecf6cc898ead43ec753ccb.121_1645454235073_0.48096427755019655","host":"s3://npm-registry-packages"}},"0.15.1-beta.9dd08f6d3d1245309ee55b182102892f88ad2edd.122":{"name":"@preply/ds-tokens","version":"0.15.1-beta.9dd08f6d3d1245309ee55b182102892f88ad2edd.122","_id":"@preply/ds-tokens@0.15.1-beta.9dd08f6d3d1245309ee55b182102892f88ad2edd.122","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"efa708fd9c351a24399deb72653f6258d3613c1f","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.9dd08f6d3d1245309ee55b182102892f88ad2edd.122.tgz","fileCount":3,"integrity":"sha512-HN9JkGM4qimdPv/mEs7naSrOakyrpjIMph8+LMsNz6XcjPuALgVthIvKzOKvbo6Yo8lyVwPwkwQtzAH77KRQMw==","signatures":[{"sig":"MEUCICXDcABbQ7j/odL3CidSskfr6hAFe+MYQ8FUsy+sQqdzAiEA7uBaa/GyVR30DL3dBEmtez2IjRMZAjhiSeGBHkSM1fA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE6Z1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0ZQ/+NK/MeZsEADyHWdzALpEQwJxyVxy1eJEkrEj0nva8qHh0/alf\r\ndkJ3597oc8EIRrltJ+9QBJwSc2LRJ13TerfENxPf/VwZiZ8igZGauGiKzIWa\r\nsFLub+Rpp5qyLCltxFhHDL1X67R5cg0GteUUYQ+Jr+8fjfeZP5oAUJwjpt15\r\nlZW1bfsQYsgZECxrLCiz0ajAUp+l3veyaYs4hEmyEbXH2nD1vZuY+H1sM6HG\r\nAn1vrJeaaJMK6vzo+ffeCTykilFlD3NXt2T+yrze0vyDxntGQ8UOCUBnumJx\r\nf0vXkv3si5e5vyFOpyJShIVKKhEyEXNkQn501zS1CD+U9nK1a2SnBj81CA8I\r\nLWqHTMPUKzw26C0Iza0Ch2vPF5Xrl6wvTsrWXOS5y4fDGSYglIn9wB3v+cqQ\r\nrcikAs28gBbwLBbhfg0EdTZSjFoYPfTt9wwGtnHKfMqm1Vsq51FzBKdsLEIp\r\njyCpygz9L7E1UPi/aeRc9RCZLEpl074k76/5OIrYqtUW/7TwHJzWoFVz8JnD\r\nWCQcgjLEYfvT0vd0mza1U/CXIIL29v4okALcbca4wDd/UaEwptzbz1bKTgA0\r\nwpHvp+BQa4EJkrQUNCI8Ry3bM8p5ELMyBgL972f/mOI2CcSvUhhHKfXsMuxh\r\nDvcdHe1rQpDcssxDMkTXROJUlMKQ6JC7zTw=\r\n=G/7z\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"9dd08f6d3d1245309ee55b182102892f88ad2edd","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.9dd08f6d3d1245309ee55b182102892f88ad2edd.122_1645454965822_0.41999627082800184","host":"s3://npm-registry-packages"}},"0.15.1-beta.3eca60ce4f385d81bfbd2bbf9926fe1b63ed4905.123":{"name":"@preply/ds-tokens","version":"0.15.1-beta.3eca60ce4f385d81bfbd2bbf9926fe1b63ed4905.123","_id":"@preply/ds-tokens@0.15.1-beta.3eca60ce4f385d81bfbd2bbf9926fe1b63ed4905.123","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"e1a076d06601a300f0e78a5ea6c932d0f9eabe91","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.3eca60ce4f385d81bfbd2bbf9926fe1b63ed4905.123.tgz","fileCount":3,"integrity":"sha512-KoxRkijNIqnMmGhk0nUSfn0+nb5ft56n60Glbue4I1TjzwkdySJx4wfP3640DtrXAIBpS3BxhRodrwE/RGkxOA==","signatures":[{"sig":"MEUCIQCbWDBwvdXwFrPZz0VKuQVgNPMhbLL8jiQIOnXsn8hJMgIgVgEXv0xGZdpjFNkJr5/l4VyycRrZQLOcxGrIsMM64Ik=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE6oLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsmA/+J1Ds+pVio+jITcUlHTScREukr1WljxPgB9Miaxhfc1FdpNLt\r\nVbDTzDue5j3tyP7BZOp9w0IJhMogZUyMMENtNXFzkImE3huG6FMbzutoiO1G\r\n6VbX/52vGbs5vUgrYnq25R6XxSOthfgcehn5jYKdzoCWIVl9B2wfQ9Vkxs7U\r\nAz7oFyjXCyVx8Xdt5pxbkSND5XxL37SUpUxsLr9p8ZFEdEJNHdEg82eJAF5S\r\n0dxp55ADrEyJ+O3d3+BJ8Mzpr+BelqqMkXHw5MT85CpYvq+3yJWOcejGtolo\r\nhqhUEqmqioehm4PRap8Uen09ftTr4zZ/1WGBugSen0/iBP5jdAiv9k3v07cw\r\n1xtpoZ++yyELzsaCRJIecyjG40ZC9OTtvFPnLEwrkrWriILkHVglUG9sn/zw\r\n9PLcGqigEo+T8jLXFnORBv4RdkTxE4Okx07o3sOA7/vvs2uT4OyZe0ey7xIa\r\nt7kDfd3KDKJFESiMkEyFEU7noosA2RPVz6j1SXoQNCuVFQUcWDFNraouSfL5\r\njiJod0eQsAXZ7tNCvjNcSbAniPnP/DUnNuzTrTK1sXGun8RQKjboX2u1YPOB\r\n6fu/RkSKyL3W6q8GOrjrwwJKj/hYnTTC4r/w0rk67ixjsTSMzbXc/wQe0g+V\r\nUuVu6eIj+isJZzFWK19ccG8nQa/v8SyuX54=\r\n=bv0x\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"3eca60ce4f385d81bfbd2bbf9926fe1b63ed4905","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.3eca60ce4f385d81bfbd2bbf9926fe1b63ed4905.123_1645455883622_0.3809886891935794","host":"s3://npm-registry-packages"}},"0.15.1-beta.01eb188f0a2791b0537e6ae0ead492e6453407b2.124":{"name":"@preply/ds-tokens","version":"0.15.1-beta.01eb188f0a2791b0537e6ae0ead492e6453407b2.124","_id":"@preply/ds-tokens@0.15.1-beta.01eb188f0a2791b0537e6ae0ead492e6453407b2.124","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"536130c1f801e45fec2a1fcfa6f05c3a73a11dc2","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.01eb188f0a2791b0537e6ae0ead492e6453407b2.124.tgz","fileCount":3,"integrity":"sha512-dh3wmaCePZh1BJvneE+xznWt7/INHE6VCq9y/eBrKgwZ4ev/++DtuiwC8o7yKtytmihAY0hqtWQ1qr60v72Oiw==","signatures":[{"sig":"MEUCIEe1lyI4HVnFAnYOU0IC+xL+nP2rZbrF6NJFtcGIvGHrAiEA5p8FDRQw8NMW4i+9HQ/yFHxGSPaPJ7PGD6jS6j/Ssn8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE6rDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqW4g//W8lNQUOLOiNqEjXnrUaOFnh/Sho2UBwkbEsbPNHPZp10pjcn\r\nh+/suyf9LiTNMgcybwss9XohrNPwiiLn3LS3sfsg4tYPCyl1zlYNdJK/zdWG\r\n8no0gR3YwS567hZ6+r8ulIczrPpQ+88nC8CVR0lBT+oupUu5YCTrokUPT6dU\r\nr/JhXiOtGCiGHBr3sMp+cXoSYsJETa/+rhwN1vgTJRj5oMWWT2ACTlbEXttd\r\n8yyWAtUul2qYk5VCRgbywhww0D/CKZOzdcmMwb2JBZrpdsTF4foaOtw+ZrST\r\nrUad1Vv8obp2wUnfJd8/eZvChpObpW4IO9G1YbcEWvlekgvCDIgIef1xvdhT\r\nDWSC2b7Q3ybObMZ7UbV4GRSqSkutCop6/gP6/Tr4qRVUnIxWNWy4Owpz1qv2\r\nbarvQY51bfD201jfiJyT/MxDVYFj55v+UYznO/sQZNc5VN7m9CIgnp+WiVau\r\nfVBKILSjdu6iYWuBInKQCKn3lj6fArtDj4gLCjuU42L0tCi9rMEd6V3NfksV\r\nUESDVQzV9Ndljn3fDewpNwb9AmlVGeI8vc377ptNNXUTqK/+gYpNB7zPb6uJ\r\n5K5WzMtHzkZpBmivvjo/V9Zfe43SSaQ7FOnQKgRQ7KBFaT5XxzijcA0Dda9K\r\nUEB3IRh7oTgP5+Ixqqgj0ZcfpXH0Z407f1Y=\r\n=2xVr\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"01eb188f0a2791b0537e6ae0ead492e6453407b2","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.01eb188f0a2791b0537e6ae0ead492e6453407b2.124_1645456067226_0.09117588637839424","host":"s3://npm-registry-packages"}},"0.15.1-beta.77ac96ccf8f9eb268941b1405cb190ac03610c2e.124":{"name":"@preply/ds-tokens","version":"0.15.1-beta.77ac96ccf8f9eb268941b1405cb190ac03610c2e.124","_id":"@preply/ds-tokens@0.15.1-beta.77ac96ccf8f9eb268941b1405cb190ac03610c2e.124","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"1d61c48ff2552bf45fde83d289ff24241bb903fd","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.77ac96ccf8f9eb268941b1405cb190ac03610c2e.124.tgz","fileCount":3,"integrity":"sha512-a7O9aHofFZNAvBQHo7ohr4kex/F+VwlWa3aImopfUX+CNyHAMUrIBEKD5iejO6lV2FKcC7KORwjhoPvnrTPJ+A==","signatures":[{"sig":"MEUCIQDRvX1Q3AcaQF0vXzdLsFjshGWnv6nLiesXEm3BwRFVsAIgdzXbRLVyapzstLOMwoUjh5FlbFCeCepim0L3hQodoxQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE6x0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLhQ//YqYusPk9MibbgKNNFoPVCP7PfFG1JWqidPhTOfi9qeE4gAKG\r\nxis+kV3i0VblvK0aw7rnEQP0IlvezvMQ/xll7luuBrrXnIk7QOTi+hedsTEz\r\nmh9iNXiucrg8wnbeo1P+wHnxk4U8npdupXW24wgdWN419Ha0WqJ/AYp6oLV1\r\npXpf0kPzfMHG8p6WuuWXP3X4Nrp2SuLc0wAIxxe9jrwSVH+HFjP9baLRw3R5\r\nht2aCa1yVurZR+Jib/orDsXPmDQ7ghA6/rL3MyG7j/Nn6PUa+Yz93MIotn9N\r\nJGIdyiiaEY8pP5QHLWXDUJhhd6mFbYmGnVOvumWUXMfFrMccOK3qUxCFx/3P\r\nhvb+c4GiWP5R1QXi8f1qb5mqcXG8bxEgy2D/2GoibliW6YqISP5QODVNOEbv\r\nEiiZ1uIUhfhBLYK1pMuTFWwBHeRK6gaQ22rAIxQ8u1+9msf0DVZcqlT1mnPy\r\nwOg0f9XtJfKs+Q85FdbrZcDUfg24Ej8x+s9JDaNc554eK/ewSIWhCg9kOGU+\r\nFodC91cKJrrLnypBWh7OaTfDxqBEO5RfgDgfTykMZMcJXQh/53r7qE3OAF0U\r\nvFt+6JvWfXuwqehdbZCN2j295ncomE1MXRqf+q/e1FOrd8t/6UC1iX+/Kc2D\r\n8Z/KcZUKKe2+gqREIBSD3ggBhGvS/NIgDf8=\r\n=X67s\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"77ac96ccf8f9eb268941b1405cb190ac03610c2e","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.77ac96ccf8f9eb268941b1405cb190ac03610c2e.124_1645456500528_0.8520111565740189","host":"s3://npm-registry-packages"}},"0.15.1-beta.35bbe7de1a49f21766d307375bcf7a7af1ccf50a.125":{"name":"@preply/ds-tokens","version":"0.15.1-beta.35bbe7de1a49f21766d307375bcf7a7af1ccf50a.125","_id":"@preply/ds-tokens@0.15.1-beta.35bbe7de1a49f21766d307375bcf7a7af1ccf50a.125","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"87c127d767fb9f7fddf39bb99d990e0eb6bba24f","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.35bbe7de1a49f21766d307375bcf7a7af1ccf50a.125.tgz","fileCount":3,"integrity":"sha512-VvW2onqQefFHAmaflPcdPvRPbNE/8LUii6eyjguX1yuotzN5yGx1p0kuSUjmf7UfLS/08xOvoGFqEibADiigpw==","signatures":[{"sig":"MEYCIQDf+xA27c4MtS0oNSuIFlGNi6DN69bAU90coLyJ25L/KAIhAIrxu4XKiQathljACkgwdLz388FJpFn1gKskaie1i5le","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE6+bACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPWQ//U+dkuuiL3xwP+h1c+O1IxhJb5YkNtbCb32nSEXQ96HcDuc+A\r\nkEry/1IR39Cu1hSC38YPW2Hl1HBkZAQuOi1ugvCZv0kl+oP1AuDE68VSFOfn\r\niL0k2dHV5XKbOGIyAFvSAw00fF9Rce6dsL92Z4bB5Gw0ECly7GgRQRCe5J7P\r\n10230vuhgfs8sNuaIgZ1LzHGx1LIB5bPgepX+GuYki8EI4y0KQNRXKXwjfvW\r\nUQNOJg7uQ1Nyn2Qhum1TKRg7Bo4YCR6SRM4ZJm+EMA8hkOoTuaVBhfuh9a4q\r\nKjyJbd/rFbKFZPAck9I5SJj/lnr7xFpaJeC3OuXIUTsMvCH7e1Jk03U2ZoGK\r\nICquQn+vC5I6hBN14VYc7RcaZ7jQ7QOIggsAUid0yFBmmfgf6ugkNCzG3wyg\r\nk1/MBVHnxFTKcfZ/FbQ6iOzPJFiqkftzlUaMZjCD5ET3KZlmuIyO8C4p7Y10\r\nTznwQOWuqJp2MjuCBtFQyTmUg0UGFnz1xczXWeYqiu0F/fzkZGHC67YGIzG6\r\nbc4+cCJ+HZ/B8Hq0MneyqJlCGNSwjr1mzm7fhFPcozLnH2xSRFS2bud6zBcD\r\neylO+do61rxAddrw8XpoEPOtX6bWvJIEocLoFRtOYUfFENb2DZooqr4S4kkp\r\nmLBHdu3QjadmUEhnra9LDPRsWrp1iaSoP1o=\r\n=uNWR\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"35bbe7de1a49f21766d307375bcf7a7af1ccf50a","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.35bbe7de1a49f21766d307375bcf7a7af1ccf50a.125_1645457307576_0.8034994765712844","host":"s3://npm-registry-packages"}},"0.15.1-beta.e52383922756a4615dd0052e15a18922c635fb93.127":{"name":"@preply/ds-tokens","version":"0.15.1-beta.e52383922756a4615dd0052e15a18922c635fb93.127","_id":"@preply/ds-tokens@0.15.1-beta.e52383922756a4615dd0052e15a18922c635fb93.127","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"c93253c186b422beeea6c57fc3181575a2bf49ec","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.e52383922756a4615dd0052e15a18922c635fb93.127.tgz","fileCount":3,"integrity":"sha512-3MZOnXyNJy3XQTt+yfkTV2jWyqohKnmCTjMS/SSCUIDXHa1rG2QdujKojY0G8G5tsmAyiGUHvaDAewnq90K5Ww==","signatures":[{"sig":"MEUCIQDzT2YaFhIoudBP4Ap0o2kUyQ653+5LnJw7OziKjuvtEgIgJBDVDWa8aFn411g29EgNW8GULKrvJi6n58rEHl0MJsQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE/LTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrsvg/+LgzH2M3Xc5tgktb4nfIc2E5bpdBo5UPRfX52lomoZWOr6nRl\r\nuRMQW+py6t7SL3ABvGbQXZ3Vz0lbADcKFDN6xni90G0bSTxaIzsvlgfxMdll\r\n097bpnkcAuaw99qteYfU+orjedzAa150oWl9d5HL3HL1U5E4Fiwr9sErIPUo\r\npR5QH1n4vzBnl3Tjqxj8V/l5p5vA7inGD54EE820RTrAi8hpG4zE1QFjYpCM\r\nZcNr3Of/fbuFmop3ijpDm7BIBnpHDwb/OmwJ1R6zdYDdOVvb90N6sMUw37Zf\r\nvGVI7VfdyeoOn7CZu74e3g3SYeVj6VzqIzfUXuRMAlVw0dTghy/uRzZeP3Hh\r\n2xIzETxojDwX6isWBoYOJwASkHDH4eEsLut/ehGEi4fz2oppYoFZ7Lb8AG/1\r\n896hLxeUV/zPdn0nVlNI4I9PzrPQeY+bH4Y4WqsY2SQMzOsuKcFO9oujF/ib\r\nyHS1HQk+ipJ6Fwd4Sxu8JkVcvR3VbZodUxtR5CGQI3aiyqY4pVJsJCqA7lyI\r\n+KqMOaKhCv/q+8rYErdZJQ3vBl1ZVfxG6ZURyKVqWCSSvzFor/qfH2X8FwGp\r\n/TiZ/T7uLsaevUSp6rlrpyZr1twKOaoLQLT4nETTxxwX8QsI1d2E3Wkdcrzp\r\nWWgGHsFNkKIY78a3Emolr2OW+aLZi/0RdaQ=\r\n=h6Lc\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"e52383922756a4615dd0052e15a18922c635fb93","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.e52383922756a4615dd0052e15a18922c635fb93.127_1645474515220_0.6124395754915308","host":"s3://npm-registry-packages"}},"0.15.1-beta.79dabff803a37184a04dfaf1d4a38e011772a3c8.127":{"name":"@preply/ds-tokens","version":"0.15.1-beta.79dabff803a37184a04dfaf1d4a38e011772a3c8.127","_id":"@preply/ds-tokens@0.15.1-beta.79dabff803a37184a04dfaf1d4a38e011772a3c8.127","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"138db8fbb5c3d7d10d485fa48869eae6fffe15e1","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.79dabff803a37184a04dfaf1d4a38e011772a3c8.127.tgz","fileCount":3,"integrity":"sha512-gUOvhD9yrZpokRZGYUSUaWQJ1EBdkgpJ//8757uPqXKUi2TTAamVSgGZyV3KzVCPbaaRbMsLK7chX0W2vriskQ==","signatures":[{"sig":"MEUCIDLa7aL83VAszMfcN+6pC8vQhYZi4916N2NWXizV1WZpAiEAsGa93e2ISiOg4AbJyx/3dROSrr6bLtL7ffrb017dq0o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFLzKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmraIQ//b3wQ9yUWzJ1L/KmYIuEReXfZMzvbShMxUBpnkA7qz1DNqPB2\r\niEC6LUSF+kuDGQTg0fA/YUZ8Qs7R21GfGrVBIx6jFilMEg4tnl0VfydYnpwd\r\n+pX18X4uEafOk4PsWuqPrHDNY9L+mFR0V/g4Fe+kv5byxdLeVY2FsayyvEa3\r\nI8uRB6id4Kf7gqW2p/0pONxrbzZ/JkyFPYpDUuIGMTD5i5oqGs5zh2HOoOWR\r\nED4sMa2O8vf2uDDO9wlC+AphpRm15upjrgPsX5hWjoktJoHvCsVcFKsOSu+X\r\nFMjxaUf5/++UzaYeNkBH9AfOvslDsyIkicQcY0RoesIYk2HJGzmXwtZsYc+/\r\nNYCfXsA5S/EW7eTGEchXKaFCTwwGbo5z+CqziGFUyteLXA7fOacXyp3mYBrf\r\nXhjKHBsoFdMnko+XhrY0V/ntV2u1+Jg2KMjFTzQSDLTpymCBprlUubMsVOSm\r\nNVm9DPdzR3X6ZLfna8tT9XK+0ZGlIklsmYS9Y3WOw/qgcVFPLOHIUUJ974G/\r\naCgHKNV7gCyGPYa+3GWf+OA70itjYl1wOMM0Nd2oDoRqIe9hzXW5kCBlDi2K\r\nyxFf7CVFQlJiMSPMXMbrApwtL9m+4YT0FTKFV97iLJ8b4NqqOXUaIHFJI8pS\r\n5yioFaK5518cH5el4v3hhEQ/Go4ozH34Ta8=\r\n=O2Qy\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"79dabff803a37184a04dfaf1d4a38e011772a3c8","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.79dabff803a37184a04dfaf1d4a38e011772a3c8.127_1645526217963_0.7410545519146556","host":"s3://npm-registry-packages"}},"0.15.1-beta.32d9ff6c9cef7024ba02e65e2dd807ac3ecd9fb1.131":{"name":"@preply/ds-tokens","version":"0.15.1-beta.32d9ff6c9cef7024ba02e65e2dd807ac3ecd9fb1.131","_id":"@preply/ds-tokens@0.15.1-beta.32d9ff6c9cef7024ba02e65e2dd807ac3ecd9fb1.131","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"069e2dbed573ea6e588134d35e4b1338ddbde3c3","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.32d9ff6c9cef7024ba02e65e2dd807ac3ecd9fb1.131.tgz","fileCount":3,"integrity":"sha512-MQPRl2W2glVlwM2nh7XLWI6AV+ZeeEZaA4AUaNJeZKMXYAWN7SdKxgGEvDmzsf0CTmstBu0rBBJQwevm7cCHnw==","signatures":[{"sig":"MEYCIQD/PY8qjeW8Dlgs5hzK98sKQUf82p1MTmzQDTxMjowr2wIhAM43ssnz/Vf2yLlb3Vr/dcCdLgn6tHDxyRkYQYCUW4GN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFL5PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUXg/+NpFlgmtHS3MqU01eXV8uuM8JSOkgSfuZBGCfvAYytJZa1DT2\r\nearLe5h58Ul4Reu6Gde08AunZPsCpLcDC9iZhH1XXAWLjuKy5w8AQEdDPhkr\r\npGJa8/JI8d9zL6JA5vEtL4MMuwKnIWqM2Ch6iYiWumN36aLZx5NZ2IyQH/2Q\r\nypB/ZB7VlkO0sUxA+RlVPCaBKkI7PfO1kcAGFdrOiytMleLI/5WQvgh3r89k\r\nWSvMY4NGxtw5N0DUl7XmlMFuKQbkSn4Xs1AX3ng/+qSdsRn0ZCYkcXCtwthE\r\naWWDL5RQtMuQ9u91LAWutnR2SIXAVDYuci7nS34Of28n4lNVx84fKypJ2xih\r\nFq08x109BojOcMSU2eDcWo18OhmgpFg//t4bbLk7+smG5dxap/N8dcTkcNCw\r\nc5CXDRoCoC5t6vVbxPCAPslP0TUfuC+V08zXuMeSrzlixxgYbCtTH6vwaBpv\r\nW9MLdwAnn+JhPTz9TFGL+s1rCWC0BNmRWh+dFgo0ae8Z7Gaco+MWmqsKKVL7\r\nmaoxYr/k0FoFHIQSM2Hb/Jschb7W+sKC8mQjO9MAYwjng854SWnyyifrwr4l\r\ne1Y7KYKheeN1DoDuMWWUaSM3jPOX3/NKXVYcwJxJhOk6tVi3SlDQmE1fkBkG\r\n4dpjHwoeovOu0f/HzoelfE4MOQJW00pSgrc=\r\n=gBAG\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"32d9ff6c9cef7024ba02e65e2dd807ac3ecd9fb1","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.32d9ff6c9cef7024ba02e65e2dd807ac3ecd9fb1.131_1645526606983_0.6118170106581509","host":"s3://npm-registry-packages"}},"0.15.1-beta.30ff0c11cef52ea6d13fb660dc0fe85e9c57550a.128":{"name":"@preply/ds-tokens","version":"0.15.1-beta.30ff0c11cef52ea6d13fb660dc0fe85e9c57550a.128","_id":"@preply/ds-tokens@0.15.1-beta.30ff0c11cef52ea6d13fb660dc0fe85e9c57550a.128","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"12dbe0581707033263f833b5e01794f31d816794","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.30ff0c11cef52ea6d13fb660dc0fe85e9c57550a.128.tgz","fileCount":3,"integrity":"sha512-9HMt47yYzEFbmRYDo68EbEiyTJ3qxqxXnhh2HFYfOf4Fkw/PAHwjuamiJQ/6RtZJNMdtvISVVQ2sL+vLfSSrQA==","signatures":[{"sig":"MEUCIDww8Y2HCJJSuhZCOeQxkSWGHTOI2HLyhsEwmm0kt/KJAiEA7+EWwD2HIpdwlnHFylXw0LHsOnqR0ZcibiOf96trD7U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFL+8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpeYA/+INQVykhdtxe1Uk/cXWKTNuBvLeP9kz+QUKPDIkAIjuzv4oim\r\nbj7mVbEN963zasKZg1GPbB+03ctQCFYKVtmfaG/cZLh7ZRVhm1rniBJFCyBE\r\nFKC8VXsYr3uscCN9eRl9cDWLHiFdx8Rp89sKnKsdE8T3M39NLU3Z2H278dyN\r\np3tQjz2AUOn1YwP9HhrQsNAJOUj8VVPIh/CYO/Sy8J+Rz5KDtqtdRzJuCUXy\r\nt0Mysgul4/PpC8jo3VdGhB/8xYlp0EVrJsJoWRj1ga5+pHpqY4ctK4Si6/Hx\r\nslyx+LazHDg0T5gGpBCQycGdnccu+IOpxRFB7eH3zSg80RiEw/LnRy1FQKpV\r\nUS4Hy9mB+9uf6mZyA4tisVzCyszLj40i42Kz1hCVaih3dxQ6p7ItwhxsaJ3B\r\ni4e/aXjTOrN5n6X0x62jnh8g1FNidvbPexuoFQI/1h6wxy9CIZlGmatriWBL\r\nsIbNuEn5f0aqubxoRlNmEmr9YJZ+mbzLCtg/Hh/nPhjdEU1Upb3ys3uUoV97\r\njf8en+urinxKlWB4RDYv0xZpIbmPejiJgOy/Gbn3lyDx1mMxK012JB5+fNRz\r\nN1ao+j9JDV8ToBAC02vzcWbcqWCs3HpdJcQZboasSHXSfu6xPFCALNGS9CeB\r\nCh5QHme5rVSsOKCNsHCi9rLgxKqIJVzZ7jY=\r\n=g/2K\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"30ff0c11cef52ea6d13fb660dc0fe85e9c57550a","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.18.3+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.18.3","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.30ff0c11cef52ea6d13fb660dc0fe85e9c57550a.128_1645526972541_0.6514555868727725","host":"s3://npm-registry-packages"}},"0.15.1-beta.d373dd274f826ccfee258863d192cc9de6c994fc.130":{"name":"@preply/ds-tokens","version":"0.15.1-beta.d373dd274f826ccfee258863d192cc9de6c994fc.130","_id":"@preply/ds-tokens@0.15.1-beta.d373dd274f826ccfee258863d192cc9de6c994fc.130","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"d88f6e8a885f12004c32e94eb8de77196d4819f0","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.d373dd274f826ccfee258863d192cc9de6c994fc.130.tgz","fileCount":3,"integrity":"sha512-5a0ys4VrRY8ldcIyONmy+zsIekBq/lxAn+1LkEVwrDwlGqmvp+D4M09WcgQ2K1iauYzVwsLLQvJ5E+I0sr8aLw==","signatures":[{"sig":"MEYCIQChMPEOqfGy7JYe2RW6kTtDiNnvVHzRWJ/i1JA1ji1fWwIhAMzLanyGGuwumF+mpE76lvgIT5EcIo2IrzRBhy7DdOO8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFgReACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpwMw/8DPaUEB+85mqhPD25rgna9YIFuoaKuC0Uf9QZU2UxGL/3omj4\r\nvuZ33vnxK+wM/NtO2Fkh8VbO8eMqY1Yejl6qfidvrysBlBy0h+tGfCB05mbZ\r\nhw+SLpnY7RsBMdxglv6MwAGYzdfMrVqnbwkgfKNQkvdsbbLBqcBMw05RmFoh\r\nwwbsCAYGbGwP81n04rYIFcRSFs0GyujyipxZplW0rC8I9c3PEhJGrGCyjL2l\r\nWQZsSse5hLIZbQIXpMlm0GcIK/LJPKwyS1sSE4FZwIUJ8RuaeVN0Bfaz+MIc\r\nvx2q3P3frqG9eulQ4F39+6X4ztvHj8W8A/qizxiN1QJ+PCD1O/UUaBoAziF+\r\nJI/Qe1rwdCPqJmrtRhjO+l77e1aUj/yuSDbZMn5Zk9cM0hLtjJo/xzKzhKG6\r\nTZkOmCL+YXEH/jgoTKAPuw6k4Hjkkgllgl4nrrDj030JyHGjj/ocx2+Zplq2\r\nwWEQ0VF4j2XOfjxBqPgl7mDxJdNu0PInymApnF+h+tIFhqKnCnHkzwkU/3u8\r\ndYxCC1yRYFsPsqvudq7m7+2MOzVmc+9X7xcItgBityFGzaKeurDAp13nHXS0\r\nVeY1w3pYPoLGlJbUwu2EggXmccaNTAhH82BJ3IGlRS6V3LrHUssws1WTAz82\r\nCCBxdGpHSpwVZO31Y32JLxX7EzIjVfyW5gk=\r\n=HytJ\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"d373dd274f826ccfee258863d192cc9de6c994fc","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.d373dd274f826ccfee258863d192cc9de6c994fc.130_1645610078274_0.9442971987889408","host":"s3://npm-registry-packages"}},"0.15.1-beta.5b3f7ff190f7a49be874b44bd8ef81f303e585f7.131":{"name":"@preply/ds-tokens","version":"0.15.1-beta.5b3f7ff190f7a49be874b44bd8ef81f303e585f7.131","_id":"@preply/ds-tokens@0.15.1-beta.5b3f7ff190f7a49be874b44bd8ef81f303e585f7.131","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"8a22c3ef03e1238b594d8fc88ea1304b677db3e4","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.5b3f7ff190f7a49be874b44bd8ef81f303e585f7.131.tgz","fileCount":3,"integrity":"sha512-k+srIkEA5jhWe9tBK4LUcLAVJgOR4KzqLrIR3ZHae1md0PZVQrNDZKq3X6yyZuc1wl5Kn8jYrjQMJzzD0JTx5Q==","signatures":[{"sig":"MEUCIQDvZPRZRntly1CLOgU9aF3bP257KGp0A7rtuOlqFqyhewIgBH6DllnwuQsc1e8crPQnyCDnMXMx/0NaiR3tKOViiUA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFg/tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWKQ/5AbBOYGYgmD7JXfTLNPuHE3WMtt8ttI3uLkgNr946RwE6yeMA\r\nPgA7IKHQIJt34qXKvvB0Cq6fTtBZXVKcW98l3Vs6tIqxVXjIZD1zvJH9Gp2U\r\nGL1IDYYx5vJYviNEVsKxxP05PytAkFq+woyiDjSUYAkiX6ulMYo9HS5P4ajk\r\nMuOAx3eM0jdJDG745IlZdUEuq3YLbsyF6S+uAQSFNuWujMzUO+1jpCm1H6yp\r\nFh29g64ihK46sCZEX4MfZ4V1nk3FAa6EAktk0m6kaaN34Jh098rz2ZkTSIyc\r\n6/w3Ev1JkmZt0wcxo3mZJrysdyzxdpyQ24YdHAWMQDybXFTj3R5rElZGcgLI\r\n5Nc3l5m04nwz7jt+meBBjaEm6/S88vVSwxEjoqNWWMKrb81JRUPu7T9nSWAy\r\n/UD+L5R5EMsO357aNOdni0HXUWEu21x58Dj++5TTWkLjUYoIlsr5+bp/lqII\r\nLjAoGVMPhJq/Ues+u1I0CMBXSUw8EU8jbsRWGliurwhrOWqEbxpAU3bwgm8x\r\nBGb+xZiypVYc5NyyXW0lBvWqAFdyqSMO1bkKfyUCD8iDCjDdOpgI6EVGrydc\r\nOIn9fhka0IoTwDyikjKVVw+QfBJEe4tn/Wnr4P76tdo0YVYB0X9gogeu12xf\r\nRbnNapuZQzKE9WsPJSG19OoI6R2W2j3FycE=\r\n=DAcD\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"5b3f7ff190f7a49be874b44bd8ef81f303e585f7","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.5b3f7ff190f7a49be874b44bd8ef81f303e585f7.131_1645613037017_0.43598381869424685","host":"s3://npm-registry-packages"}},"0.15.1-beta.1cab01fcdc16084f4a47fc18e926de0ac0c33ac5.132":{"name":"@preply/ds-tokens","version":"0.15.1-beta.1cab01fcdc16084f4a47fc18e926de0ac0c33ac5.132","_id":"@preply/ds-tokens@0.15.1-beta.1cab01fcdc16084f4a47fc18e926de0ac0c33ac5.132","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"e002eea24d7723f34848fd587a7456bc8f70290a","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.1cab01fcdc16084f4a47fc18e926de0ac0c33ac5.132.tgz","fileCount":3,"integrity":"sha512-aZcODZcu9tRQZHN1p9vFL56KVdy5EXcoJDbj8vlgAhT8njVY26PXo1qQWlYayttFsqa+2unDVwNQ4DqKHtOwtQ==","signatures":[{"sig":"MEUCIH6IjGZCsOI8yo9UQaI/BUe5/SgGYJXxBWN3l6zSZvQSAiEAjNcX7Vu5yOdk2CiTdDJi/W2nOUTb8IfgO6jDH0Z6gJ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiF1LGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo94g//ThS2nT1VF4denAYn/Lc8dfqvZPTdjkMHtIHOco2hCCzuEqnt\r\nw3VzGYA49pnSPBUfzJBVddhBgkudiMde85GZrexpDKYyhJC3T5X6Z6gOS4Bx\r\nYHHg7ISQ5IgwBZQ5LVRNLN5j+0epoQAlJ9VLrpQjgti03Ofy3mvqWFw13SW4\r\nNM2QIwcSEmDr8GKsBRD1lrjUcfX8JVFbtiTEXy/YJ/NwHdp2uhWXjLZjmoPS\r\nPsyWAOz3Z0g9uYdIFCnRPI+p4qXOVJeMkdbX1QJzGoEW1IwcMzXPZTsS3ODf\r\n0n+FpxuRQWamp04soZRr7d5b37tl2Md/K4zFbUI/GmOKbk9Y4rFtZT7xITSy\r\nY5S5ijokEW+gvL5JBq1F4qxox8wD2fz+L1t543WrNVNF4zN3sX5z3gL7z0OZ\r\nUre597NKUvFCMCkon9Z7F2uM5dWhjXC2zztGVPLTjWM0iKBB54vAMDWB7wJ1\r\nhOvXJ5or//FwEAhD9IvFIZhFEdHK9Q5qOfDdY3kPMPQBT1WFJiF/2v0Lu15E\r\n8idCkr7s854OrVXsovkbxmHfeqIG67KeLlpHo92QM8NqhbThCwJoVkpsRl7D\r\nSw1e0JgQNk+L7KF9zbGawK6uUcMvwHqiw7g+fTbLb8sQdlK/hb3sbx5nhM4v\r\nlQcaD4V9o6cgN77hPdwwg4B1TZLGGS5GSUQ=\r\n=OR/w\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"1cab01fcdc16084f4a47fc18e926de0ac0c33ac5","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.1cab01fcdc16084f4a47fc18e926de0ac0c33ac5.132_1645695686159_0.16294683634369567","host":"s3://npm-registry-packages"}},"0.15.1-beta.c9eea18cd6eb4510ab738cba68c59c03c2a9079d.130":{"name":"@preply/ds-tokens","version":"0.15.1-beta.c9eea18cd6eb4510ab738cba68c59c03c2a9079d.130","_id":"@preply/ds-tokens@0.15.1-beta.c9eea18cd6eb4510ab738cba68c59c03c2a9079d.130","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"ac1aafc274c7293b8cbe1f1b55a1883e9e8910a0","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.c9eea18cd6eb4510ab738cba68c59c03c2a9079d.130.tgz","fileCount":3,"integrity":"sha512-1tr1YTjHaBgwOXWyTlctk0wF96RyuH95RmwB2XbZ7IceJSFYdamNPc++b+1GEq7ecw/VF5l0uhqpfhpf/RqJiQ==","signatures":[{"sig":"MEUCIEVk0QR8lryh7ljdDzgl1MSiyOhodsV24/xgNcZja9PqAiEAsjN0eFQQ/O5aQgTzgBksV+Ir+gV8SNDLqLaYyDcZVDE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGPlGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpWqxAAnNlTI+NH/1ZU2WqF3HwefCYdqTslX1eVU1G5zDrAeANluM/l\r\ne66xEiGuXOdsLMXq0Wduz18euPq8B93wZNqpmq0rIAMGzD0O0z/aPS+uXH39\r\nTXE/kbDnRlQ5rGtGpHgC8jYZ+fIRY6nQEfxaTODLluIgSthNuIF17pqiyyuc\r\nU0kTGp0crl6TPh456/tyId9bXjQRRqrdPApI5UqQ1lD3dt1/cWi96aeRusV+\r\nVll0dkC99Qge4AulwAfZZZKI5LLksDa2BMbTjzMZCw1ahPdMF2GJZpaTb294\r\noI7n+6OnsKw4vDrd252IjQ48RnrPS/KdaoRarHgWZYq48aaT0twpmzb0lY/l\r\ndl+ArXnrJLrgw36vZxnrmac74ySUQGndINroLf7dJf0GzBoLM7VkKt98kucQ\r\n4Uy+QnPIE87ohOSYzKSR/BqwKoyDcpWMRg9tFo0m5HvkcBqv38juL/KDbRF6\r\np5X8yd91vWphFV1Gu+9p8BHUBb/BCwyU2CZZlkZMVQmTft6QnUrcQQuvdR4y\r\nLFMbefMMEK55bIRfBXc6boI+J/ZAGeXdAzGTg7+erXvqWNLiO+KQUirH9OOC\r\nqq5QzlrqT/V5DODkkyp3hPCu84YMUByi3KnV1TNtpecl6pa0W+oADs0Fxna/\r\nGu+75RouspNcisiLaztkhldD81kV3OXUK4U=\r\n=Ab/q\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"c9eea18cd6eb4510ab738cba68c59c03c2a9079d","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.c9eea18cd6eb4510ab738cba68c59c03c2a9079d.130_1645803846279_0.5968725055692672","host":"s3://npm-registry-packages"}},"0.15.1-beta.4cc8dcdee763b2875e960f8e78f6625dccc35faf.131":{"name":"@preply/ds-tokens","version":"0.15.1-beta.4cc8dcdee763b2875e960f8e78f6625dccc35faf.131","_id":"@preply/ds-tokens@0.15.1-beta.4cc8dcdee763b2875e960f8e78f6625dccc35faf.131","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"9d8897a66578cf80f09843ebd022166a35138baa","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.4cc8dcdee763b2875e960f8e78f6625dccc35faf.131.tgz","fileCount":3,"integrity":"sha512-0104VidlnW/6FZCubYnv1b4iuxfjX8+vBABMJ463rqh7JMLocV3/0YQpH0eCOiZvvpsQCi5yRxGcRE5pqKUqPg==","signatures":[{"sig":"MEUCIArAYYnbj99kH+nDpFmdjeArDD1u4iKh6P65aWRcbV6uAiEArauZwDpigRQo/kQUfLLNgY8iEI5QLlvMx+ra0vvhgRU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGPowACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKyQ//XaWjBoNtJlgyaZtip/uUApeLg4c+G9EhpF5SG0trAvqZkAXD\r\n+/yc+tpALoOQZJR+0U61V02HXlmYza22okGyAuHKp1MckmlAOFmVPxctF1wr\r\nS3BX34BeXatmAciMYUzkFNBdTQQhpwzoDKC4youXd6S55RT/bwwI3rUBFhfh\r\n4OakzII7NqvAN0+sep6wE7ers2i8e2OwgUyU8GeH1Qt6rkUwF9OPsoWHuENX\r\nheorDDNroDa1AR7oZiNmayJa73bkC2SrQXNsrzSwkLmaKejtC3YvHfn0nHLp\r\nimmkk6PaiBI1NKWFgemT/V7f85QfMVQ6p2YUCsSJUFYEssh45/fxZxDgfnLv\r\nFfHtRMXv4ls/sl0aIcFAfKsr51hNeiUCw1A+WGzDe7jniqsCne7XRhclen6l\r\n9EvCbjUdZ3o4R4SSqj36z1de6Qh6YJK6bgg0kL3O9BiA2Ba6Hv6nyFDoJFf2\r\nwJD07VxbzWOEXCDKPeIo9HTJ3HKEmrD9UuUu2OhKbf4YWNX7htnjSXru0Ww1\r\nTWcKmHkS8yMJHlV3BMMiDWqAA0mH/qLQqlSptsQzKZjhcIYMMV86HNyRIFsm\r\nv8+v4Rv4lNf6Skuq1kr44jo5iS90wMDY1gXHFkesYjjdbvwRSNoi8ePjLyhk\r\nufcuHmgzcouO0E4XXkPDz2vE360ge0qpgtw=\r\n=l9aU\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"4cc8dcdee763b2875e960f8e78f6625dccc35faf","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.4cc8dcdee763b2875e960f8e78f6625dccc35faf.131_1645804079994_0.0851614488177197","host":"s3://npm-registry-packages"}},"0.15.1-beta.76d2de474ddd2cdc7fe81a6545b7e22350c5c01e.131":{"name":"@preply/ds-tokens","version":"0.15.1-beta.76d2de474ddd2cdc7fe81a6545b7e22350c5c01e.131","_id":"@preply/ds-tokens@0.15.1-beta.76d2de474ddd2cdc7fe81a6545b7e22350c5c01e.131","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"82cab8b5c7bf5769173cde6c0706ebb80cc34140","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.15.1-beta.76d2de474ddd2cdc7fe81a6545b7e22350c5c01e.131.tgz","fileCount":3,"integrity":"sha512-UH1zPEIA4YQ5eN1PXQI68/gxppmTU+CiLLoEdMyMo9RAtsYbtyeQk+K4HL/JK1x5Ky5/P2xop+JKdBvzxphN8A==","signatures":[{"sig":"MEQCIFf6Ed5BAGbJ53eFho7vzMbkJoZpkd+AH9b/+scanR1EAiAs3vD6vmzsXqVvz1syZVgjbFHfUNCVxzB+kKDh2eXsFA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGShLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmokfA//QVSoH4EG/OuNY856WXkXB9IaRR0ijAGiw7xX4wcBhLkOhv21\r\nRpYed+iFVZN2tqdT3tXziOMQRD9m2SCENbDzTktkHrUbS9hLLPj21Z4DNt54\r\n14NJMyRSQo1gSB0rEy2kqD5gSvxavVOYycDIKxZvx2iUkEwp0mcZvwXOU/IA\r\n0qBnmNIuLi4H8znVZqp88+Pvfl2dnSMWms1ORyVwc/gjbpbFbpm4Pj7PJyKK\r\nR6Dx62I6xAqY2sZ0o56e0UPhn4Fbkf4wiQTe2cqmQX/6ieIXdyw1UfN/R+Yq\r\np6NPLQdAtnaBf7qBVSnHuhTcGqhCRLhQjwcUT0Dq4ZGnngeTsgvDUaQzcp/w\r\ny/Lasm2oPTadJaPatbHE/HK6rhM/Q9QD2sndEP7P7ixuC/wIzeY9tHut+liX\r\n2S4LB6rcwfKyqQNbUcKQwPPpUnhsfqOUiXFwE+LpH5z5vKldJ+J2/oF71HCM\r\ny33f5vMwof8EBk7Ew2NUskEInVabSB+IIzngT16zF7mP4wyGF+qzbrVe8kVa\r\nCxXfZ/Jsvsj/+rilit6RgT22LBp+ybIk4iW3Lw0hkGReSh8oiXTh3WARXY5l\r\n9d/pqK3Lw9duVzXkaAatAaTObQZ07rxg/Ba9Sna9FZRVTH+cxPJS2Yc+HUQM\r\nzUv96ao56AkTfmvZkDpjP+cSz4nO0YN9GjQ=\r\n=t0HK\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"76d2de474ddd2cdc7fe81a6545b7e22350c5c01e","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.15.1-beta.76d2de474ddd2cdc7fe81a6545b7e22350c5c01e.131_1645815883567_0.3787062520100213","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"@preply/ds-tokens","version":"0.16.0","_id":"@preply/ds-tokens@0.16.0","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"e88e8b691a726a7d552b84383ef919a509862f9c","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.0.tgz","fileCount":3,"integrity":"sha512-mpYAdcB7ZfQqvuCeRkCfDSv4+T4rwz1EwhghGDzpg3PGYEvEHa3F5bBJOPSM1we2ZRpYUUliAJycmotipunRhQ==","signatures":[{"sig":"MEUCIAa693+WxkO4et6X9hpZmGAqMK87sQPGUzP0rIl/49rvAiEA1mzdm2qL4jLzB0Cr/8LtLIn0/i37Rs5pkAZ9+clNLuA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGT28ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9vA//SOP7XWWw7lblg9VqskX9QxRY1s1+OJSNLjCiXLYRo3o5r2TI\r\nwZTZv+YWfAY6w1sSOTZ4Qqe31ac3JFda5jAGO7Ep7tsskToL8ozxmDpOQJCV\r\nJPkVVqOiSBY8+qVBooDPNySYvcJCgKa+GmoHZEqCgnCUZVbGNZFOzW9PAbNG\r\ncx5QGVQ0Gwoje15psYNoh9hE121zvPqOCE9Hu7GRSsvf0iqc+m+GTeSFt7Y0\r\nL4mVdE757Eo3wdIwgqWkTOSYfN1EqANhOvlQcascrVDMoPBJoI8unB3nfdPm\r\nfJBWmL1uwlKqOslpGVYIcrXql82JnS1FxJyLuXIEbGBWxxrCHatYaW2IP1zc\r\nhIzwKxxFdbLM8JtkBmi6vVOWFUWFE6ATCKiZC8vHUH58aMZh9wXCZHVvYXDD\r\n9UnO0GGMx2NmLrKFWYoD3b9j+/eV8WCDKYjknm6n3gSFlHkl/d9NUZNWNTJz\r\nQaSoP2wBgYWwac9qGnI9jRyzi+wlXhSEHUwwBFD/Spg0XBoDbC3GufgA6RPb\r\nr1VFSi400MM9obS2R+WaIQTs24rPuOw6n/BXQIGyzNljuZmMc4hH1LxFY17P\r\nFWSdv5PeFCDRwmXq1qrS7TN2kbBEM80io0SPRsjs3/I5s0+DuD/fpeu7m13y\r\nwCrbj+n15W6NyVliiwnawTKdsJHOxH7RIqk=\r\n=bplW\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"f6b4319a034d82279247121cf37643c5ee93cf90","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.0_1645821372031_0.1279831114071226","host":"s3://npm-registry-packages"}},"0.16.1-beta.ad8f7b46a3118783b1c5cf3b517035a6b8c43795.134":{"name":"@preply/ds-tokens","version":"0.16.1-beta.ad8f7b46a3118783b1c5cf3b517035a6b8c43795.134","_id":"@preply/ds-tokens@0.16.1-beta.ad8f7b46a3118783b1c5cf3b517035a6b8c43795.134","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"6a14d803ada5e58fed6f2132edc64cc37edb8de0","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.ad8f7b46a3118783b1c5cf3b517035a6b8c43795.134.tgz","fileCount":3,"integrity":"sha512-8b+/vdXxbWAsxofSejiAsOU3VBMSZvy8fw7cB1Fw90IVtZICz4bKf1rMjnrbmR0RraXe6oY7yea8Pfyksc/tuw==","signatures":[{"sig":"MEYCIQCpYnXlHyZefwzYvVtTwhZb2Jzmk1eBk2M7Mu/BRByvPgIhAKvXNG7MHIlPID+n5AwFdafMfOnTtqOsi2ctM3cPt7tb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGU/sACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWZg//ZVYbg3ls+eVQgmGg9x8HgMCVdWwk4QO7bOezHA2o7HI0tUGA\r\njbjUuPbvIiYH0UdRzdJFLNVKZDER4vJPhDOY1raE6OqiSOarD74w8FMaJrrt\r\nkYAt8ZPfvCm1Z4efXCHODi++NBC++kRR48aVnuG5VvGN27UnU/bTJOldjn+6\r\nsPWvoQT89MPm9/AHc0ZnzGtCocZpJLeMZctcIPBJB8LPR+iXENlZgYBYqbqZ\r\nBhobS5kUqKbpGB0TFoYsN78bX4jXMbaSaHCgI1opgtHFU05zk4JfDJol7+rh\r\nnme0KVCwZo+p9Do3nkL6AkkIRTTEO9/J0IPcadH+sKUSafJ+T/PrD+63qXUp\r\nWH8cZmmhP+qL66pST1Nr7d67hxG+jl8bsKxcQ+cBnbf992ATsuVydl/0IBuW\r\nnTOb1tY3GWE5cQF5uDaSwHRPq7fAPmiUzghYLdO0gDGH+kETWmSzzjTOD/yf\r\n9yG+VeWnBnRmyvYvxFmIjJS71XRhdyEfIGUGLOR+/NF6njJC7d4ao2+CADps\r\nXA/LSZ0f64CNjKKKzsL3011nVOUA5ZMIhyhYWYG2G3QxXKAsNV4faZr4bzbi\r\n2kFXEDmTReMcj1DT1JWuQb4Vgrd99NzySY9FUEs9T5BH0pVSw7JzTuWbnX/q\r\nhQsvwfYWbFkJpZvia/SmDE5u5dHkfWmIcKc=\r\n=XFGa\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"ad8f7b46a3118783b1c5cf3b517035a6b8c43795","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.ad8f7b46a3118783b1c5cf3b517035a6b8c43795.134_1645826028172_0.02417195230062852","host":"s3://npm-registry-packages"}},"0.16.1-beta.b107b260734d896a7c69b9a07e40dfbcaf5823f4.134":{"name":"@preply/ds-tokens","version":"0.16.1-beta.b107b260734d896a7c69b9a07e40dfbcaf5823f4.134","_id":"@preply/ds-tokens@0.16.1-beta.b107b260734d896a7c69b9a07e40dfbcaf5823f4.134","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"76f95b586a499b11d904ab7c73e52ee41ac5dfe8","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.b107b260734d896a7c69b9a07e40dfbcaf5823f4.134.tgz","fileCount":3,"integrity":"sha512-yzliZ7gtlry212FXAw6Q4puOwDyi1NkoAY1a07N1dWm/NXu2knvCv8OQMVSOg0A4vnAqTtcEashYDX+UI9bTAQ==","signatures":[{"sig":"MEQCIFpLkFEZJ0MJUiGAehrDWu2GAzTLuW7hopulaol0eYleAiBGe6qZO1kcj0MXBkIBiIel14Cmu5WrIVOVDzm56Q+XWg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGVFQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkpA//TWe+rPNGc5BY1mAbH1bbeuec8C0OJ6ehzVzzpPmMJgtopvTu\r\nKVAqQlzv3q7cofA6kmzbSh/594bI5poyfOIx9LyB+5IeUbTrIrE+QTidsc3Y\r\nyJSdIgrk1Dv8DeRg/7hi9mztPxKGWEKTpFSsfFKW4SjgD8wxG6SjBJC5XK3Q\r\nULvWjr0ZAAkMZChMIW9NKojss0uIzzNVnvAqbwHtEV6Ho7uYdOZzOXQ5LqzF\r\nAXjMR8fD01Aecm9NmgNISL9nRfsv/VKLDHdeEeidibgmbzJOFvht8MgncCLd\r\nqJHjp6SEJdBZnBJE7K+3vmRDa/THfrDGim4cjvJHxxRWqbtBUjQ8/8owDBlu\r\n0VK2tguUxtfutl3ztlmIbqzMRcixsXIGVJGdtO1HDmRqPeIE8NfnlBxAHqd2\r\nMTUICJgfPTJcGzb2ghdFPwQivYBzZ5iY4T2qrEr/b2Egdt6H5OraZ/xHLDjI\r\nyFa+PjUjep+qR0oHXA3trF6DBm6J3SMJwkRzBKgifWJ7dAuysVcQQt/xwvjZ\r\nfrtUM+nNFio/rcN2NAur/eNKkezGWTuvBzoZlWliZI5pRPgxHpGW6HDRl6g+\r\nQP6cVAws0hRAbzA0Isy0Ue7koZES8L2IkxiBPaqLMkWQH4NT1rmM0fE3QGcr\r\nUx/olY4gGonk074ZYifUxnw+N9ucfcZ8XFY=\r\n=D3x5\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"b107b260734d896a7c69b9a07e40dfbcaf5823f4","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.b107b260734d896a7c69b9a07e40dfbcaf5823f4.134_1645826384782_0.9490904335647321","host":"s3://npm-registry-packages"}},"0.16.1-beta.92c8850eae20073aeabe87cefdd2129469e0091f.134":{"name":"@preply/ds-tokens","version":"0.16.1-beta.92c8850eae20073aeabe87cefdd2129469e0091f.134","_id":"@preply/ds-tokens@0.16.1-beta.92c8850eae20073aeabe87cefdd2129469e0091f.134","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"609d6373b5e216c80f97190762b59378a02b223d","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.92c8850eae20073aeabe87cefdd2129469e0091f.134.tgz","fileCount":3,"integrity":"sha512-RozDO7OzOfWQhzuU+TtebYnMZy25SCl9E/6v2fkIBAtTQP8voXm84Un2hY7NVDFe81bmHKtPutyNn9yJKMA/kQ==","signatures":[{"sig":"MEUCIQCIq85IO7kiWvhTKhHBYmVnbvo/DfTYa2HAkiLqMVFMqgIgZ7+vT8u//XJp4R2TmuFhIj2R1CTbTwTd/eoGs/lgBaA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGWDyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrgug//RkmyNd++SgJDXnrfXtqU2hsqpIzBgKj8X/rk03rzk9Zbyex8\r\n/0WrRywduVsMjfsUrqtWorOvzzI0pH6HbPQJRGC5uOrTSobowvZlGvuggr3K\r\nW9YqIzkJ1WERXtSX8zkcuPBAnSzUgFk2jheMp4RuUvQE8qRxR4wmTAYN7Qk3\r\nHf7AkBqZWaX7MKTG7Fo0nVeh1awLRVfwC2+fm4ikF1MdfD2PADiqSFclXaQh\r\nYsvF+JLoAv8F35ICBBtncQ/ibbPqqv1TWb77TKsK2JUn38UojmMFrvlB479p\r\n7xKsuCTzRBZi+DL3060SNrH8RZD/1NoB/VPjxWSvI84paoVnMVQMWe+9dH8S\r\nSNln/e54Kj27WYz+bkoj/1Nwh2z9wOKyfJrzlAQeb1tjEbz5wo7CC1c+Udvv\r\ntY/o0QPmfnm8Opo2PLHmWgWR6Vcw17ezKEkc2NXJ2igs2m+4mnmkGziT+oaa\r\nVfbF+6Ql1cq/J6Q6sC3ytJGUBRwh/UvNVrUZOKllSag39pnH6tAxvBl1dut5\r\nFsCGi+pFnHAIFIUOMI05Hr4f9NK+y3jEJYRLo4MYJJAY4Mb93uZMEN7OXWa8\r\naBnANoWVTPoqxk7cz7NO20gscBGxOi4wo2hAxf3vzPfaTnMQ/ImYibFu6Bm1\r\nw4wefmK/1S/IjpN8TE/qyeZKFJXp7AsTlHE=\r\n=vQIe\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"92c8850eae20073aeabe87cefdd2129469e0091f","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.92c8850eae20073aeabe87cefdd2129469e0091f.134_1645830386550_0.6263737471001154","host":"s3://npm-registry-packages"}},"0.16.1-beta.32f8450e8c3141a168eb53d9cba2892b8a252732.135":{"name":"@preply/ds-tokens","version":"0.16.1-beta.32f8450e8c3141a168eb53d9cba2892b8a252732.135","_id":"@preply/ds-tokens@0.16.1-beta.32f8450e8c3141a168eb53d9cba2892b8a252732.135","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"188573a47a1286c04f316123d6fe747a05dfc9bd","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.32f8450e8c3141a168eb53d9cba2892b8a252732.135.tgz","fileCount":3,"integrity":"sha512-fHIabGAcMdEC0DFaaFP/m3UmH375dnlsmWfgO8oqjmhsRto0wwdUAEhq2N/9cYpuL/QRhc+8LWnoE6rWbo9K3A==","signatures":[{"sig":"MEUCIQDuiXvLX54aITsEjJZqgcrSVrqCzFYM3CJ7+j9kgUdv1gIgHum10Z5CbJOAVvVsWz5+sNU5xfU4DwByYKbD+fUBArg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGWt1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo8yw//cpuhYrb+Wlvu5qxl/DCHtTGkfrrcw2KaKEnkZQKlfrK5DceZ\r\nc0vEUbuKdoxb6l+hiyDkGinMbeg9WSPTUfIsEIVZd6GVVuEaG7jT2eXbgGd0\r\nbrXvTCyj6Lp2RqrLgogfd0VjRshTUxfcW/Zo3OSWl9xf9jlVj6PdUi8loeOB\r\nHEncWXnJP+IizHf8O7RmfZ6kO1CzADm+2DikdrHkWfJPTDhs7N8daMt1cykp\r\nCx9G2K3Q727GL7y3qitzPA7PkTI68b2ELq6Qv3wrnC+X4vjLrdwdiWIRQI8s\r\nvD45bS8P8T6BGywDkplP4W6WIlFrYiNT4Eu6rDoPwztLsPG+eSqQ9gRhYnvl\r\nz8/pkzFJFWm5iTWKlcvR6Og9JLf2KqS4mRT7nxwYq7zaGn814HmHTEBzrcnN\r\nBFAdOEAN2sCZ2hROobdSYXV0CBSqfGeKo96rcfAycyk071ljLJvwsGUNz3jc\r\nnPlpRk5bpqh3CQvXYlInkOxgEp8OiNkbUQ7y92oxWXxSVxrYvN6wSsBdKSy4\r\nxarr35sqDs/kaKMPkzA8UDp+rTu7FJuLEIGAr6aZSyd0SuPXrtcDzWSCmzqx\r\n7tiQPq/zn2B8rvhYVpD1g+kAZ5STfjsxN15AE5QZFX9XPPGVy8jdhNLhf1F1\r\nheN2wr9SU19Hh9KzuPO4quYWovOGB9IBk9c=\r\n=OeTC\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"32f8450e8c3141a168eb53d9cba2892b8a252732","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.32f8450e8c3141a168eb53d9cba2892b8a252732.135_1645833077680_0.06926008499028824","host":"s3://npm-registry-packages"}},"0.16.1-beta.d0f65cbfa1a436f7d42cd38670f2733f591a8ce5.134":{"name":"@preply/ds-tokens","version":"0.16.1-beta.d0f65cbfa1a436f7d42cd38670f2733f591a8ce5.134","_id":"@preply/ds-tokens@0.16.1-beta.d0f65cbfa1a436f7d42cd38670f2733f591a8ce5.134","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"4cbf611f4ab49787d9e19fae3614a297c3c3a568","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.d0f65cbfa1a436f7d42cd38670f2733f591a8ce5.134.tgz","fileCount":3,"integrity":"sha512-3rRfBRR0U0Q/GD5qeixzgsvQ7Ls98qCOS/xQqQaBNhMKP89qEO+iY1E94Nyn+1ENForsUO+6hXu6/0PL5geqIA==","signatures":[{"sig":"MEUCIQCQUJSpqsvwuLDTkitNiSXMp8k6eFpR635+qXnp6kkLKwIgSNoGlQTinVAPXgGvpUZjkSMJ0DER0bFcIFByNu8qvHo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGYb3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrIsxAAjmtClerP5FhASAlApouPg7xjudcZyd81bCOvegueVO/8ICjh\r\nutBKNZbKStzEX1DEtqMPPTiVgqOk6dQsv/iv71bNu8+egYigm6IiaJGr8c9A\r\nbI6DCripgfgQqRJwYWtlzlokvCw1JgBh8yQ/86y6+7ZJDstetoSDrvrYYZFC\r\nKSSkLXOC9l7AAs7mu0ANv9KetW6Ue7DKqssGuCYksZvoosOR0Vngk7hkOm4t\r\nQtbMnKYaqjFjGdUedEvrjOzBMM2R1qeitC9UDUXEqHt5Yij7P1gVhkO9305z\r\nYDbSMo+CRNmklQ7XnbYBPLfHXf12oklxaCw+753OZ6pcD6O+wNMUlxwE3AQp\r\nv2MUu0GQfTmPFOzgpHKL6yPJ2akKwcPvwQA3eNmEovz71tHHpe+XO7kwmHu2\r\nUcDPwXrJIudY2QW6spojm8YVwKqPdCBUrFoBOUver6RDDMws/3ftA4gz020m\r\nUtVHGx8aIHOjJdf9f0JSRILznnS1JmlkMef7SepDzt1qRMfVmYnJtjmSO/at\r\nb+ubyNH8qy3hqo7RCtTaxNorHonqSbVWTN+AqJclWdoFC6Dz8DV8d7uAjON8\r\nkvHdDJLXlk49yFfXzdHAla4yicu4LFvcsWZ8MFbRKhw3osNewx07dsz1/+0z\r\nAFnlQsVLzBOZe4JOUlg4b3FU1Bdql5peLkg=\r\n=BfYn\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"d0f65cbfa1a436f7d42cd38670f2733f591a8ce5","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.d0f65cbfa1a436f7d42cd38670f2733f591a8ce5.134_1645840119321_0.1925397547413128","host":"s3://npm-registry-packages"}},"0.16.1-beta.675c0e229d3e499347153acebcd5abd4c05d5ea9.136":{"name":"@preply/ds-tokens","version":"0.16.1-beta.675c0e229d3e499347153acebcd5abd4c05d5ea9.136","_id":"@preply/ds-tokens@0.16.1-beta.675c0e229d3e499347153acebcd5abd4c05d5ea9.136","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"c65406e569e95a39ae1c717c0444c10e511b943b","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.675c0e229d3e499347153acebcd5abd4c05d5ea9.136.tgz","fileCount":3,"integrity":"sha512-kcRTq/R8wsOpB4HlYvMsjbjsJ0PZ/j341x+nqcMtpzojVDineAVH7emS0VJSQaAac27xBZElqArV2gEQAcsMhQ==","signatures":[{"sig":"MEQCIEIqLO/l46tMVuIOxfVId7lXD1l/7jMhM4FlBGOkk9rDAiBM4xyMRbqi7s2QRcUIcw25EsJJUiny+3y9cwv5uNUkwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHJ73ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBew//XD3oh8AAwT29An/ARSNLXDbnYxUhJ6j/QnLNxy5Pk/bjsXHt\r\nJhNqRHHEbfRAqhmTwYhKK2nJs6Rgx0BrGotiZRLyqWlKclezSYCE5+Lu0amf\r\njdN/fAjdyMJ7wydDlO8ZVFj2jxLj/Vr44HifYuGGo/vaGeahwFSXeRRU00By\r\n/b4kzeeS2OZcVj7FodEH9FOXtT9eTT1Lj+ZmQjopIYkVXqv5JiJa9wnmjVv5\r\nNgoKMatluh4F5HHqJxJreZzUoHpXZz/dwmzPVeZi3L85k1o1sWifnCcUXTXR\r\nx8EEsHvbpCeVcfPOVf7lrbV2VPQLt7ac1o287PCbZc+Sdxltvw8F2dXX6LOQ\r\nKCDyp2Fcud1EOmoEcdr0BczwWT3mQLqu/B6cS6soRn3ikeJrpz22oszDlPng\r\n2P+5ZJ5rey6IEMl1j2SIzbs34gqwjx7yj6QD3/u3cmjC7dSSzmzus3ikKaZ9\r\nbilezYGy0Typse5mQ2ajXfQJcpiT1LPMBZco1BF0l9cPv4QuYE2AmWndFfpP\r\n6I1lkQktRQONWnJ2MHOadphTqBMAEyh9veEZezeMCFHQqOWGryRYGHww7JMX\r\nQobuxg1oA9PNhkUVZ6MZ1NElEvozGo5DaAPrYs6lKTK+ZzqUHfeOntZ31LmM\r\n9LRrNP97uoRzI6Yzoi66k7QzAw3RjbjRyc0=\r\n=vD5a\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"675c0e229d3e499347153acebcd5abd4c05d5ea9","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.675c0e229d3e499347153acebcd5abd4c05d5ea9.136_1646042871328_0.34934681584580196","host":"s3://npm-registry-packages"}},"0.16.1-beta.09ece53252e0eebdb1663acbc24610b942c9e52e.129":{"name":"@preply/ds-tokens","version":"0.16.1-beta.09ece53252e0eebdb1663acbc24610b942c9e52e.129","_id":"@preply/ds-tokens@0.16.1-beta.09ece53252e0eebdb1663acbc24610b942c9e52e.129","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"5388892eef275bfe52b5df91b09e1d0542e2231c","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.09ece53252e0eebdb1663acbc24610b942c9e52e.129.tgz","fileCount":3,"integrity":"sha512-cmhOBrrhSelx89QBGZxHnhUkuCphAQ4Tkar5MtZ9eJmEgXlYfnRzj45moXHOj7nulqURaBJkaUpwMSC+AZUoqg==","signatures":[{"sig":"MEYCIQDbKA+HVqZktfB+LXK9bxgNKMXx92xzV4W9ENOe4YFnzgIhANuNZbCwga3Nw9aAFFCLhwZJnPkIyZsk8JbPPWZYY5tX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHXCVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmofrw/9HGsy+OWA76es2kiEVyFT20eu2PxPJ0fuQacxMIn3cktGkeTH\r\nG816v3EfBcXe0lqa4GMRUF4GHgZbhfwAqV6PNinbQMtaJdRhNUac1MNJXkin\r\n2X+tMx4DFjR9JGkRWKI4lZLA2e1TBXXwyUrQ0LOy6R8yY82xJ2vyEYB3s1Cg\r\nlcJ/0S4fscKVduyjOCpQQByW2r/buZ0jaJr4c0hBDc6Sb/mzIF1YAKMGAIQ7\r\ngM/mCRYrB7PbKHkbccdRUWVCrFcSx1Y9JFEVv6+2GoulaAe6FVIdt00eyVdf\r\nm/6fVaiTsF5UFKpFWTzjBAMtVyo1Q98GLUVU4oH5VtcZz+Pec8mQG08pcmLz\r\nbiRQJ7RpN3NseXveSBITtlQyL+0Pxu+hzTbzjQgFUs2IUq8hn6VKzcpxeeR9\r\nGtyUewNsf4LrX83ZePTligAnoBrNT9atCLF1Oi93rdlom4+DRYTCANEblHBP\r\npsBGhpI9CP+aeFyoob2S3alpdzNwIuz/lZBKkbxKqjhrVwoMhhTz+Cs9Y4yP\r\neOJpBbbRicbBy4QHRxFzozBvzv6uNUxrWO7muzcVWqAEmTNLnKvEMUQBiVkB\r\nc79fDM8NTBNnAHGvGFUv9X9m4z2R/Qc/sfy/bXFotvYR42ITGBfGMh0g2Xjc\r\naK4k8vTwIhNJApHlIN4pVGFNIy42VGRc/ms=\r\n=Fddl\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"09ece53252e0eebdb1663acbc24610b942c9e52e","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.09ece53252e0eebdb1663acbc24610b942c9e52e.129_1646096533751_0.4661632696776339","host":"s3://npm-registry-packages"}},"0.16.1-beta.6d46ea416f7c789279e97d4cbddc13022f3dbe6e.130":{"name":"@preply/ds-tokens","version":"0.16.1-beta.6d46ea416f7c789279e97d4cbddc13022f3dbe6e.130","_id":"@preply/ds-tokens@0.16.1-beta.6d46ea416f7c789279e97d4cbddc13022f3dbe6e.130","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"8e3f41b7537f7dc28715ff13d3dfdd4b0710f30d","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.6d46ea416f7c789279e97d4cbddc13022f3dbe6e.130.tgz","fileCount":3,"integrity":"sha512-8n8NHm0Se5lu5xMmeLxZYQmgZoQt493qzZGIa8xp12iLMt8FT7hVVZwCCFCJVGfYU8PnV7pKc4ZX+1H5R2mI0w==","signatures":[{"sig":"MEQCIFFZJJSs/+b8gz8v4jW9O9eiNGAxQZL/IomzjqeemsgOAiA+PjRPddjPGB+T0Tf6dRBzA4HOZI35e8BnXYphIrX3Uw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHfc6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqpdg/+Pj3ncLBZzATfVw5WWiiFakAivIUi6xjLTK9YnTg2d/CJufX/\r\njrrcFukB1hlTFn8yGHoc2D8IrDt7QEzz3Nxynz+mxa6uyxfwzC5iwl1YsktP\r\numGohq3TCVnGnBJ2KxNrVKaZzHBfMBBXfkL8giPEX039uDSeTPiD0DHMm6FP\r\nKmR2bsmOJIe0JtHfgi/Eyl4VQ70pwH4dTKtY0I45+DXVyNR8ceb5XD8OsXLO\r\nayTZhLoX8PRmW0NuvU7WffD3PM1XzvkodwLPddsSw6hYYfK6ROeAY7anTxLn\r\n/lTtFFydyecM7V9psXR1xwLqrZcmu+bksa3HBAYB6dOKEVCgMCz7U0N1dCDV\r\n62A+4qTGETGqpAMcQ/EaRjFtEXQwcRASuTTjp23TWXeFsvPYVgkpyztYvf5p\r\n1iK0TyeLDWataNCa1EKz53NfBsVRTdGE7b9Cse/Q/lbXdQCDyO7Rpb1ZyFDl\r\nCPGo322tWVcp3jDfqIGAosii5ApCIR6NtqsxVvTLJObk3Usa4BCvIcm1gJ0n\r\nCHvCBYoIr9utXvSQnd+392gGowdzhbnVNL3LqSKcaDdKjFGEjDC/s7T1eQ7G\r\nehdSb0Q6JmVoH3rHsTzwk7DqRZfl7ahukUsG+Zmdma+uRDqPuHfZNKFoFKm7\r\nVGnpAEKzPEy6gqXN5vKeLIpPLYek9FIEwnw=\r\n=XFxV\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"6d46ea416f7c789279e97d4cbddc13022f3dbe6e","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.6d46ea416f7c789279e97d4cbddc13022f3dbe6e.130_1646131002689_0.48039667199280567","host":"s3://npm-registry-packages"}},"0.16.1-beta.f65d5ef382f667fdc418e587de541aeb216cb5be.129":{"name":"@preply/ds-tokens","version":"0.16.1-beta.f65d5ef382f667fdc418e587de541aeb216cb5be.129","_id":"@preply/ds-tokens@0.16.1-beta.f65d5ef382f667fdc418e587de541aeb216cb5be.129","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"138a0dfedc88869ed569d6ea2da8b7e19af9598e","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.f65d5ef382f667fdc418e587de541aeb216cb5be.129.tgz","fileCount":3,"integrity":"sha512-k25/6G+V+6hkzYd2V1f+jyO44reNr0IGcb9Q38OyOtFWWCjBLRxdwmfJox55Wm3yYOWDHeosOH/8ulKG/Owd5g==","signatures":[{"sig":"MEUCIQDTXN58h9EhSuogMgdGYheRcR9J1WYV05zsjwRl82PHOAIgeltKJ9KSceJbK93FWDqdtEre39AAdwnVHi8yf3lHZEw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiH33KACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpVYQ/+INuLKG71EGjsKd+Jf5G/QFJ+lHivM7PAYng5agcF0qpDqgSm\r\nOsC8uBQiDKP7yggp6UX3YRSvGp7Tynr5sOwKZkasgFj6GTwP32Oq90KahWA9\r\nDtPflnf1ylAa4QXk+Bt4xTvDbNYCMVtXTvWKyKnuqK4WGfmuv4037xgK+b7E\r\nmpAjiiBdy+MirSJh1hLh5LUCgau46Zs2eZ8WNE9/aEbtbNGhDYFs8qxxNX15\r\nSP8yMZm2ycI51zW6GpRG9EEYmDqc45lL7Q75Oru53KKPas1fhwa8WBNW7/NE\r\nKqZLTq2gHgBVQMLEO2hd/9HJuMizdNQ2lg+QbPA4JKw05+SdovYmgB0nPnGU\r\nSo4NQxXiJS0G8UigEd7rI2GgJuDWYYo+cnY30kLpWYvDx8osbC+8HPnaPFIk\r\n6CIHHTeaKJxuIM2iBGbMdgn0ea3RWoxiWENS7YX/WvVu1vsf4PYeBYc5gV+o\r\nO8cTbcJSHiB2rOwpx8FHV/5QzjtcQ7lbg557INatyJX4lV/Quu4dk0Ua5UfI\r\nMMFoMWDOqOIx//SHPqUpXSvfpzUPZhEW39UKVpRvB+1aGScWzkYKSYXPuS70\r\noskNVikrHUtRAz8y+sxlN5h8fVGt9eVQb4SRTHSTkefUeGerlpT0wH5lJrpZ\r\nAXSEAZjf5VBnFXW9NN7WX9Hk669UYcWVFC8=\r\n=DmDR\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"f65d5ef382f667fdc418e587de541aeb216cb5be","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.f65d5ef382f667fdc418e587de541aeb216cb5be.129_1646230986838_0.69417296434738","host":"s3://npm-registry-packages"}},"0.16.1-beta.610e68e951947f00a7a1076a74a0b02c7c2abfce.139":{"name":"@preply/ds-tokens","version":"0.16.1-beta.610e68e951947f00a7a1076a74a0b02c7c2abfce.139","_id":"@preply/ds-tokens@0.16.1-beta.610e68e951947f00a7a1076a74a0b02c7c2abfce.139","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"2d2da1e7985b962abdaa7e819dd30956230babaf","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.610e68e951947f00a7a1076a74a0b02c7c2abfce.139.tgz","fileCount":3,"integrity":"sha512-rYy5XIs+jnz7x+Fn9UqviLZcJbwcrYcE1F/Aa6mbmzuVPY7t54D03wHfJmFh51d3EZUweEMtn84oPrIA3H8OXA==","signatures":[{"sig":"MEUCIQD+uHjAMUX7rLdcL0wRBt3cM0+biEoOy++ABMBuovhdVQIgBNm6Jv/F62+oCxu7PjkuAIzh/SxqSNoZmxzzMWI047U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIBe/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUERAAon7s3JgZT+KMFTQGyxpmWMS3b1tygB+qCueHDmDXY8A2RUc5\r\ndN+v9K8Ws1/yBhwuxGl2uw5U57o3RzcVabXEV26wGCEnxed3DpWPrmNFx+l5\r\nSLBTzYmGx1q69WkSIuP0s8pNE36sj787kBv+uoNJloJk+bFGnQ8A6bRmWi4Q\r\npQTm42UXEvUidjrAoPVA/MEe3ptxKyu/WuQh1CzEDnLlo4J+z6M6tRS4P25w\r\n/Y332JDBP+WDNrMquE5822zevZkHaguTOUqzZkOZ2rui9bNki6+ui06z55Ue\r\na5ZKAZHre1bN5MGQ84ymmAr57zfyv5aAa69dYmE3pCIidW+CyJuclpYO76zU\r\nEBNXA1CgQ+//FraDEaE6kv0Wy82h6g9Y0j1ac7RKbiRWu2fAnk0oaJwnA6v5\r\nG6fzVHbNt8WE4scH8ht/TDQIGuhxiGOomMAQ22uRsV27nVp9TIqn4hCoVclT\r\nrvllqRmg3tKcen0YfUFaWCWTXJR+4x40V+hacsShImp/x5rti4m+BvELaWVs\r\nusRf4L0hU9/rhcoyQO5LffxdyY9GlCPRXfLTh/FD8ssSXflIsITkcVZj3mXW\r\nFzMHr94q8fD9RBas6yoDu3HFr5himyjFp+E2HRNxHg3bvfiXdSkReXeMz1I+\r\n73LN8DoDTKRehuQCWA/H8g9SP/4Q+X83yT0=\r\n=a8WX\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"610e68e951947f00a7a1076a74a0b02c7c2abfce","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.610e68e951947f00a7a1076a74a0b02c7c2abfce.139_1646270399583_0.29382879777724735","host":"s3://npm-registry-packages"}},"0.16.1-beta.fcd62fd93212d750cc3040e42a66ec999ce1719d.140":{"name":"@preply/ds-tokens","version":"0.16.1-beta.fcd62fd93212d750cc3040e42a66ec999ce1719d.140","_id":"@preply/ds-tokens@0.16.1-beta.fcd62fd93212d750cc3040e42a66ec999ce1719d.140","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"7964f928ef34e05c4c3e5e61e2603ec09cce1fcf","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.16.1-beta.fcd62fd93212d750cc3040e42a66ec999ce1719d.140.tgz","fileCount":3,"integrity":"sha512-pS5UosqSBnc293bVN3WFOXDF+gDtBxxTMylHBythQLPYgJXjn6csTWezCjYRbdsTbh4bPHI09RQ+D8dG3oTrnQ==","signatures":[{"sig":"MEUCIAzKwUQZfQ0DM0k1QaBJNtdTdpDxDH82TMxkJBirQQf7AiEA6LqAmx8+Tt+632Z7q//YWqxvitU/Wof8ckuneUYYrbM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIBkzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpB1xAAjkROGOismJA9ol3EDg2blvxu3WRWkQuSJGMthx+rfvVvnhkN\r\nLo4d1GBQpOvD6f2xTFuNiuW8UVbk7ZrfVXYrJLvWEsihkqSlgFCJDRuABf09\r\neNdsha7ZK9Wm0JuOvxbUcOjjfL8WlWGKlv+AW4++/xLL7gT/4WBiR99Qia+K\r\n2XArten9yM6Z217LG8OrMIQTmZ87JqcPxNs1598DJnBQDgcTrMgvW16mD3cv\r\n0RLiboislYLvWXMcnYhlGuOCzmcREAUk3saStZR7Hq9KCkKaCeuFnzgqz8Ph\r\njDVsNxMVuNFyde7CSMpeDS/Kn0OQ7Q+jqI4+lAzv/cB9bEDM0CkCgFYZRCqD\r\nh3n43CdAjKJ9mueMKJlvIFTDATZvd6rJHn2R3WUc6DW+Zz1WYWIEL/xmaGfG\r\nNgOTcbRolAMtkJZcLdyPASzph/wgBTLDujY26soBiY+FdfltrMLgmF1SYqp3\r\nPpyAWl/0u/i2/pPcBYcDhrvHnviRgSfkKF8WRg71e60On1XL/cxtYXce0eCW\r\nt1iE3UvCtmKSO4j6F8D7n2it9cgHLon0Gae6VaFDkkcswRvAf981/W7KGeRj\r\n8/m1fSimJkSKIJIsR2DnJ22zQsDEhW5pY0urAzJy4NRPH5WKhm4X2i0wNdp3\r\npDTWUdTh5wtdHflNnO7OZgV4GsqIatOhy6A=\r\n=JaXp\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","gitHead":"fcd62fd93212d750cc3040e42a66ec999ce1719d","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.16.1-beta.fcd62fd93212d750cc3040e42a66ec999ce1719d.140_1646270771284_0.14211214328527433","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"@preply/ds-tokens","version":"0.17.0","_id":"@preply/ds-tokens@0.17.0","maintainers":[{"name":"preply-admin","email":"dmytro@preply.com"},{"name":"eugenegodun","email":"eugene.g@preply.com"},{"name":"heiets-preply","email":"alex.h@preply.com"},{"name":"erebus1","email":"igor.kasianov@preply.com"},{"name":"liss-mouse","email":"alisa.m@preply.com"},{"name":"grebenyuksv","email":"grebenyuksv@gmail.com"},{"name":"alex.semeniuk","email":"alex@preply.com"}],"dist":{"shasum":"df2737a99ec70ca477ac714a8e40c39523f70b4d","tarball":"https://registry.npmjs.org/@preply/ds-tokens/-/ds-tokens-0.17.0.tgz","fileCount":3,"integrity":"sha512-dff13MB14tvLzyL6/raITArtRLEDX+EWbhQcxuGkyuwb/JlB8a0iUqgmfnLSrCuzHPQErjP+OWlGewbd3hbgRg==","signatures":[{"sig":"MEUCIQCtsFa2ydVWIbisiD9N8XFDjXzAIuNM3HemtW+Ph2GCFQIgQmytKdpVlp1g+ofdbQSw3a6v6aF/BjNFY94GGEPxaK0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIO2lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovBg/+IdoQgjZ5PcU3khehZSDJ8lfz+Jx1VFYISRFgTWfPWAcaZtUu\r\n2gfdGXepbkcGBQ7CmWRoSNHCLrfebLtQiP1IU/q1RWxeOJ6es9wQMXS1dYQt\r\nKuBU/NXevxNgCeI2UwSkoF/XvQP1p4FkovSDtHBEeTr2yN8mQ76wPvZ/RhJd\r\nLJRFYtIH5L0o5bG+OKA1WpOiiGMkPuXlHsRu6G4MhaSySO+OECIwjhKQrKdb\r\n6A3+T4Z2IBfJyu8TCGpwIE5T93Bax6AM8Hde/yXQsLcXtSJwkEej0RJxwgRr\r\nFMvATZR9M1SeAs2ZvumLpDJjMPD0smafsR9jOPcvLiehqLjdrT51Jxf/3nUh\r\nRzO8eLYPKwgs9N7v28D4HNGk0TR1eTs929l+oniKH9NOerd7LZ+DysLV6pzK\r\nXmhux8dbxgKoht2y/GVfiAi8na0KADvnjYVFdFAcC7/X570GrYuVVyZ1PmFs\r\nWEctFLj/LBjm0/d3EJ5bilCbt/aD30N4f44PdGWT1Hkay58JU/gJ+l0ekDVq\r\nAA1kadOqwP5s3e2W9DPXDoSotGbAk5u7NGfY55X2BgopKH3H6XrmO9Y7EtII\r\nN5m4n3keG8kL24tRcYWWDNbjsWY5jtYzzZRPBRvKvNT0Viurec3wCoW2xsx3\r\np5tjt/ituOgQ7w5IjYjcQC4wyM/eukO8VEA=\r\n=91L5\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"dc1c71c338d101f4612e4668b754d20391624aa6","scripts":{"dev":"ts-node ./scripts/build.ts --watch","lint":"run --top-level eslint --ext .js,.ts,.tsx,.mdx src/ scripts/","build":"ts-node ./scripts/build.ts","clean":"rm -rf dist","resolve":"ts-node ./scripts/resolve-token.ts"},"_npmUser":{"name":"erebus1","email":"igor.kasianov@preply.com"},"_npmVersion":"lerna/4.0.0/node@v14.19.0+x64 (linux)","description":"> Source of truth for design tokens (+ code generators).","directories":{},"_nodeVersion":"14.19.0","dependencies":{"lodash":"4.17.20","chokidar":"3.5.2","prettier":"2.5.1","typescript":"4.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"10.2.1","@types/node":"16.7.11"},"_npmOperationalInternal":{"tmp":"tmp/ds-tokens_0.17.0_1646325157277_0.7204980689177389","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-01-26T14:04:43.769Z","modified":"2026-09-03T11:57:29.185Z","0.12.4-beta.b8b1632629622e3dad9ce77369c8ac563f026927.94":"2022-01-26T14:04:44.158Z","0.12.4-beta.582fefc10cbdacb768d4ffbd470193d78110903f.95":"2022-01-26T15:52:51.560Z","0.12.2":"2022-01-26T15:58:53.907Z","0.12.4-beta.14b9f5ea0762b850d4f70a13aaf88337567e9853.97":"2022-01-26T17:14:30.636Z","0.12.4-beta.2e2b85daead0f07e4f2831eb17f4efb517bd932f.97":"2022-01-26T18:07:37.481Z","0.12.4-beta.318dba21cb8fd477a7a59b7c642b366b5da4cd24.95":"2022-01-26T18:25:46.885Z","0.12.4":"2022-01-26T18:35:54.915Z","0.12.5-beta.84d5c5e8c9067b46db61a7f96556a522b6de935a.100":"2022-01-26T21:01:17.305Z","0.12.5-beta.29ed2b9e28ddc535847e617919a7fcbe2f3d881b.99":"2022-01-26T21:06:42.592Z","0.12.5-beta.09963455f830b84ef1e91e803affe68e9627bd93.101":"2022-01-27T15:40:53.939Z","0.12.5-beta.3e75eec1a999d6a0327f66e9858712045ccdefdb.99":"2022-01-28T10:53:30.888Z","0.12.5-beta.92dc5d6f9eb6ea982c12fa6322f81a803ebe1dad.106":"2022-01-31T11:47:15.243Z","0.12.5-beta.5ae323c73052750e9ea07a474e9132246e13b4dd.106":"2022-01-31T12:23:25.739Z","0.12.5-beta.23cb12fcb00c8490a73081543dc65f62a9669d3e.107":"2022-01-31T14:47:01.696Z","0.12.5-beta.865772b52dad0d8999ad7cbcd4699fe99295d925.108":"2022-01-31T14:59:55.956Z","0.12.5-beta.1941379833edcfb088f7ea15d65bd3a976686eb1.110":"2022-01-31T17:18:42.129Z","0.12.5-beta.0b9e8f03494b9a7267260e67538e53d81ea04bad.111":"2022-01-31T17:24:17.702Z","0.12.5-beta.039c014235821a71cfb5dbc4f1eec9a996b945f5.112":"2022-01-31T18:08:06.391Z","0.12.5-beta.2b37261722e7c85dca0545b7fe7acdacec4cc27a.99":"2022-01-31T18:23:24.752Z","0.12.5":"2022-01-31T18:35:43.827Z","0.12.6-beta.f1db4ffb1e53733ccf87ab848b64cdaa4156a17a.101":"2022-02-01T08:53:01.155Z","0.12.6-beta.10c1e10ad8c190895dfb1de8e5ccdb7f6a1e2754.102":"2022-02-01T09:23:28.131Z","0.12.6-beta.7876d065cfce064343d20ee9135fd8e01dc0029d.117":"2022-02-01T12:36:15.634Z","0.12.6-beta.e0ab1fc6ae12320281d313f1b56c1cede8d01127.120":"2022-02-01T14:31:26.028Z","0.12.6-beta.552b6b33ef94049214de098c54034ad43089fcd4.121":"2022-02-02T16:08:34.203Z","0.12.6-beta.d516f1957370e9f28aa1e44f148e16dbaf61c903.121":"2022-02-02T18:10:54.521Z","0.12.6-beta.7312c88c5022e4c14b65776fb113ba9b1a1eb2da.122":"2022-02-03T12:03:20.949Z","0.12.6-beta.3eac6e6354c9aa2901ccdfdc1ea07102f707e13b.123":"2022-02-03T12:59:55.143Z","0.12.6-beta.3a805302413dc460f9729b5faa99f4d705f96776.102":"2022-02-04T10:35:25.998Z","0.12.6-beta.bdf2f6d755a8dd9bfacecd200a4595fbd0fb1361.104":"2022-02-04T10:57:18.932Z","0.12.6-beta.a5bafbde162b6b4cbcb4031efbf36e3b38657479.103":"2022-02-04T11:01:18.682Z","0.12.6-beta.3530ba24922aaa6911a1fc29a7b4fef8093283bb.103":"2022-02-04T11:08:11.860Z","0.12.6-beta.37ba861421abcc2263eda2eb1cb25cfffd13a360.104":"2022-02-04T11:16:11.693Z","0.12.6-beta.bd4cf1387b00dd7b81f8b1b22770b9d5995accfc.104":"2022-02-04T11:20:06.311Z","0.12.6-beta.73e500c10c0cb5aff58cf434742c27004cabb7a8.104":"2022-02-04T11:56:40.343Z","0.12.6-beta.d7e80ee879650b8267394c26b38ec76fae570815.109":"2022-02-04T12:34:26.192Z","0.13.0":"2022-02-04T12:43:34.122Z","0.13.1-beta.dd23b0049117d14055b5f2e8685bf0fd16b8f794.111":"2022-02-04T12:58:52.342Z","0.13.1-beta.401bfa59c7b2e85ad1aa1c87b3b963a3083c1899.112":"2022-02-04T13:09:45.061Z","0.13.1-beta.7e539b1c4411cf69da20c46c13cd2e411d76b672.112":"2022-02-04T13:15:15.661Z","0.13.1-beta.c1e33b6c5644c50ff272e8586b934f0e8aa57b3d.115":"2022-02-04T13:54:30.876Z","0.13.1-beta.f1e80d8c10fd4f8b5079438d61c2a2c4c89fcab9.110":"2022-02-07T09:40:28.767Z","0.13.1-beta.f2fbad941230bd1d23d55020fd3c3ca9e7848246.109":"2022-02-10T12:58:11.700Z","0.13.1-beta.69b1dd46d2e456f0b85c7a327d92785bdf869817.110":"2022-02-10T13:01:12.040Z","0.13.1-beta.3c6458154ef2a49f2276267361dff8886c88acf1.109":"2022-02-10T13:56:50.614Z","0.13.1-beta.69379b4492061e205e609c3fdfb027259d77b15e.110":"2022-02-10T14:19:48.304Z","0.13.1-beta.381144679c6c22d2be0c0123dd4b64ca7b79ce7c.110":"2022-02-10T16:13:49.283Z","0.13.1-beta.82209c8329d085e1ae76bf554bb98645bce354f1.113":"2022-02-10T16:20:09.545Z","0.14.0":"2022-02-10T16:46:21.151Z","0.14.1-beta.d4f4ecb20d89ff2a6804447a4c33f72da312c646.113":"2022-02-14T10:16:36.509Z","0.14.1-beta.ff79efae2edf5863acd53195d92fe5c830f46cdd.115":"2022-02-14T10:32:30.638Z","0.14.1-beta.959c9682d434dfb737ca8ad0a369ca0a8f2d4023.116":"2022-02-14T10:36:36.120Z","0.14.1-beta.6df6732ec1e20b9a955e7d790f12d1c4190ff99d.117":"2022-02-14T10:42:32.612Z","0.14.1-beta.318cdfbe2688debdc5c00b8e6dd4cd0eccdafa87.113":"2022-02-14T15:51:37.798Z","0.14.1-beta.3f8548a41a29006acf0620fa9703f915918da8c0.115":"2022-02-14T16:20:52.883Z","0.14.1-beta.6bdb5d98813c13559b02b213e646878090c664df.114":"2022-02-14T17:58:49.616Z","0.14.1-beta.0fef52c1472dbe57c4e68d7ff4a549f636af84c1.114":"2022-02-14T18:12:06.400Z","0.14.1-beta.c907faa83096143e909e56a60464e3ba2132d737.115":"2022-02-15T07:13:50.544Z","0.14.1-beta.ddc02bf5db8cf1a62d9e54f969962df2b6d4f703.120":"2022-02-15T07:26:19.275Z","0.14.1-beta.1b522df449a3ac0308d73fdc6ec41d4b455e93dc.115":"2022-02-15T10:43:39.535Z","0.14.1-beta.4745acc1159371d8e3403496c32a08c5a71a605b.121":"2022-02-15T13:46:54.391Z","0.14.1-beta.7911c798304d5a97b78e5a59e300f439ba587530.122":"2022-02-15T14:50:53.250Z","0.14.1-beta.82f514cdbc3437c86fd992d8ea83fd2d82a32885.116":"2022-02-16T09:07:01.935Z","0.14.1-beta.73cb7d7dbbc39f5d762aa7aa6c2b61638d503cfa.118":"2022-02-17T16:27:34.833Z","0.14.1-beta.347a3b2426d67cdf862cc50320a05ff2a55ccb21.119":"2022-02-17T16:31:16.989Z","0.14.1-beta.61758c49ce7d5c5237b50bf2fb4681693bedf769.117":"2022-02-18T11:05:13.223Z","0.14.1-beta.1221201ea1298b6603f51b9e31a7e75977ad6b0f.120":"2022-02-18T11:42:50.509Z","0.14.1-beta.7ae4b5af121b2de26696279ecb73c9bf5e957465.118":"2022-02-18T11:51:40.644Z","0.14.1-beta.be258f3e134ff658bdc45e502b49e42d9edd71f1.119":"2022-02-18T12:29:44.766Z","0.14.1-beta.8dcb5228590e31674dbf842c4832323f81d0aadb.119":"2022-02-18T13:03:46.399Z","0.14.1-beta.aa35b60f452f21e0c3285fa59b6e3ee0c32270ea.119":"2022-02-18T13:07:25.751Z","0.14.1-beta.869ae1e19f5a56192ef2be535bc693ed175aec54.119":"2022-02-18T13:15:19.368Z","0.14.1-beta.9e318027c208c29fdd151c503af7be098fcd595c.120":"2022-02-18T16:52:59.826Z","0.14.1-beta.eea85aef94278175c94d4f2b643311a4075ece3b.120":"2022-02-18T16:56:37.927Z","0.14.1-beta.7ff924e365888530f4dd4fa43cbecbecaff50f88.119":"2022-02-21T10:05:02.550Z","0.14.1-beta.42f03501e5887aac2f8f91891ee8dbd2ab01c00c.123":"2022-02-21T10:08:17.591Z","0.14.1-beta.be6aef12385b6576bb04665d01c1024d76758832.119":"2022-02-21T10:08:47.284Z","0.14.1-beta.4a0f8108fa329c98d571276f1db5215142c81caf.119":"2022-02-21T10:10:06.824Z","0.14.1-beta.9a7c4f48ff28e6b281cf92e11c3fc3bc17dff15d.124":"2022-02-21T10:28:25.558Z","0.15.0":"2022-02-21T14:14:28.670Z","0.15.1-beta.6b0f2cd41223f0a3222bd004cd379a76368d9c91.120":"2022-02-21T14:23:59.363Z","0.15.1-beta.494529817df191f76cecf6cc898ead43ec753ccb.121":"2022-02-21T14:37:15.233Z","0.15.1-beta.9dd08f6d3d1245309ee55b182102892f88ad2edd.122":"2022-02-21T14:49:25.949Z","0.15.1-beta.3eca60ce4f385d81bfbd2bbf9926fe1b63ed4905.123":"2022-02-21T15:04:43.771Z","0.15.1-beta.01eb188f0a2791b0537e6ae0ead492e6453407b2.124":"2022-02-21T15:07:47.415Z","0.15.1-beta.77ac96ccf8f9eb268941b1405cb190ac03610c2e.124":"2022-02-21T15:15:00.626Z","0.15.1-beta.35bbe7de1a49f21766d307375bcf7a7af1ccf50a.125":"2022-02-21T15:28:27.720Z","0.15.1-beta.e52383922756a4615dd0052e15a18922c635fb93.127":"2022-02-21T20:15:15.397Z","0.15.1-beta.79dabff803a37184a04dfaf1d4a38e011772a3c8.127":"2022-02-22T10:36:58.277Z","0.15.1-beta.32d9ff6c9cef7024ba02e65e2dd807ac3ecd9fb1.131":"2022-02-22T10:43:27.112Z","0.15.1-beta.30ff0c11cef52ea6d13fb660dc0fe85e9c57550a.128":"2022-02-22T10:49:32.695Z","0.15.1-beta.d373dd274f826ccfee258863d192cc9de6c994fc.130":"2022-02-23T09:54:38.398Z","0.15.1-beta.5b3f7ff190f7a49be874b44bd8ef81f303e585f7.131":"2022-02-23T10:43:57.155Z","0.15.1-beta.1cab01fcdc16084f4a47fc18e926de0ac0c33ac5.132":"2022-02-24T09:41:26.292Z","0.15.1-beta.c9eea18cd6eb4510ab738cba68c59c03c2a9079d.130":"2022-02-25T15:44:06.448Z","0.15.1-beta.4cc8dcdee763b2875e960f8e78f6625dccc35faf.131":"2022-02-25T15:48:00.144Z","0.15.1-beta.76d2de474ddd2cdc7fe81a6545b7e22350c5c01e.131":"2022-02-25T19:04:43.731Z","0.16.0":"2022-02-25T20:36:12.186Z","0.16.1-beta.ad8f7b46a3118783b1c5cf3b517035a6b8c43795.134":"2022-02-25T21:53:48.333Z","0.16.1-beta.b107b260734d896a7c69b9a07e40dfbcaf5823f4.134":"2022-02-25T21:59:44.898Z","0.16.1-beta.92c8850eae20073aeabe87cefdd2129469e0091f.134":"2022-02-25T23:06:26.688Z","0.16.1-beta.32f8450e8c3141a168eb53d9cba2892b8a252732.135":"2022-02-25T23:51:17.805Z","0.16.1-beta.d0f65cbfa1a436f7d42cd38670f2733f591a8ce5.134":"2022-02-26T01:48:39.484Z","0.16.1-beta.675c0e229d3e499347153acebcd5abd4c05d5ea9.136":"2022-02-28T10:07:51.451Z","0.16.1-beta.09ece53252e0eebdb1663acbc24610b942c9e52e.129":"2022-03-01T01:02:13.901Z","0.16.1-beta.6d46ea416f7c789279e97d4cbddc13022f3dbe6e.130":"2022-03-01T10:36:42.823Z","0.16.1-beta.f65d5ef382f667fdc418e587de541aeb216cb5be.129":"2022-03-02T14:23:06.993Z","0.16.1-beta.610e68e951947f00a7a1076a74a0b02c7c2abfce.139":"2022-03-03T01:19:59.736Z","0.16.1-beta.fcd62fd93212d750cc3040e42a66ec999ce1719d.140":"2022-03-03T01:26:11.474Z","0.17.0":"2022-03-03T16:32:37.438Z"},"description":"> Source of truth for design tokens (+ code generators).","maintainers":[{"email":"eugene.g@preply.com","name":"eugenegodun"},{"email":"igor.kasianov@preply.com","name":"erebus1"},{"email":"alex@preply.com","name":"alex.semeniuk"},{"email":"it-service@preply.com","name":"it-service"},{"email":"serhii.tonkoshkur@preply.com","name":"serhii.tonkoshkur"},{"email":"lukas.kurucz@preply.com","name":"lukas-preply"},{"email":"chinskiy@preply.com","name":"chinskiy_preply"}],"readme":"# `@preply/ds-tokens`\n\n> Source of truth for design tokens (+ code generators).\n\n## Using the Design System in your application or library?\n\nFollow the instructions in [@preply/ds-workspace](../../README.md).\n\n**tl;dr:**\n\n```tsx\nimport { tokens } from `@preply/ds-core`;\nimport { useToken } from `@preply/ds-web-core`;\n\nconst color = useToken(tokens...);\n```\n\n## Development\n\nYou probably want to execute `yarn dev` and/or `yarn docs` in the root, as per instructions in [@preply/ds-workspace](../../README.md).\n\nMore details about tools and configurations in [@preply/ds-workspace](../../README.md).\n\n## Authoring\n\n- `yarn build` - validates and builds themes\n- `yarn dev` - validates and builds every time a data file is modified\n- `yarn resolve` - get help with one token\n  - `yarn resolve preply-ui action.variant.primary.color invert`\n\n### Data files\n\nSource of truth for tokens, types, themes, is stored in `data/`.\n\n- `tokens.json` defines which tokens should exist in themes using patterns such as `palette.*.*.color`\n- `options.json` defines which options go into those `*` placeholders, and which ones should exist as a type in `@preply/ds-core`\n- `themes.json` declares which themes exist in the system (and the dependencies between them)\n- `schemes.json` declares which color schemes exist in the system\n\n## How it works\n\n### Code generation\n\nWe are using:\n\n- [typescript factory API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to generate TS code\n- [this awesome tool](https://ts-ast-viewer.com/) to generate the factory functions\n\n### Generated files\n\nFollowing the spec in [Token System](https://preply.atlassian.net/wiki/spaces/DS/pages/3114827841/Token+System):\n\n- @preply/ds-tokens\n  - dist/metadata.json\n- @preply/ds-core\n  - src/generated/tokens.ts\n- @preply/ds-web-core\n  - src/generated/tokens.less\n- @preply/ds-web-root\n  - src/generated/themes.ts\n  - src/generated/themes.module.less\n- @preply/ds-theme-\\*\n  - src/generated/web/constants.ts\n  - src/generated/web/theme.module.less\n\n### Troubleshooting\n\nSearch for `* FILE` to locate the function responsible for each generated file.\n\nAll functions are documented with a sample of the generated code.\n\n### Validation rules (WIP)\n\nThe following validations will be implemented progressively, not with the first version of this package.\n\n#### Options\n\n- no repeated patterns\n- for each pattern\n  - no repeated types\n  - no repeated defaults\n  - no repeated option ids\n\n#### Schemes\n\n- for each scheme\n  - for each scheme.extends\n    - value must exist in schemes.items\n\n#### Tokens\n\n- validate id collisions\n\n#### Themes\n\n- for each theme\n  - for each theme.extends\n    - [ ] value must exist in themes.items\n    - for each token in theme\n      - [x] token needs to exist\n      - [x] data must match the expected format depending on scheme true/false\n      - [ ] if value is `{reference}` it must be a valid token name\n      - if color scheme\n        - for each \"base\" color scheme\n          - [x] value must be provided\n  - if theme is a \"base\" theme (does not extend other themes)\n    - for each token in expanded tokens\n      - [x] theme must implement token\n\n## Dependencies\n\nThis packages is essentially a `Node.js` build-time package that generate codes therefore it depends on:\n\n- typescript - uses its `factory` API to generate TS code.\n- chokidar, lodash, etc..\n\n**Note:** This package could theoretically use some of the types from `@preply/ds-core` but we don't want to add that dependency because this tool is responsible for generating some of the type files in there.\n\n### Dev dependencies\n\nRelies on `ts-node` for executing TS in Node.js.\n","readmeFilename":"README.md"}