{"_id":"@alvvo/everscale-json-generator","_rev":"1-b4042a5d105b97add8b91ae2cde0aee5","name":"@alvvo/everscale-json-generator","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@alvvo/everscale-json-generator","version":"1.0.0","description":"A library for on-chain JSON generation in Solidity language for Everscale.","repository":{"type":"git","url":"git+https://github.com/alvvo/everscale-json-generator.git"},"bugs":{"url":"https://github.com/alvvo/everscale-json-generator/issues"},"author":{"name":"https://github.com/alvvo"},"license":"MIT","homepage":"https://github.com/alvvo/everscale-json-generator#readme","keywords":["solidity","everscale","smart","contracts","security","generator","json","library"],"gitHead":"34cddcccf023ffedcff006344bbc31a5860f8512","_id":"@alvvo/everscale-json-generator@1.0.0","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-fqWkC/zECkJmMigeqL2YSWY6++YvWE+tiUNI/qU8gSpYOdnX4EEpGVS4QQKNppqTAv5hJv70qhyKyNF01W9vHg==","shasum":"5fe0f13261c7b591244624bbf29fa4d6cd85d8a3","tarball":"https://registry.npmjs.org/@alvvo/everscale-json-generator/-/everscale-json-generator-1.0.0.tgz","fileCount":4,"unpackedSize":8804,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGOT1BHeZD28I4odtvFda1fYNkBpEtD/GkMh/RmPUtRAIhAKIl6hIMUnEUWDjGp2EcHOqstZ+eUuwvCTiAtqGxSJBu"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJa9VACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUFA//c5heKvBQO084UB1geyBLcfwNwP5bCcix1zjIeGVeU2T6DNVO\r\nXFosB4CieHjUM7oRLbY4+LP56dghe2Q2K1l2LeKJ0nsOgsAa0lXCPAjmrmKz\r\nW0AaWE+bz4rgpGVn8y/imVRwJQ0R4lqdBVVmPgOEM7JAWVpk72sIfebE58SP\r\nXzaIRgXQSgJhyh/4PeOHNhON06XjZ5RZ8s75UqBcUlDS7QmGyu6KZMR1jpiv\r\n3DQEPHAAbTCKJUZWSZ7hLx2H/ksyYBTPOgWdp+AM6EAM/a79pKLb0aeewxJ3\r\nW7UhJn3ZryiJ+QVgRzHBM8blOInF8z32U2UjUtQqalbCw1oZevcWsV3Sa9iX\r\nblrTMh7eAd2WvYt4NFVuqsYjuZgzpLhMh6NrKww0SUJz4zVk/KJ05B1bwOH8\r\nNojxBtdg7uOP0Dwkv970L5WkZQih8O5lPfaALggOw1SOIDD/2HeYRDxPy/Y0\r\nsa8OZybGcj2+4A2CntKQ45yhc3xQ24FRuSXqp1CSMcLyHvjaT2BFoDlXSNxA\r\n9Fu9rHZOuxviQnJXB0nta4rLQ/Y37oJkHuWyukuMbm8BnBx69ePnm/MdaPkv\r\nPYigeXEjZc/5FO7vq8DMt5gr+1XjcM/Nht66Gp2Mlhh/+IDf2psOCNYT9eh7\r\nBcynT4ycfQE103x2CkOJCDbWw1Kz7McLrAI=\r\n=VU9X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alvvo","email":"shirma.artem@list.ru"},"directories":{},"maintainers":[{"name":"alvvo","email":"shirma.artem@list.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/everscale-json-generator_1.0.0_1680191317225_0.94745249086767"},"_hasShrinkwrap":false},"1.1.0":{"name":"@alvvo/everscale-json-generator","version":"1.1.0","description":"A library for on-chain JSON generation in Solidity language for Everscale.","repository":{"type":"git","url":"git+https://github.com/alvvo/everscale-json-generator.git"},"bugs":{"url":"https://github.com/alvvo/everscale-json-generator/issues"},"author":{"name":"https://github.com/alvvo"},"license":"MIT","homepage":"https://github.com/alvvo/everscale-json-generator#readme","keywords":["solidity","everscale","smart","contracts","security","generator","json","library"],"gitHead":"6a23a95ce1a44617e110c1f823fb9638a423886c","_id":"@alvvo/everscale-json-generator@1.1.0","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-nq84UCSWkKpnMsoY0fuZhsqDesRmYbR0cUgo3/2HmtDDAv5XrmqXkqdDWOO7ErOfs0dYSTq0htQH/tzwZSC9Bg==","shasum":"42d6f464672f1e28d1fe4cf493c6af572b64a441","tarball":"https://registry.npmjs.org/@alvvo/everscale-json-generator/-/everscale-json-generator-1.1.0.tgz","fileCount":4,"unpackedSize":14618,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDysRu3U433Lw8TjV9EsQTlhEIljbUru3+Q5ulYx6/msAiA060/LwNp69S7yeecsPne9LHcLnIsgCMOhG0maWdgwPw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLeWVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBug/9F3CGyQpr4G9H5I7vaehy8bN6d/P/SfcAVctNVLtZwRXOhao7\r\n7r+I6+J/XHsDl0h6DEAI/Q5zE8iSFNJh0SlvMrTayDfLJVWCdt9VMhWO5YlY\r\nfTP0bhG1oDeKeB4bE2OD3WiD2YRbiRHUSaX5YDc4Wa3/nP1K9jbs1X7OH1sJ\r\nfPgbAITO4wcbaoIpSNXDGXZTUWqocmk4HWVnV1PcHs2ciduc9QgaYpr1AAk8\r\nJWa5XuS4iq9aF4IPMIK24VbmBYhVdPdPyhadlGI6DKxRzA5liT7AIDhcV1mc\r\nn3XTMqp+g8fKos86hYBqpThOrWZjsiRrqlkXSbXLGTnDH02npmFLuaru/r/5\r\nvtubz7wKqt2UufPDCOO19E8zwpb5HnMEv0aT5FqgvUUQ0veJWx1BBrRv8nXX\r\nXSZgyK4seabtc1mxpuxb8hOflZrD5InFH9Q0cQdFITNnc3W08e+gmiZH1Fid\r\nvd9yQ7ZZJbmDwgEqGLSPD7TE1MsPh8kuw+k7Le/pgd3tXGPX58Fim17fHPDk\r\nvcxyj7qOC2HSGmdeLqQ4M0uztz6cfveG5u6Bc/t/ZLmm5CIfndcWvNhMdOZT\r\nNKSlQVp/ldCjS9WNkfJqyzxgjvIeJ9T/kd5fFPaXrXM+NMVJp5LeQvqukROI\r\nDMfvlhzcZGfGhWyra0hG7lh37Kpte37cg5E=\r\n=sWQO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alvvo","email":"shirma.artem@list.ru"},"directories":{},"maintainers":[{"name":"alvvo","email":"shirma.artem@list.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/everscale-json-generator_1.1.0_1680729493400_0.5623737418983998"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-30T15:48:37.131Z","1.0.0":"2023-03-30T15:48:37.431Z","modified":"2023-04-05T21:18:13.638Z","1.1.0":"2023-04-05T21:18:13.527Z"},"maintainers":[{"name":"alvvo","email":"shirma.artem@list.ru"}],"description":"A library for on-chain JSON generation in Solidity language for Everscale.","homepage":"https://github.com/alvvo/everscale-json-generator#readme","keywords":["solidity","everscale","smart","contracts","security","generator","json","library"],"repository":{"type":"git","url":"git+https://github.com/alvvo/everscale-json-generator.git"},"author":{"name":"https://github.com/alvvo"},"bugs":{"url":"https://github.com/alvvo/everscale-json-generator/issues"},"license":"MIT","readme":"# Everscale JSON Generator\n###### A library for on-chain JSON generation in Solidity language for Everscale.\n\n### Use\n*   Install package:\n    ```bash\n    npm i @alvvo/everscale-json-generator\n    ```\n*   Example of smart-contract:\n    ```solidity\n    pragma ton-solidity >= 0.58.1;\n\n    pragma AbiHeader time;\n    pragma AbiHeader expire;\n    pragma AbiHeader pubkey;\n\n    import \"@alvvo/everscale-json-generator/src/JSONGenerator.sol\";\n\n    contract Sample {\n\n        constructor() public {\n            tvm.accept();\n        }\n\n        /**\n        *   @notice Sample of use this library \n        */\n        function getJson() public returns(string json) {\n            return(\n                /**\n                *   @dev Create JSON\n                */\n                JSONGenerator._createJSON([\n                    /**\n                    *   @dev Create single JSON element\n                    */\n                    JSONGenerator._addSingle(\"singleString\", \"text\", true),\n                    JSONGenerator._addSingle(\"singleNumber\", format(\"{}\", 0), false),\n                    /**\n                    *   @dev Create single-type arrays (named & unnamed)\n                    */\n                    JSONGenerator._addSingleTypeArray(true, \"array0\", [\"text0\", \"text1\"], true),\n                    JSONGenerator._addSingleTypeArray(false, \"array1\", [format(\"{}\", 0), format(\"{}\", 1)], false),\n                    /**\n                    *   @dev Create multiple-type arrays (named & unnamed)\n                    */\n                    JSONGenerator._addMultipleTypeArray(true, \"array2\", [format(\"{}\", 0), \"text1\"], [false, true]),\n                    JSONGenerator._addMultipleTypeArray(false, \"array3\", [format(\"{}\", 0), \"text1\"], [false, true]),\n                    /**\n                    *   @dev Create objects (named & unnamed)\n                    */\n                    JSONGenerator._addObject(true, \"object0\",\n                        [\n                            JSONGenerator._addSingle(\"singleString\", \"text\", true),\n                            JSONGenerator._addSingleTypeArray(true, \"array0\", [\"text0\", \"text1\"], true),\n                            JSONGenerator._addMultipleTypeArray(true, \"array2\", [format(\"{}\", 0), \"text1\"], [false, true])\n                        ]\n                    ),\n                    JSONGenerator._addObject(false, \"object1\",\n                        [\n                            JSONGenerator._addSingle(\"singleString\", \"text\", true),\n                            JSONGenerator._addSingleTypeArray(true, \"array0\", [\"text0\", \"text1\"], true),\n                            JSONGenerator._addMultipleTypeArray(true, \"array2\", [format(\"{}\", 0), \"text1\"], [false, true])\n                        ]\n                    ),\n                    /**\n                    *   @dev Create object arrays (named & unnamed)\n                    */\n                    JSONGenerator._addSingleTypeArray(true, \"array4\", \n                        [\n                            JSONGenerator._addObject(true, \"object0\",\n                                [\n                                    JSONGenerator._addSingle(\"singleString\", \"text\", true),\n                                    JSONGenerator._addSingleTypeArray(true, \"array0\", [\"text0\", \"text1\"], true)\n                                ]\n                            ),\n                            JSONGenerator._addObject(true, \"object1\",\n                                [\n                                    JSONGenerator._addSingle(\"singleString\", \"text\", true),\n                                    JSONGenerator._addSingleTypeArray(true, \"array0\", [\"text0\", \"text1\"], true)\n                                ]\n                            )\n                        ], \n                        false\n                    ),\n                    JSONGenerator._addSingleTypeArray(false, \"array5\", \n                        [\n                            JSONGenerator._addObject(true, \"object0\",\n                                [\n                                    JSONGenerator._addSingle(\"singleString\", \"text\", true),\n                                    JSONGenerator._addSingleTypeArray(true, \"array0\", [\"text0\", \"text1\"], true)\n                                ]\n                            ),\n                            JSONGenerator._addObject(true, \"object1\",\n                                [\n                                    JSONGenerator._addSingle(\"singleString\", \"text\", true),\n                                    JSONGenerator._addSingleTypeArray(true, \"array0\", [\"text0\", \"text1\"], true)\n                                ]\n                            )\n                        ], \n                        false\n                    )\n                ])\n            );\n        }\n    }\n    ```\n### Description\n*   ##### JSONGenerator._createJSON: \n    ```solidity\n    function _createJSON(string[] elements) internal virtual returns(string json)\n    ```\n    This method is essential in JSON generation as it forms the final JSON format for an array of objects:\n    *   `elements` - Array of string elements.\n    *   `json` - The formated JSON.\n*   ##### JSONGenerator._addSingle:    \n    ```solidity\n    function _addSingle(string name,\n        string value,\n        bool isStringValue\n    ) internal virtual returns(string element)\n    ```\n    This function creates a single key-value pair:\n    *   `name` - The key name of the key-value pair.\n    *   `value` - The value of the key-value pair.\n    *   `isStringValue` - A flag indicating whether the value is a string or not.\n    *   `element` - String of key-value pair.\n*   ##### JSONGenerator._addSingleTypeArray:    \n    ```solidity\n    function _addSingleTypeArray(\n        bool isNamed,\n        string name,\n        string[] values,\n        bool isStringValues\n    ) internal virtual returns(string element)\n    ```\n    This function creates a single-type array key-value pair:\n    *   `isNamed` - The parameter specifies whether the array will have a key name or not.\n    *   `name` - The key name of the key-value pair.\n    *   `values` - The value of the key-value pair.\n    *   `isStringValues` - A flag indicating whether the value is a string or not.\n    *   `element` - String of key-value pair.\n*   ##### JSONGenerator._addMultipleTypeArray:    \n    ```solidity\n    function _addMultipleTypeArray(\n        bool isNamed,\n        string name,\n        string[] values,\n        bool[] isStringValues\n    ) internal virtual returns(string element)\n    ```\n    This function creates a single-type array key-value pair:\n    *   `isNamed` - The parameter specifies whether the array will have a key name or not.\n    *   `name` - The key name of the key-value pair.\n    *   `values` - The value of the key-value pair.\n    *   `isStringValues` - Arrays of flags indicating whether the value is a string or not.\n    *   `element` - String of key-value pair.\n*   ##### JSONGenerator._addObject:    \n    ```solidity\n    function _addObject(\n        bool isNamed,\n        string name,\n        string[] elements\n    ) internal virtual returns(string element)\n    ```\n    The function for forming an object from elements:\n    *   `isNamed` - The parameter specifies whether the array will have a key name or not.\n    *   `name` - The key name of the key-value pair.\n    *   `elements` - Array of string elements.\n    *   `element` - String of key-value pair.","readmeFilename":"README.md"}