{"_id":"@pinf-it/inf","_rev":"42-9b2f6f80d59710bfea0bf5b5b3e36f98","name":"@pinf-it/inf","dist-tags":{"latest":"0.1.26","pre":"0.3.0-pre.1"},"versions":{"0.1.5":{"name":"@pinf-it/inf","version":"0.1.5","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"bash.origin.test":"^0.1.39","jsonrep":"0.0.11","puppeteer":"^1.7.0"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.10","pinf-loader-js":"^0.4.22"},"description":"inf ===","_id":"@pinf-it/inf@0.1.5","_npmVersion":"6.3.0","_nodeVersion":"9.4.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-9+D/L4VAvJ0CFAXuQF8pjcIjy8vBWzOlQL3JoRNfOyfhIToZNxR8Q8mQaW4WkxZ//g/uQQ+ujAXuWZ148+TeeA==","shasum":"81a7fe8647325d13bdfdb2cf1cf162866695ab4f","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.5.tgz","fileCount":79,"unpackedSize":64427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbc8EWCRA9TVsSAnZWagAAG9UP+QAUEs/GRd2Zt7ihZJWX\nukSzhwU+cngqogxC3oaJ1hNDffV3gs7vYKrjowWTG+TG4TDVfOO6dY9F8pLL\noemkpoL0hIJjhJ690KGZgvruKLTSZDe3ohbXJV1zFnsSDuXoITu+cEkNsSkU\nKLDoyeIyek1lycnpzdmEQNXgUaeO5cVlKbviKDDKvo0EDZMvMFzN3dNDq31H\nXHevkYeJ1NKj+4uvX/Nbf4TbfsRHdMGnd6D51nBW7vFelD+AjY5yvD7Xvn6w\nNFmH1gwW1HNkPleUqIDgu7roiR4yjs2QlXFPxbZcCm/xi7o9pdXEQp3mJAmS\nejqPkRhOeP4oIYtkF6Fvo6ENb+vy/aHfvmJw9Pgrs8+XCgJ4Wq0bM24JZ9ch\nsIOMmQc16QdrDbr9iDAYstitTtfV7JP5Pgh+vlpMv/QzXsFNKc04t4+TWqgv\nLgnHK0QoQRHueXj/yyM8v3QO9/eB6OoEHu+gcmaLv7rqZPGDoEcbZ0OhU9xD\ni8F4j7/viZNvq6MlI1oxVwpkFe9oLOVTwosgOJeRkYWgFnyRP/DKvpoccWaV\n4IEHOT8JMFYLVxxqWuuZyG70vDSzBC4/Ml7qm5w1gTWHLdTFfTJy+Vfdq2bN\nSTfcUWgD79n16l6+rA1fs906ManOIOmHDVU2pzUCr49MDkuFBSPjpAc5xq+W\n31vZ\r\n=hdeW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEuGA5N9IKnwZLMvzUfuU3ax8e84QRzHnWkAYoa2vMJTAiEAxSMpqAxGwBAx2ZSBbSOoDAZf4vWxxUI8oMCTp1jAz2I="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.5_1534312726452_0.22758862869079444"},"_hasShrinkwrap":false},"0.1.6":{"name":"@pinf-it/inf","version":"0.1.6","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","minimist":"^1.2.0","pinf-loader-js":"^0.4.22"},"description":"inf ===","_id":"@pinf-it/inf@0.1.6","_npmVersion":"6.3.0","_nodeVersion":"9.4.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-CJ+IGjDO5eatcUofZbIGlBou2WBlO6rPpEpK921ET+SaT5qL60V4Ob2f5cV+kZC2Sm5Q6oCHYYFgSUaoqivHKA==","shasum":"14a91be77c68fb2d65fe441d5baa74c65ee60c6a","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.6.tgz","fileCount":101,"unpackedSize":250901,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbeRjACRA9TVsSAnZWagAAbqQQAKQCMsTr9SUlyo5NBBgH\n2siiVU+uUN4YQs+DTvLdeKfLc+LqSmEUfDYKL36xv9EWqJIo4rZmUZBWtzWk\nO/bbzAhn+6riLFysS+9VdR51wDronolSjxBmFOg4gKKGR8SPtL9edAlbv6fn\nThWy0bgPTMyMya9OcEACGR6lVSnY6NZCXAOTPweyhT4Qyqv9E0gkgZU/Jo9R\nNirpCRrs95qYouehCekqJt1+t7ktHxmaULMo9ah/w7oZ5E1hHBeA32BMeTj2\nMmqtAjWIcgWCjMStFph7QoJy9Rs+Ck2aku0v/GYieanHtaIF+nHa+t8gBl5x\ng0jJDyI0C1s3vGtWaLZcKoIHfnAu9fqufwhYFoVmykJuDvZSn+Jjixo5/zgZ\nht3bS4k/uZzYBaKtSDzHwVZgkIKas6mwtLZzbqsk4Sq8AnKoB7Y5Eo+NXVlD\nFbCx6j2c02MJuKuU7BGwdkwUKn7HcTZUKVD1+0GlO+FePjH2JekH6L28d/PT\n82RtCZr4Wq6Qhr53aMksO56WQqpklBVQQk2UyZb/sIAMdg3Qfco6i+H4sBuv\nC5fOugjkTITA983WqGfeBXAy9oCCnWjWCMOhtnRCLZDYFjrsuNaDBA5DB+Mm\nqzwrWNJMGwNrBwrTFxNEeX79xq1rJOB+8ufz0zD/dehBbl57pYYnDht+DlYv\nKzgH\r\n=0dX7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBH1SVqc1uiATTcmtAkZi1fGWBT2nYN3Uaeyjeb9L5T7AiEAjSv7i34sjik0EGjWTclMvMM8BfgpbzEs0Z/i/P5k2MU="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.6_1534662848366_0.4207098515817693"},"_hasShrinkwrap":true},"0.1.7":{"name":"@pinf-it/inf","version":"0.1.7","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","minimist":"^1.2.0","pinf-loader-js":"^0.4.22"},"description":"inf ===","_id":"@pinf-it/inf@0.1.7","_npmVersion":"6.3.0","_nodeVersion":"9.4.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-/FBwDilWgimjNnbHB/mjo+dKHvVxCcSofbho2UHlOFlN1Nt6X3Wp7Axw9VAELDFSdSfxx6subhpPkotgIEJB5w==","shasum":"e8e550f5da33921c0bff75987de7b8a474643e92","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.7.tgz","fileCount":110,"unpackedSize":261629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhdHDCRA9TVsSAnZWagAAg/gP/2Qc8QevuNHB2QL6n8L1\nB/1RgHNAZ9EaUlvqi/ifXc+TTnY72xSEZbIIIaU6s43g4XH40qjA0RV71tfV\nr3/AnscJCju1GgAaBO/QEzIxVuQrScpK9QG6lPLtGkEsZrFiSQS7wyiJWK8R\nXQy9GRaccQm01DHRKpeiDHXiZK3axj9C/ml3oQrR9xwxTc7yNCr5E2+6NsxD\nfib1VgXBdODA/qXDPEmq6HfBpWDcnWOKxbhPIE8k5TVSzB6BEkJCR7G0bZzl\n77saWPDElGIeHZR8PqCbYvWX1XvfkJiY719TBUpjxYtQckXTjLAEtQJivfAZ\n3XNIfypQKDxKg8bbKo3fCf7pg0Y90+IN7kfPxRHeLyzZmjZX4XTc8uCGVeo1\nzgUWnza+2Mveq+uITditjn+tcKJ5k+d6R3XNz8Vys7GD7FZ5ULxCJ/Cs5cAM\nUaiGap9AGySiS1HiAohKZfz1BHanIlVbsgX9UmNTl7ImhbK6UOZiQ9q5fNdq\nIlDw9EmgTRMMy/IAI/KjUQ3QrRmxDzu2Jx75wfzJhU7sJIjj1NebVDsdpKnI\nN9AZRBC4Lq0ZD2cCDvhJ9mtTkMbzCMaFDPdQqDwWjVA6B8f/Pz6nBgdkaFN5\nflhz5DLP7uVbkH22/Gae71TsNL0albO/wTgwNgyAnobfu2SCz1NSzoUVuqo7\nhk1z\r\n=NVwy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVt4zPSSEkt6HZg4jPbn9KEKUHZJsxkrdC86o7x0HUnwIgKki4de90iYCUr957ljOS2HwoMDGoHsbpej7P3cWXGcc="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.7_1535496642641_0.4046845707014328"},"_hasShrinkwrap":true},"0.1.8":{"name":"@pinf-it/inf","version":"0.1.8","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","lodash":"^4.17.10","minimist":"^1.2.0","pinf-loader-js":"^0.4.22","traverse":"^0.6.6"},"description":"inf ===","_id":"@pinf-it/inf@0.1.8","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-qX9iqVQaJ0YAWyqvq3QKETjgVQ9LrrbgyggqdKDI+g9aIK/OErPNRBGDoFtZ+e3XzL4QGom5wNoa2bml9ID9dA==","shasum":"46afb27a39db60aac5a125a0d9252ce8c96c628d","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.8.tgz","fileCount":119,"unpackedSize":272149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbpwLWCRA9TVsSAnZWagAA9YUP/i8zIzM0hG/7sOYlgYNU\nXSzukN9W4tzObq8BFyGxx+jcVqG4WZKmqtOv3S/OvqvRmrmnjgzQdQNdkGin\nQucSvoVh/Sfw0Cqnkxe0oH46trMP9ziKfKCm6tAi7WZQa8HXaGAd5u7QzHtn\n6beWnla7HMfuFhNHaCXu0KW8b2M01yCr+wfFVkL2WOlDukeh/Bt1SaITVzuY\nlCNHg5n+srF2C9bsGrup6dQ/fcr7Vmn4uT8I9BVPS/Syl1G4oYr/K7Ct0H+M\nODPpMLFFHltrkDy0B/FaYeT5k98zRuhGxot5wAt5Gw1OO5vRagayX+0pqH/Q\nqj33R5pVxKbcQxZdP4G9/kLSKVZKva38ZuhLcdjONa/92EwWwu+h/m/n2slr\newfpX1U7WdUr8DK2T7H0R+TXbtBXQwPPg+18RFjehTfjpLv2qYMn6I2r0ua0\nS3bPO8yqs+miWirrhtpDgmRGLfy2WF+VLKrxblado+8/z4o2gLubujxGOhnz\nJrTuUnfgEDAqz9d6h6vo/s63/5VdegLPqV1xDsOxwfPtHOaORzxwmh6+DfPl\n9N0oC3MP9qBma7hey3c9UXej7tg/SZlH+cu46K2Z+AmSoLlV2YdxV2JRrC1M\nw/Alj+NIrQ2ueXT333pbpxLHC71jFbdXppEFhaIfyeLJqmpCiaxJ02kQcyqj\n3l/6\r\n=0LEM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMr4ZPCU60DHxLb4UWbBc2eyB8Pcc4MnZvIORKQO9l7AiEAnxpZeiDtZohCxDUhoIPXW3C6X/xefpFqXWsNqmZgqAg="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.8_1537671893838_0.7525230429623175"},"_hasShrinkwrap":true},"0.1.9":{"name":"@pinf-it/inf","version":"0.1.9","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","json-stable-stringify":"^1.0.1","lodash":"^4.17.10","minimist":"^1.2.0","pinf-loader-js":"^0.4.22","traverse":"^0.6.6"},"gitHead":"d4e03f0843fd07f4378f887b71c7eb412bdb055e","description":"inf ===","_id":"@pinf-it/inf@0.1.9","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-jNFkNZaYVCuCaoAxdhOj/XhMAVvsg8bFOdr1usqSTf8sCrkNlT0c2jRqYpnkS9l67D+80xdgNk30k0W6WG/svw==","shasum":"4d8f81e1471e71ecd1a278f31318eb46d3adc3bf","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.9.tgz","fileCount":132,"unpackedSize":280854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrEwuCRA9TVsSAnZWagAARV4QAJEtY8GXzU3HTJWLE+nq\nD8nqcJKDdlx4w5YOaixVc0b2gFdLW+ShkVPopUXlXeWNeP1NPfgsp0/3gs2D\nvmvq4mhpm1m4EL1KtbhV9FjjFyDQ4ZYMlmzA/eRItDPVYsImZOqef3fPr99k\nsy05MUu1Ryx+tGQz6ZjgpLMvGBudzs8/db1ntWmViCZft3pwjR8C/qlmIY94\n/5gHVPqamHYDjRWmUgiL1nDR/HsErfMxZuizqDoQq7ejDvWgyEYINcBELsXK\nZNLJbrj5dFVBGQTVhRs4MX+8SzOrX69Mhv3PbgfRuupihAWHb32Lfoq2Z76x\n7RxaUmuU3AVz80mS3QGxw1kqW8Vdfdh72duXp5T+DvRel/k+xsCe7Lok3iFJ\n4YwsmXOXOizjCdPbvX3o58ZOzdee7WC5SoEIZL+khZco/qHKyO6wnO6GzIXk\nMoeRsAYrCbMX5XzXabMNeNt+P234T4Cih6+/s5NPfqcEM4ELBtEp33HSQbNX\nyHs9m8B8auG80HNfLJb+QcgmjMz2DbIdIwAgDmAQ0RUbgu8M9UfncIXmP6wc\nAsaXemmKVVAEmq9pwUt/ry2UkgIvwJEO6a8P/9vVuI2VN19jXw6sRa2jAR48\nAqy8FQQXEzjKziz3FnGXK77f2QG+1RT953zKAHSXlfRBSiwgYKbpyaiqrdFE\nfUYj\r\n=/Anp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYT+0b4krjSPdeusVhNQHR9hwgJEBRzgDn99OR80z6VQIhAKzKOvUqGJX50hIohYrJH9zlu2h/0YXcRql+V2vuGhhw"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.9_1538018350193_0.834500889756763"},"_hasShrinkwrap":true},"0.1.10":{"name":"@pinf-it/inf","version":"0.1.10","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","json-stable-stringify":"^1.0.1","lodash":"^4.17.10","minimist":"^1.2.0","pinf-loader-js":"^0.4.22","traverse":"^0.6.6"},"gitHead":"ec080c3551ab9a7568d5831bedaab30812259fa7","description":"inf ===","_id":"@pinf-it/inf@0.1.10","_shasum":"bdd321b685bfaa38b9f71ea4edb4d275ebc27bff","_from":".","_npmVersion":"4.6.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"shasum":"bdd321b685bfaa38b9f71ea4edb4d275ebc27bff","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.10.tgz","integrity":"sha512-lHfUOB0GQoCpLP1Ey2d7Y+O4dOFy+9OFk6wdvP+ct0KK37pEBaTgPtsHJrsdOJfM/3rJdfUxkDCBuwOm3A7KUQ==","fileCount":135,"unpackedSize":281954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwE1wCRA9TVsSAnZWagAARW0P+wf/+GxqI4tzeJO6PoIj\n4rFaRT9QamqEKeaThWTCFSXrlESpdJTPpruAUT2FL0OBW5tampAUdaT9RBx+\n7pAhwqXiq7Q1pyfDhPJNW9NDwP2qJKV6+cQCw0T5xi+5ZvJKMWzfthbQBtNM\nLn7Cjp8/qrfksqpkIjAUu8oNdDw4A4BuQQ+MFfBtMk0nppA3MhQpy6NJVcfC\nDQmm0BmL6HHZ5Scrphx2UxLdzbYlNIV2BLgI7IA5R1h4E4+IrpUoQuyK1ZX5\nXqeFvMBP8rJnmM6OIOr2XrqQOafEaDocSDzMJd6+kJGUJMNljrG/DpRIIm2+\n3BDnHmrWY3J3PSD38egMETy+WOunoiWpCwwFWuaq4jYMk6eDx5yidqvXQJoj\nHSpm2uhyfNeUxN/tF74G4g7Sx+8x71UlwkBbizz5n3IyXuzQ9Zugq4OkNVGw\ntQC87N0YDynFoUn1quubpO5pkYV5kJccFX/UcHNRu7Tt20jSTPgoUajPEUD+\nY5RzN3mgHXqO9H3e5fFWEMe/z+L1BMBGcr7j2/UaNRN/hg3jefr3Pic6XmWi\nUWjob3jGzQNBZmtFFYncAEe3+knz8AXNaglZSF4BxosmzSyLzenNfgcRJEjL\nVhmrO5tKfPldxSPzFcBhzf3k9WqInzUaoJ3ZujbcrXhX8Y+MWmDFL19N5e7L\nA7hy\r\n=+CQT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyJNbwIpAOVr3ilOKkoNHG5o8IZJzEBGNBQ0a3qIlQxQIhAPsMoZer1yXudNfv6P1ZJ9vjy9y8J9Jg4hz+4VQCnZpl"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.10_1539329391255_0.4429574803652123"},"_hasShrinkwrap":true},"0.1.11":{"name":"@pinf-it/inf","version":"0.1.11","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","json-stable-stringify":"^1.0.1","lodash":"^4.17.10","minimist":"^1.2.0","pinf-loader-js":"^0.4.22","traverse":"^0.6.6"},"gitHead":"988ab720eccae97560599448203d091e8660d0e4","description":"inf ===","_id":"@pinf-it/inf@0.1.11","_shasum":"12db826da205852747b931a8642c59375523fe52","_from":".","_npmVersion":"4.6.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"shasum":"12db826da205852747b931a8642c59375523fe52","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.11.tgz","integrity":"sha512-72Og6QFZoZPVoBJFy2m2BYVV68t5O78a2OXf5RNx2D0xOFKMUe4eRNp4JCAQnvEQaT19l4u+h85YLYgrHf1GAQ==","fileCount":134,"unpackedSize":134030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwE/zCRA9TVsSAnZWagAAxQIP/RvdZjjV0joGcGNDkAhf\n8COR5KI25boF4PPSZnaj65fkzOiUPQs1SqUFLDUMWqRqKtnMpbSLTiKh12zk\n2BRcqmxvXZRweJRxdLQ9qr5FkmHLgYax+VgWTM3nbeox2tlgp5e6UzwQgMHr\nENuEm1sTpY0Cj4Sil+tRK7XNRnEcEtrFWZL1xuSn8d2UWXFPDR7n/zwOXXPX\n6v3qhLY+EuYflHAj0wBpvpMWJ37GL7K69DoKWsr1INKHSGS2eBloD/9aV/kc\nmmGfoK+Tch0Stdy013W3F5qGwKyfuRC3QUS/P0OlN+3jqNqVvPgBjZpR2B4x\nEhmoidOftO6206rq9DbLg00jKxW/CfzqXu4+UFYWEL2ad2RpkiZ+M4n1BKt0\nvyEGRGkO+2AqeaifVtmFdRKPF/bZxkTfqqcbwkJz2K5tPE/bfQE+Xssx7dpE\n4OzANhdicAUnM3AK3uvIHZ+zB5PMo6Mnjrpi9u4c3IkY+BoVMnReR7S7hII3\nHZu8nUScEE+N7qoHhvs//fAccAwB5gY7PXHq3qjVa5dYCYE0OWAHDQgwEYii\n/D79jT0Y3GMDKz7oCt4ACcaZJ3CWU2oVyssOKksrBChP0/LKJMn3hUohyh9F\n84d38aUTalLQOqsT924sFO2LhEYxo7OGd2q1sEBubI+WS3KgsNEUHfwSG9iQ\nWov0\r\n=aFkb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzj2IT5Rs5yL4UnW8xreumvCztwjrPX/GSAHoidNL3DQIgKk18BjAuGHh4GkyNPRLZBSCpIIEaCDmbkMLjqzQFdyI="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.11_1539330034401_0.5153239295484031"},"_hasShrinkwrap":false},"0.1.12":{"name":"@pinf-it/inf","version":"0.1.12","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","json-stable-stringify":"^1.0.1","lodash":"^4.17.10","minimist":"^1.2.0","pinf-loader-js":"^0.4.22","traverse":"^0.6.6"},"gitHead":"a479e35e7e71bf86956451d30760a57d8636dd44","description":"inf ===","_id":"@pinf-it/inf@0.1.12","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-iG57izuLMDZobFH7npcpPVJPV3ZLHQAIzvxPOPIBSfqAgptiZvIF1wOTDVznOxIYTLZLRfG14i9/Q3GDp2DQaQ==","shasum":"4429363df8617c169dfe02812582d23aab4f076b","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.12.tgz","fileCount":131,"unpackedSize":133900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwFFYCRA9TVsSAnZWagAAjoQP/AiWAl657dE2eDKkr5Lm\n7x1jxjLz22r7YgKcmYtzF2+NM/9p2p/3ZsybncrN/UYhGzNWi6cq/QHba5Dd\nhyX8IuvxAPrvZh2iJmJNnVFCyKHoVBgmbAahF+T05VJpwwTxK+N693TPHQWd\nTXhXz0MNUcqWCR6A2UZA2YLLeEG7cu+1dDDaV59y/AY1rehHp+hXuhTrr9NL\nv/Sx4dSS57ZJUtLjg4GIbcKdEhKq69EPFNc2EcqCFsRsKzZ2C2ZwKpvqCLWy\nIIuY4eIn+myFJ1Ypi3zBUQtbw3K9bT4neAcgOD5pndNVRpcsmCkWuMK6LhuW\n/bTek+dXkmQAnA4gYZxr4POSrq2zNaWIZs/x9FAa6X5czejTXQ4YoJi3hwoP\naBbk2eZlABTGZh6zH4GnkLMY6jqxQmghES14Adg9lJXaVY5XHtFFHdQCXESY\nHJINKKbtt6KbRQLHyEYp+UtiT5RUQrmVwtOt0H9wTzdqdHrstY1nrJsm4Jqj\nO8irD2ZNnsV0ikTcRHl90/5sVyEL281uiHGiYd7Mf0ixdUtMA79rszQ11+v2\nSobKjqjANlPLS1VoepqiTha9h4wFO4X/72BJJNDRqnGMDkK/Sih6Fp8PNQWQ\nUeS0pzMJGLD/0Rvejtpxx9/vOH6iTJVgoEW3ciDVbNojcr+GJKRPizB597uD\nfzcB\r\n=tS7/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNFppHPE6u4zmtucfYUCPF4qJW8h3ctmAfscd7uk3TsgIgYee4RsotE2R0UyL/E9ZbOLVmFACZuqK8SwRbFAfdojs="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.12_1539330391715_0.5235060872009669"},"_hasShrinkwrap":false},"0.1.13":{"name":"@pinf-it/inf","version":"0.1.13","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","json-stable-stringify":"^1.0.1","lodash":"^4.17.10","minimist":"^1.2.0","pinf-loader-js":"^0.4.22","traverse":"^0.6.6"},"gitHead":"b5a6e8a27c54aa1aaae91f6ff5d4a571132276f1","description":"inf ===","_id":"@pinf-it/inf@0.1.13","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-oQQ5SNFarTuxsv+iWJNmKnW4wr/JP23z77IufdXhLLVfCHpUFdrWpLInOou5zGUiRYQMZz96uR/WHfQ0uMgCxw==","shasum":"b49d49ba8117793962dd92c585d8e75c7a0b2cbd","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.13.tgz","fileCount":127,"unpackedSize":123123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwFGvCRA9TVsSAnZWagAAwEkP/AmEtW5K0vfg+EHBnUsM\nFOB+3l6MuGGUeUHPlVemI50vhAnZkxqcCTZKqrnHb2OTOSSaZe4NFv3KrH/W\nv6pLqynl4nuMSR4vyd2D4u5ebNBp02JENpkondXaTthITouWdlFYOd+7Ur3p\nq3I2PvsZwrL2B9JAihGEZ2f2ABZeGu+Mm5mrg8iLVroFYp+zNdMA+Vt3R2FV\ntuwuUg0s7rRCdN7GXm2FPry0XRZYowCYA7No3Zx6jysyF/X+dPEB7hI/Wbv+\nhDjddeST4Oa0WJkx3dRRZQB+PkmgXeiQDM6cpdDAgo7InUc7Ytc6KvYT0FLy\nqyxLY6zkb4IswPQA7uC8MOCr3PT2LiexBAdGZJ5nv+wFI/0ZCpukfZR6OV13\ntfwuyFCBspQO7TWaemIbDAP2v518edlC2XezVzFq+eB9HYN8EfDDWSSvDWlf\nWaYaGhIkikvLuvbpZyylwYWTPN/xETd3yzGUVlYWo5CGR4oGXvxdbh4V+PX9\npuOarg9LcdDwUCax91PZ6xjeihGwbQoW1mcjsxu2OdScExiu/lkScS0xvGBA\nPLZOm63FCSbxlGFNtTqC0A9vkvoAZfi2miE0jwRN1SYohK2jcx7mN4kYCzuO\nM6Xd34mw946a4tchYlaG4EigXRclo5mpvkM+QgTlJ7wPKDSXBiQGmvgpkbxd\nTDF9\r\n=NkUZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF54x9hfuBLKSolfse+Py1sRS3CcQXzhPWAtTujkQDDUAiAPP9p6ee+TXhUuhBFPQXdKzA9O97O1OJgLYZv2nsYfyw=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.13_1539330479061_0.049118399781126865"},"_hasShrinkwrap":false},"0.1.14":{"name":"@pinf-it/inf","version":"0.1.14","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.39","browserify":"^16.2.2","jsonrep":"0.0.11","puppeteer":"^1.7.0","runbash":"0.0.8","uglify-js":"^3.4.7"},"dependencies":{"bluebird":"^3.5.1","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.2","json-stable-stringify":"^1.0.1","lodash":"^4.17.10","minimist":"^1.2.0","pinf-loader-js":"^0.4.22","traverse":"^0.6.6"},"gitHead":"7be4a21855558d4d1c84eebfde7d49bbf2cb3ee0","description":"inf ===","_id":"@pinf-it/inf@0.1.14","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-lr7PYFmvaGrGZUsD4FaEv6Gifeq+vsyBTkF9BftXYiUZP7fvc0Lp5x8dB/kBbXQxk0it6AoWqL5O66Bi8k73NQ==","shasum":"91d27170ab264be8c52a4bcc9ef3dc3d372411a9","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.14.tgz","fileCount":127,"unpackedSize":123159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbxgkuCRA9TVsSAnZWagAAcCsP/RnUmDf+Hle8skuMHbP3\nfo0aFbYhRB1wC3hTr0BJZehIll8Q+n6qHwfTfrVBQdllrt+G8fzpjAmiifHw\nJuF/+GqQrEA1dtyyMuVvaWzY6kpdPuBjOCOqKrsZRO5XF6QDKPMgCgVOXCfm\nrNkN2jDthWd4ZqBwNz/xZUcR5dMfUdK00d8NiR8FWLzJT+f816FnBKGk2Mcw\nj4aF1c6uhiOV3EVv+9nHUdPBrgU77zzZmvbdjaPbCxEgftSH5KhqV/sWh6o8\n8wak+/zTAfGC+65PrFVUYl/bfHwvzZeOUFL/MzN9tQR9g1abw1KquL5jOzoo\ngumgI5Vj+g595v1RIofSk/lFSpWTSQE5RyE8bqidS4ryE2ApffhG76Xjm4Hn\nxf1K6EVFiHj8u3IyepbkPgsbQIuEeRygEX5xjuNttpAkC7Uf0wHox9nwt8bj\nAqnd2FI7eZ1mrNW9R8RhP+X0mK1wIDjf8w7lmiF1HBwim1cPFEJoR60+Iypv\nrZWJPzKxyaK3GpQVWl6OcML4BjaSjhDztsG/+4bhItgfSp1JvIWtj2QSYrYX\nDh5rJNR94k3YTpvLPNlCZ6Fm7nR08OaIFCQXWnnQbH4BXd7sHw/pV8HIOKye\nSSyptRg9Rsx6qEX+5OOcMNYx9pGtQqPvFywAic1DYYYmiLnQRFAEiyNlaw16\n87wT\r\n=uPw3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCz8lqeTeXV0i3aATcquuvQSV1d14NyLaTItRmlafwzBQIgVUJBpuRlB88W5Y9P4RC21D/G296NONYAitNyUxx1vtQ="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.14_1539705133481_0.9451687410963998"},"_hasShrinkwrap":false},"0.1.15":{"name":"@pinf-it/inf","version":"0.1.15","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.1.40","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","runbash":"0.0.8","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.1","traverse":"^0.6.6"},"gitHead":"53baf9ec79e66814283ac72cd55a8d6275d6b1f7","description":"inf ===","_id":"@pinf-it/inf@0.1.15","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-sk+iiiw4mqZf9cjM+x3gb0Ivc6E0UktuX2wrLp2MCLCj7mfgB+EbJbghtqFRz5Yri2kiHqaqslDnqha5mpRf3g==","shasum":"4e2b967d5a899658c9b5121e138486aea2d9919e","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.15.tgz","fileCount":127,"unpackedSize":123158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyscsCRA9TVsSAnZWagAAMyMP/3LUOuGf9BtLfmtc4eVQ\nSitd0xKyrlXr18gcPTnyBm07CyLT1TpWAIbEKCIXxp+DWxhv7OkMgCr5RVoA\n4ZQt+826Zb2Xo7f14+hhAKSBoI0pXxGpFx3yIfOykAny5pJnOZZxDyDXyYEz\nwt9FOSj/wZIVhWW3o9co1bAjV2t4iarliHNcM9Oq6TpdVy4OQC9qTzB3URzh\nuAbSnphLWIM1tx0eI/9BTQ7Zj4ninBl79CJHokfiog/CSFWlO2lGypJFz1NB\ntHfSlS5RpzhP2wJ0fT5Mz1d54CGOwkQYgw0n+5oG5zG2+/pWKHWMxNkPK1pL\naohaY6hKPCRcEaGv5VnPGNHE7kxMKutSI+c6TepQK/uvjTIn3ljN9Mv6d8xs\n7qtIFDZDRovbaOYLKkN6KArWjDG53oyoj/t0CMBhqZekrVyq2p28lSIYHtCB\n0sAC32pD6ZCs69pksT+UuZBxqxtaYTz9WnD3ioPSZRd7276XsLaeAbjb2aR5\n2YZ8c0ClNejcjJBhB+SB82kxa2Ubp/BlhHOgF+0CfBpLhTVGS/2WVF9ezF+0\nTMxEwRO+Pug9JRmS08K6kOnqRDEUzyOCUfcsSZ3GUdiIb2vb2rE1W0jhtycE\nQ0CYV6BanihzYZECcxRn9YnsLjEx6NVdN3pORVIpHEUBq8p0gLLObUWraMre\nrjxr\r\n=Qzkn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsYE02KYSRONvbdkkG2VsVbT0pEE6R/eWAmIcFpjXCRwIhAMQE8VcVPbOrX2+CcNVGAgPf1EtWJUNvw0CoZDMCYtOT"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.15_1540015915873_0.7413725420944264"},"_hasShrinkwrap":false},"0.1.16":{"name":"@pinf-it/inf","version":"0.1.16","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","runbash":"0.0.8","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.1","traverse":"^0.6.6"},"gitHead":"70782727ba808c5d94ffc1aef0ec6998578d8717","description":"inf ===","_id":"@pinf-it/inf@0.1.16","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-2id/mFOFB/EflfcuIEnzRpziH77EWf6xJW57yt/3+WU/OT5yoIvxQeGu+4ER49oz1AUmuTg0R6Qqu5uwejSJ4g==","shasum":"6c14d5e685b498535cde6321b15a43c9d61fd3e2","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.16.tgz","fileCount":137,"unpackedSize":126133,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4x09CRA9TVsSAnZWagAAAjAP/0g5aLV2dh+1TpYLBqOo\nEcnxWxwfT0EHI43mPpZkhXRGFWjISqdn7S48MqQvE8Dyo0TZDFqEskM651E6\nxN3AMnuSj6YrnUO+CHxP+KnL9slXo9ZwVthksWIU71P/gcrPJvRBywiWizcA\nIS4B703ZbbIMNY+r3r6PsBSrPotWlmvf1r/nMfa17/AjnAcp6uMxfTkUhg8V\n1ohUbOv1/ru/6zXe5Ft0uH8h2AoKo13R+ZYRee2tHkdeyFYu8a/xi43iNW6s\nnHIHFRaC1KMWOWlXBOcJwIajmDORpWsYA7NgWWW6UBqjqjJQEv323iuG5ow9\nvF0P+QyTgniMAlzDfFJAXoRn+eBQl9Rqxj6TPLsmy0venHqcVHQuaygkALpn\n/UJHufDIhPOYveYarCS+LrO1lOSV/CClaBue+WyGMDw2SoAmmCN1kESz4ZUG\nTTqV8sJA99g17Ah3UKext+BruaW+UcqJkH/aVkuOiJ15Y1CC4z7pdnPqIxz9\nvnFsj7yp9/JtwAKl+NO0EA0+rExYUPRx2ziwYlnbGFzO6YhPd2ZqfEaFccrj\njleX6uINW2Ci+woZ2/OzQSu9OgYJoWmZpoqK9fxANw7FXBqKYSeNvCtlUoEF\nWjeOyzGbDQei08OSDF2w3h04EiyffOzhRVrhS6POHJhaJjCC2TfcN7maLx6Z\nyEgj\r\n=5ldF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAY29fVO2ZzKpDZ3UBokAoKRVpB1sB2TGT+M0wRMEAhTAiAY+6eyNZK6bCZ4X1yS+jvN1UQLwcUnI2bfTYdjO2zPHw=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.16_1541610812887_0.32817384976981523"},"_hasShrinkwrap":false},"0.1.17":{"name":"@pinf-it/inf","version":"0.1.17","pm":"npm","bin":{"inf":"inf.js"},"scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","runbash":"0.0.8","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.11","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.1","traverse":"^0.6.6"},"gitHead":"fafd666c6c77375e4a31d20b8640fae9f2606aa5","description":"inf ===","_id":"@pinf-it/inf@0.1.17","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-C1A87bx3Ou54LVz0xtH5G+6Yhtedra70j9w7nFAfjvRMzKwSSabt85nuUuiInlPyTgCY59vpnyGNYvfWo6yboQ==","shasum":"a5ba313179747013e1a06488903c7f075ed7deb7","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.17.tgz","fileCount":138,"unpackedSize":129714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8OdXCRA9TVsSAnZWagAA6L0QAInjVZ5v5GMuZyaU7OVB\nL0WTZdm8NRPU/prFFheNC3xBcw8GT3R8HdkyOYG4V4BuZJDVzg6pleilmugL\n8bHgS3bHTfsbEJbwWsFF+D/XtinTOb99PMy1Sm8/mfLcA6d0xxK9wIRXPN29\nr0nSTbZYYKrIpmNnAxRMSHfGzGVHbzypafAyTRPBPnlD6rkgA/oj1TfGmwP7\nOmz4NjI55AeBjuRqfE/j2BIio96RoTcFu5n1lP7mViPi4EpBOLVp/UQ1uBzv\nFXl0XAZR+fmOGZrOZY100H6smGjhdMc8oGXy5ndOu84xs2wtVj3Lh3ydKpmP\nsyxH3dcJUhXaGpPJ2dlGu+t8aN1YHvB4QbyF+/vYcCY3CZTDiX2szpu7LFdC\n8MtzQ8P5bD/BHdUmbPT0Az/mx4V9ZnsoIzhl5uZb/Wcd5Q79xfMFEJQvpOb8\nZMo6ZpSnUti+XPTQ5Y73yxKQf8bL/vMZG3ikwgBQufi7s8aLFGWzuvJWE5El\nOPZdC3SfC7jRHJTQrbFQm9vcgv9EqinmkS3HncjU+qcC54/tul3Ai+c6E+D2\nkNQLQOmNNkoA0yusmckJUvPCu2y71T/UgrAcULP3OrZewBUA338D7k3SUMyy\n+m2gN7bSUo4+D415DXI+O0Ja3lHP3lM6Q1mEmw87Sj5awQqhK5XO998MUaCg\n3Y5D\r\n=uwr3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDidhfqQaLiiwZSMT9lxUDMe243PKYs2zyP+yHqjlvfJQIgeSF8gbnefFpCABTJhHYUy35ig+43CN6XqoPsdzz2498="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.17_1542514518930_0.5693031418837231"},"_hasShrinkwrap":false},"0.1.18":{"name":"@pinf-it/inf","version":"0.1.18","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","runbash":"0.0.8","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.11","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.1","traverse":"^0.6.6"},"gitHead":"a964073d0a4cd7e2a2acaba7999d70a383b313c6","description":"inf ===","_id":"@pinf-it/inf@0.1.18","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-nUybHCzXT6SQZAoUu4l0jgcGIaTXRSRUDPlKeaVc2VIxXdwNvkfjsLCBqIgGkjuMtgT09nkZtZDPnEd9SE3R6g==","shasum":"c9324370371d351fc42fd72b37157cccd8026850","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.18.tgz","fileCount":163,"unpackedSize":163528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/jKJCRA9TVsSAnZWagAA3G8P/RoC0ZHt+KDE0U/P/dXE\na/nbWpSh0xbeSQDoByPu3jxeQ9kgi17It5D3VJTXfF/O0NrbuEuBHDzSNpHp\nw7PklHpaerCEp8GjyQ8OZPrOltF0SgDTGTg/TJZLBGq6CkJljruM8CPhhkMI\n98b5UPY3UZgbvaKy0gEOUcz52yG+mRmDSMZuRmDZZxADBSIucvHLsmeE494J\nkwKoNFPD8Slzlu4aFXwxyhtG7ZGJFmCyopxlVUd+/cEEvcu/b1AJBWyO8B1F\nBbN94GIEj8Wb7bqmu++BfpSKHHpDQMPxBAcpTNwBD8PTPfQs6+S6gLXfRr4q\njV9Vnn7IUqRzZNJy2WU5HSqaSe8ZysXxqP2/Mz1Irc1SsvvmsnoO7cxQC2gD\nXrRa9G0PRmT+u7Ncz9RabyMpLu+kxobKixZEKFp2qEvmqJKcF1dNoWAQ/wiJ\n96FI+0xEzipxtF6eV4fDkH2QqshfdaaDeia+ODSBDRwGcAAXev5v27CvC4hm\nLGrMKcw6Yjq43tydYiEkrAQqxjreAhaznDEgfOTBo7gmJqR5S46g6CF04A57\n0aVPW7aJFAS9HxcAwNhujWMD0ZcoQ9X4hzjyifluhs0DlH+oEku5NQeT/ME7\nLTS9uz7y1dVNT7Iq/Hq2js0S1ThYYbq1iXQ9mRpiUiqTe/RFRWkWLzhYb+hk\nQxBh\r\n=1H1x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMint6THLEt3NhEL7VAU/IuKjheLr1fA1/ugYrkYnc9wIhAParWba4cNlRFd7XsFEu2/2a8a9L2O7xs8CKuo97Wusf"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.18_1543385736859_0.786820330011385"},"_hasShrinkwrap":false},"0.1.19":{"name":"@pinf-it/inf","version":"0.1.19","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","runbash":"0.0.8","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.11","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.1","traverse":"^0.6.6"},"gitHead":"e481eef2ccbe8c0b586a20da45019e3534d56585","description":"inf ===","_id":"@pinf-it/inf@0.1.19","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-7ulmIH3mr/gWCG4pVQiRZIUQi7zxYwSQfG9pFtdW4o9DUya+ZEfqAQ2dyTrFV059xsUabHEcgekVxweIC/Ak3Q==","shasum":"671a18d3c69d50e283dbe0253c60c56b3b600046","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.19.tgz","fileCount":164,"unpackedSize":167302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/xgFCRA9TVsSAnZWagAAmjEP/2o317mpnsZayJ2f8CyB\nBcEa31yg+a8r+I8FLBxYh1alMollkbK3C6/e7GFt2bbumuFlrbt/J4UT3hOy\nXMJcIPXtKoFXHdKDJzxvM1yTQsqrvQLLf4mw66gXWmA/t+zE9UZSqgA8ibCW\nQYnVsu0wGuDXphkIDD8iLzcDDNMZwbFYQPorsKJzlyUQlsFLbvRm+1jnMU6Y\nnNz1p0FEDI7ZnprxnJ1FfxjGAF98AEUMq1AG2oWT+utag1EJQwbSqTao+gBh\nXwjmCRd+rzhCWMUmJb9F6cMBN3wasAhsv6jkiJbV+++IWvoiaHotsHBBq9Lg\nzQCwyyf0Yku8sC1DLkVQjTT3llK36Cvkl0dYVd2vlcH5vdY0n9pTTl8s7H7F\n3rysPYHHvK4fC256Xi4z2lf9Lfu/8ICMBasZKFlHW2fcR+1yop6Ju2c9xjKd\nN8sJjIeGTyvh7NI+wL09SK5djCgxEA12uX5W2jtdMvF+R1ZJ0yWEi1qrfr2I\nhIJg6HidvZV5HTMXewta6np+/FxRdY/52rGgwrXn+sVzRu1JwIrVFrv0ZZ0C\np4HDLvrD46esXBBnAPkB/fLYAd7KUgWSarGhV8CYOzZCRTAc6QqXeDfVEYmh\n1caApOMdg99f47d8ruskbq1ikHdOXQOONgwUKSIZaEPWfgmIFLN54JKxVKI8\nlmL8\r\n=q6WE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBqkO4ww/IrFrYdMf5ta44abKeX/wJ6lQMBWFgHWCs+GAiEAh4+qlDjhUxlqT0mtAMIJA61jkIGLQlOAMH9S3B4TPrs="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.19_1543444482589_0.8717313683381522"},"_hasShrinkwrap":false},"0.1.20":{"name":"@pinf-it/inf","version":"0.1.20","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.11","colors":"^1.3.2","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.1","runbash":"0.0.8","traverse":"^0.6.6"},"gitHead":"92cf079e371e5f1006a7608b3927a9664cf87828","description":"inf ===","_id":"@pinf-it/inf@0.1.20","_npmVersion":"6.4.1","_nodeVersion":"10.7.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-eDFJGS/SIfhk8WRkGIGa0cX1HUcE97J2nKytlljaT+igkwjY9Jsej2zUD7uBz1QtjiYvm3L6yI74BVpQ9jiNJQ==","shasum":"68bf252b43f54d98ba5aa01ec85c397e487d1175","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.20.tgz","fileCount":177,"unpackedSize":182682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPVvfCRA9TVsSAnZWagAA65kP/2Eo8SfKxnLOd0FXTBcs\nBsvXttgdXXRR3YepI2/Wh/cn1QT9d3TK/NHOY5YR8gygn2xdq9Betxu7L4dG\ntvjEvj+94Vf7QW7bzTW5GpxN4agzHVRcRD8UT3VK8DUAt9WeqA0kepfarA3U\nGWus3FD0l4A+26OWueILwA5EbENTo/zwT5/VYulIIrxTJaqU7d6GVw5pQFrC\nDiGE1nIdG1i+fmGI/5E10THbCjqdIQLfsHEkvC2J7Onp/VCw4XYQG6qTbzw+\nj6IzL4KCEZcjWJPTZt+1QxzekL5rgyiDKL5IGYfAyLUM47AEyOFjyy/TK6o1\nZIDLx6HVeBhCm9KsvafJzZNsBacNaxfCiWYXUws4bXLDQNmOhSANCAfyqaxx\nWcH+57+lgrwQ1BwkXvD5KCUMgLzyzXiDSyahdblwtpyFU2yldOil3dqUCVwy\n64z3Ls3EycwrU35PIkv/kEySi6IpgtPhUdT/4LbQ2PvV28LygHtRyeqj44lM\nvNOQD1Y6ex+a+7AqRqc5ULY0mOvOAVymh8Aj2pema59XjFvRgKc7fbnahiSo\nBN2dzcekry8NJIt1HsBWEadM6SN5P4qE+qUfPwYDHoAy6azM3knESorwfZXQ\n63rgoQO2EzX1QoA5mD7VlhzrK6XC+9VvmVyL5RwI/ZUYHfL+AR/OB5kDQWHs\nzWv1\r\n=r86i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlXTIz3HZJ3P742DiB1xc5qXBk5HBjtowvBSH8UB0NLAIgQtsO7LnL0KiZbbGwHkovjdxQzTl/9cH6NBz1sy8sxUM="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.20_1547525086502_0.4554205773089868"},"_hasShrinkwrap":false},"0.1.21":{"name":"@pinf-it/inf","version":"0.1.21","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.13","colors":"^1.3.2","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.3","runbash":"0.0.8","traverse":"^0.6.6"},"gitHead":"65439864da9646f8556fb3924a51bdb420bf04d0","description":"inf ===","_id":"@pinf-it/inf@0.1.21","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-XBnHVOt+2rg2Ca1yuJNiVyqTduaDGw2xRjRMm/o9zUOc149vfB6c/13PpFiVoN/sWX5MbqAUcXKCfMxJ/KixEw==","shasum":"9e589266268e6bfbcce8d743f393e2a91d15a646","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.21.tgz","fileCount":177,"unpackedSize":182682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUS76CRA9TVsSAnZWagAAJVsP/2wFHED/r8FLZYtUNNXI\ng8ENilToBy8xSHHS3jQ/BhNk0FQ+YuQb/MIavgYXe5llo+EdABVadB2WKpWL\naSTbNWzRG08g5dzBudmWfGgum+17VaTBhhMDbJFG2rTQ1lyz45BETQ/kOsiG\nHVqjPo/rx/iJWugu+4YOeagdyqLePypqqnKZ6CmxBXqCLWGqbBRIHaeRHRhu\nFBoayZnuVIvO+tRsUhbwDSPQuVTm6kWMsaYDfpfcY6BhE9BMzkTaUM4nuxDJ\nKD4CwocXQTpe2mBNwzN5v6uf1jyAzx0oeqMnNxWR2cFzxhW1fTJBekhkaWZk\n1+ODlr7QR3h6h0Nqr838VvTVaj9+6XUfOdxJ8oD97jrPe4hMesdnJXfdefgi\nhggZ0IocziKLzIzujSaxrMbOR4ITTP6TAL5p37rrz2b5uwdSMbani+F5Zd0y\nzbXR1qMBnBiDXfAMibJ0OCpXusaR3NavygFqZN445Dt0l9D78ueFz/4oJvoP\nJVnYo2ZjcRXyKeyLm/Jfe1Ign/2IVbBkvBy+So0QgXkaZSWJxYTYk/EoMW9/\n5dSSMN7D7FNsgGMbjg+4bnHuatZVH9+fL2R+s3VAH9kh3Qoc8v4r+qUew6Pc\nCojZ6NqjgQBW72nXW7RXK+s7Dz5Cq4qrqR+cEROzlGCbEOXRFkXny0LDeqGh\nC1oc\r\n=G1hS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICIT/9KCP5DrEYAPK+4MMUzWcVGdzvdvnh9DRONsPn+xAiEAtEEeDa+zu7eTv11W1+mOPwbLVBNPEyb1WTG6Q1PMeIU="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.21_1548824313773_0.7663870246670199"},"_hasShrinkwrap":false},"0.1.22":{"name":"@pinf-it/inf","version":"0.1.22","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.14","colors":"^1.3.2","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.3","runbash":"0.0.8","traverse":"^0.6.6"},"gitHead":"d0b5a112cc23883a169fba0e0b3a1aeadcc8a37f","description":"inf ===","_id":"@pinf-it/inf@0.1.22","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-4ZQW9t8q0ssdRB57x3mjmdVN+vI6y7RZ30bjwzkQvcKK/bkAQW0A66yk1kdj2/fMZWU+BuLt4qPfY9cr9H3LWA==","shasum":"5ff23016cc1377e13e5d4880c223fd7208c515af","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.22.tgz","fileCount":177,"unpackedSize":182682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUTEACRA9TVsSAnZWagAAhMYQAJcK0+qUVfumkrKS5Vgx\namZ6IJwkHJ+vC16hv5l6fq6QkSCEFfZQldKc6KJ9ycXwMff0wR6KY5V5PUmE\n0QDqkgooSQxnH81ypB6+1P3J6zXqOH+zzRfkzesqNxJ62YeGBxzPGMSVhP5b\n3d3EWkVZscU1GWBJQqhbHoEVr1DsMTXYhcBRI+IGDOWZxPyjjPIqAvyPlK/7\nrEmi/DVnO/25KIA4wKNhaz3b3blMLF8RanjLsToVEwDt0HU4otewoO7fwMEm\nazTj8sMxiClr3Ao2Dcy9luwxVCyVYR5VSAk2AiZZQmMHXGHx5Blw7ik4R9FG\nwbb0QQzhoxElQkX/bxaTnj2Lxn7SmWejNHpsIOMcdWXUOPQrC3R4P0d0q+vj\njDubHGsMNF1DlbHY5RwhbN1AveTQlafbDOX6DesKo1KeAWh5AjKJEZ7Bet41\nacBCzYmnh/6K8GCfESnPrIu/Q7riQgDYz9GQaI5qxv02x5u1naFMKH0V2OnG\naZiBLkBSEwVFJjnC+vt4wwZt2MqDoxQb68qMgwwyLGmuhBkoRQFuxLQXgr7V\nQYx3tokfHPMtSBFFM84AXSA8senh8TRrNnIMHi1dAh+BTlMmbby61OJkpRFh\ncPMVGGwBZC9Q9C4bJSlvJJiXmzvK1s6lJe1kzFclaP1rmgNuSKNv4XG7Gt7B\nnm6d\r\n=zzA/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIw0x75PTmoXGKdSfr3bot4id/t165xQy3FuSz/bItnwIgYfI95EClyJoFG6iylrykCXk+Wm5y66z9clItxQt+kLE="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.22_1548824831508_0.060131277456560994"},"_hasShrinkwrap":false},"0.1.23":{"name":"@pinf-it/inf","version":"0.1.23","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"0.1.39","browserify":"^16.2.3","jsonrep":"0.0.11","puppeteer":"^1.9.0","uglify-js":"^3.4.9"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.14","colors":"^1.3.2","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.3","runbash":"0.0.8","traverse":"^0.6.6"},"gitHead":"cbe02a3fa86ae89b2d94353128afed33e20af529","description":"inf ===","_id":"@pinf-it/inf@0.1.23","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-abA+WOKIjM5wS+ffLkp4sdP4vVIt+NUB32YMzn3sQmwko8r7b7NjPPVXPYJ1QvXMafY7LnBd7dEZwD2SwZNH6w==","shasum":"5dceab888bdcb503fa569d3dd5ee6b0b1c36035d","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.23.tgz","fileCount":177,"unpackedSize":182682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUew7CRA9TVsSAnZWagAA+LgP+QERf3k9ssGt1qPXmx+Z\njVHqZgxXc0n9euxfbfOqnWoGUEzrf0l3Bf/CDYpPRqMlTgOfOfKzqYXCCwQc\n7q243tFdgWHxbZzBVKVPDR5nIHcCyUsdZTu8rCfiENGcD6RGI1wjaAQhFWzC\nSqy+jiPkkR9DNfjbX9rLCAtBChSl5dd+QxbccmTjo3F8ZdlnndjJblUnh7g+\neF60ZfH4aWITQfBkMGaw3fFuwQofgIqpbJhYKvBgzlo6zAO8comEwGkmlNDA\nMev7jPy6jvJvI953FCHZtcx3ny3z2RKd6f/C9mAFxnVcvxgJmvHaL1/Wzz4r\ni25UzoWve4E6uVwxdubZTd6CIq6amqYUc6+kVzkQHMxRITmOE5lAEHW7w8PO\nA5k/WZXQyTsH2M9OViFz5iCWPOo5crcycwU8v0+lxiWtNuQeXjEFQY/6cHaY\n4GiV1MQ2cZo8wtyqIhZNhV/J5BASZuezps25dwWNdHBqX2y70nSQGhSZiIWu\n0ENt+VPI3sys3NGMdB9iQJftNnK4c+UKUGLEHIyS6UPkoIow+ep5n7SN0otH\n/NQESkETkgxK6T7SdOWnlVPncA+m000wd8K/XjxvY8J+187asFFSlV7QTpD5\njjuuJ6QaJokuaEWWBnrXNe7q2HsmFzDmGLfYTD1GZF2IaPGwIe5CzUbTGXlh\ncG9g\r\n=Acp1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHE/LSVz/BG26AiGrK70Cw+1gfMsinCKQZY5rpQnWQiwIgVz8yrY2gIkEd9aFBpf8gzsnmFT8cdCxIO2ubOME4r58="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.23_1548872762563_0.17421487999906593"},"_hasShrinkwrap":false},"0.1.24":{"name":"@pinf-it/inf","version":"0.1.24","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","browserify":"^16.2.3","jsonrep":"^0.1.0-pre.0","puppeteer":"^1.9.0","uglify-js":"^3.4.9","bash.origin.test":"^0.2.0-pre.0"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.15","colors":"^1.3.2","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.3","runbash":"^0.0.9","traverse":"^0.6.6","lib.json":"^0.0.3","memorystream":"^0.3.1","resolve":"^1.10.0"},"gitHead":"e65d07b8026ce725ed24e069d691cb8fb5b715c1","description":"inf ===","_id":"@pinf-it/inf@0.1.24","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"dist":{"integrity":"sha512-MYi1CL5A7i/VYHqvv5GTxIKP9wIy+7t0QFS4qBMv7H7uKHnP5ds7E2wgof+qp8z1nE6j6KFFC55n8BORkCGE/A==","shasum":"1038d209f35c65875d2f617d12807b302a46727c","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.24.tgz","fileCount":178,"unpackedSize":192393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdYOmiCRA9TVsSAnZWagAAs+gP/22LO0KD0I+dsNt0+Alq\n390PWaYdFTL9b0tz6LCk5SIeppB7v5B6mjCFbaKRPCojiE/nRxk2musXupNI\noNdkU0L9o13ER42LITaLaieFxNhlr3798sfJ/m7VEjZJfNEt1ZcN4LwWrMDk\nIlo8z98xS1O8yfQ0bnL0RMA/NwDCG9E3xaw1XyTzWDjyiK6jxeK6UbGuaTm/\n/EZXJBMjc3ZERlsVM5u8N/moJwaa9ZgQYzugVzx3tywA92Rb0RrAigN6YObL\nZlyKBrOFP9UXvYRs0xRp6weAFHANywLj1PnNXFRCGwTOLk9OZujwRm2duqmR\nwoMfMveT/pCQSgDG0l6Q0fa+TWZ0oSBWrtFjx0Mrrbz7QDr+MM3V1ktZGKEl\nqg7vchTGNsESVtt/Lu7Kav5t4LQrLbHSYOiJHJmv5AUtc8WUgtGZMxxJNuaf\n1FYEgRfewMuXBR9fwLT6GLhgw2LvYC+F63dO8S32Mp3wk4VkLqtcnuJ0BWsv\nYgbD3ofU8A85+MLq65Vn0gCkdWFUEKiaIQUE8yJEoYo8Vpq9xRnjuZFvcfT7\nnj7Nl2GR62nXxX2DxbLETZNzVIESXyo3Mc8w7g5/ax5mk9pxfqXUz1Uvu/Jh\ntBaNU35mr1TKd5v8GbJQpxqvjLT/LVmHIaiKip/OkSWN/XHtpJArGTAQhsQF\n6glt\r\n=pS/X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAullgcnLrmSc4koiqQNltqgkBgsyy+ZRdiSTNR6GSfHAiEAr/OiZIFPnVmpivrWQcCUeoxrFA6TxpwXC6JN4MHgY1c="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.24_1566632353754_0.07332953707700063"},"_hasShrinkwrap":false},"0.1.25":{"name":"@pinf-it/inf","version":"0.1.25","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","browserify":"^16.2.3","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.9.0","uglify-js":"^3.4.9","bash.origin.test":"^0.2.0-pre.1"},"dependencies":{"bluebird":"^3.5.2","clarinet":"^0.12.1","codeblock":"^0.3.15","colors":"^1.3.2","escape-regexp":"0.0.1","fs-extra":"^7.0.0","glob":"^7.1.3","json-stable-stringify":"^1.0.1","lodash":"^4.17.11","minimist":"^1.2.0","pinf-loader-js":"^1.0.3","runbash":"^0.0.9","traverse":"^0.6.6","lib.json":"^0.0.3","memorystream":"^0.3.1","resolve":"^1.10.0"},"gitHead":"8dace2611795a47cb7a9031a139d83a0f76d3c84","description":"inf ===","_id":"@pinf-it/inf@0.1.25","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"dist":{"integrity":"sha512-vSTrRA4MZLKI05R68lIZyaK1G58vcE/J1c+yjV5epObPOvf/nFod4bgLFqZHCXPRcom/SNU05+ozJp7bM3VDwA==","shasum":"0bf4187642462133253bd7fcaf49ef949fa28ace","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.25.tgz","fileCount":178,"unpackedSize":192393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdYPYSCRA9TVsSAnZWagAAY7YP/33sHl6MspB9lxASaFE8\nu58/cDMX0HTemoG3HAjMJI6giBIOEe+SbVctPk6RUdkvtwkOoztau/NReYOi\nIm2k131eq/fpbGUDmjBP3jo9a4K6mfaI3X7AM2+rBvbiKxSSvlXDTDIo1maz\n1XQIkq1Pt05rfIsprCB1AI1IyUis0DA6TCcwTt6rmVBbgDzgyXppXbwzoiE3\nny7+BX8G6gnJo4AhXjJZA0ySvDudkIkjcbrX/85Gg05d2dfYMfCNm9rVM6qz\nr+B/dO47GpNBcE6x7ldHnsG70JTvR3/CLfKy3UmokI1GT1uzQyKTXQ5nscL5\nswkOBCe4lv762snwq4EW4FZL+Qp0+0sSFkpeG6fVaHmf0XsQEgKocRdeZxqE\nqV7AsjQLuL4/77ReCjqvGJhhFl1rCPXQFugzbgjdv+GXLdkBpzVnvNFRurMo\n16HAQpahEG6uSUXHAEKb7/qrEHfvWBkMlBAGk81n8PlquteYSymjCUN22XdH\nMXScM0YnYjbGPZaYeH8qhdcXoqwTZfJaOXvlSMxgAejf0f+iswZFG6s0oO2s\nmtTJB58e5bBHzSyhnOiv1Qptcv5UVoPAEmPmQtcdnWx2Ff9p0zNRuzpLxrZ3\nYc1MvSY7S4GkhCUA1+8MpBA5l9DumetLViNHHcJLTmHaI0o/oYp2xuXPZ8yX\nfe8u\r\n=FOrf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyeu/Jl5Vha08zqV5pfdl7d85JZjmxlnFiYMvWclNurAIhAO7wMqjZs0w5AVjQX3kyWD8xa79Q43lUfepcWTbUb5ME"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.25_1566635538003_0.07223463102988781"},"_hasShrinkwrap":false},"0.1.26":{"name":"@pinf-it/inf","version":"0.1.26","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests","build":"browserify --node --ignore-missing inf.js -o dist/inf && chmod u+x dist/inf","test-dist":"([ -e node_modules ] || npm install) && PATH=\"$(pwd)/dist:$PATH\" bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.19.0","uglify-js":"^3.6.0","bash.origin.test":"^0.2.0-pre.2"},"dependencies":{"bluebird":"^3.5.5","clarinet":"^0.12.3","codeblock":"^0.3.15","colors":"^1.3.3","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.4","json-stable-stringify":"^1.0.1","lodash":"^4.17.15","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","runbash":"^0.0.9","traverse":"^0.6.6","lib.json":"^0.0.4","memorystream":"^0.3.1","resolve":"^1.12.0"},"gitHead":"c9cc7a497625063050c259bf24a1e8bb1df05cf6","description":"inf ===","_id":"@pinf-it/inf@0.1.26","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"dist":{"integrity":"sha512-f4df6QEYKFwZMqGj4SqH11N3vUO0z9w7SpHVaPMvQ3Zfuoav4IJsukmyOfZUy/GJI1Ax845hPJX091i3zcwTKw==","shasum":"a9941be9d6bd452079494518c4b32f6464370b36","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.1.26.tgz","fileCount":180,"unpackedSize":1788136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd0wACRA9TVsSAnZWagAAS+IP/2zO/qL+z8b6NHBWaztU\nJ8nQNd1Mz9NFmtDwu9KrhBqdBjLt5wZ3eUURIO7WVZ4DrRwWJlLADAzru6r6\niF8rU18Zu9Bmaq2R440SnUoG/jt9HFPIkB02Fi9PB6H/otzmkefiTys0vqAs\nG9CoXTa5Ju9ItIwq93I8r+ZKNeG6wRIM1/QEP2Y/9f7J3CQR6A3OtNc5emHG\nR8eBLw8WXAPEQd1AAu+IefJflfkt4QGyvKt7N3VFMks7cs0EgbRucqRPUdSJ\nj+eehRe5HT3fcmuyG+1v3S6khVUcwHNNeT1YEBLhMHkH7/+eDAZzLgwGPmcS\nHsRyJaRqEgW8vWETRLwVbmlsS7ct+NTs0ZWKAgbmSimCq59h68Xo9NRbajB+\nJ91iz5xj7YSYx2ZV5kF2BKq0bCMkHfIto7SnS8W5i3KfGr34UHgpgYpgsdKP\nXpfdxK+3c3z6386L28x/OrrsV4oezhuVMaqw6y3UxVvHpRzf2dvaKwMecFAk\nY/8FnD+ozTiTNRQPkeTD1U3ssAhr6Pd+ASZo6UVLm0A3TUJoMx4oGC3EJQ2S\nHlMsQAr7riSIdgmcffxLVYVwyaADTLNzp9iTE8hpFBcCux+mh29H3YfN3qPT\nxm5in2RKrBYkuA5OhkM0kiTjajlR6KgfSUcfe5Y/oAtijmgl4AswyptuocdT\nKCr8\r\n=FZf9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAY15ITKLxbqK6K4BwKSEItofsR+dBUKk5FAmHTUQinFAiEAvPNTwIeXbFfJf4+m3roJMH2HMv3bQGapyMJJM72uKd0="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.1.26_1568099327899_0.2612077691889194"},"_hasShrinkwrap":false},"0.2.0-pre.0":{"name":"@pinf-it/inf","version":"0.2.0-pre.0","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"([ -e node_modules ] || npm install) && PATH=\"$(pwd)/dist:$PATH\" bash.origin.test tests"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-latest":"^6.24.1","bash.origin.test":"^0.2.0-pre.3","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.19.0","uglify-js":"^3.6.0"},"dependencies":{"bluebird":"^3.5.5","clarinet":"^0.12.3","codeblock":"^0.3.15","colors":"^1.3.3","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.4","json-stable-stringify":"^1.0.1","lodash":"^4.17.15","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","lib.json":"^0.0.5","memorystream":"^0.3.1","resolve":"^1.12.0"},"readme":"inf\n===\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/inf.json**\n  * `__FILENAME__` - **inf.json**\n  * `__BASENAME__` - **inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **inf**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"ddcb5438c6a2eddbb4ca7a321f478286e20a19af","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-KCCJR2rGfQ1XQaCldpKcj02vllQ9N8694wJuY9LAfNwEP421qw70x6+DsiYUPfcu3I5RHFQz8Vcs9bVywSVtrw==","shasum":"1275066546bdba626e3cdef8a83cca8d8b92b26d","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.0.tgz","fileCount":206,"unpackedSize":5023213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdfyY7CRA9TVsSAnZWagAAUO0P+wXumXjPqoYxSFsc6yXf\nkkXX5BB10CrxzQJ8bCv5MlGaKamqzpAgaJGT3hHsLiJu6I43HrInearLpB3m\nmNQbi//DRj+G8Hq5qyWvVflWu173oEXbDHJKngKuy8azjRrLEJXHnaDA5hYg\ndzoyEJUICrY9ahYtYLp2/Vnoiwz6/f4NLMeENUdeKhIPLQAuziKQq7EVc3OI\nAlhXpY6S/TjJRpLa4t3VzpPWhuIJuVGuzCqz2MCZpb20CkJFpAk7UymjToWZ\nYUSvWCUnR8l7EUquMZWcY7N6Ushbdae+XqV/6qXz17OA0fhohp+VviodeIFr\nYl9TbpG7olmb5b3nZODv9oIliWDglqdSFXZLyGLlo/smVqiFW+IYELoeRcrc\nRqjvHKECC/Q4M5WlJipvev+5jxBaZgfZACdJ+WhsfwKdtfSHciRY3QJCJei4\ncbRzIUUphuARJj53ktaOnYxvTDdDutCMnN8X1FX9uuJXbU3NHyAtRsJOWzrc\n2jOlv/ofBRX8UagyMe+5DR0bzdqzppOcPmTOtD3L9+rIoYSzcMt9w9hobEi/\nzXT397g4OQJB1JQ8L4jIgX/s1nAXk1SXMu2wJhoOQwH33pd7V73Hxrt97J90\nR/7H51P6HeKjSnd3CkpW0LiPSD9pEggEdW54BrYWqFtcOOQHK+yn46zl6TRe\nCIrr\r\n=56kA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDce6pFJzZDeYC7DWtbxk/WEKCQYI6q0RSJKnOvi56LTAiEA60StUafQpa3hQwcTPdaCabQ/BGPhy+yJmf7+cYbwwqs="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.0_1568613947327_0.9730639975318756"},"_hasShrinkwrap":false},"0.2.0-pre.2":{"name":"@pinf-it/inf","version":"0.2.0-pre.2","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"([ -e node_modules ] || npm install) && alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.6.0","@babel/cli":"^7.6.0","@babel/preset-env":"^7.6.0","@babel/runtime":"^7.6.0","@babel/plugin-transform-runtime":"^7.6.0","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.3","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.19.0","uglify-js":"^3.6.0"},"dependencies":{"bluebird":"^3.5.5","clarinet":"^0.12.3","codeblock":"^0.3.15","colors":"^1.3.3","escape-regexp":"0.0.1","fs-extra":"^8.1.0","natives":"1.1.3","glob":"^7.1.4","json-stable-stringify":"^1.0.1","lodash":"^4.17.15","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","lib.json":"^0.0.5","memorystream":"^0.3.1","resolve":"^1.12.0"},"readme":"inf\n===\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/inf.json**\n  * `__FILENAME__` - **inf.json**\n  * `__BASENAME__` - **inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **inf**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"591cf90c21b22a5e9e26092d6df0be95f7416277","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-rziiebHFjpTKM7I7OmysMqMDKevTX+M78r+n0ESdPoSkKtTdXvpKyBF7wEn7NVawaEaNC3DOjvb8iYyjWu//xg==","shasum":"4d9eda1bd1854a545e9dd58122f5de57b1bd373d","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.2.tgz","fileCount":206,"unpackedSize":4568235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdf+15CRA9TVsSAnZWagAAAKkP/iojt66UjlNBq37IExPT\nEhV8sbe+eo9Tpcrt8YMKDl8rV/BNKzmJ2WXUGTPUECs27lbaQaRAgteqy0X+\nzaJkK35OWAOIfVL18/MUQZNZ91mzjCJ2CC7c1D/bMnjx9KtFOC8Ha+ZDBwmb\ngV4muA+TGgsOgJ8iYIb3LY8bZ2jFmcLDxKSWx7IIUga04YfQggXlXQDWD493\nKbz+FmB9cAqke1R/WZlIvbxcN7vJSTBbGjvmkvTPpe5WbgiUdeG0OJWwVqh4\n/N4Vbvh1qOgXRtt1TKwz9sek7LCJk/DNGh8j/xY0nJ6i/R6L0ThVcW287vA2\nvU9fGxvDQmmS6wNF+EH6ui2PHqaVcUiEDRAono2zYNP36VAjEMPawuKnnli8\nxLw/aoYhGm7+ta9P1YgETIPujmRMrbRBZ8yMKdZzHkKW05p1HRRFMwfSJPkR\ng4pUuNZ7sywQKauzySJGX1xePPdXmObvQRy/4Wc4k0HMbhF3/sFIW2PhV+ZC\nFJu3GotTD0U+z6TEP8Yaqua64QhzC3/X+UlcFJ9+s0tq5S71hLlnajpEKzy8\nCvwiETD8K5HJ5UQycDWeuXZf6P+MVOyzCa+4WmioFV6AqD0R6puvV+bKHvpC\n0XaGD297WJDzqpJ3MRZPW9fUoj7GX7TkbfqbpSOuMS6e8K81Von9bojVcUJW\nixsD\r\n=2QC/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFM1+4cDgEcrZwcxndeHATN2IlbLyff8f60zV04C4ZMQIgPb0AIemYGaRPZmGqoksR0bpQy1rvh9kkpcw4Z8rJLQQ="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.2_1568664952542_0.7945511174147555"},"_hasShrinkwrap":false},"0.2.0-pre.3":{"name":"@pinf-it/inf","version":"0.2.0-pre.3","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"([ -e node_modules ] || npm install) && alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.6.0","@babel/cli":"^7.6.0","@babel/preset-env":"^7.6.0","@babel/runtime":"^7.6.0","@babel/plugin-transform-runtime":"^7.6.0","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.3","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.19.0","uglify-js":"^3.6.0"},"dependencies":{"bluebird":"^3.5.5","clarinet":"^0.12.3","codeblock":"^0.3.15","colors":"^1.3.3","escape-regexp":"0.0.1","fs-extra":"^8.1.0","graceful-fs":"^4.2.2","glob":"^7.1.4","json-stable-stringify":"^1.0.1","lodash":"^4.17.15","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","lib.json":"^0.0.5","memorystream":"^0.3.1","resolve":"^1.12.0"},"readme":"inf\n===\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/inf.json**\n  * `__FILENAME__` - **inf.json**\n  * `__BASENAME__` - **inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **inf**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"7ffc6d699bb958254c2256297cd95163a5f49ea6","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-xIxfr1OqTnFokto4jLU8w7aiHpMQrSs14Ok1TKED+CHV0NCqpcD9BhXz7qWcqeoXATes8Lry8SO9+Erz5J2uvA==","shasum":"1d1588702d75f05510ba7e629f1b19c55c07c68b","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.3.tgz","fileCount":210,"unpackedSize":4573761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjj76CRA9TVsSAnZWagAAsGgP/jOOlXZTR5jpnmiK5sqx\n+Cu56VcjhHjMh/OOEVb/uyK4nkNFNCs3M1e94Y1baiP1rSR+NL3EQnACcpUX\n2xU9azgBSk4BojdI0hMe+hrFq9VF7qUsfYiTZ4st0ZKbK1xkdqvLehLVNwwa\nTAU9fEh58yianzMZByL2ARu9MIs5n9IB3X7rHo3Nv3UbLImZv3UEGuLG76zN\nL6FBhvLKkxcR/3iRziwxs6UpKIIcGClWT2NCn6lGweghg3bDXDDZYXrljgsg\nQFFlZ1UZnY+HYmBHXCR67kOvnbOBm2lga/HFLeE7/N3sUMqeBsSs2581He7L\nnUY71tJlU1gaaAWc+tpnzXhLQTwa6dPSf/gNo1wqIfCiXlbF/8UO/bdUA3dN\nQGwA75gjC2poNWPSMAR41nzckAc4DkCrzhQ5waVaQNB6LM4+x8jyRHRycU2p\njCkDa0+4ZOFWANJ/jD8rIkrKMtsj9QklG2HyClKTNGeBuUOluWIuqco/Kqwb\nyocaTX+kCLbQmdHIGXWd9FNSX7ca4QcCdEPRiZ0eIDr0+NQr5PgKA0xq8vls\n471LMmmnpHqupvII60Q2IRYa9Yq9vcUW5b3v8azoqcLhBS5XLKDhzObTNOLl\nml3EYTSE2aOygt7phac9cJW0PbomCtL36b0guRrzEPVda1N6WkyJ6WZQpk8t\npeaS\r\n=7UUr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwV4lDvgKWMFYECYSS4opC1YH2fowGbsZcZPtucdmyFAIhANx9aDvlBaYGkbQve1xPhn/iGxWjnUqxvmkX7wuxyLEt"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.3_1569603322145_0.17579532891431282"},"_hasShrinkwrap":false},"0.2.0-pre.4":{"name":"@pinf-it/inf","version":"0.2.0-pre.4","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"([ -e node_modules ] || npm install) && alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.6.0","@babel/cli":"^7.6.0","@babel/preset-env":"^7.6.0","@babel/runtime":"^7.6.0","@babel/plugin-transform-runtime":"^7.6.0","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.3","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.19.0","uglify-js":"^3.6.0"},"dependencies":{"bluebird":"^3.5.5","clarinet":"^0.12.3","codeblock":"^0.3.15","colors":"^1.3.3","escape-regexp":"0.0.1","fs-extra":"^8.1.0","graceful-fs":"^4.2.2","glob":"^7.1.4","json-stable-stringify":"^1.0.1","lodash":"^4.17.15","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","lib.json":"^0.0.5","memorystream":"^0.3.1","resolve":"^1.12.0"},"readme":"inf\n===\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"daebe3144b2e5d08e4b856ea7d07704cd8dac272","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-Lvd4IcPdyeYSp2LVj00PK6l/zkOODCTST3mrR38bqdRprJGdMrauqfLyEq9PfeMOCjwlEr8qwE6tILJg6qROaQ==","shasum":"3ecbf148323a2b3de44b0f6c23d6246e553aaa30","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.4.tgz","fileCount":210,"unpackedSize":4580861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnOL7CRA9TVsSAnZWagAA9UAP/2v8yMfm0AI8qbMB+5i6\nfonzIawqtg1M3LH0kkPE9hgFi30x+dW6RykN4nVGDIqhsSojFs/2CIqf25Ca\n4qDj7Ks7csllpEkgxGaEP+9K9VMqZQYwuEgM7aJT15JqJxdWTkxRVJsryx51\nxvIJf+rs2UWOMUfE34y+8Eb7LdSbVFcpXHp5/+1G/6M0lPvUs+VW6e5TpB6k\n6Q/SHXGVJ5WTEjqTN4SHaLaQxlUU8pMR/pFnGgHe7+TTfm8HR5cU/7b967CC\ncEGCpRNiNAp+W4OmAzAGgtnP7vDNfh9rn/YxiLNcb/g1ilY9cc/J5LgMARMz\njMDq1dt5AUGYUI5jM/JIW+Fs2R7+wXfdQPik7Nk8n9YWxEzsu9hD8HSM/ceg\nNMDm0SM8GoKpv92rHT5mvvkAiHVLzajdc/hWzD6TIjkG/vmJq0rU5Op0mg3p\nRxJjAY2Nv3It8hmAY9d2+DQ2iy4uigFiJOFqu2GE2OBCFB73lkQhgYVnhb+O\nwMie6Yqo82pA/JBQUOdADuzquZgPE/ixqIkyfK/IilZvOvieb1A70OpP3jAx\njnsoXR8ClrH4Dn6EncMFyOuqZ8PnZaSXcvIIZsyCr7ZTwU6Ov3ED8/e79yH7\nhAljO7zcRzxeUvHWMjaE99Sl2E4veb7xdQISjzx+RIzSNrZCG1uS+nUFQsKT\nwaYv\r\n=J104\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHdwir5p1NfqIxE5QeNl2nRQelgjrXagSk7sddHLlO0DAiEA4wQFMrxIznhgEcTIbZloy+TQmFRWgho0QuykD7+AlsM="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.4_1570562810810_0.9474032655245521"},"_hasShrinkwrap":false},"0.2.0-pre.5":{"name":"@pinf-it/inf","version":"0.2.0-pre.5","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"([ -e node_modules ] || npm install) && alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.6.0","@babel/cli":"^7.6.0","@babel/preset-env":"^7.6.0","@babel/runtime":"^7.6.0","@babel/plugin-transform-runtime":"^7.6.0","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.3","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.19.0","uglify-js":"^3.6.0"},"dependencies":{"bluebird":"^3.5.5","clarinet":"^0.12.3","codeblock":"^0.3.15","colors":"^1.3.3","escape-regexp":"0.0.1","fs-extra":"^8.1.0","graceful-fs":"^4.2.3","fsevents":"^2.1.1","glob":"^7.1.4","json-stable-stringify":"^1.0.1","lodash":"^4.17.15","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","lib.json":"^0.0.6-pre.0","memorystream":"^0.3.1","resolve":"^1.12.0"},"readme":"inf\n===\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"7b01641cb4c00ce47dc7e01305fc2c956730f2e6","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.5","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-hCCTM7YTES6VEyiCcLJUBdC3fAy489NWhQ0yepxol/SPn4/k19llxumGR8fqmAl7wKFvlouWKc2Uk6M+fuyBww==","shasum":"6c5d531ae0ac947dd8d1d3f7438c1dd1bac26d67","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.5.tgz","fileCount":214,"unpackedSize":4584906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdufGQCRA9TVsSAnZWagAAuZEP/2HQsybgzNT6FB708B8V\nwY5QUa4crA+h/zx9kgBdfDV7MLBK8f3LUg4y9PXoP4p3V3IJHzniFx5wv60z\n0lHtYtqbt3Z/miitl9ihTKuffwGeE+tNG26jhVcRIEPx7ivalP+PaHF1p3rV\nY04ZTVF2xh9mnd1TTLPHA77uAYr4UJ7xf7sRTlTsg7UBcQqV7LGEWPIipkv3\ntFCNW/3nnPA9iaKzQ352PsZKiT27sWtAn+vHoWo67hOYIkfpgn5iq9C7jVs7\nct9ghzFUt3fOlF5tRjGIiAgvMaxEwTHbG8BSBQDdOmZH6s3AB7bvvrwNEz9h\nZuBEr7VtYL4ghlgdizuySBqd+VMI1mZ41DZXJwMhunx4Fov5wOSBZsPoE8/p\nI2sEzaBDmAbN0Uh2+0S2BuNfoBy6QKzIJ/pK+hvrl2Cu1Qlf1UjjDIbg+dKj\nNveLbKK5ekNCB+p3bezvJ2AMTVDAniyOmdC58DKv2xn0Y5ALqQ8vFZvT34PC\nuLUTW63uum5yStuKVVFzzrs12OT0ufs3IzVFjXY6SBaU/I2yZmJQ2VZXFQS0\nNRSzkqCyhq8e1Zh+psubBCBvvqD0lTCHBKETE4fbAaMiCueenVv0/MbCDIIt\naEKbS/hBWohl/PXo/yM778dejWPsQOQOXnwyBYi+ROqtJEbNv952zextOkGz\n0QrT\r\n=I+xO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAPpXAzUfUgpHKVO2ZCxffzzNVcmOAk+TBIB0mIs5ndTAiBDtbkElhe/17Th5KV0FinryzeEB7w2UhXW2hC4lZtTGA=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.5_1572467087791_0.32944595543212984"},"_hasShrinkwrap":false},"0.2.0-pre.6":{"name":"@pinf-it/inf","version":"0.2.0-pre.6","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"([ -e node_modules ] || npm install) && bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"([ -e node_modules ] || npm install) && alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.6.0","@babel/cli":"^7.6.0","@babel/preset-env":"^7.6.0","@babel/runtime":"^7.6.0","@babel/plugin-transform-runtime":"^7.6.0","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.3","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","puppeteer":"^1.19.0","uglify-js":"^3.6.0"},"dependencies":{"bluebird":"^3.5.5","clarinet":"^0.12.3","codeblock":"^0.3.15","colors":"^1.3.3","escape-regexp":"0.0.1","fs-extra":"^8.1.0","graceful-fs":"^4.2.3","glob":"^7.1.4","json-stable-stringify":"^1.0.1","lodash":"^4.17.15","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","lib.json":"^0.0.6-pre.0","memorystream":"^0.3.1","resolve":"^1.12.0"},"readme":"inf\n===\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"a59aacdc12e62bfd3216a6c0a95efb10432764ca","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.6","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-0gbW64Z1nPjZ0jBiy1BGTgjH2IV2X3fXO5D+/fZvhHgZ/0dsKdqP5FXy98R4yGCyVLwlRS08rn12pJOsTOvEEw==","shasum":"b32102bd09d44ab509878a1b0ed5d4bc0eceb8f4","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.6.tgz","fileCount":214,"unpackedSize":4584880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd03HOCRA9TVsSAnZWagAAFfIP/3aC7kCLly6Guf0Dl0X4\n330Z26hXELWMe4WSVu8RVtUsG2X+8mjikfLzuJ3nH1CLtg/5nqjrnXeq/le5\n6XB0dC4OAkeHYiZlIwaxw8ZvoDmbxaIEuWDSCqgUS68s9XZAU+y6GPT9neOf\nW8sjrAl1FgJFbQjDNZH/Sj6Q9G0ZW3A8L6cdeCZ9likAolCU7zL52f6Kcrex\nkGcdqstjpQbotc7UbwaHB2qtIqksxto5/8RZmzAfrCBvBvdcT4zGKPPqooqy\ngFCzgpddk/bqNSkXMFShiRnbljNzobio65wPEOpD/Pnf4M1SIQoAEdPyLGpS\noQJQoNgnvThgA1KBt5MCV71btL1BWEY1/ATlRjJXXc8xEDRi9uI2KY7avrMB\nXTfSZQOanotHEnX91zjc0aKQY3EO0AfHp9Uw0J4OaZdZOl+rl+1BcOYBQOkp\nTwY26jdTlg5MuM2QkczsQG6A9/+uV4U/ikJi96GYRbEJRG6/KtD5Yk2hgD2h\nfBnz9T9FyZo8kffHnupXZJdfAkLfz9YHJDUVCWzPfJcyezcREagEQ+/ZwEO0\nlMQpWcfotyDt+AvnrXp3d1FR89xemc5eSxGwiHr5YxteuLqLT5rs/ic5piaK\nMvaIimEF91SQiHLMxKL4aPV7bTHn+oTiSBSQNYzkivRav3qYOdcZaSvs4TWH\nMf6k\r\n=pdCy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJ6vIKvaPNokihbCUMh9K9HTJchL4r/WaFWakyaZy3FAiBBVWU1kGfKKOIp1OI2cuxjIXAEJ7C4NZRKug/7kTeqig=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.6_1574138318164_0.43343855968224143"},"_hasShrinkwrap":false},"0.2.0-pre.7":{"name":"@pinf-it/inf","version":"0.2.0-pre.7","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.7","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.15","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.2","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"cd4ac617bef60dedb65071c003dadabf76647aa9","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.7","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-0VsiVa6dpkRNUwBBiufSfZQR42vgb2n2mWz9RmNNtjFebgVVOM9YjHoGAdBIPkGNWfiKrnBenhQmn7Z+BIPScg==","shasum":"b1f1657575e39feec12a068ca2410b2fde0a9d6c","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.7.tgz","fileCount":254,"unpackedSize":4640351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSPYnCRA9TVsSAnZWagAAJ58P/1JQh9D00c6ddHf6HW7G\ny37deqT9D7LqD+csZvP5TZVkcZKrxoBsklrByNRWaYiPv9FBdQtbi9/G0PGp\nTvcwdFfEoNN+iK+B611HEHOrbz1D74UJRm4TI+MGC5t93Nmw4vE8qyUTV4xy\nmHxllP/y1kCqXp9EhBBS5Tqca8hlSJKiAZW9SPEJrGWrjqgKM353GfWpHh4k\nKLAehgVEXY246qRq4YpWD6nd0Ef7oU8WOh05xOKRyRH3NhJ/Siw0BLb2Meeg\nn8cXgNkWfB3qVOtwKYzkaKLog/XJnjkPeSmh50dKVlIkXiPrbgpYW9TbLSP/\nHFeNKchHIKyitKKxp83vB9F0v3/vi7FAATtC+NzJwdg4s4gTFzjqi2b72CGb\n2IIWOeQmxNwLJ0GUQtJjyIdu9mL9lFlXF6drJkJ20pOP4LcS3h38yCtxyTqb\nLa9gWHbkXddY6ZScE7YumRN2d+hqJCTQps6lq+aKupfFGVJO1hbBLDNuZ/Fh\nrX7aUEHwO2+bZ2WR+lcz+hGnunyhBm7Z8JdPbcqEZrUit1n+wzhVqqBMSaCp\nI5MkwmDwzHdJMlQ2apbban7gvuShrUb9eauUE9+Ef23zxETVX9psyhS9kh2K\nFe5Bd6zsJA5tLy5JyCVAE1IZNXj4M71KU6qtG7m5QEBZRgp772EX1fspiXOu\nyq5f\r\n=kuze\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHKIf3LvfxCDWL8nNoMDGbXza7NeqGFWlUCfPZln5tRwAiAjfjv8wvaefaFrAyAuGRPX0WTV7btrXLvCWjvONK5C8g=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.7_1581839911072_0.10502682902647065"},"_hasShrinkwrap":false},"0.2.0-pre.8":{"name":"@pinf-it/inf","version":"0.2.0-pre.8","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.15","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.3","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"85ac62cb8386ed32bbfa9c115423b8880d38486d","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.8","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-5wQqaQle6Xp7vPAUHpfX2uTIYmlnBOJ9H7l95+6SP1TnIqTapBCMb4bOEPSQpv5habG8ByWv7qANRvQbN6neNQ==","shasum":"3ca78134573b74255b0f5e915a78f8c826fab7e0","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.8.tgz","fileCount":257,"unpackedSize":4913596,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSi3YCRA9TVsSAnZWagAAYY4P/R3gWUYrT9IboC9hP8SW\neFjjrRu+zMN3hMgO/iRGJdbzzIiqOy//aw2U/uM5ipKg1rqDg7KGfjC6DZgQ\nx61DtypkJ7918AYUksVRy79/XCUfRQDMRmuikc0kM/Mp6xPFVOC+fdU0diN2\nk+o9QsmE7WJUyxnDwdare6P37vbJdmHuXvFykQztBiHPHa2XuzlrQZxKwUPw\nUqn/a+9v3USQSDem6W/Iqg1BLVked2CVPQuJiL+MWg9P95TA6V3M1ptpCXHn\nHtIu8IROp/Su/mpB4PaLtqDvlJmfRHqHMv/+vD0i4OGW3qAYwjx9hYl8eoGp\nIfkk9z4VSiT6ZhnfjXHGimwZJ9Nc7YdkeVr/SLifn+u8BPpsG9l7MUjPsD6M\nKE4XrvPnAEqFIvhVKbRamUPvZIinBqbMUzH8tMBTOdLbsvaJMkMRbhXKbi5y\nyiy84F+1yy7FQWEE/wGw+LIHfTXFfb7MAx0gBCAj5ivWf8O17VXmJLcR/cax\nees76c6lXb3LPhuA9fjbKNhFkJ3cyIBwwq23/XkrfN4eWHTDe2+E08S8h+6y\nQhTG2N9PxwjTz6KMh52Mtm2B4RmxugT7xPkN6zJiopRl8O/RHBBgwb6y/PXi\nkCeWrZBi6YexabHzJELJRqXA+wgIfpEYsZ14Wwi15CaXlCo1pd/lUV5YMuw/\nzOwD\r\n=epsU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoxO2F93hSDZMvwAUV+RNJpVYsUd2vctyss734XL+QEQIhAPrwaxJszi+6YIjCq7GQDTdMR2qVzo0GcXCSuWRGGvLo"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.8_1581919704446_0.03187832677071545"},"_hasShrinkwrap":false},"0.2.0-pre.9":{"name":"@pinf-it/inf","version":"0.2.0-pre.9","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.15","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.3","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"827d3be17730f780ff6b95882ff15157d8f86e3c","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.9","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-TAWRyi6uV+WvFtzMkVTTKT5tr+D/VsPSwwpZsU0zy4NMfGuH6PVL7RTGqGObsevVVTTmNqy7qpqHeB5TufRdQg==","shasum":"bd2b93cb507f12b52b17ef69f7313baa6dbf0b6d","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.9.tgz","fileCount":257,"unpackedSize":4913735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSjVQCRA9TVsSAnZWagAAcWwP/iYOSPWwGWF8EX8XoFNQ\nQ2mzd0uVO1IEVQggndlI5HizHdNDM2PcKcWAx+5B472LfC64zkNe18yeBikL\n2DAuUZRd6VydKc/UBJSgB9g7j+b46B712BpYxra2ZXqRykjUM61JrdF8IRKF\niZpDrvLQvA4E79BaCEiprjX2PcX8z6nDC7ppBlvYu2k8xpD6TOiSRcpcBaFa\nmyLEeGTq5mOsYREi39nVMSxCrBET4Nmnwu+eOsQMG3ouUUn0IMjoEioQk3RP\nQ+ujFikjbI04HgR0BTMpuxZuw6o8dMWZojBD/jfS0ST0HAdu0Z1F3WbxR/B7\ntrU2N8zlSL/C2yEnhebyCxdY72FKNwlTxwYlTJnmQC4iIwNZhAy+9sUdXDH1\noLAwEIwHPP50THB1PVPE3rzzwyfDb6HpkUUccPAMljYsEESmlvHvPtbcuAo+\nS1ifLr3LoI5g9wkUuwjLsvEeOC1jdU2PvnsB78quHM1oNBTw2+HT8wKc8MGG\nYpaevgREdb5UsiOBXbon46tCbWEKN7a2yk1tkIwlLkVi1Kuruen3rOrJlXhA\n+QKJvSARandCMetY1yE3KOEq9/mngzynFT4zRDSwbbqGIBTanuWXMor/N0xX\nVRiCE5LqTYb0cmh5Jard1tbd3r5FbN7i92D2E7yGCumZTJFYt7r+SlXT1Vfx\neMAz\r\n=DgZL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBw3T6tLEZL8LQp6JB/HJc837sE1LIZwH7wc0OHMBCHCAiEA3A34DqHJqOvjEFKe38WwOENbfNmcoGuyubbVeFef1Gg="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.9_1581921616173_0.4555134678353252"},"_hasShrinkwrap":false},"0.2.0-pre.10":{"name":"@pinf-it/inf","version":"0.2.0-pre.10","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.0","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.3","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"926615cb7d8251d689e3ff47b756f870c791c1e4","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.10","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-XTzej4Jplns9rlZ5zAG6WMm9C7FH2eyRBE/HthHTpt9cOlG1k49rtA061CiXpIhZjErt1GM7DJPIWIn+705uZw==","shasum":"52b08a1d9b381d429a13c088fe311c99578304cc","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.10.tgz","fileCount":257,"unpackedSize":4913742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSkT2CRA9TVsSAnZWagAAMRkQAJfBMK97Nz/n82fuN8Ta\nj0utvzY8254qzWYgfup9Cg3DZh1CXNqYFWKpMnHe8u3j8hOrdCR9RsZ4Uj5i\n3pLHrOuUgadQ44OddKiMTqbLwwezEkHpC6YHiLcLmz5ZfJ9ca3IavuYhuYK8\nYPTY9P1rpCcHK+kggcVnodPQZJVeAofoED1K2sMPh4fRIEEagYJ+IQjHsfLt\nmb6b7VM6DJK33ub4OeqsGB2hZgivH74uTK6w1POigXMAjS4bu4/LwZXIOeBZ\nneRF9Ej3qvZVlQBO1BmZWuLqEjdGXaihFexl2BCkNdEpjRbl3maukJfSpxEv\njwKiJTYe4v+0RbskNVTg3RLGGI8g4ZNg69DNQSc2qu6jQKmhGgOLtb8PuGwG\nk+D9/Zfba1a581rdVYxQaxUsT3xnclzXEIp+ZTFZzbRV8lzuGodPAJSOgwow\nfdPWTJJNOapkhzHcFyRtPGZDpBHyAu/gY1JITkXBMePR31sMBxnUFOWhMw17\n37559WKSoHjwuS+3sPbteZq3wSi5dKSr3OQXbZ8yM8A1LLmRij02PNANaxZa\nURTdR27VmVDdu5lny+0lhMQnWYcOmNS5BFZyw5pahcTIPw6+V0n+Mvonm01N\nAaug/TkyWwyh4lu1b3mWNucuR2u60j8Gur16hkVva8wFBy0VMpquxq3GwHA2\n71os\r\n=qhbQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8MaRsvGVum+6U2tUOt1JLBBFSJVrGnkwAYz8mdVahlwIgEUBUkcJFtBkqtjF9lIclvv+a8gGq6JUR3f8V4VGnIDg="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.10_1581925622400_0.329327604379553"},"_hasShrinkwrap":false},"0.2.0-pre.11":{"name":"@pinf-it/inf","version":"0.2.0-pre.11","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.0","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.4","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"820625d41d41122117bea3055637c8160b2d1f3a","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.11","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-Kd1y7t6Bsq5Vc4V+p0+8Cs5J7evTw82SBFGghQaZJsQpZqDjPwuUyihbZqLhyjLzUzLlmqT2T+yo1CRuBRU+eA==","shasum":"3b1a1b58de9b31f1d79760daf1eb56cdd4219ade","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.11.tgz","fileCount":257,"unpackedSize":4913742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSkv5CRA9TVsSAnZWagAA75cP/j9k7uVPXemteThMcH9J\niI1e9n4JVaJuMPBx2FbKAHREpteiN8YE1VS7Qx5v3EoAxnkNomEnXFtMLtYh\ndIv9TmCc0JKfz1gwW+H0x9M8OIVIFHI8RPVxcQ0iraE2su+Us3C6qe/xG2Mb\nNu0CZsoPbKjRPcCvcQb8Ywhf+Ylh9CKrj2Xh6Zu1XagU2zgUm7hLi+WOU3hK\nB97aXX1/4rDwvyjdcWlJzAe7qCjwF4GxNZmy4y6+69/kmoFearnWvsgYcxxo\nOxwywx47UdUxoMTFrclUOsbgO0sPhsWvyW5EnXt8upAErsbbSymltStEZj2h\nhLlgwSc/+ASyLOqeTUK1z7NXfv03NXSX1EIwvHdBfAimL/yqNSfh3jLMOGqC\n/kQT7RfBd72vnln7qh4hJhm2DATMh5C4HfIJ2wLXU/uYWgXzUhWzC5EJaJOD\nh0AcSa0wntEuwKAQidyqbECx7F2tUZvlpbDI67sJ6jdEOfvr6RFcHw2Ej2V+\nNFwoj5iODLzuQ+s9zLl0xR3x0HvP+szJfIag0UHE+QBQG6Ofohfcx3e+wdr5\nC5AhSGg/O5krykkhEoUBbOH3vMrb9U/2a/gkTNLI+0okOGkj6YZEBgUbKSwH\nzMRmyZbn7x9+B4Z7IoIdl2L/X9k/NAaLlKFaFSZ45l2pq7jEFGL/TWufUewT\n+2y9\r\n=TmFJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVoM7GJj+rhWdP+9HbA6i7djVO4b0pA/O2mL6m8+NgSgIgLKBQJSz/lOIBGKaaCs1BpPVJyuYU6c5qLrh5giksM60="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.11_1581927416683_0.7833731748370347"},"_hasShrinkwrap":false},"0.2.0-pre.12":{"name":"@pinf-it/inf","version":"0.2.0-pre.12","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.0","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.5","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"ba9353ee13c99920dde06aca2aa9ee6cbc432d03","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.12","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-JoKK3Ad5oiekAdzawEF2h2VYvLdlvRLwaQojWjX2nENpOQtIgr7ACf0RxKVLsUummHL0GQ5DqNnnQ3m0Cf5T6Q==","shasum":"e3b7eb27196a6bf3df18a93fb06f96cd8ae013af","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.12.tgz","fileCount":257,"unpackedSize":4913742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSlWJCRA9TVsSAnZWagAAQLMP/1MlmqavivOnTBpY1/AR\ntV4U/52UGWbsSpNr0/lMtRa27NwGBJxxax+a+XH2EwvQbUeL2XfkOzNY5fM8\nNpR2eSCqw/CyZnU0sXpR8P6SPY8f8W1OfuzqXJlUqPSVcQuUzx65VJbzSeW9\nCLrjCNFcXIBemI+9inzwmc9RZzawmNCvYGpaAIR0ahaLWrd6OyeBEGwYQFht\n6Tnn2zC6iOMB3vZN6bN0bFCAcunN6/B+/9VABoTv3tnft5qd90ihPV0DYsUS\nDOyQtg8AJjTYFKEWhMzLicD3CgiRf5HW99qSVieji/Oavu7zyaPAhZYRRiNF\nWOxmUsbKKRwNtYzIkXb/Yt9WVwDa/yn5cYB0oLdVb8ghjvcwGpXcBtvXvxAM\ndHT+g8mw8niu7Cc/fRMV0JmlYoZzBAeuLfZjc1Pk/Txg8pH7TNzhyzkipHBp\n1Wd27+H/TJ5ehmF5yjj4W6xOTIlguW0n55swzrjz+kNeCasvxZIny7MVgcMg\nwsMF8GHAG3+Hf7PvnFpNbTW+r/iprA3ZwCf75p2uGF0lNehU67jJY0MMmoqn\njfcLQj0w76EvMAJMoo8nrqFnGhCj1SCJWGPNyHUPXdido5ZdjqAwuKwN75Xr\nU9uhpwer3YdAl0IlmdaNILR2WrHLm70IBK76fkz/JXGKipdHO4I42fJWyL0X\nO50H\r\n=mH3f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQX7J8959iN2WDeKgh2pF/Dcb2Xk0jflFEyTJaaIrs5AiEA5DfivARU0UmYt5wQRuLuqOtMMyNZqu7SGcJ1DZXUWUw="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.12_1581929865207_0.28778378963050755"},"_hasShrinkwrap":false},"0.2.0-pre.13":{"name":"@pinf-it/inf","version":"0.2.0-pre.13","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.0","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.6","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"8c51704b795fe50a7fe5144e34ea1128bdc0506d","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.13","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-MUSjvmv14caLIuke0gX/Vf7WO+9zPUEcp0DRW2mB7QiZ3xfr7hOih190EYAW+bqFOIcpvBfZV6dcSYYd7Mhq3g==","shasum":"304389e7a9c0700e3b0b14152136436e67e349be","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.13.tgz","fileCount":257,"unpackedSize":4913742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeS5zSCRA9TVsSAnZWagAA9/oP/0vXwe/r9MoKNDrgEykM\neuOwIhbMr0ItIGVgYv3IZx7FE7pYCzXQihvV89lwFeZ5SmksiNMjS3RWpbOu\nU2yTBZrwrl+YgeBcdN8y+me9KRU1M4kNrUHN2lfewVo/iNxm2u1RS5oy82wy\nGIH8D1kUG25xfbPuhr+hBCkD0x5t7ijGFZWMIJiVxTfj/nZBkSX3lmZa2DaH\nPboEqRh89EOYFlVD02c9Y+nmg9sdtDrxf4ZVfKl04hmoaRnNzNiHz+F55zo0\nq785meEbHwSQ0l5IE6olaVBA7H9GlUhkhbLNHXcC0lmzRY4RroVPMm9Wvvn1\ntXYMZkNfd9ImsLsNs2bzBJ4Z/KZPe2n4YVQRaMKxSeT3rVnPahKorXvdFC+I\nzaukyKh2yS33xxDwltOPm/Wz+DAMENF1Q9bTi0U3Pp0C3MueNHXV9Nk5Gvkq\nQSA+iccW+eskdrxWMP1n4WwO4IQWiMhdt26shqVx+wdkVn2tgEsAqvBt5FHA\nOoe9rfzLSpS031ieneXLKgFxp85uRBd/AAn3IA4xTEDuBMPBUIx+1fdVTgcK\ndPFh+FAuxxatn8y724Y9A9ySb+ScnbFKVEnhZekbbbYkguzn7A2ftrxxHWV/\nuHDRPVP0+6CJJBPdtJIOCzYiU2tKBi0xa4YsEmNrJa1IVMPtctH7XFuMMB5R\nDPZ8\r\n=Zl72\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtH5kU42ECpubqXAXsYCJcU+OWbBa+zxH+7gF42c2dxgIhAJFNAYQqbCVjFtVDc+vtPXZ020+MO1xpKMSB9knvp9uf"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.13_1582013650167_0.7208516929253288"},"_hasShrinkwrap":false},"0.2.0-pre.14":{"name":"@pinf-it/inf","version":"0.2.0-pre.14","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.1","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.6","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"0e4d92e81fc2241a444b2b82c4074fe1b1417a0a","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.14","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-27Lq+RUyxgpCXdWxRZTd0Q/bQIjwVmSWhUQyU7AwV4zzFT3hHVe6JIrOpIgNLtvQLpXr8t89T38XP+BapoGDow==","shasum":"c0227071ca35ec46d7b0b5fd8aa5489c683626df","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.14.tgz","fileCount":257,"unpackedSize":4915816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTv7SCRA9TVsSAnZWagAAkrMP/3jWhqtnWMGUa4x1d6iH\n4i2ohgCn4XIB4EzfEGpMXItWwZGeYDt6DRByhcPhM+mBOD6As9Fa/JZBcfR1\n5RQnVN67yhttwypVGurHyRhXE83FzrRcsDFNKFK5qHmjC2guV1BLNGJcjHEh\nyGerUoscXRSbiW6h4CmTmYn6OF+5XJejY9Qr7WSQyke3knkQphVblxN2hdvU\n+jG7awPwINxsnsB2I0Mu9hJ5RmBJJRhLU/uRZFi0BEhuA2eN07qjQr+LjoAf\nAVDjJNk7CzyVLmdwaJtta6sXg9Vkx3eZk7qlaUjwLcglL2cp87NXm16881pD\nLZSx6hWSGrpz7ttBf8eivCKJqi4Gqp1Tf76BbUI4UZknm8Tlc8LdWmNLwr7E\nP6bqQUPa0R4Oig9ScF6Q/XyTYD5e8q3fWamPxcnPKiuLESUc6ZMeX04XwbmR\nH/J5gOmWK5vbhST1jyIsViQuTCXIES9qoVIOO+Q94G5+R9q7W9VvFK9oTkoX\n4NlH/AFQUB1260jtZ6UyO2tK7TjzJWad6xtq7x1Puh0YrPZD4n2I4JE9eCJS\nulE7/KkNoA67xekyMGn4AVVqs2gFobLAh5MDoT2rxQGF10q/Ns386G95XX+6\n7k/HUpU7IffpB6SFZfatgwEB/KeCNOSx2HsfdWzoSKQbLT0o+/gGL7TD0DKj\nklyi\r\n=Eyh9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjxhgrSpwHObguGbdZe0w7Ti5gzLM8P4Ct1T74JStTkwIgataWEhUTjGl7dsbWhNovCYKh67tlUNLinESFa3pfpys="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.14_1582235346001_0.7367094289456777"},"_hasShrinkwrap":false},"0.2.0-pre.15":{"name":"@pinf-it/inf","version":"0.2.0-pre.15","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.1","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.6","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"8e66bdaae0eae43c6261c4bfcdf9294a64d37886","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.15","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-zP6Glifp0EOUCw2Gh8F4nMETrKN7hN6BSmPdGQVOFHrZZE06+FxYoHmLXUc4V4EODjqfibRQn5lHGO4ZSnsy5Q==","shasum":"4556a78746f24046359269f991c35a4d0ab027e3","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.15.tgz","fileCount":257,"unpackedSize":4915933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVFfICRA9TVsSAnZWagAAafwP/jd5QTQCrf4kBVCxEQlU\n6/lTmWm8bEziZ+npNS1eavyqRbiL3Ea1IydJSTrklQ9WWd3eIyrUV/2+zvsS\nMfnOjmt8FPit8HXyi9XOXC/xZ48Za8cA9H+7kvL+AHVeJQauNwShA2CcLkxd\nU0qOG6cEIsjUBmWnFC18rH1rKWMD8xtnPFnRecqi4lCxT8TgxVuHLvHrqQax\nDfhoEr2Zkd0P9wQFEHmvSs7B7lvEwKe+IaNjpWD1M+cI557BngM9t7eD2GfI\nTPAOvZH5crfD6gP1gREfxdK4dxmfxuOF20nOBL/psGbLjldyccKHsZv17MKi\nsDegUFyjToORwpLiS5SdzKKSMp1WMaOUjZLRUGte+e20eDbbdTKa6/sgDAJa\npKSE4J6pOaP9qDvgzRPYxw5mSEiZSoV7AfTxMq1qqiNY+C63b6HPw1GI3I8x\nsveSe265GmblT8h+POIwypy7remb5EXbZOBnYqyLVQybmNhEMOO3fgz0+9n7\nNmb0Lw/ixu8xnCXNcj0yqxgOkBnkBO2hV/4Oo3alaU+ZEYYKkDS29pTF7WwQ\n+giGyvvhYxrEEYe2yEbuUXzf4s9Pdq4S0n/v/EKi8CX3TKOBpT0XashIjsQm\nbQdMoSWj75/YnuR7LHFl2OmJsSeGg3kFAYDoqegq/C+aSgZTQOgUcJujQENq\ngbKv\r\n=m+oo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEe8PEjUDSEFUig3y+ByrZvY4vZxUHd0mlGGvNL4ylJKAiEA4aNLUCZVtMEQm6uYTqn1cByBwTcBi6YGIC7/Vu37ISA="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.15_1582585799397_0.1932687576811971"},"_hasShrinkwrap":false},"0.2.0-pre.16":{"name":"@pinf-it/inf","version":"0.2.0-pre.16","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.1","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.6","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Weave aspects with sub components into a namespace and do work to bootstrap an owning component.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"fc62fa3668be444c2374d56b38162a3369f39197","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.16","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"dist":{"integrity":"sha512-vD5tRsuRgcI/DWqunZ/0AepbFa2MzISc5RhhDEIU2vBcg88ykONJabsOH/IXMK2xgKjDzbGzhT3OEv4cN4i7hQ==","shasum":"ea61f2af43a4d5aae6813c7cf0d3af7f1eba6185","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.16.tgz","fileCount":257,"unpackedSize":4916620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea8TlCRA9TVsSAnZWagAAWd4P/iZOotdjFf4GIa206KgF\no32UTy1wzbjrfBf5I0APdAByMMOSySRyGR7DU+RN1vUNbu6a6pWhsikKB37T\nLGK23vzXpFEjSU8Lk+jZ0r4+4azPKeqCfuZa0H01pKMU5/gvpY/Dalml+oka\nRgBIBSHk+fx8tk/vUQx0j1QOWoSmk4UwrOuknRiIv9dT1o/GK58NZ3/p5dLp\nLrCWFCD5T9mPKa2GQD/vPVlBb3vwI1CED4aYR6cH2MaMtMi9kLZ+LEZpoUhy\na7s1IRx0o0d82mHamyHgid/HYULefSQTfkALoAq8SRCpYZrclyeGCuF2R0Sb\nx/xpSSB6A8GNKaYL7uQYLlVwrZzEX919OOR65DjdeFniHitDZQknrz4fAwdV\noYS2T1dvBwRfkkww79OgtI0S/MCk/E3KuhvoRnUS9kO7D2H4rGf65Pn8jfYs\n2acdKUAr8DNQUFmw/Zvi6f1Py0RELsG4uZ4wGY00F90fSGUaWOgYhNfdb6eA\nE7xBlO5/vs0KDkbkPD1wiyuLKCniTz+6Kyoj4d4QG8P3Nk4jXZegSKLRmB70\nZUh7PH/Ge3RIOEhQaS9ilcuJ+O4gA7/v8Fg8iuffiY1Lsq8fHMWCQXXRUS0e\n5r3/X0ib5zdC5wxuC3rVmEv5/Lu/juBVl4f3/s97U+c4YIAUXq1IBfXH6PXt\nxyKX\r\n=ckcM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0KOfg0O/7DWc9QpiPXE460EQMYyokSI5kKKaUmv0W+wIhAOZFvDDkIS9/yjxWyqCeTOkaiwy3B11ahJN4q8AI6L48"}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.16_1584121060965_0.5691353304860949"},"_hasShrinkwrap":false},"0.2.0-pre.17":{"name":"@pinf-it/inf","version":"0.2.0-pre.17","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.1","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.6","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Encode JSON Entity Models into cross-linked directed acyclic graph event architectures to multiplex process execution flow.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"32ac110c8199b0abea48dc431354d45b0ce42536","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.17","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-zriD6u7R7PgnrpMOKXRBtun6WqIKJ+KT4XdSl4fP+DI68Oh1DBXRWZ/xvn9s/Jqu4dyRLLT51lkYf5mC+h8I3A==","shasum":"557593ccc97e652f120155e6233626e68429df4c","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.17.tgz","fileCount":257,"unpackedSize":4717288,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelhkDCRA9TVsSAnZWagAAIGYP/jXAowuP6YxhMKj1WiS2\neruhWYi9JHvYlr+hHWP+6A10mF+mR7R5GVR0F+eZ0d34xhb3sd0h4qvBZ57X\nvHqs5gfdzTwA2BOiq3cK68ed4zbRz77CyLb6SBz6efhvXMPUidJ/GVTgU1m0\ntyJyB4/1yELcD091eRAEMnEdJT7gUs7VTDiEWJjxSJsp0dR/9h/FNXP+/2oZ\nGKKMdZX/DDQeFobbQJXS5IbZBRUNozDzixeBhXlZE6I193AE5OPJe1BHGZtc\nQqjhytaGNtRBohKSwz1HwiTzb4JW6wGt65Uwxls/oROGNfatXhw/x0CuEpZn\nRBKc7PP0bw3C5XcWOI4AmAhTc72iaIklEWCu8z5AG2SIKImVSj97rQ35uHeU\n6eE8KGe3AdwR4K4xtKz0gJi5blvFsD4XnEh1g1kreRtE4NVs8Fp+UnLGgsZ+\nBIftj/qnj9QiX0oHuTnFouzVvCKs9KIG+cuvugfPcnzcYIr2dgK35O3YqPzC\nzukyiJt7Tw5hbArUYi7/hj18mGwwcXs4Ns09st+LCWaFxPU9ICD357RgtMl5\nMFj65hYRN5plRMz+sSeNR1PvJfOcwG+gQPvaHWQhx99OcT+gSkyIN7Dw8T5m\nMDjJKF49qqPhw73PxDN7NrIGHsApBe0+ZEfbLQ3pgD30m1ht2ShBCzd1JOji\nVyiG\r\n=yBqT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC8eyaoqA94RZmO7p+rLOva//KenCwxXiqnlgTfYHvvYAiEAp/6A/f1gfexDAgvcPS48u04obu0miLTXA2WEZcVz9gY="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.17_1586895106830_0.4524352325904808"},"_hasShrinkwrap":false},"0.2.0-pre.18":{"name":"@pinf-it/inf","version":"0.2.0-pre.18","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.2.0-pre.10","browserify":"^16.5.0","jsonrep":"^0.1.0-pre.1","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.3.16-pre.1","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.0.6-pre.6","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.1.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3","bent":"^7.3.0"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Encode JSON Entity Models into cross-linked directed acyclic graph event architectures to multiplex process execution flow.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the order it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * TODO:\n    * Layerable\n    * NodeJS API interface\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by overlaying them. Use inheritance and runtime customization.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"9fdc0fc3bc6615b86ae89a068a7698c834ba52c1","description":"inf ===","_id":"@pinf-it/inf@0.2.0-pre.18","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-hmLPqflQIOs5k7NYtbLTSV4eMlRtEZM50k0h5k+T2iP1Cn3/tC2TPQSXMsJlhCizn+aLN5Oe2/D2grpCgGJzAA==","shasum":"81c47f181f20b3a50c365d2dab9dd4c638400c98","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.2.0-pre.18.tgz","fileCount":257,"unpackedSize":4717510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenjmZCRA9TVsSAnZWagAAyM8P/1Ecr2aLqXtq67uf+V5W\nVcOOY2UP/yhOoMatczOfJpUe+Bm6fwRWPV8md8EDNqYHr/V3t/j8O8b1Lohu\nloLtKft91op45vaPjRBG9lyXSGnL+o3B77ruEbbkZDk+VMnelwYzWOTwy54P\n8jGgHXygKzFL0hGAh3kahcCkOHzLvJjIrJXpcGPWXhib+Oaq1mOyahyEfQWe\n6vpTScfLZ+vIR1OLWx0SHqIVLHC1+uQyBN/0aw6anXAiIHbSm0ugf/ugbpCf\ninphB27ibgYk8mLxxd9FIdeCeKQivMxzadyXGMljoTJ0b3yyj8BYMvyB+ENf\nPa19UKYeP+FJEbASdfD9RTmlfvxMMdMGoMxGpxPN2kocoEbc+vbPJyXSJWD5\nrqDr+FCqHKba6ucyuGwDHYW3GUxrjTdeCXP5EWd2Ym7VTU0ODgkZSmKOGfTc\ndi3co94wLbzbM8jU1f0mb1uoSUzSIuc08AGCKD2/4Aec0pcsBCj+0hKSiITv\nvp5tuMz60nYm+7vgsAHKL023F7A7qJV52Apf8fnfaskb8+kvzi/m3ilTLaDn\nWbJS0JUFcsRX3vFSVbgfYWXfCnsn/4y7nHBvZw5/8na28xu764nGt8Dw9mq4\nOv05HLH/E1VQ3o8pQa5hu+8AJkKRhhkjbVRy2u4I5kqmtxSOfBZnrcP8B0Wh\nLq2z\r\n=7zl+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBdKrMRZXoisUITcwD9h/83UZNY3m9cpJJlgjp4Kr+MkAiAOJalpN9z36Xb3qNZrrpd6u8vsriVVFGoJr60g0N5zoQ=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.2.0-pre.18_1587427736563_0.5119876889676873"},"_hasShrinkwrap":false},"0.3.0-pre.0":{"name":"@pinf-it/inf","version":"0.3.0-pre.0","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.3.0-pre.0","browserify":"^16.5.0","jsonrep":"^0.2.0-pre.0","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.4.0-pre.0","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","mfs":"^0.1.2","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.1.0-pre.0","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.2.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3","bent":"^7.3.0"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Encode JSON Entity Models into cross-linked directed acyclic graph event architectures to multiplex process execution flow.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the same sequence as it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\nIn theory: The generated namespace object is invoked by choosing one component as a starting point and following established relationships to let the execution travel through the linked tree of referenced nodes.\n\nIn practice: The current `inf` acts as an interpreter where a parser feeds an embedded VM with the `.~inf.json~infi.log` file instructions and the VM links and executes the generated namespace object structure.\n\nIn future: A `.~inf.json~infci.log` file will be generated which will hold compiled instructions for an optimized `inf` VM to execute where the `inf` VM is a small JavaScript framework that can run on any JavaScript engine.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * NodeJS API interface\n  * TODO:\n    * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n    * Layerable\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by merging them. Use inheritance and runtime customization instead. Overlaying is planned.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nDevelopment\n===========\n\n  npm test\n  npm run test-dist\n\n  npm run build\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"1e40c229d99206d00c5d81746b53df1b9bdedbd2","description":"inf ===","_id":"@pinf-it/inf@0.3.0-pre.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-pvFarAa6H4H0Cea13CQ/WNDZ8uD5C97KCpgqBzIyWeLTAdBCLd3ef4h/0IMEzHzMkaNcEkgr3cOtb9HqezUO3Q==","shasum":"39944e75566b7a9d9946b45f48d5927a2de82b0f","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.3.0-pre.0.tgz","fileCount":263,"unpackedSize":4736616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4wK8CRA9TVsSAnZWagAA5NMP/iN6buchpxxmTvwais1g\n1Sd0YeNbW6yU23zxmiNSlV5EbfCv7vevtxQeaVKuDTapqSvDthlYxygalQOH\n/69p5UgsytT3bZ82sOC/pfU/E9rEbfukq5PK9L+lIb9ww3EfunIljX7S8x6b\nyqaVCpUcTjHF4u49Ac0tIeHL58XpgwbbW6mG7m2/jlW9DgrWAru7F3Mvb6t3\n4uGBVPMXbGCsOxx6U5jqMAQPyf5x4KkzImSnQ20+Xtu/4ZxaQyjR49zAb8Gb\nuT4/odqHl0SDFX+6EnC58uaWBBCRXmcEGyegO6HdN1+nfeLIO5cvAylMbD+7\n4CEWp2XKlNsnMhvDIMfKDaIewaqBiXD9qojIeJCQgyqafEod7Me4AtY/Z99F\n0zuYFbNaMCWFjQCW7vBPxoXLiy+pF1en4eVKEFcWygX4qOh+on9JtrSA3SUU\nPXVLUnlFdpETBHMG+msMNBHtMKlWKpuHQPOCHRGMcybfTbk0IC6QjVsTDdPz\nG4bfAK6J9nt5o5Y8oZ0qqrH/kMIYJeOegDVrJk6BDEImaxnBv+DQH8b1vMYo\n9skSYq/tXkRf6MtvWG7FfFlLmsFTqPdh+z4H96abivIX+Aym4ChwoAzkePLO\nTENUiuqsmx0mL3hV/mbJttmfQ3beRRZdqSMp7T8gqOIVkQh48dT1pnGJAKGe\nyCoE\r\n=gmba\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENolSkwuV5g3tOYl3y5s4A+I9lMuLvjeWl5YzisThbQAiAZVmnYmoF1kHlmz6Hizpg5nnuSHjq8McL/e3AgzlmkqQ=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.3.0-pre.0_1591935675417_0.5576002862753158"},"_hasShrinkwrap":false},"0.3.0-pre.1":{"name":"@pinf-it/inf","version":"0.3.0-pre.1","pm":"npm","bin":{"inf":"inf.js"},"main":"inf.js","scripts":{"test":"bash.origin.test tests","build":"INF_ENABLE_TIMERS=1 inf build.inf.json","test-dist":"alias inf=\"$(pwd)/dist/inf.bundle.es5.min.js\" && which inf"},"devDependencies":{"@babel/core":"^7.7.5","@babel/cli":"^7.7.5","@babel/preset-env":"^7.7.6","@babel/runtime":"^7.7.6","@babel/plugin-transform-runtime":"^7.7.6","regenerator-runtime":"^0.13.3","bash.origin.test":"^0.3.0-pre.0","browserify":"^16.5.0","jsonrep":"^0.2.0-pre.0","uglify-js":"^3.7.2"},"dependencies":{"bluebird":"^3.7.2","clarinet":"^0.12.4","codeblock":"^0.4.0-pre.0","colors":"^1.4.0","escape-regexp":"0.0.1","fs-extra":"^8.1.0","mfs":"^0.1.2","glob":"^7.1.6","graceful-fs":"^4.2.3","json-stable-stringify":"^1.0.1","lib.json":"^0.1.0-pre.0","lodash":"^4.17.15","memorystream":"^0.3.1","minimist":"^1.2.0","pinf-loader-js":"^1.0.4","resolve":"^1.14.0","runbash":"^0.2.0-pre.0","traverse":"^0.6.6","debug-trace":"^2.2.3","bent":"^7.3.0"},"readme":"inf\n===\n\n[![CircleCI](https://circleci.com/gh/pinf-it/inf.svg?style=svg)](https://circleci.com/gh/pinf-it/inf)\n\n| Encode JSON Entity Models into cross-linked directed acyclic graph event architectures to multiplex process execution flow.\n\n`inf` allows for the expansion of many aspects from a singular structure to externalized entities and the reverse contraction as well as the instantiation of a singular structure from multiple perspectives in source and optimized form.\n\n`inf` uses a *domain specific language* in the form of an **Interface File** to map aliased components into layered namespaces and declare relationships between them. The syntax is JSON compliant and an ordered parser is used to process each document node in the same sequence as it was declared.\n\nThe output is a namespace in the form of a JavaScript object with all nodes resolved, mapped and instanciated as per the `inf` components declared in an `inf.json` file. An intermediate `.~inf.json~infi.log` file containing `\\t` and `\\n` delimited node instructions for the `inf` structure is also generated.\n\nIn theory: The generated namespace object is invoked by choosing one component as a starting point and following established relationships to let the execution travel through the linked tree of referenced nodes.\n\nIn practice: The current `inf` acts as an interpreter where a parser feeds an embedded VM with the `.~inf.json~infi.log` file instructions and the VM links and executes the generated namespace object structure.\n\nIn future: A `.~inf.json~infci.log` file will be generated which will hold compiled instructions for an optimized `inf` VM to execute where the `inf` VM is a small JavaScript framework that can run on any JavaScript engine.\n\n### Features\n\n  * Map component URIs to aliases\n  * Combine aliases with pointers\n  * Set properties on aliased pointers\n  * Map aliased pointers to aliased pointers\n  * Inheritance\n  * Ordered JSONish (allows for duplicate keys)\n  * Supports [codeblock.js](https://github.com/0ink/codeblock.js)\n  * Great compile target\n  * Default `inf.pinf.it` vocabulary and components for bootstrapping simple projects\n  * Extendable via plugins\n  * Comments\n  * Unix CLI interface via `inf`\n  * Browserifyable\n  * Heavily tested\n  * NodeJS API interface\n  * TODO:\n    * Export resolved `inf` component structure and mapped invocation relationships along with optimized invocation handlers to JavaScript\n    * Layerable\n    * Highly optimized runtime structure (RTNamespace)\n\n### Limitations\n\n  * Cannot merge two `inf.json` files by merging them. Use inheritance and runtime customization instead. Overlaying is planned.\n  * Cannot use `JSON.parse()` for `inf.json` files as duplicate keys are dropped unless duplicate keys are suffixed with `+<unique>`. Assumes order of keys is preserved.\n  * Parsing large instruction files that reference many Components may be slow but the resulting runtime structure (RTNamespace) is fast and small as long as the RTComponents are also optimized.\n  * The instructions in an `inf.json` file can be hard to follow. To provide clarity follow a Vocabulary/Schema/Convention for aliases or generate `inf` instructions from a higher level abstraction that matches your domain model more closely ([ccjson](https://github.com/ccjson/ccjson.nodejs) is an example that can generate `inf.js` files as well as represent its runtime structure using RTNamespace & RTComponent).\n\n\nInstall\n=======\n\n    npm install @pinf-it/inf\n    npm install @pinf-it/inf-dist\n\n\nUsage\n-----\n\nSee `tests/` for examples of all features. The tests can be run with `npm test`. Specific tests can be run with `npm test \\d{2}` where `\\d{2}` denotes the numbered test prefix. When making changes to tests use the `--dev` flag to disable the test runner validation. When done, delete the `.expected.log` file for the test and run test again without `--dev` to generate comparison file.\n\nThe point of `inf` is to execute `inf.json` files. If the `#!/usr/bin/env inf` shebang is missing from a `*.inf.json` file it can be run using `inf *.inf.json`.\n\n`inf` can be [browserified](https://github.com/browserify/browserify) to make it lightweight & portable for use in projects. Look for distribution files in `dist/` and run `npm run build` to generate a new build. These builds are published to npm at `@pinf-it/inf-dist`.\n\n\nAPI\n===\n\n*TODO: Component API*\n\nMagic Variables\n---------------\n\n  * `__FILE__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILEPATH__` - **/.../sub1/sub2/foo.inf.json**\n  * `__FILENAME__` - **foo.inf.json**\n  * `__BASENAME__` - **foo.inf.json**\n  * `__DIRNAME__` - **/.../sub1/sub2**\n  * `__DIRPATH__` - **/.../sub1/sub2**\n  * `__FILENAME_STEM__` - **foo.inf**\n  * `__FILENAME_STEM2__` - **foo**\n  * `__FILENAME_EXTENSION__` - **json**\n  * `__FILENAME_SUFFIX__` - **.json**\n  * `__DIR_PARENT_PATH__` - **/.../sub1**\n  * `__DIR_BASENAME__` - **sub2**\n  * `__BASEDIR__` - **/...**\n  * `__RELPATH__` - **sub1/sub2/foo.inf.json**\n\n\nDetails\n=======\n\nTerminology\n-----------\n\n*TODO: Complete*\n\n  * URI:\n    * `./bo/` - References a package at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `./bo.` - References a file at relative path (then e.g. `inf.json` is appended to find interface file)\n    * `alias/bo/` & `alias/bo.` - References a package/file by mapped alias\n    * `alias/bo` - References a package using namespace unique URI\n    * `//domain.com/bo/` & `//domain.com/bo.` - References a package or file using globally unique URL\n\n  * `inf.json`\n  * `.~inf.json~infi.log`\n  * Instruction File\n  * Instructions\n  * Instruction\n  * Alias\n  * Component Uri\n  * Component\n  * Pointer\n  * Value\n  * ValueReference - A *proxy function* to get the **Value** from a mapped **Component**.\n\nEntities\n--------\n\n*TODO: Complete*\n\n  * **Namespace** - The parsed hierarchical structure that is mapped via aliases in the `inf.json` file.\n\n  * **RTNamespace** - Optimized runtime structure that holds resolved Component instances as nested object.\n    * Can be serialized to JavaScript.\n\n  * **Component** - The `inf` component abstraction that receives an *invocation* whenever the mapped alias is used to set a property or map a relationship.\n\n\nDevelopment\n===========\n\n  npm test\n  npm run test-dist\n\n  npm run build\n\n\nProvenance\n==========\n\nOriginal code licensed under the MIT License by Christoph Dorn since 2018.\n","readmeFilename":"README.md","gitHead":"c21cfd07164d7f437bca72e475f1ccde1c53b822","description":"inf ===","_id":"@pinf-it/inf@0.3.0-pre.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-WchCElsJrwWciaa+oyUwbY5unXUZ5aZGQoxYCQKfT/IzWcRLlaU88+m6dF72pKf7eB6aKEm5FH0hUhT3mZIUVw==","shasum":"37157557be86c2cd1880f7b124a8a9ecd60ff28f","tarball":"https://registry.npmjs.org/@pinf-it/inf/-/inf-0.3.0-pre.1.tgz","fileCount":263,"unpackedSize":4737146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8j6nCRA9TVsSAnZWagAAnGQP/0qYdGLtasShM8sQSsUK\nDx5zZCnXhUp8Qfss0gKGJ8sHSiYQMoANOAF6heSeee2DyMadBggAYwATuhBv\nxzNpo0HLIBz3mL4SH8lrCnnRwKm/D76QJL8FWhNrDgnfLJqH0f1mqjdhwGPP\n5pfwNVAOJgvXChEwKBfVR4Rs3UVTGopEFDHIVXwomuqoFbWlAbLhnD5Hcj6N\nIzgkHtrckNCu1dI9SFoZPGzElMaAzhuxA8La+5fZansPlXUBM9LzLs4kRfqt\n65vH6YMIaN/KLvKUruGks+Ur/37+ymccSChn97wZMtb48gMg1KlMhtTtzMr2\n6m6fN3CIsn6C2sXM4VQbppxd4E5avZJzTyYDa2TNwXwfysNxrr8fR41/AfIQ\nqp2d859JSJ9GLCJL5yoYDmQxzmbgWerOVtmN/+ni+dGJF84LJ5Sn+T9xqPnx\nOble9lPbaDwv8XL9iaEMkT7ZjMqRAdyVHqK7eNb51xc9vlRmlr3on0nUFgJI\nwFSsqmWNROAOQ7MS98hwwWM2X+M0BTKrmeJJpnjYPOsY864spFR/I6S1lzaA\n/rymUBxhdQa/37WQ60xq4650rghoY6wTNejlEM72esLzHVL/CKHbRFoB4PFa\niDV1jeL6ye9bDNASMnTCH/6ARKZ4AaFrV6jVIZ1WRHng1IUBAuO4ECxBuatk\nkF3p\r\n=Kaaq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH46dB7gSsSU55Zwt4v9TENLbzvMkuTeBcMzb0yNu9IrAiA2j1+0ds9kP7Ky7sQCuQcqXJGiR8nzGIiTpmLE359fLA=="}]},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"_npmUser":{"name":"cadorn","email":"christoph@christophdorn.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inf_0.3.0-pre.1_1592934054517_0.9714450584162069"},"_hasShrinkwrap":false}},"time":{"created":"2018-08-15T05:58:46.199Z","0.1.5":"2018-08-15T05:58:46.578Z","modified":"2022-04-06T14:32:42.389Z","0.1.6":"2018-08-19T07:14:08.497Z","0.1.7":"2018-08-28T22:50:42.784Z","0.1.8":"2018-09-23T03:04:53.980Z","0.1.9":"2018-09-27T03:19:10.455Z","0.1.10":"2018-10-12T07:29:51.479Z","0.1.11":"2018-10-12T07:40:34.552Z","0.1.12":"2018-10-12T07:46:31.860Z","0.1.13":"2018-10-12T07:47:59.196Z","0.1.14":"2018-10-16T15:52:13.704Z","0.1.15":"2018-10-20T06:11:56.080Z","0.1.16":"2018-11-07T17:13:32.994Z","0.1.17":"2018-11-18T04:15:19.075Z","0.1.18":"2018-11-28T06:15:37.055Z","0.1.19":"2018-11-28T22:34:42.726Z","0.1.20":"2019-01-15T04:04:46.755Z","0.1.21":"2019-01-30T04:58:33.942Z","0.1.22":"2019-01-30T05:07:11.645Z","0.1.23":"2019-01-30T18:26:02.672Z","0.1.24":"2019-08-24T07:39:14.111Z","0.1.25":"2019-08-24T08:32:18.166Z","0.1.26":"2019-09-10T07:08:48.106Z","0.2.0-pre.0":"2019-09-16T06:05:47.518Z","0.2.0-pre.2":"2019-09-16T20:15:52.770Z","0.2.0-pre.3":"2019-09-27T16:55:22.416Z","0.2.0-pre.4":"2019-10-08T19:26:51.025Z","0.2.0-pre.5":"2019-10-30T20:24:48.015Z","0.2.0-pre.6":"2019-11-19T04:38:38.423Z","0.2.0-pre.7":"2020-02-16T07:58:31.215Z","0.2.0-pre.8":"2020-02-17T06:08:24.660Z","0.2.0-pre.9":"2020-02-17T06:40:16.382Z","0.2.0-pre.10":"2020-02-17T07:47:02.682Z","0.2.0-pre.11":"2020-02-17T08:16:56.855Z","0.2.0-pre.12":"2020-02-17T08:57:45.376Z","0.2.0-pre.13":"2020-02-18T08:14:10.461Z","0.2.0-pre.14":"2020-02-20T21:49:06.307Z","0.2.0-pre.15":"2020-02-24T23:09:59.583Z","0.2.0-pre.16":"2020-03-13T17:37:41.130Z","0.2.0-pre.17":"2020-04-14T20:11:47.030Z","0.2.0-pre.18":"2020-04-21T00:08:56.960Z","0.3.0-pre.0":"2020-06-12T04:21:15.747Z","0.3.0-pre.1":"2020-06-23T17:40:54.664Z"},"maintainers":[{"name":"cadorn","email":"christoph@christophdorn.com"}],"description":"inf ===","readme":"","readmeFilename":""}