{"_id":"@eluvio/elv-live-js","_rev":"3-3d4a6ca2f743af99869e6543e134d9b4","name":"@eluvio/elv-live-js","dist-tags":{"latest":"1.1.2"},"versions":{"1.1.0":{"name":"@eluvio/elv-live-js","version":"1.1.0","description":"Eluvio Live SDK and Tools","main":"EluvioLive.js","scripts":{"bump-version":"npm --git-tag-version --no-commit-hooks version patch","test":"jest","test-one":"jest -t \"shuffle directory\"","lint":"eslint \"src/**/*.js\" \"test/**/*.js\" --fix","prettier":"prettier --write ."},"pre-commit":["lint"],"repository":{"type":"git","url":"git+https://github.com/eluv-io/elv-live-js.git"},"keywords":["eluvio","eluvio-live","content-fabric"],"author":{"name":"Eluvio, Inc."},"license":"MIT","bugs":{"url":"https://github.com/eluv-io/elv-live-js/issues"},"homepage":"https://github.com/eluv-io/elv-live-js#readme","dependencies":{"big-number":"^2.0.0","elv-client-js":"git+https://github.com/eluv-io/elv-client-js.git#develop","ethers":"^5.5.4","fraction.js":"^4.1.1","got":"^11.8.2","js-yaml":"^3.14.1","prompt-sync":"^4.2.0","seedrandom":"^3.0.5","url-join":"^4.0.1"},"devDependencies":{"eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-html":"^5.0.5","http-server":"^0.12.1","jest":"^27.4.7","pre-commit":"^1.2.2","prettier":"2.5.1"},"gitHead":"39412e35195f223d3328e268e6ee6f6d4706ee36","_id":"@eluvio/elv-live-js@1.1.0","_nodeVersion":"14.18.0","_npmVersion":"8.7.0","dist":{"integrity":"sha512-8pspL1YjhebHbObRbZSRRQt+XTSkQmKo789qsv5wjm1XDWGOBfs6UW//hqi/wrrXvNGd6Yh1KFDeuuwLPTwWwQ==","shasum":"31b3b0e483f6bbf765325cb30c9bec3ce1b6d24f","tarball":"https://registry.npmjs.org/@eluvio/elv-live-js/-/elv-live-js-1.1.0.tgz","fileCount":18,"unpackedSize":215770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCU91aigJ+x1QR6EMFNe39TIWCO7UuSyO9byCbeSSFmGgIhAKh8NsbqVkdjIvXQLw4w6npunEyHL2kQ3Hq2JNaGdwQx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYb7ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTbw/+PTGJJd5Mf1uwgfCRSrdh4rS9KyeVIfyvl/xIUna1kTAzctbU\r\nuSZciWDzV8d1NrVk95daW1+s3eVeJLsPdK7rFMBv03IEuZdoea4ati9ssKHR\r\n8zpGUllh30cGMq1zD54lLAo/u6DKI0vzFgB+lvRvTQcoalb0BMnVOpvuAekn\r\nti+KS0+nCu4M3iBl+rjmJiQboYwocY9RWr1WAbgWtCoa0dNoLScEoxxwL82c\r\nmjxeOh1p95hVSYNm/YeZVcRCZgy1619hh9S5AVySpP5UUDsQQXN68d5h8I6d\r\nUdBx8LDVQzWJghnskMHiFTgnTcz7k3qdI+XRbVZfXMp2FnXImGB35Iuah0t1\r\nqzEtIMzUErTqPMVA/b0KG81ttlsjMIKMd0ei3hm7rWdlUYd2BxTHq2YpCpbx\r\nj3ukUpzq53mOrqDV8aovLhIZ3XfQb4i4cd6ECEhYOvTLz/DwTp2z1DW1KQi5\r\nCyrEs0/ry8Y+cHRGy+KbMpQJ4vnL4dRHBUbtDgml8YoOYEvmqDMU4VELBRQ+\r\nOM8b0Ut1QozsdK0+RACQhPelKghILVA9eosHBeuU07IRkSyMnhsjp4MFJjkC\r\njBaeNy9n8s3qJSW82yEIMfi34FxJSZujlLfZOZYsb/2bEO+J8p/W9BSwstL5\r\nwa568bFJ8Jrxp6nU6n2IFXFwK9enbHBuRRU=\r\n=3P1n\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"elv-kevin","email":"kevin@eluv.io"},"directories":{},"maintainers":[{"name":"elv-michael","email":"michael.parker@eluv.io"},{"name":"elv-peter","email":"peter@eluv.io"},{"name":"john.heaton","email":"john@eluv.io"},{"name":"elv-kevin","email":"kevin@eluv.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elv-live-js_1.1.0_1650573016972_0.6448965329879175"},"_hasShrinkwrap":false},"1.1.1":{"name":"@eluvio/elv-live-js","version":"1.1.1","description":"Eluvio Live SDK and Tools","main":"EluvioLive.js","scripts":{"bump-version":"npm --git-tag-version --no-commit-hooks version patch","test":"jest","test-one":"jest -t \"shuffle directory\"","lint":"eslint \"src/**/*.js\" \"test/**/*.js\" --fix","prettier":"prettier --write ."},"pre-commit":["lint"],"repository":{"type":"git","url":"git+https://github.com/eluv-io/elv-live-js.git"},"keywords":["eluvio","eluvio-live","content-fabric"],"author":{"name":"Eluvio, Inc."},"license":"MIT","bugs":{"url":"https://github.com/eluv-io/elv-live-js/issues"},"homepage":"https://github.com/eluv-io/elv-live-js#readme","dependencies":{"big-number":"^2.0.0","elv-client-js":"git+https://github.com/eluv-io/elv-client-js.git#develop","ethers":"^5.5.4","fraction.js":"^4.1.1","got":"^11.8.2","js-yaml":"^3.14.1","prompt-sync":"^4.2.0","seedrandom":"^3.0.5","url-join":"^4.0.1"},"devDependencies":{"eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-html":"^5.0.5","http-server":"^0.12.1","jest":"^27.4.7","pre-commit":"^1.2.2","prettier":"2.5.1"},"gitHead":"29bcc0c92437e3cdbcc46d8dbd21be6d1119862c","_id":"@eluvio/elv-live-js@1.1.1","_nodeVersion":"14.18.0","_npmVersion":"8.7.0","dist":{"integrity":"sha512-cV4CIzYkb28NtRYK08Hz5LWuZhrlu24EuYZqn/oLh8ylJVJ7s/6jSTY0pAlCwB2itWOC6O7kNsoArzadv3g0Ig==","shasum":"5cf5380c05a6d7107a08f8b88160e45c5a3e3d24","tarball":"https://registry.npmjs.org/@eluvio/elv-live-js/-/elv-live-js-1.1.1.tgz","fileCount":18,"unpackedSize":215770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICrY3Asc4QmVg52OWxp97D3UYs3DaezE2g5mhwYDeIb+AiAYdmmfMrVcddqllgOsbvWW+YMKau0woaxRaj66Tks7+g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYb8jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGhw//bjnEchiBiQrSDmjXvd1Yvjl+VrsrSVJyqQna+oaDgu9wYhtu\r\n2meIsG6LfxPoAyPgXzJhRx00VK1sIO2CwnTtrW9hJsDEcJWbhL0MCGBcNTt0\r\nBRjO5ak9Z2QoMowTdhR74fpvU3NT8IOnmL9/agp/ecZ/6W2r+XcWw72rCQ4g\r\ntLNS2QAXMXOG7FLzlC6l8DDyON8lXSVfz4GfOTJafixhOlsDefp9Gvtc5Fk2\r\nbbZIx9XILpxiZkLdr8skSkceTLdv0eF2EDwgVtD3LXarpC2uv+6/HuvDtdwQ\r\nrmuCxR4THFllNa6rR86UTMgLYxfxwYVvHaFg/WiMSeLAkr3lfRc7cfW0uFCX\r\n6FZMxlKuG1a6CtjIx2mZKwsPvKkb/ajpDPbHztT5oDC2w4V/t1sRORL02xeb\r\nVNKEe/rilVTNNV9KzniThW2D7FPXzccpMAVxN5hp37p5A2YJozzBts+fS6EM\r\njQySPn3pgJlzEnuL8oakfEX3IXoqSCmyhPnBjBrcDTBF7cmEuBEQfz7FJnbU\r\ncHKX0HjfhTFUiDYm2AGmarW57zVQslAEZA03mhpRT1dMIcaelPJwJ+oAH91c\r\nLCiGP1K1s/T141ZueltYspktGOz+62ZulkQYrRXR9vtn+ixWnCzTliJS/Gip\r\n9RuBYZMi5mD3Y4fAdhcYJ4zgFMYJRMHcMV8=\r\n=q2pf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"elv-kevin","email":"kevin@eluv.io"},"directories":{},"maintainers":[{"name":"elv-michael","email":"michael.parker@eluv.io"},{"name":"elv-peter","email":"peter@eluv.io"},{"name":"john.heaton","email":"john@eluv.io"},{"name":"elv-kevin","email":"kevin@eluv.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elv-live-js_1.1.1_1650573091700_0.9066290296838637"},"_hasShrinkwrap":false},"1.1.2":{"name":"@eluvio/elv-live-js","version":"1.1.2","description":"Eluvio Live SDK and Tools","main":"EluvioLive.js","scripts":{"bump-version":"npm --git-tag-version --no-commit-hooks version patch","test":"jest","test-one":"jest -t \"shuffle directory\"","lint":"eslint \"src/**/*.js\" \"test/**/*.js\" --fix","prettier":"prettier --write ."},"pre-commit":["lint"],"repository":{"type":"git","url":"git+https://github.com/eluv-io/elv-live-js.git"},"keywords":["eluvio","eluvio-live","content-fabric"],"author":{"name":"Eluvio, Inc."},"license":"MIT","bugs":{"url":"https://github.com/eluv-io/elv-live-js/issues"},"homepage":"https://github.com/eluv-io/elv-live-js#readme","dependencies":{"@eluvio/elv-client-js":"github:eluv-io/elv-client-js#tenant","big-number":"^2.0.0","csv-parse":"^5.3.0","dot-object":"^2.1.4","ethers":"^5.5.4","fraction.js":"^4.1.1","got":"^11.8.6","js-yaml":"^3.14.1","keccak256":"^1.0.6","postgres":"^3.3.5","prompt-sync":"^4.2.0","seedrandom":"^3.0.5","url-join":"^4.0.1","uuid":"^8.3.2"},"devDependencies":{"eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-html":"^5.0.5","http-server":"^0.12.1","jest":"^27.4.7","pre-commit":"^1.2.2","prettier":"2.5.1"},"gitHead":"795a86edd6e958ef5a077a95479e021b8e3773e1","_id":"@eluvio/elv-live-js@1.1.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-BfcK5SJTdrJ5TJUZZ3LbyRTklNU37PfXQY4zFRrTWoDHNX1KXlYqtrAeY3y9k2UPAowWPAAsRozqvkQLZmvIvw==","shasum":"89cf3b7545a7ef40ae36870346b22d76dc4acd40","tarball":"https://registry.npmjs.org/@eluvio/elv-live-js/-/elv-live-js-1.1.2.tgz","fileCount":54,"unpackedSize":836475,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHrbCOIecKn3SGpaHMgom0luaI4OcDUwWbCg3XwP8eV8AiBU3grksV/Isg/4xQ6qkYiLhiTSEtON5ul7OrzXUJvJAQ=="}]},"_npmUser":{"name":"elv-zenia","email":"zenia.villa@eluv.io"},"directories":{},"maintainers":[{"name":"elv-zenia","email":"zenia.villa@eluv.io"},{"name":"elv-michael","email":"michael.parker@eluv.io"},{"name":"elv-peter","email":"peter@eluv.io"},{"name":"john.heaton","email":"john@eluv.io"},{"name":"elv-kevin","email":"kevin@eluv.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elv-live-js_1.1.2_1693427548865_0.8422093117988843"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-21T20:30:16.927Z","1.1.0":"2022-04-21T20:30:17.096Z","modified":"2023-08-30T20:32:29.411Z","1.1.1":"2022-04-21T20:31:31.874Z","1.1.2":"2023-08-30T20:32:29.089Z"},"maintainers":[{"name":"elv-zenia","email":"zenia.villa@eluv.io"},{"name":"elv-michael","email":"michael.parker@eluv.io"},{"name":"elv-peter","email":"peter@eluv.io"},{"name":"john.heaton","email":"john@eluv.io"},{"name":"elv-kevin","email":"kevin@eluv.io"}],"description":"Eluvio Live SDK and Tools","homepage":"https://github.com/eluv-io/elv-live-js#readme","keywords":["eluvio","eluvio-live","content-fabric"],"repository":{"type":"git","url":"git+https://github.com/eluv-io/elv-live-js.git"},"author":{"name":"Eluvio, Inc."},"bugs":{"url":"https://github.com/eluv-io/elv-live-js/issues"},"license":"MIT","readme":"# elv-live-js\n\nEluvio Live JavaScript SDK and CLI\n\nA collection of libraries and utilities for managing content, live performance and NFT marketplaces on [Eluvio Live](https://live.eluv.io)\n\n# Dependencies\n\nYou'll need the latest current Nodejs and NPM (Node 17.5.0+ or npm 8.5.1+): https://nodejs.org/en/download/current/\n\n# Build\n\n```\nnpm install\n```\n\n# Tools\n\n# EluvioLive CLI\n\nThe EluvioLive CLI (`elv-live`) provides tenant, tokens and marketplace management commands.\n\n```\nEluvioLive CLI\n\nUsage: elv-live <command>\n\nCommands:\n  nft_add_contract <tenant> <object> <cap>  Add a new or existing NFT contract\n  <name> <symbol> [options]                 to an NFT Template object\n  token_add_minter <addr> <minter>          Add minter or mint helper address to\n                                            NFT or Token\n  token_renounce_minter <addr>              Renounce the minter(msg.sender) from\n                                            NFT or Token\n  token_is_minter <addr> <minter>           check if minter to NFT or Token\n\n  [...]\n\nOptions:\n      --version  Show version number                                   [boolean]\n  -v, --verbose  Verbose mode                                          [boolean]\n      --as_url   Alternate URL endpoint                                 [string]\n      --help     Show help                                             [boolean]\n```\n\n[Complete Command Line Help](CMDLINE.md)\n\n# Usage Examples\n\n\nEnvironment variables required:\n\n```bash\nexport PRIVATE_KEY=0x11...11\n```\n\n## Tenant commands\n\n### Minter configuration\n\nFor a new tenant - set up all required minter keys and helpers wiht one command:\n\n```\n./elv-live tenant_create_minter_config itenKGHd3iedqtA39krJUPkBTCNoTeX\n```\n\nTo retrieve tenant minter configuration:\n\n```\n./elv-live tenant_get_minter_config itenKGHd3iedqtA39krJUPkBTCNoTeX\n\n```\n\nTo replace one or more minter resources, first get minter configuration and call the 'replace' command passing in all the existing values that you don't want changed (or else they will be regenerated).\n\nFor example to set the legacy_shuffle_seed and not change any of the other settings, pass in the existing values as options:\n\n```\n./elv-live tenant_replace_minter_config itenKGHd3iedqtA39krJUPkBTCNoTeX --minter ikms37TNyoqBKqjbAPS7HMv4gzvkJzTa --mint_helper 0x3AEA63e14e084A87Cf2588Fd0987e12db71f81C1 --proxy 0x41899355fE869c370ED92eaA9f791289c4Da9F9D --proxy_owner ikms4DgAcxHqMyv6pJYqdb8wqUrmUmLk --legacy_shuffle_seed 1000\n\n```\n\n\n### Marketplace info\n\nShow tenant-level marketplace information (including validation):\n\n``` bash\n./elv-live tenant_show itenYQbgk66551FEqWr95xPmHZEjmdF ilib3Drbefo66PfWvY1NVup4VZFzDJ68  iq__21pxPgnpyYkV666nZ2RhNGYGYdwC --check_cauth ikms2BxjJaireMQXHS55gAiWkuugU5gsjx --check_minter 0x59e79eFE007F5205557a646Db5cBddA82261Ca81\n```\n\nShow number of items minted by NFT contract:\n```\n./elv-live tenant_wallets iten3RmAAA7LUZdjC55agr68xPASnKxL\n```\n\nShow all wallets that have purchases in the tenancy and the corresponding email addresses:\n```\n./elv-live tenant_balance_of iten3RmQEH7LUZdjagr68xPASnKxL 0x31d979d8fcc4bfd55a081535c7aa816b67bd40c8\n```\nThe ids required for the commands are located in the Eluvio fabric browser at:\n\n```\nTenant Id:\nProperties > Drop Event > Manage > Tenant Id\n```\n```\nLibrary Id:\nProperties > Library Info > Library Id\n```\n```\nTenant Object Id *\nProperties > Eluvio LIVE Tenant > Object Id\n```\n\n## NFT commands\n\n### Set up an NFT contract \nSet up an NFT contract and associate it with an NFT Template object:\n\n```\n./elv-live nft_add_contract  ilib3ErteXJcCoTapj2ZhEvMKWau6jET iq__QrxLAAJ8V1xbdPzGVMwjHTpoFKP itenYQbgk66W1BFEqWr95xPmHZEjmdF --minthelper 0x59e79eFE007F5208857a646Db5cBddA82261Ca81 --cap 100 --name \"TEST NFT SERIES A\" --symbol \"TESTA\"\n```\n\n### Set Token URI for NFT contract:\nelv-live tenant_set_token_uri <request_type> <tenant> <contract_address> <new_token_uri> [options]\n\nSingle:\n```\nPRIVATE_KEY=0x00...ZZZ ./elv-live tenant_set_token_uri single itenKGHd3iedqtA39krJUPkBTCNoTeX 0x43842733179fa1c38560a44f1d9067677461c8ca https://host-76-74-28-227.contentfabric.io/s/demov3/q/hq__E4PqmoR2raU3eJe93nLPJ8DAuPtJ7jsRnA1MRkwXmifToqqQH9cN6sXkqFpGuHVHepneqYjTTc/meta/public/nft --token_id 128 --as_url http://127.0.0.1:6546\n```\n\nBatch:\n```\nPRIVATE_KEY=0x00...ZZZ ./elv-live tenant_set_token_uri batch itenKGHd3iedqtA39krJUPkBTCNoTeX 0x43842733179fa1c38560a44f1d9067677461c8ca - --as_url http://127.0.0.1:6546 --csv ../test/testdata/settokenuri_testlist.csv\n```\n\n[Sample Batch CSV file](test/testdata/settokenuri_testlist.csv)\n\nAll:\n```\nPRIVATE_KEY=0x00...ZZZ ./elv-live tenant_set_token_uri all itenKGHd3iedqtA39krJUPkBTCNoTeX 0x43842733179fa1c38560a44f1d9067677461c8ca https://host-76-74-28-227.contentfabric.io/s/demov3/q/hq__E4PqmoR2raU3eJe93nLPJ8DAuPtJ7jsRnA1MRkwXmifToqqQH9cN6sXkqFpGuHVHepneqYjTTc/meta/public/nft --as_url http://127.0.0.1:6546\n```\n\n\n\n\n## NFT Build for generative images or videos\n\n\n./elv-live nft_build command assumes the nft_template object has been created and source images and videos have been ingested into the fabric such that image and embedded video urls have been generated and working.\n\nRefer to this repo/branch for ingesting gernerative nft videos:\nhttps://github.com/eluv-io/elv-client-js/blob/simple-ingest-wayne/utilities/NFTIngest.js\n\nNote: Video Ingest will soon be brought into elv-live-js in the near future.\n\neg.\n`./elv-live nft_build ilib3ErteXJcCoTapj2ZhEvMKWau6jET iq__9dMPeAjFqxCp5Ck6BZBuy3BcA1f --nft_dir /Users/test/nftsTest`\n\nFor generative NFTs we use the following convention --nft_dir must contain:\nOne or more json files with a '.json' extension (for example: nft001.json, nft002.json)\nExample JSON File:\n```\n{\n  \"count\":3,                                   (OPTIONAL, Default: 1)\n  \"name\": \"Example NFT\",                       (OPTIONAL, Default: from Content Object)\n  \"display_name\": \"Example NFT\",               (OPTIONAL, Default: from Content Object)\n  \"description\" : \"This is an example NFT.\",   (OPTIONAL, Default: from Content Object)\n  \"rich_text\" : \"\",                            (OPTIONAL, Default: from Content Object)\n  \"image\": \"https://image003\",\n  \"embed_url\":\"https://videoURL003\",\n  \"attributes:\":\n  [\n    {\n      \"trait_type\":\"trait01\",\n      \"value\": \"test1\",\n      \"rarity\": 0.2                            (OPTIONAL, If not present, it will be calculated)\n    }\n  ]\n}\n```\nThe 'count' is an optional parameter to generate copies of this nft element inside\nthe /public/nfts array\n\nFor generative images, the \"image\" attribute must contain a valid url to the image.\nFor generative videos, the embed_url points to a playable video url.\n\nAll other optional keys (name, display_name, description, etc) will override the\nNFT content object's value from /asset_metadata/nft if present.\n\nThe required key 'attributes' is an array of objects {\"trait_type\": \"\", \"value\": \"\"}\nand is used to calculate trait rarity. If rarity is already present in the attribute,\nit will be used instead.\n\n# EluvioStream CLI\n\n```\n  export PRIVATE_KEY=0x...\n  ./elv-stream\n\n```\n\nThe EluvioStream CLI provides commands for managing live streams.\n\nThe general flow for managing a live stream is:\n\n1. Create and configure a live stream content object\n\n  This can be performed with the Fabric Browser\n\n2. Create a 'stream'\n\n  A live stream content object is only active once you create a 'stream'.\n\n3. Start the 'stream'\n\n  This is the process by which the stream is listening for input and is ready to stream.\n\n4. Stop or Reset the 'stream'\n\n  During streaming, you can stop (pause) or reset the stream which will discontinue playout until the stream is restarted.\n\n5. Terminate the stream\n\n  The stream is ended and can no longer be restarted.  You can create a new stream within\n  the same content object.\n\n","readmeFilename":"README.md"}