{"_id":"@art-suite/art-flux","_rev":"10-14dd07664257e00329a29203632558ed","name":"@art-suite/art-flux","dist-tags":{"latest":"2.1.5"},"versions":{"1.23.0":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-build-configurator":"^1.28.0","art-react":"^1.35.1"},"devDependencies":{"art-testbench":"^2.2.8","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^4.39.1","webpack-cli":"^4.0.0","webpack-dev-server":"^3.7.2","webpack-merge":"^4.2.1","webpack-node-externals":"^1.7.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"1.23.0","description":"art.flux npm - flux-style for art-engine","_id":"@art-suite/art-flux@1.23.0","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-frE7Zyo/MZnRoXKHiyuwGG9l4SruILfVEFgIKwKgZ1UVdNdB4LqiUNgYlP5W7WW3Lt1gX00AWWb4aMdTmzMmUA==","shasum":"aa7f50bcac451e9754e07ea87bd6e234237badbd","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-1.23.0.tgz","fileCount":43,"unpackedSize":81521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm44oCRA9TVsSAnZWagAAvJoQAI0FiDnvtKkefVgXlq1s\nku6R/1Z/GzfL3LNjBbO7s3BOR6ImxJvNzZ7u2me81sg5IbKN0cDJ1LWVkx4f\nrGcO3EmfjHDP/aOQjIsUUedB9NLHbiPhgRghSX88oCTYuXNFf8JQsyXo5bY/\nJd4Se2bp9ThzOw4dJzSpPJiLhaz5jCS99lfSr78FZ90aQbtqtKZ2P1f+EZfB\nEXz7irZ1fbySnY9wNgzGiNwrTh6FJE/X4OVQY8oQ33Wt/5gXWbnpL3xesjOO\np65OGx+7bnsE64oMnuH9Jb0pcshaqmgHMK1BauWSZ1c02QdgjvSCz7WWD1Jq\nz3fQkRoseKv0Efh6bdEVX4PNHuqCW67iCzy6h8U+sAVKtqwTxAGjY0wb0Tgc\nQhqjoThnlND3VNYsaO57z8YIqdmZXuP5vPAu4gjNkcZKhvcV4cNm6neezC1r\nP9MwNMhWk36l8QXob+4fBIsDaCtCzjiVC6Iy4fs/3GHnzK0wwZSKO2lspbUE\nX1jNj0hz1CS5aSGunqsHuIL7YSmcbX7Q2zeN4WPvRIoB3x+yEiehj9u4Ev+C\ni4P+sLS93ABqAHmc4B20JNk98kSYGVmp+3wDW/YpBmPReKIwIJgNQi64KCAX\nCcpVUpA9dSLwbNnVTiLtOs86lCdHoY8e/sjDNBwKxFxLL433dEsE9gkuV+j4\nVmq+\r\n=Lm7+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDb5vwe2iRVRYpA2pJh5KOnhaApwIfPr2On+u7h7eWOKgIgSreMhmzRr65p8lcXG82TLafvvQRbq2i9prVU0S0rpDE="}]},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_1.23.0_1604029992291_0.087942488218677"},"_hasShrinkwrap":false},"1.23.1":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-build-configurator":"^1.29.2","art-react":"^1.35.2"},"devDependencies":{"art-testbench":"^3.2.0","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.3.2","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-merge":"^4.2.2","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"1.23.1","description":"art.flux npm - flux-style for art-engine","_id":"@art-suite/art-flux@1.23.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-76vYOswD2hg7s+orZxwkBqgvR4P8FMCemJDsMnhkyAaJOSnMRDARs3WmrD9xbh05hgk5uymFmIirTEeiqdA3Mg==","shasum":"427f853addd2a0dc769622a17d587985ab165cde","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-1.23.1.tgz","fileCount":43,"unpackedSize":81563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrxdoCRA9TVsSAnZWagAALqYP/2obPuoOnFvOawUKjbHk\n7BMQ39ITuBTgTcMI7Nz9UI28nF0gdV94aTc9RNsZbTwOctQ7ZfjGVtl7zeO1\nbZSymtu84XuS3z/S50cMkHxrtT3/vF23vlvwptmiqFK+8klHuYQV8Zq0bUsS\nlsGHJ4yVsd1MVD+0RL6ihSIIhlOxmaAZYc5UMaF+N+OS8WJ2cXP0LRU7xtHn\nMbK65LN7hR57OTd5MbvKmvOak+5mttzT+9s7ClFtNImdTJiFdxRJByXUYvHe\nqFQI0bgDgzG6bg4QrenMlvB5oXtT2qcbJ7czKLbGt6AGG0Ot3QsuhgP8r1tB\n4KxwBcXKLpUD3czo8bKpv31E0W3wh/FuUtoYi7qEyG8/xMLyMPe9tgmF6oNr\nfyreRBnPsDQZHJaE0s9IVMHminn6q473MbZ43+yUca8OazjPnTpSzVPmbE4o\nv2YzP+qfeC5eRYs4KdM9nIkntJyqeXRfnp9wxE1vSzKtNP4hmFm1CxUChyVg\nshgDqblzOZGjaH84LThSwRiQY7uclLBEE5wUqCiCJUjo7Y/HjB1VcuD3I7fS\nlsebPRsSEHUchbljsAEXcxu8rhsALP0UiKm/hTqfLTfVgeKw6cXQiI8u4wIC\nxVJew3qRX+ifnfta5dIjfP/hODTts7N1Q6Nmpv8YbkbT9FlYQXBOckfY7pNR\n/1C9\r\n=9rRC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFEhvkoyPEzBm+bJR13HCTQTdvZ4qcmAo7X+4Oxj9CukAiEAiZg4T9RFyf6qQuhEQzvDEnJDev6HysIIIJD0T6GYob4="}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_1.23.1_1605310312006_0.7834734181412191"},"_hasShrinkwrap":false},"1.24.0":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-build-configurator":"^1.29.2","art-react":"^1.35.2"},"devDependencies":{"art-testbench":"^3.2.0","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.6.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-merge":"^4.2.2","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"1.24.0","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@1.24.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4ne5L4+SbELDBQW5rX5Gbztm9UG7boFf5E2ZP11Dw57OTUPVbOD6ZBXgq2GLdnajbDjZ7LQQqCnTxMzF0ChQaQ==","shasum":"346328a56106faf25b6f26e95068d4e4d458c3aa","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-1.24.0.tgz","fileCount":45,"unpackedSize":94075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwo9sCRA9TVsSAnZWagAAJIwQAKQDlUDp4aE8ocUlicoX\n++XlwC42uM2OSpjoGL62YnzYQvlpfs2v0fy28tFpwE/6a75cuuk9reNOsIV9\nfA1cVBczsotWu/gl1dMws2pDUXkfI9neHlcPiHSeeqRLzxi1R7aQrOJhG6Xj\naHGD29zxaV2dUmos7D9v9a1b19uB1QgRSqQyHa7vq9pBPAXFqcHjNhL8CNEW\naqDG9Uvw53JcbkpnDLi45PMxxz9b/e8OG6viRnDuUC+SMTJxw3OB/nb01SSk\nvIYsexVYz+Qaav2ogvrw/RCOkmw0iuldHnYe1YRli/n7CMnqfwgN8gNeWWmh\nJWR7b8kyFIY0TT8Fg9ANxu5AE52Skn1gyTg4hhz2k2w6ZfB7b+TrOU51RYPK\nT+M6sdwTBu2z24i3CC0ooItDCTvpmoRiFImm+Llf3zGpHcueiz8hvgnFoV2l\nk+2KOUbX9P0tCVkZ0F5raQxpcumJaaSVBGvMvLBmUwOiXsBNSq/zBnkh1X9Z\nQqKdlm2/tTEmAOK07gCa19d47Q6hOGJDBqaJrwvgQSGEsSizH1NO8zqDagn+\nWej3td30fXNptuxLVUAuivbmEhmEAgNIdAmUFNH/6k1Ckc6CtrLPNv1bkai7\neLzLLGE03E0oi0NNvP5Oh7O1VOa1A3lnqFoqIyDjVd8nTtfvzIbnfr/gSpRi\nYg8+\r\n=yyjd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxcizzXyAu169KGuDOO97DV8+xv040BKhQsiC92EIwJAIgUpEJNUuV6KyLJsl1JPO7hzOzkFOAhIFYF4Cnkrk66wY="}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_1.24.0_1606586219384_0.10610131087135755"},"_hasShrinkwrap":false},"1.24.1":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-react":"^1.35.2"},"devDependencies":{"art-build-configurator":"^1.29.2","art-testbench":"^3.2.0","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.8.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-merge":"^4.2.2","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"1.24.1","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@1.24.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ZVE8/DpZLAMY6Irc5CT1vdbaftX7Yn6W5CNB3AlgWPg3yG70XA38yoJ7DZvTg5CsoI9pA2Se86PRXsb/eoHptw==","shasum":"613e2eb72c1005159c6dc45d39f62d1f1c74688b","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-1.24.1.tgz","fileCount":45,"unpackedSize":94075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwp31CRA9TVsSAnZWagAArrAP/0Xb2bzr+RJi99MZyuDQ\npXY2Jwarxuzhm6vIdUvCVLT7aVXK7Kfh/bm15R3YkUdbFofKC4osQsjX9XUu\nA3ZlyCQwhSALh6P/Rd2rD+yNttfeGwpIFuqUHsNlV5JkebHbmHuEAlwzFo49\nJH69Nmq45AzreCXfdbJMbwhZ37i66SHhJXCstayXfBS3nhaLdwVj9Dngl5GU\n+4UcrtTyKhtx520g2Gnp5j9ZBnIzq7a1zuOoTLw17RSNycCRbcZ8JVOtjWge\ndF5YmqRdi83kMPDZmB7acer3VUd+u8ESSsXge6QCXsu6CeUtvnzdwip2xFl/\nRgBb6o/SjzH7n/V0kA3lalQga7Qt7S9qYRFc2hdrD6n2DYbaQboOxfA1AF2U\nuc4WMuPnKceA01bU+8MQ2pPpGCdkc+dQLzYBHPpqjenaSqV2tVIFVxGBMFme\n62nymHqGHM3rrmy/rHC7Px0AEZexl6q6tRntnfiLp/xtjwBNjzoBfHZGJ1hU\nxvk4/O8jCXtya8j0GHK1usfjUtGWZ49HhKQda34zJGy1im3JN3LEVvjNq9Pt\neGWYUTOnxy0GmQ9fBNb2Bc/sPP3rV1KJferpgrwBMnQ/+sB/nA89GdPNBjZl\n3Mdy6VRoCtq4zlplwSzOrfoR+AKkjZyighR51UZy3D1LDmCepSdlaZgkRX4F\nBDp2\r\n=/4RS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHsS+2fo3jTS7sNcyEa1LH5fCmBXSNpKN1SCd0bj8BfZAiEAq+ZQww/G/H3HBRvNOqvDmKJdx682yNd/NYY9GtF4iyU="}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_1.24.1_1606589941307_0.24115498918678302"},"_hasShrinkwrap":false},"1.24.2":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-react":"^1.35.2"},"devDependencies":{"art-build-configurator":"^1.29.2","art-testbench":"^3.2.0","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.8.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-merge":"^4.2.2","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"1.24.2","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@1.24.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-LK47EpHzQsf63mpaMzoYcbFDdv1Bzpsk4HklPh9NcRX67JrsdIq2fYHLMPnkGwBFnY5CRkw2b0FNObhlEfevWw==","shasum":"fe5daa5fd6da0a71cb0fe229cfaf0496e16fe5df","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-1.24.2.tgz","fileCount":46,"unpackedSize":94151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwqofCRA9TVsSAnZWagAAANkP/A0KttMtYj1rIdvwiavA\nUkYU/r5u2zRIhXHJIeWUDqCdPmlvwoU6OwD537aMGHv/fZM782B+xGK2hzHc\nKnG4LeWxzsYiRATSWOwvdTO6BkhQbyjRLudLhiZrinFTGpDyfbAx3HldD1oL\n99XnRXoGBFIfEgaQfPTlHlMTZi1tqcFzSaX8Gpx7DWA+QZ81ws4W0nJp5UJs\nnR0b5VAB7nXBOox5v5ZebaIcFMLmJQtXVi+BUEfX5iv2ugv0SoC4rgRQGy7I\nj0otXKhkap74esAkuAz9K697ECe0tE/cphYm2QpwfZaFQ+X1BomJT5V9Vc9h\nTQTZqXU8ruPETg6LX8S5xBGcEY4aLkeoF4+2t2Kg4RbzZvYcHsVe/M3BR4OK\ncO2JwnkAsqYJJe3VM9gF6KWsvqYLMT3h6IjJNdvZxhiiB28mdmgRssH9f7Je\n9rmex0bnHb1jwR81VqWKMww/oaBLKSG6M3Kdx+AJK91N0k+Yak3+yzQWKFgs\nZXNnGmPodfkqMkbBw2NVVmhq7eNmSpeITFI/tTn443bkIdZPqlALne9uOZkm\nGshi+qR9ClQV8EmZAwccvYe3Jnv3X8pSQaqDylKLjJJ8x2MDrEsdPCrUOjgZ\ne3m2TOkAgKS49RXvbnT2w1GrfnHYPAumOwC4uB9NH4sgVE+SbOz4m0AQGPHC\nEygU\r\n=5y/T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEO5Zx3B1GTwxttIPQEPjzInxPSJ94HE/HnBBOxFp33LAiAvuTZLIz4YeL6qElitCc3b2ZJ1S0xDQQ/+OwlZkH+xyw=="}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_1.24.2_1606593054633_0.538120432060883"},"_hasShrinkwrap":false},"2.0.0":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-react":"^1.35.2"},"devDependencies":{"art-build-configurator":"^1.29.2","art-testbench":"^3.2.0","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.8.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-merge":"^4.2.2","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"2.0.0","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@2.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-duQkwi36ufULxAcWBjXpbwrZ4+WXzhJeuKlkIVxO4dc2gJmAzU8McaMKt3fkpWlkYjJVBNWapv+6dKVUs63X3Q==","shasum":"6f80925624a871e446a5b7af13dd1131015a69fd","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-2.0.0.tgz","fileCount":46,"unpackedSize":95276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfw+rhCRA9TVsSAnZWagAAkuUP/ibBFJUtmA5fo5v2Car6\n6RPM8wIO8FlypJVGfm98tWsBaLBBgOBKJo/ijLpX0JtYsoAciJWbhYPD/tOY\nVjbtDfBZwwWQvX5mo+tVtkdXb0+WhvE480pa69c6Nz3XMXqkwjMir9BL+QM5\npVzku4TlGF0y1s9qPY9G5Nih1joiYW5U5iF7vjJIK4er5wyc8pXczd8UqC2S\nAdEuXOLw5UigrcQNI2ya6sMDPB2V1+FmSL8TFuxqjyp0H+HYbYBWCBIpymrn\nEqK0rK0Png2HLWYHkIsSt5Cr9J38yuYs7Q2X1jxEWK4dNtBXnfhpTfJr8JxD\nXmFjmAcJtaRlps8UtBdER9hUGBmEaJ5kwA6pDDi6+BlosHshS+lK8AFO0+tb\nhfFpQjIS/7/igUB4zBA3f1esBM4dPCw+vfceQ/rjCDWHIZPxmNE75JyUFriR\n35P318gIfZ/U66qXrpUPr+FzArHSrXydrLNm4fUJCIHTaDesAxqzac6tnvyE\n8VEGCjXr4iV/vlcNQx/p9gDK4EkZzxUkCcL3hGmQiL9YYohYK4/lp5r4E/HQ\nSqkegfv/h76pok+nEByzQKJU2GOSSG8cvUqpE5u+RI8ZaVHxrSgtenRCsc46\nB2CL4+o1+aUbnvjwNg7XkIUFKF+CrU89zuN6i+2ATUU+7MEyCC1+OSCHQu/x\np/8U\r\n=vTaP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhvrspyG+/UKKufvBE0Iqy1S5OP5PTtHfPF/4O9dcRHAIhAIiAJSOchyMi6de7qWleVWVLUcxLRtqAPXx8WM8sbSUO"}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_2.0.0_1606675169286_0.7381044040059253"},"_hasShrinkwrap":false},"2.1.1":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-react":"^1.35.3"},"devDependencies":{"art-build-configurator":"^1.29.2","art-testbench":"^3.2.0","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.8.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-merge":"^4.2.2","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"2.1.1","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@2.1.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4IDhztca6h9skX8jn7vGT5tEeAU5mrlZ4tuT2YmN3kwaFBrF/XAQB81kOmYVwyIlbap2aeIxJoa5nM5yKLqn1g==","shasum":"39110689122e3a51055a18fd8b217c94e51d3fb9","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-2.1.1.tgz","fileCount":28,"unpackedSize":61561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxn7mCRA9TVsSAnZWagAAaEAP/jA3hdCYiTACZO1BntQB\nGuUuPFlkzO2mWzPIctkgFMQLq+wlalvfTtwURp5sopT/E7fB4L1o9CLFf3ry\nXFa2wycC8NqeYfOPI+kar1mQTRxIBT2v/c+AXRTOrA/slVXnFOjyWxH0QCtJ\nJbTtqNXIrgKP/IQ+AsqNoj1SrH4/K5HizmXtphsRoGprMpmvQfQBCaUiAony\nmSyJB17nKNseHfyVE1pX4oNodjD2wpnGXOtDsLCKEJKL2H4NUTMSpyZE8Qp3\n0G+bo3pVzoGc6remk3wr9RAVyDcXUYJMWAcBhpZ93619c3LggHxlyXspzQHq\nc7IhJ2/I1jT1jJQ6X4xI+OrfFJPhXrJeNQ4qWZl62lKUe7+QxvkUjRk98tUY\ndMnZ+w3xudc3JYEHd3eSVSi84bmT7C19XTNzF4nfTwV/Q1sdhNUTCW/nnVFb\njG46/ecVfL38HnEK+qo/htRtXbDry+aGR3g9mgqKF4c5xo6qz4NqZwJL7L6+\nT0jTAjchaZu6DIRbEovdmmzo0mAdkk53uVY0w7PUk/dhpKeVeZ4CwVRHVnGM\nTtD0di7hvKzJ+5/U7qqxfvPf1uRs7XqlcyX84CXcS57YofwnKdXE19/RFgmZ\n63Dre2nj5dPjPlTR5DBdod0J5Am7OVq+d7YueRY2oA7eBjMymfNMm7iMT86O\nzkcG\r\n=L0Jg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFF7EHkzRcVJAVhjXacrh+EyaCQ0MrqaV829IbO19r6bAiEAhcfFYFCj2maCD4H9wrXp1cawygsB4jvZENeQNdsO0cs="}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_2.1.1_1606844133747_0.5671845073821393"},"_hasShrinkwrap":false},"2.1.2":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-react":"^1.35.3"},"devDependencies":{"art-build-configurator":"^1.29.2","art-testbench":"^3.2.0","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.9.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"2.1.2","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@2.1.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-fLzVFUEsiacmNy2eDWCdeWTKQOJWgMSMNS9m3O9kADAoIdJUoMVzCHBf4aFF848of0ustXvSEf01+v58MrciWw==","shasum":"6f8cf32ee80d9e24e55922324107518634f96f8d","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-2.1.2.tgz","fileCount":28,"unpackedSize":61542,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyZEsCRA9TVsSAnZWagAA/ywQAJb06MySHvbhSt/APajX\nS4EfLUuvFKLz+Vi1VXD81Wp0C1U9iwfXDcozK0fsdQLBlSKgmhTqx7S01MCW\nWMzqmdu+huaUKjSDXnDzwh5+KpvBLYBmP/GcwGXnGXKhUUdiNDLpWx/heRL3\nqoaPDcIFKQKcEp5bXJ+LBf6LHIYvGDhLVzb5pRMWzrydyjNNbdqeDPS/0jpl\n2rhxkinIEjpe154X9UPrpIdlAPWbAdFpwNU05xmx0vzBqG2KdZ6cS0zQf1UW\noCUTAZi0sYRU818MdYCQuYLAX1pvHhEW+o/crCKT3++38QLHRtJSUy+VeX2b\npiLU5m1tS4b7v1GuE+ttrMmzBw1j7TZBMW4gq48pLWNZ30qdX0ieqfJ4YdgK\ndeDgK3AWIfRHdM9l0XngIn12fgrSB+oP8u8+gyrHNp7FXwRpq0UEnBbIJUjg\n9UIxtE+BRoteWhHq7DVk7jcgqz8nyGNkFtZwi2SpUQjY9XT2roohZq6Vc16I\n4im3JQxS0nuZ3XzBIPU0I5wXhJOJ6+fVOwYL6e7rzd3mdoTmlpZP26/204Hp\nE5ONrb4VcVHWN2Oleb+gxxPbMMD2MzamsLYRa4oI0H7p1VNT0/NnypT2IKPs\n17ReBO+L41xX27AnWIw3LV8kKC2dUtgbs4a23mMDIzUOdOGuBQaFLDUMtitb\n4U4t\r\n=nefB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAysWo/Zu6s4uXgqhNS7lCZBBXrqmdy6IP7KvzsppAtQIhAME65YkZLr1bbhLOMaH/3WkeCt265bLJIvqOz3NzRvIQ"}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_2.1.2_1607045419868_0.027295263864451913"},"_hasShrinkwrap":false},"2.1.4":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"art-react":"^1.35.5"},"devDependencies":{"art-build-configurator":"^1.29.3","art-testbench":"^3.2.2","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^4.10.0","webpack":"^5.10.1","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","webpack-node-externals":"^2.5.2","webpack-stylish":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack-dev-server --hot --inline --progress --env.devServer","test":"webpack-dev-server  --progress --env.devServer"},"version":"2.1.4","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@2.1.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-JI5vWH431CjEmCnna9ncLkio2psB+36l5URnf8TJtZPa4WWYvVjA2hZ/hYTA2uBIWuy4pOpp7p20nRhBcqtZDA==","shasum":"560c215a7c121cca07f8bf1ca658b793b42a430d","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-2.1.4.tgz","fileCount":28,"unpackedSize":61543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1pSCCRA9TVsSAnZWagAAymYP+gLgy6dilHYfsKYfioru\nKmx6qCYaVJyeY2uestPOi1W0ZT1kVrJnQkGVMs115spBPKP3XhhUNwkeRGYy\nGQiBliBe5o5NZljSp1/o6NiOInq95y47ua9CvZcQ/h/SzQEuZs21Mtzt23UL\nad7yxL3t8Kr4msDbsVqYT0LaFKpYII9uLSJ4xIj3XbETuZVDf8qC8W0g4bW0\nV5ANyRDp9FYdo6S3Mfgh6vSRteZ4CHQY3+SdZIVeeuAL2SM6f3Gv41vMwaK3\nCfgsqWpJg9ZssFq8YzDC90RwU2Z0XIgD4398+ruXBkw8YPn3Ix+ZRO8gNQq3\n5O6njwHtMqdH23/FHbwmsN3gB8MUOGJ3sRT+ymPxyfAhI+3tbDsec8gdiG1/\nX/Sr4Qk2i81CXD9R4oAailWtOmKmYFZcvyjDmeCquKQpaVe+o7N390y+vjw9\n3ea2GiPQjWTAEolXWSVtG0wcNP93GFpeHB2lnVp2F29PBiGXrrqA1ICF4vND\nzcrmHOXlI7e6Ynch7MpwifhWD+hElw16f7o6ZvNF/q5QdQow8rc9Uq0Ilc9b\na5PyJDNKJLxnnrOtLlucMwvnUBUAzMv53Dm3myzzuTrSSA5A/B6bn0tf7vnW\njnqfjlDpZC5nTMBn2KPsRt2SrMPbuQ27IUPTqbH4VkaeKoVgaqhGLxsv/dzt\nv4Wv\r\n=O1DP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCn/K2tFEhHTcfF2arKiYbzH7Zp9lLtWNZtUhG4madojgIhAMB4l248qGHG6j2WhRAltut9Eb7DJOOfs85DtGVffi0T"}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_2.1.4_1607898241748_0.29082756189895576"},"_hasShrinkwrap":false},"2.1.5":{"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"dependencies":{"@art-suite/art-models":"^0.1.2","art-react":"^1.35.7"},"devDependencies":{"art-build-configurator":"^1.29.3","art-testbench":"^3.2.2","case-sensitive-paths-webpack-plugin":"^2.2.0","chai":"^4.2.0","mocha":"^7.2.0","mock-fs":"^5.0.0","webpack":"^5.35.1","webpack-cli":"^4","webpack-dev-server":"^3.11.0","webpack-node-externals":"^3.0.0"},"homepage":"https://github.com/art-suite/art-suite-applications","license":"ISC","name":"@art-suite/art-flux","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"scripts":{"build":"webpack --progress","start":"webpack serve --hot --inline --progress","test-webserver":"webpack serve  --progress"},"version":"2.1.5","description":"Art.Flux is a simple, elegant solution to the following design constraints:","_id":"@art-suite/art-flux@2.1.5","_nodeVersion":"14.17.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-222vPACWCWrEjaTqdtbLJrQbXfjRZqKSsrO2B0mdiFAGcIln894XQz8fKOqQks1xpZwISWP8UDvuspjBK/hhXA==","shasum":"00bbe08235da1149f6b399d2fb9dcbc894e2c4e4","tarball":"https://registry.npmjs.org/@art-suite/art-flux/-/art-flux-2.1.5.tgz","fileCount":21,"unpackedSize":27116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJePECRA9TVsSAnZWagAA+q4QAIRqsFauVJ8+qXb9O7jj\nSEvCYazPxC5xZLtf847Q1Cv0DaER7JgI94TdsE7dfdvQ24ebHJbKAw7hjjD5\nPMwSj5r8q9tzA7puwpaiX2Pq2P6UmXWrIzv0aYfhwVEWKjYSozTSCzgwE3bq\n0laLRQR+JGThhRDoKXIdsX92tvvIKdy/ifjZub45Ezzpldpf1cIj5KL1ixws\nJowLkI5SWyalNbvw83LqcndCB08kK0MTD0VSImqPzuybKieYSzT1u+0cCxJF\nFk3ISxksCVFQgYxr/dzh38OtwIAvc5QzKrQlklLmTDRyYpXshveT94Hwh95m\nd7WT2tmo7ePBA1CQqFnjyE+K9jM4XgxbxStb+8k23jUFci+wdhGV1gOT8oyC\nSX7/m7UU0jLkxVrufMrowuvQKRmMzG/pMIGIBPad6V76Io+VblsThuDiG/dw\nne3EWuYRbLl9ARwW5hgO5+kVpV3uo3SMwsXsP5RCjhUUJNrLLSoJPEOJfACo\nohWuKO9jFQpLl+W5efzmMp/vx6tNxDDAq/CjdDmaM+LD08GMWXGvHQVLgGn7\nF0Cil1cwzgV1KGbpk4XbAjcGY59jaKP+oq2/bxhmXaYdB+kyHTnDsVDaBRfW\nm2j46oWak2cb+QE4+oZHXEKOgRPoULMF2jdsCvn3Z5o5Yh3mycllJewFiuaA\nigOj\r\n=aQs4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIElwR3gUQd2IiJSEtRrgFCiOLJvGcqaHBHIRuAOa1js6AiBHSnpDfLztX2/qpArZtam5s7eU2KVa5YLfgUMSqD7WJQ=="}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/art-flux_2.1.5_1629873092581_0.044781172954917015"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-30T03:53:12.059Z","1.23.0":"2020-10-30T03:53:12.432Z","modified":"2022-04-04T15:35:56.255Z","1.23.1":"2020-11-13T23:31:52.156Z","1.24.0":"2020-11-28T17:56:59.590Z","1.24.1":"2020-11-28T18:59:01.479Z","1.24.2":"2020-11-28T19:50:54.810Z","2.0.0":"2020-11-29T18:39:29.444Z","2.1.1":"2020-12-01T17:35:33.963Z","2.1.2":"2020-12-04T01:30:20.296Z","2.1.4":"2020-12-13T22:24:01.973Z","2.1.5":"2021-08-25T06:31:32.729Z"},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"description":"Art.Flux is a simple, elegant solution to the following design constraints:","homepage":"https://github.com/art-suite/art-suite-applications","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-applications.git"},"author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"bugs":{"url":"https://github.com/art-suite/art-suite-applications/issues"},"license":"ISC","readme":"# Art-Flux\n\nArt.Flux is a simple, elegant solution to the following design constraints:\n\n- Components can subscribe to remote or shared data\n- Subscribing Components' states are automatically updated:\n  - if the status of the initial request changes\n  - as the initial request makes progress\n  - whenever the data changes\n- if the data is available immediately upon component instantiation, the component’s first render will reflect that data\n- data is addressed by model-name and key-string\n  - non-string keys are supported via custom `toFluxKey` methods\n- model and subscription definitions are simple and lean\n\nIf you are familiar with the Flux design pattern, see: [[Art.Flux-vs-Other-Fluxes]]\n\n## See\n\n* [Subscription Declarations](#subscription-declarations)\n* [FluxComponent Subscriptions](#FluxComponent-Subscriptions)\n* [Flux Conventions](#flux-conventions)\n\n## How It Works\n\nThere are three main parts to Art.Flux: FluxModels, FluxComponents and the FluxStore:\n\n![](/Imikimi-LLC/art-flux/wiki/images/art-flux-nodes.png)\n\nUsing Art.Flux consists of registering one or more FluxModels and creating FluxComponents that subscribe to data provided by those models.\n\nBehind the scenes, the FluxStore, a singleton class, manages all component subscriptions and provides epoch state updates. Epoch state updates queue all state changes in Flux turing a time unit, usually one animation frame, and  applies them atomically to the FluxStore's internal state. Immediately after the internal state update, FluxStore notifies all subscribers of changes.\n\nNew subscriptions to data not currently in the FluxStore indirectly cause loads to be invoked on the appropriate models. FluxModels are responsible for updating the FluxStore on the progress of those loads and the final result. FluxModels can later update the FluxStore if that data is updated locally or remotely.\n\nWhen all subscribers to a particular piece of data go away, the FluxStore releases the data. In this way the FluxStore only keeps in memory what is actually being used by active FluxComponents.\n\n![](/Imikimi-LLC/art-flux/wiki/images/art-flux-lines.png)\n\nThe diagram above shows typical method invocations that cause data to flow around the Flux loop. Only the `myModel.myMutator` needs to be invoked in your application code. FluxComponent state is automatically updated, and standard FluxModels take care of updating the FluxStore for you.\n\n# Example\n\nTo use Art.Flux, create your a custom model and custom FluxComponent with a subscription to the model:\n\n```coffeescript\n# models/nav_state.coffee\n{ApplicationState} = require 'art-flux'\n\nmodule.exports = class NavState extends ApplicationState\n  @stateFields currentTab: \"home\"\n\n  nextTab: ->\n    @currentTab = switch @currentTab\n      when \"home\" then \"search\"\n      else \"home\"\n\n  @register()\n```\n\n```coffeescript\n# components/my_component.coffee\n{TextElement} = require 'art-react'\n{createFluxComponentFactory} = require 'art-flux'\n\nmodule.exports = createFluxComponentFactory\n  @subscriptions ”navState.currentTab”\n\n  nextTab: -> @models.navState.nextTab()\n\n  render: ->\n    TextElement\n      text: @state.currentTab\n      on: pointerClick: @nextTab\n```\n\n# Subscription Declarations\n\n@subscriptions takes an object as input with each entry describing one subscription.\n\nA subscription consists of 3 parts:\n\n* stateField:   the field in @state which will be set with the subscribed-to data\n* model:        the subscribed-to model (from the ModelRegistry)\n* key:          key for the specific, subscribed-to data in the model\n\nThere are many different ways to define the subscription, shown below.\n\n### Subscription Declarations, Object Forms\n\n### Fully Explicit\n\n```coffeescript\n  @subscriptions\n    stateField:\n      model: \"modelName\", model-instance or (props) -> \"modelName\"\n      key:   \"key\",       key-object     or (props) -> \"key\" or key-object\n```\n\n### Model-name == StateField-name with Explicit, Constant Key\n\n```coffeescript\n@subscriptions\n  stateField: constantKey\n```\n\nis equivalent to:\n\n```coffeescript\n@subscriptions\n  stateField:\n    model:  'stateField'\n    key:    constantKey\n```\n\n### Model-name == StateField-name with Key-Function\n\n```coffeescript\n@subscriptions\n  stateField: (props) -> # return key\n```\n\nis equivalent to:\n\n```coffeescript\n@subscriptions\n  stateField:\n    model:  'stateField'\n    key:    (props) -> # return key\n```\n\nExample:\n\n```coffeescript\n@subscriptions\n  user: (props) -> props.userId\n\n# Or, using coffeescript shorthand:\n@subscriptions\n  user: ({userId}) -> userId\n```\n\n### Subscription Declarations, String Forms\n\nIn addition to declaring subscriptions with object-notation, you can also use a simple string for common subscription-types. A subscription-string can contain one or more subscription declarations separated by spaces or commas.\n\n### Model Form\n\nThis form is useful for subscribing to a single record from a table. This pattern works best if you follow the [[Flux Conventions]].\n\n```coffeescript\n@subscriptions \"myField\"\n```\n\nis equivalent to:\n\n```coffeescript\n@subscriptions\n  myField:\n    model:  'myField'\n    key:    ({myField, myFieldId}) -> myField?.id || myFieldId\n```\n\nExample:\n\n```coffeescript\n@subscriptions \"post\"\n\n#is short for:\n@subscriptions\n  post:\n    model:  \"post\"\n    key:    ({post, postId}) -> post?.id || postId\n```\n\n### Model.Key form\n\nThis form is useful for subscribing to a specific, known key. In particularly, this works well with ApplicationState models.\n\n```coffeescript\n@subscriptions \"modelName.fieldName\"\n```\n\nis equivalent to:\n\n```coffeescript\n@subscriptions\n  fieldName:\n    key: fieldName\n    model: modelName\n```\n\n### Model-By form\n\n### Key functions\n\nIf the key or model is a function, the function:\n\n* is executed without @ set\n* inputs: (props) - the component\n* outputs: key or modelName respectively\n\n```coffeescript\n###\nIN: props is the component instance's @props\n@/THIS: not set\nOUT: key\n###\n(props) -> key\n```\n\nKey-functions are called initially during getInitialState to set up initial\nsubscriptions.\n\nIf the key-function returns null, all dependent state fields will be set to\nnull. No other action will be taken.\n\nWhenever @props changes (e.g. when componentWillReceiveProps is called), these\nkey-functions are re-evaluated. If the return value changes, subscriptions are\nupdated and new data is requested where needed.\n\n# FluxComponent Subscriptions\n\nDeclaring a subscription on a FluxComponent has a few important effects. For a given subscription with a state-field name 'myStatefield':\n\n* defines the getter: `@myStatefield`\n* sets multiple fields on @state:\n  * @state.myStateField - the current value from the subscription or null if no value has been fetched\n  * @state.myStateFieldStatus - (string) the current status of fetching the value for the subscription (see Art.Founcation.ConnectionStatus)\n  * @state.myStateFieldProgress - (number between 0 and 1) the current progress fetching the value for the subscription\n\nExample\n```coffeescript\nclass UserView extends FluxComponent\n  @subscriptions \"user\"\n\n  render: ->\n    TextElement\n      text: @user?.name || @state.userStatus\n\n```\n\n# Flux Conventions\n\n* model-names which represent tables of records should be singular. Examples:\n  - user\n  - post\n  - comment\n* Keys for records are called \"ids.\" When passing an id as a prop to a component, name it the model-name plus 'Id'. Examples:\n  - userId\n  - postId\n  - commentId\n\nIf you follow these patterns, your subscription declarations are nice and concise. Example:\n\n```coffeescript\nclass UserView extends FluxComponent\n  @subscriptions \"user post\"\n```\n\nEquivalant to\n\n```coffeescript\nclass UserView extends FluxComponent\n @subscriptions\n   user: ({user, userId}) -> user?.id || userId\n   post: ({post, postId}) -> post?.id || postId\n```","readmeFilename":"README.md"}