{"_id":"fe-fwk","_rev":"59-b6ef8d10b090c10708c2e473e4d029f6","name":"fe-fwk","dist-tags":{"latest":"6.0.1"},"versions":{"1.0.0":{"name":"fe-fwk","version":"1.0.0","keywords":[],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.0","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"dist":{"shasum":"7ab243ce8c04b446cd41662a40386355a54805e1","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.0.tgz","fileCount":3,"integrity":"sha512-Y6s9xdFkZmj+pCQP0XJMZKZDSPqLcuBh0pENCCGpWVLrAtUtzTZqapbIQSlvgIdP4g7oJfUsqBKKXzvUMjmVTw==","signatures":[{"sig":"MEUCIQDinhej59GruoH0+1WCvZtyKvdBNJDcgQBagEnzhDzNVgIgPD+aGINV6BtzQkKV+/wY6L2o7blv27wTOubvU0nze30=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7727,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjRYaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq++w/+K3SON+0eR2oqfvm1hKG08+9twjQKz5esIDDTuczchdPWhLiG\r\nryxQVEi4HLYOIfSe5U8tR86CIBiHbBjAAwoaa79NCbN/ptscmEIC8fiyIERm\r\nwf5sQiucEMKqFFj6WE/O937heDoZyEfceceZLj5srcBZESjR+G6ehJ3mjyz8\r\n+FIT71w0KLfVGy45/M5IONwdwzYDKIxjqVc+tumay0nmGnxvJ0bQjATqUig8\r\nGl4iaM05wUGlRKLaIFHTgG5p1eKDM3H/8qRGzQnIK9TzNIhhuhtcg/WXo5BE\r\nijqdZzD0rD8o4DzAPdR81mtQw5/dNCGFJHQ92KgsPHJ+aUDJwawstPFBnn3j\r\nCSeWCW7hf7ICpZ1WYSFxc7Tob/Q4qjubBAut/K4fOSUdZHysF5XxxVEB4mPp\r\nEr9wQS+P8/MBYwE3CMS7VJiMJUpEjKattpr1Pr6SK9fiLp94Hl1h/J2jJMgr\r\nK4n6B4rOCy4FQiuPxzgOd2B4jSvDaVNAAgWmd5mciMw6QebiECoR29yx6+Nq\r\nRZWfgM2zmYB4SNRP+wnLpZvfCRPxPEXVy/rNTpOtBdDnVtVxF0GxamfBC8d1\r\nCAyfl1G9DFrBZJCNs41L0t9tFeUwiqlFXE10cZZa1l/ZOS0C6u7FVKmZ8gyk\r\n9ayCFGnxm94xEIuXMjACrXdJtL2vx8kRdL0=\r\n=4JFg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"753e919e13368af4649600cebcd9b938599942df","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","lint:fix":"eslint src --fix","prepublish":"npm run build","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^20.0.3","eslint":"^8.28.0","rollup":"^3.5.0","vitest":"^0.25.3","@vitest/coverage-c8":"^0.25.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.0_1670190618228_0.7464408954395563","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"fe-fwk","version":"1.0.1","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.1","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"739f63e417f7cf97fea04a470634875f20aeda7f","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.1.tgz","fileCount":3,"integrity":"sha512-UkuGwhTZHIAG8CBQab7Q37H/3Sp6+YrRUB+C3F3itNdzQoLHLPRwZEPciH/GEPLUbJao+zpqTkl9mxW6pUlf2g==","signatures":[{"sig":"MEUCIEsU+Ado+Ppx5OQN1vdo1YyzYZIWW37EaiSLHXS5eofkAiEA3npOcxxcfoSJYT3cQj7gc8fUlSJBDdSYcUv/QomJ7TI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjZQKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKKw//baNYgRi0oIYtWzRcvoWLu0pBSXlJaJuQ3cpxkVtSYFKs71EL\r\njTT/Zq5dLr1GiCr5MPcnKgqHhnOd0eTZ+Masmo9HG2YRIujmLGD6e3SdXR1t\r\nL6Rxl0b4Md2Jrwg6GqZw8BzHRgKq/5SIcdyelQPQH+h4EmFktGweKWzcMagp\r\nuoStYYfQdeMVqyCOWnamNsVrsc3OTco4JsYrSO4d7pEPKtJno7HyTmg0sNHk\r\nb7f2jVahuqL6GCNDLMw71BMIh7g4XytCoN410efF5wU/NGTZSNwV5QpNVDIg\r\ncv7jTqXm7KCdYKfpUzWM1W/eFURpaixqq8C9QBvTcyI49ZPGjVou8YmPR9Mj\r\nWuew7/owiApY0tNebSnLDoy1aOMPJOUfOud7ms3eQ9tzRWBjPckdH97seUzs\r\nunq7QIiLfXOudV17D2sYtaZQ/uDl+xnSZHG9muuFr4OKQR9hnNcXMusAvQb7\r\nbpjqfqoFy0xLeQEpeVaNuCMPbAUnKCP+kG+vocdGfEoEgSw+JmgZGrXaekSQ\r\nCzckjK7T9KWjvA+ynwJ9aMrgnX5qbB/DUB+J8sKLarG6/T+P/oE3PPK11/8n\r\nciFUvQgJ79r6c+CKmCGv/Lrr+KpL8jJ6dP1qNltpIlyRADuojy2Y3L7QyMat\r\n+bXC5IyEcOw1tOqCG9x3ZASKdakgv6pZXvk=\r\n=58d9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"ea32572ecd410c91046cdaeb8acad766665b2e79","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","lint:fix":"eslint src --fix","prepublish":"npm run build","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^20.0.3","eslint":"^8.29.0","rollup":"^3.5.1","vitest":"^0.25.3","@vitest/coverage-c8":"^0.25.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.1_1670222858346_0.23870434423622267","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"fe-fwk","version":"1.0.2","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.2","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"704910cb68a8a5854b02a3dcb78ca8393f9fd7f3","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.2.tgz","fileCount":3,"integrity":"sha512-cmjTuuR5/tpbt0ONziRaAPjYIfmFcXQo6TAdh6ScDY+ncf1ug5bY56voF1sUlZJSjNrReGH5E89KvhAsSraPwA==","signatures":[{"sig":"MEUCIQDXsJNQeWnD/8GlAN5WGaUhC7QN2UVGlUYqAa6RIXuVDQIgfTgMojXTo1YKwkhTSnfnHKikftOUrW2Yhexo5l/+AbQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjkaUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpF6hAAisOEZCef6SgLFbxrqKbvi1Q5NPYytAdHedMuDu+IJmP7kofm\r\nmVsebd6RXg88Vk4r59kWITt+XFF7oVKkZIdYIRzBwQlaB2iYDTBOMsVDNwaO\r\nhxVRUlKaWnBfnhlMsSuecpSI5c3jc2tzVML3NBSNPdsxyQiz0fX27+9eppd/\r\n+D4hYV5qcWMR9xA7usdN233IMrmjsoIziloT5UmQm+untcIzHqxv2MPwYhcH\r\nu2mFYk6Gx6IznXkhY+0Xs+uPYHPLCbBSWzRCfdLhTmnnMHAq+n1r09AuE6ZJ\r\nGWJyZ1U/Zy3HYpp+yJYzgyzbQSfsawQ/sMB6aD6gv7b+fOY2nWRn5GoLZnDw\r\ns+0qdEmArgslOtqoJlhiL5mHMCgNzhy6dqb7MEqzHSoVRBe2WugB35mAGnsI\r\n5trcB2Sa8cpcXMZrTrXFIIsA4RfIojWzoNlJTTfXUC5AinOOGyTFP4CpwrvD\r\nxtD06cTWYvidEL4JeeiNSvpSZEh86rLdsOOl87um3gxMpHtcgmtnzGuVI8nC\r\nnM36VC2+Xhwzq2IeqHNOLMMRy1VQ1mlUMtmS+eTf9JJYaevJOGwPaDiFS5W3\r\n1m1fyCzztehKMln4vBU1CYHZ/jndnWU8ILvwwE4X36dCH/I15r9atBv8fMqy\r\nigQxv4Rqkv3pDXCjWxjm4ZICg1Td1uvMbCQ=\r\n=opkQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"a18fd81773ca4147c78adc1eea663f149e6d8fdd","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","lint:fix":"eslint src --fix","prepublish":"npm run build","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^20.0.3","eslint":"^8.29.0","rollup":"^3.5.1","vitest":"^0.25.3","@vitest/coverage-c8":"^0.25.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.2_1670268564249_0.7733828405078713","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"fe-fwk","version":"1.0.3","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.3","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"11cb5176ab9f3c20096faad30c2c25f5cb9cf2ab","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.3.tgz","fileCount":3,"integrity":"sha512-cWt8xk5e2OkGHYXBEPZpcMgtvf1yK5jhF4ERyQ75uuAkcn9IWl0i4DMgSRY6rCyaGAgx79gZMp8hYZdb3IRHYg==","signatures":[{"sig":"MEQCICF4NJK22og8GcC9nPrG4RaRTMuVIuVU26/Uol2Yd8lkAiAaJENDOoYFY1YFgoM8+J5hvrWK9kcztQOGEEw0Gaxmfw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjkoQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrg5w//S3EG5iJdVgRm3FX5ZLkVX9xA3/+7qUpl/5pFxcGUZUKVAIpw\r\n3wNws8/s1YJQdxSlx86GTwcAGtWUyjnFzwe+m5djz7Ry5iASxPbCysVfGwT/\r\nxdPLmnl20kZpMzKd4AH9AzbnN0vZXyrvJDCNfP2NssZACxDvmhymnWIl4ai6\r\nGbqxFP5DxWpYB9QZ4lvx5ygtyXnQy8zqksrb7ArBaVYZyUTzOs8j6JXS+ZHl\r\nFV4OVl6z6dHmFQJzq3HTuVGvHjWD6g++3t8Ic4N+yivoEISCnJ36BusZTH4z\r\nMH8Fs2YK4sf03c8+sUY8gDOWl4OLZMeZ8eB2F8xyM7Ux+ZSbX31LepRrwbXt\r\noIHpoXAXEf5JZv1l1biDzexoCEeOZdtfPYHekWoCP86eTf4efvyysOXXvss6\r\njaGJSzsLOT3XmxkyLZXHKZegMPcFffbEKeQTcI0IR1EBmbWvkiZkUcLmLODx\r\nDrb2hYf2TkhI3YPuP/BGfuiW/8mzC5MKSukKnRQWhB8srpogSOv10yGgd8PD\r\n5hTODz9IX5mUYXotkWG12uYPXyXwRSjemXLsfPxeA+iOCzogYS6PvVDHwuas\r\nNJX8HPyepKIum6lFbvwxriE8Rc/BV4JB/oeRNdnmz8q9LK6WUFoP7cyOxyLD\r\niJQzS2pM8IRzAALx93BM9CW0EZG3T3J9Yzo=\r\n=Gwp9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"a18fd81773ca4147c78adc1eea663f149e6d8fdd","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^20.0.3","eslint":"^8.29.0","rollup":"^3.5.1","vitest":"^0.25.3","@vitest/coverage-c8":"^0.25.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.3_1670269456018_0.5306669597009925","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"fe-fwk","version":"1.0.4","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.4","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"7b1d2834444d65e5be4f29b30a754cbe8c9b3483","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.4.tgz","fileCount":3,"integrity":"sha512-9xOdV9kqZ3nOX1NXDFxJSRnGIykX7czSOshOlRBInEZRdLIFcJzoOxfqAgrhwv8E0j3US+oN6eho3hO5WZBrIA==","signatures":[{"sig":"MEUCIQDXGyDEgCmqc0v+yA+SL1ykmr/1RFKtrDQ2Q9SIArn98gIgUVikBX2p3SK4DzHRG2Y1MoMhnwHHz5t83WMKRFX/lrI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjvr6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoj4Q/+J1gasIlIPh5dEUTcZfsU9p7oadqObHP4diXaDKm7ixys3yJ/\r\nTFZWt8DGz+2xzEnsFDLW3HAMjIcrthfX/SOcR2DzpcqJPlNfemEaTRLO0rJs\r\nqLFIPnWYZkpEpbOBK7etD+fRGlWUegdIR7UMhiR81YR+27H2HvbLUWLYXD3G\r\n2LthaDMgocKPwOJGgdg1ct0ZYk+7qfzflmo1KK+b/OBMMiN8/azgHA+yyn4G\r\nXoEnd62Y3lucfoluYiQOCUlsdBPnrskdMVziV3roXuL6kM41rtHx1zshlxQd\r\nUQtK1YSBcWpZUKoVTz94XIr2uowf4LMfV2YwyduB/LaLuKpvpPmFl95xDnRw\r\nEWoCJ1ipD1PHoFmtE8wdEt1vs6hDiqMsijTrS2uDURCarnCm+OwXc6QEIZNE\r\ng9u2d/cJvmUaIm3NGfgNgmeGic3YtOVLJeX1IOtw6pRfgOrMiiKK4iQ69Qmy\r\npbsGngqEfw530w1dMXDMcjvb28RO998rfy1tB59ee1oxLuvb4T170DBBNT80\r\ny+WvgXRLmkaX+syhsJhxipF4INH6oSSo1M0c8xYSyenYBRXexRmysuO9bywg\r\nk96Uu8cSTRL3r5Rg8bEYk6j6ND0f9mBftXs0Hf3m8KExfwTlNAAwhrH1IOYo\r\njkkH1G5mcPbjTAhJjFnvX/29CPgT7TAFQts=\r\n=QKb1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"8c29fb2832d379a291f69b53b7100ad9b736a386","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^20.0.3","eslint":"^8.29.0","rollup":"^3.5.1","vitest":"^0.25.3","@vitest/coverage-c8":"^0.25.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.4_1670314745827_0.8577897852296035","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"fe-fwk","version":"1.0.5","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.5","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"331f58912a1a634491f04a5e9395a3403ba9ec5c","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.5.tgz","fileCount":3,"integrity":"sha512-yc9LE3bMIUiHcNuq7rZmDkNVtNw+DF8EyAV0UhAcEkRK4tohTO1nGfHdD5F2Vrl426KGQHF2bNUnZ6lv150zOg==","signatures":[{"sig":"MEQCIDFFYWI8pvVYQEbBhY1VYg6ZCVggUUUwmN+JXbwicdREAiBJOfe6Qiu/eSuxmLZDjXtKPCDgPqn2c6jbnc7iDvQD4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjwY6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUjA/9Ehy3JUodA8HDPG2T7/gIlGxtkqKa3Xde9hEd4hHTPthW5ZAW\r\nn6EAcRI5irOQEQ7+h7sA6N6sdZjWAsGCUlUe5/a3HUJUX2k6r/sqAJhtJ/AL\r\nvVyeU+4x5nKX+O+PGeq3+RWALVAprrqt8/izV1qpslcMo+Flu2tdFac2uVy3\r\ngSOkM3MSFkjYQL9zpzZAaCkCWr+tZUBwY8Db+GwX/3lsgjdoMh+TLVHzB271\r\niPNlLUK+JT/qk7GIc8vxJiHabWs9huIKEmPp8nulVFV8OAdz7TVeGHUcquMe\r\nmfLvbeTiB/G5emy9NNF8jGaw/jJB0M6uXFVew1kPvLlIw683z2g1NzRWwKKP\r\nYsybnRl6x+1xEaRAF27t7DankU2/yKqz9mZf/8Gd5vEWR4iBJFu4C3SL6rFx\r\nHVmaC8Xq3+sRIc03Lk+lvsMAjskuA/XxXgzdwwy4uSc7IEmdxg5578wcaJVQ\r\nRE49etviWdSQYMf05xNxCrebFOM8kNQIPDP+PbvJST5E4E/X1Dtv44uC+pa5\r\nlBhUwjcCmPZ5i4gMNc9zuY8NqsnUhqG5HTsElEwqS3R1CvqZLCOTOCzTgHPO\r\n9IPOZoX2GWox9IFqee6dxcqfpy720DFUiXGkUC/dpAqxr+LF2Veb6e0TbeQI\r\nswpQNpQhZkkaAjZyvV94h9ZGqmeUCFMCayk=\r\n=sveM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"1e44c57839b39d20a086272a4429b5d45a1df994","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^20.0.3","eslint":"^8.29.0","rollup":"^3.5.1","vitest":"^0.25.3","@vitest/coverage-c8":"^0.25.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.5_1670317626719_0.8615678926883581","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"fe-fwk","version":"1.0.7","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.7","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"7853a174f92682f9edf5a9408aeafe0d3e6157ef","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.7.tgz","fileCount":3,"integrity":"sha512-g+G1aRM6cvUaqDtMtJbenLiEu6SbqgAqOgcCHo8hCBIDnYu6me/uTkrlHLgsC0tjhRFwJVyqp1ggl7EhKMraSw==","signatures":[{"sig":"MEUCIQDFO2Kn+zvVRIvGhmyjjSbQwVfHYEFkS5qHfATv05v1+QIgIvcdjKDtRJg9qt9E5BgsfhVVDMAjA4SdXYV+qpypDjc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9591,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju8IPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3pA/5AZMQlDKjwchfsCDbO93KU8uOzshsIurVQbikvX17mHvvcyZp\r\nQaFGsReZVV6hYPgzc8JH1cJt+Y0yDUwfR2J5hiNSL6AGcZy2GUD27KTpEBRK\r\nfQPuFmaM6/NAviT885B+3I9N+lk/GIM+OI6corvHTUpmMChLGe5HQE7uh733\r\nMpNtu1p3YyWhv9e0hNvaTDklZ7Iyj0BrWTxrJ+pwxcf9u6ehdhNmfHvGh0B7\r\nUafOLzvSKvtVnVWWhA43KIb6k73vyhWadXAssU0BMbohVDLjzGoQYmQ3+7SA\r\nRlqw6y36VrxDPuotkQ5p7mWR+VKoqV3jeMHcDTKfCqUsWBmeYeExzJSx+VMG\r\nu95fNZMOhJQ9yRn6a+nt0pej/uI3wpABa2erk4Owu8nXSxujLxG3Fo1WoHMG\r\nuG6IQpJRltnrc57MaPGDe6X8f3dKs/wXJE2nIMv6OByFfdgVjUnmz/FuGs88\r\nUsNAoQlnZdP8bx+QuhJ+jDCKg8vUgSYCr5k45q/rm9+/K9W7htC1Tta27FJZ\r\ntKihPUTbi2QM8uMJK3op8duWHmNvaVKTJcdrROVrhpRhEiu6Frkv/bCK33EA\r\nSTTI5XyZAd3ysQUCWWKwPTnrw+VvppipL1azSRv4QtVGhc83P7FNc14po3qj\r\nrCoR/KhIzMjCVswIyKrfNpSrLz+xwwB3qp4=\r\n=MDlU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"897848fc3e148fff8320910b24a2443c26dd7f12","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^21.0.0","eslint":"^8.31.0","rollup":"^3.9.1","vitest":"^0.26.3","@vitest/coverage-c8":"^0.26.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.7_1673249295032_0.5194306634332002","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"fe-fwk","version":"2.0.0","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.0","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"a17f08725335db6cd1fb2607a02eba1bdcf6fce4","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.0.tgz","fileCount":3,"integrity":"sha512-QpWYCM8YdR3eKirZRaolgKGQqhCBHaC1zwkYCuKdM4omRe79lObNX07nYok5ZeZRULLJeg7GZDQ7r1PAr7Nmbg==","signatures":[{"sig":"MEYCIQDtcMfu9YBbLsTzC2Gbg4PXeoQIRtoQKZp4/Sac4qhiewIhAJD+2qdZGxDdDF1E52+pRKeFufzVJm251K5LX/TNKmqg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju8JzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCDw/8C8exhmJs62l7nUU8xT6CHtUfKFzCVcchHt0OntiNINJ++Rhc\r\nnBC6oDa4O5NS6aqeG6gBQA9LmPTs7iXEqYf0XmyTCiRRj/rP2A3kQ5duvz1n\r\nK/rVu0ZPviTotjR0zCw0dOgT4Oa8yM7dhMPwZPQpOblbE+uMn9vk+AtPH74F\r\n5OMqDKO085do28Fqrq2afQkqHWKbzZEONoRViEun2iJT5x7txbH8/ZNaKTVt\r\nUN+Z3y/z879uU2EHHIDQzYurJcm+iocrfty4c7PhbDbHJEkwEsU1PSoa7w9i\r\nD4BJAGECwr1WDPGYCU1HrtdUO9v/fbjvpFk8fWgU6kSzKlxGuBTGXpztJrjv\r\nFvad0IpckilLa2CLx+NHmwH5FpLVcRKHSXPFdmHqW9OZIuywX4F27J8Reqyh\r\nr6CZEWoenFhva9oMksSmh/iE3UwVYp+zqDZMSbqrYOO5kPr5rg5uY6iZ0qhb\r\nBdiIeG9vGNZLEkDT7c5jlTIJhvFbjWKa6mRe6VIooJQ8di95KOdJ+zlbkDjQ\r\n3MG5CqLQgvwncOCT/L1v1ZRHGYHL5+ZCvYYBgjyK7KNoxyivNhprXnAj8ppS\r\nT+TuvsPiJKmwaeAT9qWRqU6b3dEdRMi8HjTwpT7sA9JcBumPdHOMV2BDLTb3\r\nzMc3E13ezLgY12s81aSXmshRhKSgZnXHUig=\r\n=+ZSh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"1e92bf4c509f9cad3147f9b3d036b27d163eb408","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^21.0.0","eslint":"^8.31.0","rollup":"^3.9.1","vitest":"^0.26.3","@vitest/coverage-c8":"^0.26.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.0_1673249395411_0.5792326705567212","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"fe-fwk","version":"2.0.1","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.1","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"https://github.com/angelsolaorbaiceta/fe-fwk-book","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"a417d05f2877120cac6f071e722cded2250fa2f1","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.1.tgz","fileCount":3,"integrity":"sha512-0gKZ1NWGys4ssRutfUUnjqCxr5CTe/f7RF7Y2VfcMfklhD7XdVE3NrbKqBvjK6jxKD/ri5OTS/jIvOQXwhdY9A==","signatures":[{"sig":"MEYCIQCbr+8UlGbGkAPrJXjrqLg3/aHi60FJESW0NKZ62boKoQIhAMSAxGwK2Rzzih+JHynJ52uP9oweU+9hQcV9G8Al3WS/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju8qdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwMg/+NEYyMTfALInBNOxkEnyKef0IF2oG2UuXX9K6IctM1YVB4PE6\r\nBOQTUxK//XgBq/momlAZCkQRlUOfBYxb+Lv1/KB8lXHxryS3/K0BxkYBIFeA\r\necbwdyRQm88fAfLZRKrQHHEvmUmn8LTl/+8r5V6tIYpxtXLcs8tP2n6YXYp9\r\nAn4jSz4pVaE4NLKvMtonf62ZU5TaUviSwWAboflgXwf8GLcTfcOKV9reiTBP\r\nXeViYjcq11NnEY8bukbaNBsLtMTusJ7jue5Vx5FTZXiVB1FvaxM1MEP7y5Uz\r\nRB4xFDY6Mfhjirj5fyXUfnBm4yTOT/s5l96D4NyJ4v2+wYtri0IV9xzmdO0+\r\nHcFBEavin4FI1k4+epYLNlh2iXOtXVkwqLQnvXUHtlESGeMN3GwJZYQF3tlL\r\nzxeGkzZImjOn43k99K6XY8CcbS2T4v6QsrdrZWyB/I4+VzcHVqPX9TwVmOe3\r\nZVD+NVKa3HL4C/F49903PUiuWvNcWIWCQhVJYW0c0PpS6fDVP4TBFqeIZZqV\r\nmR0BWsLQyM4eMzB56MaCnDlihslrtDxzDjB3JcPQWWkY2z9Lw1Nbp8lfWw8n\r\nqxcf5G3im8gnFHA3zw49SFe+zKTdP2Z3/7EHdwuUdnewqgAnARrfPxpubXmk\r\n5BVnoQeJCbvQLq/x4V0zhY6R8De8F6pvdEU=\r\n=MCTa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"29d0ea0b8d34bbc06978963ddb4a1cd4436380f8","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^21.0.0","eslint":"^8.31.0","rollup":"^3.9.1","vitest":"^0.26.3","@vitest/coverage-c8":"^0.26.3","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^9.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.1_1673251485182_0.12414510766534015","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"fe-fwk","version":"2.0.2","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.2","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"12904144dbcb13119e1de6882a0537a83e854a99","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.2.tgz","fileCount":3,"integrity":"sha512-c02qTOfRE3zj/IuMNH73lh9IW9fQhGaJYC77w4dnEnW95eBWEg2jn8J5CfIxIJaVAezZmfsuh4MmWw/f9PnUiQ==","signatures":[{"sig":"MEYCIQCJ8RCgUNXkTFm2rok20MnViRrXlKIRT2oN3ldE07GsyQIhALMdrx/hNc7Vq4u/c8AROekFhCMqHGHI6Bq12mYGIUdj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGWQEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpIkQ//dSoPGHxXbFtyOkkzQqLgSrRdYbAU0WfqTulq29wwQSVyWF3Z\r\nMvDlrsrYaMHJ0ZFDxV27dLs6K4yc9Gkoa7V8wkXTGwmbQitLzOtpAFxbGo++\r\nPyWStLcLQcsmWJxeXIkjTQigq4vZDxi9iq/uid22sBN8Cn7R+YXM95hnMSYN\r\nXnmHlhF72alrV2dhxkJq7A638BTpeB86DbI2aGd6pLKnsZmwBUNyrBNKu4TO\r\npdnm0nSXvUPc/iXuvyzf1EVqiFiXmeDrTtSUtnJe4u66Xpx7Y8IDCHF49umS\r\niFnJbKIOzNg+GY7jy55HlsALbANeEH8pcYQt+HWnlQFYlHznb2K2YKUoD449\r\nBV+96Hd1JTpdIAba+M5rbEziV6i+WiZ6FrvXnbCXM9xh1lDblNNkb61oKirC\r\nAN8gi9TO4P5D1rxKYIFhXRMnu9xKKH8h2W+1CICp1VM6QiyN92xJ0nKi9CI0\r\nsEEYYTvCvoYFZDte5nOkdAmT0ZM6qPwZ+VVqdTPi8k0RUbk012p1jfEoiLa5\r\nYXHnzcHeR8sMpBx6WsD4CNbd6hnkuhj9cAuNVUYUi/+Fmhjcl9tXh097pbv3\r\nAyqBAzmAe5f6gt6aoQE3YZYO5xPcsaXZx4sWur0XYfDtyqkSfzaP/LpNp+FK\r\n0jXIPiAlWzp6zyQGmZ3lQQxvwnE3WS0tFSU=\r\n=Ab5O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"2d9396df72ff745827d4ec796a13409b4985f6ad","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^21.1.1","eslint":"^8.36.0","rollup":"^3.19.1","vitest":"^0.28.5","@vitest/coverage-c8":"^0.28.5","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.2_1679385603904_0.8065376195151177","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"fe-fwk","version":"2.0.3","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.3","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"80ff9398e64cecb40d46be6b7850156e53aa3d9a","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.3.tgz","fileCount":3,"integrity":"sha512-4xwV67znXAGUer6+V4mZmVek8c1xN64D1WRHXjqQ1Zj6u5whmWOvZ6QkQYpyIISrShVhuSp+MrhhiUQRfwzsmw==","signatures":[{"sig":"MEUCIE2pW/aalHTH4wjFKIj3v2KzcBR6b8HvLnxZp6yDqZ6AAiEAk+4tvPUPrSMyOjMWGuRfu9aleEogI++mA1T90afrk7I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGqIAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCMg/+LHdoLrmkxANNRYcMZnKEZqDGw91l5uFonrk8tNc7OqLw9beT\r\ngOrWU+UesCW6VCM+G7ncLfE2oNlZAEftCHML9Qg22mp2p14r8ab6VQQQ3Cgx\r\n0YdGPodWhxQca1kPNYRo59mX02mF072ELnU9o3PHLMTTDrq4lhHD1w2cp9LX\r\nnH0BG8IPlAQpWud1HYK9Lh/AvMvzOLgyZRsp3dlBG3zPw+rysRbQsNv5Eg6Y\r\n8b/HdCB64nuKmU3jWN0MIH1mu3E41/vNgNzQNnS5TYe2e7+v0LK71Hn3zvTV\r\nZ3p7/lQWIVfuFEhnXZhLGP1r9B8eCAVKyW0fAu793Plh931rFZo5MSPt1+av\r\nccKraaK5pTwgSAizIRyelVjn7mZcdduw4Cee0gL8OvboDlVgAdN9JIBgIwHX\r\nlOsZrey6zB9aIe6N7xGcO8ZwuPlA2IAaN4KVF6Q7QTO0ISr0RyeJ5EfSPE7u\r\nPaMIQJYFPDPrbzw87Vv22PfUT4tmDODnvejSMsQiD5huVTLPA2GPO90HmC9s\r\nPAgOPiyXBsTnj9K1taxkeJS0C+9dpAWpbHNnxXCsLi1HpoF+ITalNHD5Oiun\r\nQGCnZHG59c3nI/wy5pT6YRWi1RK4ysf9YG13EasBttp0P2rYboWLarJwMgk/\r\nmV/6GJgEAo6tAntN4x+Qtyb+hA9i9ut0oqQ=\r\n=S5/F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"12696a9697d0bd3ab65fb39b782374b1018b5f5e","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^21.1.1","eslint":"^8.36.0","rollup":"^3.19.1","vitest":"^0.28.5","@vitest/coverage-c8":"^0.28.5","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.3_1679467008032_0.8185918800248233","host":"s3://npm-registry-packages"}},"2.0.4":{"name":"fe-fwk","version":"2.0.4","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.4","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"59a669debf86e17ccaa2f95e9c9a31bba2c51bea","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.4.tgz","fileCount":3,"integrity":"sha512-cdg87Wejd1IvV1BkHDbjxcBEHc9YnOVTp6dKk1e62tuSzqeEA2ogvaqhVC2IwohsTEBUc2Rfm5HEUZm3CKoa8g==","signatures":[{"sig":"MEYCIQDnoXHaFb9UkVHoWtNrhxDZvR1XJAqSZFRQXW/B892XhgIhALftzlD24PEtW3rUFLoISj/65GD3yySZLUqAxfJHykwv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIUOhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6oRAAla2bzqOXWGv9rD3RgvEC9Otpux2b4ad2LYKn0g8cIxeaCJBo\r\naITT/FqeUXhnNDX9+9IgvkQD8yUZh6oQirWvGGUvrowvPz/Vj/l73IMy6Ceu\r\nHiNNjKo0zRjNFnVZrA4Va+qrYkxZdd4MnHfIjx581LFw0vvHrMEo/hkOlbZS\r\nHCU9WluqtK3TdIeVcBco/ysNZBopLcyG+a/VA++OpjF7Z7PbAYblONnHf58h\r\nE9onaOeukueLmMSCngUYTcQCHbPgJzAuhttT0ZtWrEFOCV/n6LrkB4xMbp0G\r\nJ0kJOqiHPorkP6AH7jfwWc6sHUULwYea/DsLw4R11s4mIyrwBPN62iiOUpOu\r\nyFuKIsmEOE+lFgDS1mXvMh8xSbwNFPJ/XzOfrHMkCrwIHB9EnQKF+fBnNn6f\r\n5E9lR9G8qThHSQe4LDtlGpfOz+r919tXZqBiGWPzUr5W8Fk6WLOQE8owavzr\r\nDrR0FOMxdyW769/Rq2bPqBsNsl6wCYEoMSTxCU1JmagHBsjdjpDEZCXho3hu\r\n6H5TPFfVD+jURO5r73xOWJFbczObF1n+33QiL+k8kLD0onhrt2FwPlab6pBy\r\n5ZRVqwgpxOb3q/Fh+4ndln5E2CIjFkWX0pk3uB8q4QuFgQ6UzyM6mmhbztwY\r\n/4sOTF6im6SN5JeT8qAp8BRJGZS/dEvi8Zo=\r\n=mN5z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"255943d2a1e23c1e0472f9a9e284b007f5f91755","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^21.1.1","eslint":"^8.36.0","rollup":"^3.20.2","vitest":"^0.28.5","@vitest/coverage-c8":"^0.28.5","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.4_1679901601502_0.793471892014648","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"fe-fwk","version":"1.0.8","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@1.0.8","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"d5e797a06ed40c6f44f42ae9aa9366ef79d9086e","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-1.0.8.tgz","fileCount":3,"integrity":"sha512-UeSO3uYPImogyeiUdz7sCwGpBADJsE9Wy7eLrp3xB6T8YDGEAoZeqjwrt4z2eBPeJ+4YbkiJ30F8LR4OikzpSA==","signatures":[{"sig":"MEUCIHBf0qFlhZZykMZtXzVhH4tDMibYjFZfmRF+7jjVMZm8AiEAq8N5xTzyr2gfirjWUaxn1uoIsp1IZ2YkAS81kqmTWng=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkI+QZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbsQ/9EuLH6pkyLC7hrgBKSSCogknvqV1WxoK4mFtyXuXIa4OV8arl\r\nrd5LsPFnyn5a+mW1oKQr3eNbgjZfnILngn3fqfmRTOJLIT0vqRwVN+VwLcCt\r\ngGoBDR0aUaZ+f41BHnnB/k2lS7DQfv5dP4HY+KP4kBUmN/mWiuNBMpGQHt81\r\nV+Go0alK9fa48qUNVWtTstTNxas1M8kWiVcd6F7u7MSnoO+Jo3qUQKeLxCib\r\nauRjwsfvXK1Kvf9ASJIzJm0sHAQfVgE3LcOfFBWhhzzv8fBiWmw1zZOv00Ym\r\nCpOO6UNqX+tct0oNnRmlWmAmqvHvIbSRNpDhHtvAwXqNaDExsr083kQ4uV4k\r\n4aMdU5PYXpr4lFpZSz2CxW2pG7mUQDnN4lYNXbH2WpAo/hc30Jy+aWoVNy/9\r\nSJMI1tpGZN+RIa4rmZr70JibDIGwagMEq57PBW85iPbaRv0WCWem5IsrgUIO\r\n56tAbXtpJioJs6spErwtlaowdH3oyLNwyIIPwAJ3nAZ3E/AMh0e5kZy1zX14\r\nBMscOQOJ4pO25V5HqoddrjC0ZH/aHh9niXNmeXye1dzF1OgAznJT8qzcSMh/\r\n8u0qC/n1XaF11MUKlPQ9CfmJL2Y0ZnPZ9fnVKh8KvjwaL4XUOjz4fIVWTN1o\r\noKO/Doz1zTffU4YgvGKMAGj305QziExeDds=\r\n=FRgI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/fe-fwk.js","gitHead":"f25e24e1062e6798c4ec3a079f6d21436e457cbf","scripts":{"lint":"eslint src","test":"vitest","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^21.1.0","eslint":"^8.35.0","rollup":"^3.18.0","vitest":"^0.28.5","@vitest/coverage-c8":"^0.28.5","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_1.0.8_1680073752850_0.6239614606529953","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"fe-fwk","version":"3.0.0","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.0","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"be849bd74516ddf0fedf47e5cd0514c4d64ac13a","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.0.tgz","fileCount":3,"integrity":"sha512-jfGZlIxqoeiZwLM9G2PN64xKAZgqfCw3AZJLBSq3Mff6l3W3Xvs/o9Y37fyhK0KTprbcuzfFuCmALSKEu7qxQA==","signatures":[{"sig":"MEQCIH0S4yp//GiafJVVM8qWd8M9fUrj6XMTSMLKJKOhPI/vAiAzOAjTvdK6t810ohIz6k2P05PCtk7UdkUMbtspB8PPJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10104},"main":"dist/fe-fwk.js","gitHead":"d8f0bc123d2ca39e545e6a8411e47c013b8b70aa","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.40.0","rollup":"^3.21.5","vitest":"^0.31.0","@vitest/coverage-c8":"^0.31.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.0_1683969923303_0.3786894893402859","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"fe-fwk","version":"3.0.1","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.1","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"4d796a4221fed46e22fb2b035c959c71be3e269b","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.1.tgz","fileCount":3,"integrity":"sha512-ArrBYQv+KdgztRuq9naQUcOEyeFfQ5zUKQE8byVXT6yTLWbdF20jFUYu8FS9kAjfycMpcn+cGZadnNt0Ut7NMA==","signatures":[{"sig":"MEQCIFsP4pjfT7vHcJpABMjbDMJqmYhtLon0dt3lC8sO7yaoAiAfd+u9vSerq5HvzKzr7hx2TAqYOwJ2UckETpkEsQpU1Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27775},"main":"dist/fe-fwk.js","gitHead":"5f062d49d0dc2327ffadc9f28a54fb42a2d549ba","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.40.0","rollup":"^3.21.5","vitest":"^0.31.0","@vitest/coverage-c8":"^0.31.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.1_1683971254244_0.8654374439566836","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"fe-fwk","version":"3.0.2","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.2","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"a93fbae4bdfaec5364c03a0f347815fbb6bf0178","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.2.tgz","fileCount":3,"integrity":"sha512-fim/+nnTUMax3s6boWLheAIqLXJQhLXTkk298fcFuMyhXaXF4YLRBbhOGY75Wk5jwO0+Ure+lA8NjxpvYerjEw==","signatures":[{"sig":"MEYCIQCfjIIUePvVGmRzpApGZXhxoKdBwR5kV12KjSkniCuZUgIhAPwUM9vxN/hCs/nyDFzU6bF1zSzp9rEEq5ChdkRozHJ9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28517},"main":"dist/fe-fwk.js","gitHead":"cb1bcd2211ca79c3da8a8aed55811e1622ae33c1","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.40.0","rollup":"^3.21.5","vitest":"^0.31.0","@vitest/coverage-c8":"^0.31.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.2_1684133570789_0.4536666546445085","host":"s3://npm-registry-packages"}},"3.0.3":{"name":"fe-fwk","version":"3.0.3","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.3","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"4f398182edb12d0955456e5180049a20c188d8d1","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.3.tgz","fileCount":3,"integrity":"sha512-Y6jTMSZopGnW1wSWT1ZtSMV/Qt/n2GgaDxhW2kKWKO6FJSGGBVjdSSA8NHOzgZeFK69GzDzsxcQx8Seyy5KPOA==","signatures":[{"sig":"MEQCIDiR4xzt9NaYtXbMXh0sQqm7ovTuR9y08PRFRQ6Wd0GPAiB0q0xxLWHGYsUC+bNVokB+3f/UN/vxWFwKwrLw3hONjA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28765},"main":"dist/fe-fwk.js","gitHead":"0acb9ae2548c49ffeab049a2f83e7448bb8fceb9","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.40.0","rollup":"^3.21.7","vitest":"^0.31.0","@vitest/coverage-c8":"^0.31.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.3_1684346892812_0.6080930513990923","host":"s3://npm-registry-packages"}},"3.0.4":{"name":"fe-fwk","version":"3.0.4","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.4","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"d26dc5933a0277cad429a106f92b1cf8ead7b530","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.4.tgz","fileCount":3,"integrity":"sha512-PcswmRso16NZXJDSQq7k0/YgAPjzILrHM+EK1c8Bxx2N4Xy/7Ecc6QguB5NOFFdc99xY/5sdrYgxKh+/QvJNig==","signatures":[{"sig":"MEYCIQCUdIyuJ50zi6qE3RNo4NvDkeGXetVLLAwFvy5juAH+VQIhAP7tiHQoHBOwOaPifPBY5rQ5c8QtoE1k6e/Q5jc3XGBN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28770},"main":"dist/fe-fwk.js","gitHead":"8d80c6894d284065d57eb8afe2aa11056e3d525f","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.40.0","rollup":"^3.21.7","vitest":"^0.31.0","@vitest/coverage-c8":"^0.31.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.4_1684392358394_0.3567248843989421","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"fe-fwk","version":"2.0.5","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.5","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"f86acd2f11626b0aa420e7e3e37124b8d8a524c5","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.5.tgz","fileCount":3,"integrity":"sha512-/7wgQzqPBxJdXcSIX+7peKI3X+j513IGI4AN+81y+LgaBfa8qEO65xP1RfrRXpOLwXWq4x7WHTaKbaGsUq/BwQ==","signatures":[{"sig":"MEUCIQDsnFV96q14v/z0aJikWJ8jVYtCbbEhlviH5dPKRqUujQIgK7RwIhDbVVDBvqFMV15XlcPpsS2x67IIhth4DHFihjQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18018},"main":"dist/fe-fwk.js","gitHead":"da8419f4e1f5ee5460c0072e056cf79161212b21","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.41.0","rollup":"^3.23.0","vitest":"^0.31.1","@vitest/coverage-c8":"^0.31.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.5_1684866420681_0.8024628893567687","host":"s3://npm-registry-packages"}},"3.0.5":{"name":"fe-fwk","version":"3.0.5","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.5","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"9f2689caab73c3aedf53e0a7c9ee9e1afc2a0f8f","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.5.tgz","fileCount":3,"integrity":"sha512-Oj8zWK+7hdZ4RHUarAALEKB/jKp9ZQ35F1qCY1pWQqPNi26dVIZv1mfuO7OzKchhxBoTN8/SxTlhBRxIleFOgQ==","signatures":[{"sig":"MEUCIG4XjNK67i69+qUhjA1opgkinENhpxq2pFLshN2uU4IeAiEA4AXbTIgM3S/EgWzNFFXuOZvkcwgkj4Zh1OUIZROWbcc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28949},"main":"dist/fe-fwk.js","gitHead":"e700787f6f650b6dc77409987a5d404a5c85893e","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.41.0","rollup":"^3.23.0","vitest":"^0.31.1","@vitest/coverage-c8":"^0.31.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.5_1684867584035_0.8838995874685176","host":"s3://npm-registry-packages"}},"3.0.6":{"name":"fe-fwk","version":"3.0.6","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.6","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"386dddc63dd0899b991bf2e4159a6d7f737d946b","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.6.tgz","fileCount":3,"integrity":"sha512-A4zzIhkNP5BFlsNgEdzM9CyJGdRwi2i6ricgKlB+vZUyAn80A2PirKEm0EwmyzhNJFrgJPxh0rrhRGAUd2LKSQ==","signatures":[{"sig":"MEUCIEi1Bp8Urm9y7i2Y5yQr/CwFkO+dbEBaKoufiGaO+iaIAiEA5JW6Q6jFUUA9hH0Lv1Eh7cjwTNQVGtbSDoNaXNkXNzc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28847},"main":"dist/fe-fwk.js","gitHead":"9599f1db785404e3a55d141005f09829d4351121","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.41.0","rollup":"^3.23.0","vitest":"^0.31.1","@vitest/coverage-c8":"^0.31.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.6_1685005328172_0.411330982338856","host":"s3://npm-registry-packages"}},"3.0.7":{"name":"fe-fwk","version":"3.0.7","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.7","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"b915968a690743487f26ae2bdc64a55620977762","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.7.tgz","fileCount":3,"integrity":"sha512-kvkJXlZH42enqytvHi1PXePSYdTcJKDJyrolSaA5m4P75IwVIR3yt4cgp7TjR3o/+Q2l5RD9MSQM5Ih8s7tywQ==","signatures":[{"sig":"MEUCIC2sknRfnBem2EGHadbkOBwieMRaIrIoCVhhiFU1F7zJAiEAkhG8NjX7N53ZY8FolbzfBGqmb5QFZMJLC3SQ/6bOx5s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28995},"main":"dist/fe-fwk.js","gitHead":"4b1ff9b0ee2dde7230e28ac04be30748a174c2c6","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.41.0","rollup":"^3.23.0","vitest":"^0.31.1","@vitest/coverage-c8":"^0.31.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.7_1685025409638_0.9696625445583094","host":"s3://npm-registry-packages"}},"2.0.6":{"name":"fe-fwk","version":"2.0.6","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.6","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"7efb0676b120a8a59151fbe8d2bbd6531ff29b73","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.6.tgz","fileCount":3,"integrity":"sha512-mzXx8BUcMgtazB7MYJ+Z4FxE/UomszvHI2lihrlhldqvIjmsLhtqpcqJXktWv/V34qfxHsesKmhYMtzlUKh4AA==","signatures":[{"sig":"MEUCIQCfG01u3MOQOisM0UZpCmhFEqifXrMLAJz0WHXe89N57gIgIbkgiFjEiEOFLB/mINp9QkNN+3y58LBNShyaDxQkd3c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18166},"main":"dist/fe-fwk.js","gitHead":"c4ae26fe757e6ad78911354d31741f6d838be342","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.40.0","rollup":"^3.21.5","vitest":"^0.31.0","@vitest/coverage-c8":"^0.31.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.6_1685031749718_0.7559497581800014","host":"s3://npm-registry-packages"}},"3.0.8":{"name":"fe-fwk","version":"3.0.8","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.8","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"23a049aab1d4a0a09cc392811ed5b41a6ebdcb05","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.8.tgz","fileCount":3,"integrity":"sha512-9/1I+aRsXPPuPRjzgrb6gNPuOH7KtrJpowKApNPPxWtpZYAl06EzB/YSt/lLn1b5esQDBuonm2ifbZnfMnayBw==","signatures":[{"sig":"MEQCIGZqnZbVDyxfiHqyuT8DPDFo5LUp73BhUyCkzWKf3M4KAiAEaInR50KclYD3TNhkDDAjI9j0jUiSlVNmqU93hnWgXg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31578},"main":"dist/fe-fwk.js","gitHead":"387184ccc09dee5bd9acf63687324fc1da41ece4","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.0.0","eslint":"^8.41.0","rollup":"^3.23.0","vitest":"^0.31.1","@vitest/coverage-c8":"^0.31.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.8_1685684589991_0.77039906723452","host":"s3://npm-registry-packages"}},"2.0.7":{"name":"fe-fwk","version":"2.0.7","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.7","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"f0ba4e6031a3f60e2dc19cbfd6cf5fa06be236a5","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.7.tgz","fileCount":3,"integrity":"sha512-asneaQ6bzAGGIiDxU29h2mqH9oi8GEk9wqOfkiBQKV8Uwy3wmliVp+GtUzrKeozk3/bzss4+o2etLt+/KgUzRw==","signatures":[{"sig":"MEUCIQDnhxlG11MWPu0oqHvGTTOuIa8TB1d0QKy+biLvzCxE4QIgXUa4Jmizi4nnqaEq4375Fo0fiYzFRAEkkiqaJ7u4j6A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18220},"main":"dist/fe-fwk.js","gitHead":"245e38fee2c345410737c25391b9004e6b75f17b","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.41.0","rollup":"^3.23.0","vitest":"^0.31.1","@vitest/coverage-c8":"^0.31.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.7_1685721121515_0.4784203507439213","host":"s3://npm-registry-packages"}},"3.0.9":{"name":"fe-fwk","version":"3.0.9","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.9","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"f920274642526f8d6e489b2cd8f5d1ea943743bd","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.9.tgz","fileCount":3,"integrity":"sha512-1xmJHLqev/gEnszt8ptskmCk7srEm24tbgzlDYT6Oep9J2SQGPcHk9j6dB+mZTC3Xi8mqK3/VFxaXlb80fDn5g==","signatures":[{"sig":"MEUCIFxLLzddDUrR0+vvHDeSUjeh2crexvqv6LkSPCTIzMfFAiEAlReYxmTxq2Hup+J6VpC9FTyRdEPoQhdUUcb/xfZCsJc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31780},"main":"dist/fe-fwk.js","gitHead":"b8d9362e09ca038d2831cecc694a9650fc9c4119","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.23.1","vitest":"^0.31.4","@vitest/coverage-c8":"^0.31.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.9_1685945140043_0.13123514409579817","host":"s3://npm-registry-packages"}},"2.0.8":{"name":"fe-fwk","version":"2.0.8","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.8","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"489029a9c7ca21d874a0ea1ed6d701be44eeaa7a","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.8.tgz","fileCount":3,"integrity":"sha512-sU0aemNOho4ufyi3Q1AjXPPSv3XcB0FZ4B6G/RjUJCaWGWdkMET18QS3WX/U/400ckIRoS7tFx0yeKMdgJbGGw==","signatures":[{"sig":"MEQCIEFGfLEcRpbcW1gw3jXCqRmyxUHl1azq9PuUNUKxVy1hAiAELtexAZNtnsLEMCwwQYHKUAwFebap6woDV888NHNzdA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18371},"main":"dist/fe-fwk.js","gitHead":"90a3267a5c150c3edf8aecf64d2ae599ef50f815","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.23.1","vitest":"^0.31.4","@vitest/coverage-c8":"^0.31.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.8_1685962008642_0.4499313716301414","host":"s3://npm-registry-packages"}},"3.0.10":{"name":"fe-fwk","version":"3.0.10","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.10","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"3559cbfa3ee0bde0f86cea99cf614e6c055a8d19","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.10.tgz","fileCount":3,"integrity":"sha512-+B+/6odNd7beA6HEOC4ve/li1pNj9OX46CTMVlW2D+NHpTRBrbP0mb9NSzBe1Nm3vOL1OEuMgDTnYqwkoxNM4Q==","signatures":[{"sig":"MEUCIQCJu+M80Z6xTRJ7ntQ9B8ZXloDdZkm8ibAVGrVDPPE/YgIgVinh+/4lruhyHc7w68pkvvNA5wouWxcg56mm99KgoGg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31882},"main":"dist/fe-fwk.js","gitHead":"84b0ddacff370245ad311df9787d0af9659968cb","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.23.1","vitest":"^0.31.4","@vitest/coverage-c8":"^0.31.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.10_1685988137831_0.6790564407654389","host":"s3://npm-registry-packages"}},"3.0.11":{"name":"fe-fwk","version":"3.0.11","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.11","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"2fcaae047e29e5dac887d46e6b03ea78ad36d469","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.11.tgz","fileCount":3,"integrity":"sha512-yU+6ezMmLksSQWaT2zVrDnBqjwz+s0o8JObI2SdmE6/nSlYxL5IzCafziKy7LOdeO1jZB67IMZvS8Iz8qTCk5w==","signatures":[{"sig":"MEUCIGpqTOv9v6D5B/s04eXNDPib2OSo5byCxYddNyujGJSEAiEAljfS3gX7AU+1YShFLxvGtcjHOux6yZ7/dLEiSU8tl2Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32118},"main":"dist/fe-fwk.js","gitHead":"0265c16ead379e8c92ee9235e491125812dc3d26","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.25.1","vitest":"^0.32.0","@vitest/coverage-v8":"^0.32.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.11_1686811477443_0.10217302195384814","host":"s3://npm-registry-packages"}},"3.0.12":{"name":"fe-fwk","version":"3.0.12","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.12","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"1efd76c20c63d89e2fe86928f343a01402159016","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.12.tgz","fileCount":3,"integrity":"sha512-ZVfLI7eYYy98f5FC8i3lPG42Nczu5q2o29fYkybkL3gXR5NAiBnRLchK3A7VQrzKG1+dliWIKQmxTQEt0abzDQ==","signatures":[{"sig":"MEUCIQCZL2n+qeu0Ctlj2LtVG7CaKjOjVJe4+JuBQeMmmbzoAwIgJcmlDGUQ/a4i2aolf/8BfEZcKCy2QvdW8OWC3mhZA3c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33420},"main":"dist/fe-fwk.js","gitHead":"f3af647e7ec7b425144d6042fd5a463167e4b542","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.25.1","vitest":"^0.32.0","@vitest/coverage-v8":"^0.32.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.1","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.12_1686811811587_0.037341112563019196","host":"s3://npm-registry-packages"}},"3.0.13":{"name":"fe-fwk","version":"3.0.13","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.13","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"1854939d1739b390f8bfa2dba732c4e865dba0c2","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.13.tgz","fileCount":3,"integrity":"sha512-sFceaEPP2MPHzFbBBm2KHIGZMytQV+fUq3qnRBtpbn7KOGFgbM3WJH4YhuITpd84C/KLsKBR8RoPUQbI9ep8YQ==","signatures":[{"sig":"MEUCIGxULo8STnJpDNNTCFLgkXR4Sk+Xjl5b4PyUwYlrg9JVAiEA4ERgQwadKIsVSyK1ktjPGJ3I6Cmt8sYkQjixeQidgJQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33406},"main":"dist/fe-fwk.js","gitHead":"c54d7254bfcd39384d29d0aab48bb2781ead18ea","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.25.1","vitest":"^0.32.0","@vitest/coverage-v8":"^0.32.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.1","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.13_1687846741799_0.9714122888378873","host":"s3://npm-registry-packages"}},"3.0.14":{"name":"fe-fwk","version":"3.0.14","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.14","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"9636db7bf6d9b1ca506264d5a863a2f91db1b084","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.14.tgz","fileCount":3,"integrity":"sha512-dGtNZGjm+zBCIs44AxCOwqXXx2+qgEaoQ6xOhgNr72VQwZzgL/eivOWsSrew7qXp4IHMn2ISun2q+UZrzDiLJw==","signatures":[{"sig":"MEYCIQCt/qN8SWtaEJvz/yFES9yIOwx6fLGknzUNaPcE3a/NPgIhAITfmJY6bCwc3C+gbCpFeMVXDcRsFx/QBHOSO+Q258L7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33483},"main":"dist/fe-fwk.js","gitHead":"429a1775894169ec466cbe160b2f755729f09e68","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.25.1","vitest":"^0.32.0","@vitest/coverage-v8":"^0.32.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.1","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.14_1689744658604_0.4061120857842535","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"fe-fwk","version":"4.0.0","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.0","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"d0085011b6a14469dd70b730f9e357a5ee204e25","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.0.tgz","fileCount":3,"integrity":"sha512-acptqRRGdyiBs6sYkZyxGIS04w3JRiSPk/by7WiL0kZKRqgMFwqrFtr1jluKi2bl5CSfRLta1bO0fPtTukvb0w==","signatures":[{"sig":"MEUCIQDY2WITr2fAV+MHPY/goJpzQMAppuY/2FOJg6Rxtqjs5wIgAlBUXH2Un4sxheX0LIhb53YZN1c+dx8M7HxMvnCe/os=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34538},"main":"dist/fe-fwk.js","gitHead":"43c39ba016587fc00e67a4eaffb30c8d8efd8228","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.45.0","rollup":"^3.26.2","vitest":"^0.33.0","@vitest/coverage-v8":"^0.33.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.1","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.0_1689834199704_0.5965177880738837","host":"s3://npm-registry-packages"}},"3.0.15":{"name":"fe-fwk","version":"3.0.15","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.15","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"36a1e3a50f42c7c27d121c36590544bae0a08919","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.15.tgz","fileCount":3,"integrity":"sha512-U/WCVmIKdMpX6YpcmPARk5tf5auKGwIi1qXiySHKMSEhFlShKAi6k2an808MVzNSbojdNbF02do7T9mfogLNIQ==","signatures":[{"sig":"MEUCID7qd2w/9Y6qrXIEmO5iUhflu2lJm7sPDN4RY6fkGiIaAiEA8jjmjwYYFNL9dycrBu7jfiaZ1GYM3ur9jyjpVoYLhqo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33520},"main":"dist/fe-fwk.js","gitHead":"95594af89209a2ebf1732b60bc00266f23bcd3c0","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.46.0","rollup":"^3.27.2","vitest":"^0.34.1","@vitest/coverage-v8":"^0.33.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.15_1691386381106_0.38745896405880287","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"fe-fwk","version":"4.0.1","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.1","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"0becb45d5e4cee26bd35d0434cfb3e8a2ea1b83c","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.1.tgz","fileCount":3,"integrity":"sha512-PxfvrkCHlUuMyHv0B3aWY1U5OpwnIssNVWr9np+d7q0kRAqGJsXWSQwzOZLk/Spu9jyO6s85Qgfmdvne86vwiw==","signatures":[{"sig":"MEYCIQD3MMiB7tjgRxJ5HJIATZ4vBvs45630904BfAt4LfKlFQIhAN+12k55jwztpqIKD7bJvcvVhKUou3do/qwPVVRiN3Al","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34893},"main":"dist/fe-fwk.js","gitHead":"db5874a77d995a05342abcbabda50e5eb33e8234","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.46.0","rollup":"^3.27.2","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.1_1691387934540_0.30209630823973055","host":"s3://npm-registry-packages"}},"4.0.2":{"name":"fe-fwk","version":"4.0.2","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.2","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"5304a5d95b5c73bb390126a0d37441d10ba4ed8f","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.2.tgz","fileCount":3,"integrity":"sha512-j/PNQbm1NSGsvsPvqsbdjl56p67B7f1Rx1QhtomNk1AD7UK9DWBGkQvqZfmb+YqybTg5GbdCKbrckGYOzgoAfA==","signatures":[{"sig":"MEUCIQCgMJlpTXblGoCgN9G6aLgcvxT4KZUG/PAYxoq5KJ6ZfgIgAQKW3heIKQs89XZFPB1IG3wWFIWUOTtTPfc/YcH0IUs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35392},"main":"dist/fe-fwk.js","gitHead":"4ca17a999ead0b9b3d3f07a6eca3fce6820c846f","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.46.0","rollup":"^3.27.2","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.2_1691560784978_0.3869451421265204","host":"s3://npm-registry-packages"}},"4.0.3":{"name":"fe-fwk","version":"4.0.3","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.3","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"f1e7b44dd571ec27089876a8c54bafadd394216e","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.3.tgz","fileCount":3,"integrity":"sha512-VQ3QcMr3Gim1DfOJEw68sXbvPOTUmkgAII1KoLfJl7XxMA1l7GSm/epQzQMcTPwPK3OwrdmGtim2VvLw4kfaHw==","signatures":[{"sig":"MEYCIQCUoXyOSj9h9HbbUDzHf1qkUWqozNPL8qZAvCS8lMKVKQIhAKb5NwkxQguhywgS92x0HiCJPWF8TN4yPMLYH31WHYBd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35513},"main":"dist/fe-fwk.js","gitHead":"918a5cb7bb3c68e3bb9e2f93ddc523de0082f8b6","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.46.0","rollup":"^3.27.2","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.3_1691561713556_0.8295326845766584","host":"s3://npm-registry-packages"}},"4.0.4":{"name":"fe-fwk","version":"4.0.4","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.4","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"67b213e95e727b4ddc2b29b5502d16dd521b4ba8","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.4.tgz","fileCount":3,"integrity":"sha512-pu7gbs3a30ubiln6Lb1kQEP/jUAbxjDDBRHm7DCVK0qF+HQucCmSzDYk6y4ZN/0xc2Qc+KMX6bkZzSYr1c7oqw==","signatures":[{"sig":"MEUCIQD+8XxcDCoMK5swXB4iC2Q7JTCIxCU6Cu1+TFPPO1/GZwIgZih1WfTHjgW1vYtRkcC6AyuNfw+GiZl4j7vukVC2o+Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35260},"main":"dist/fe-fwk.js","gitHead":"edc7a48e53aae6359a611ed8216bebf740ee89b7","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.46.0","rollup":"^3.27.2","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.4_1691645718080_0.7341763051847028","host":"s3://npm-registry-packages"}},"4.0.5":{"name":"fe-fwk","version":"4.0.5","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.5","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"a069d54af1f8b4466989cd650e3fd80f400e8ce8","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.5.tgz","fileCount":3,"integrity":"sha512-esGXEPK8HTfeCsD5amaZIMVdP6VVtz9jviS1SMIgV16WxDjDN0zdAhcf/tSKzf6OMLMinlCn26uH6/Hl4Hy6OQ==","signatures":[{"sig":"MEYCIQD/VE+q5BiYgmy1P7QGj6kr8GncOV1zv6vvWQAELCtc0gIhAPFk1KJYH2AHVAqJjkl8GgJLbw0tZsNWBSA6jt61bNx2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35227},"main":"dist/fe-fwk.js","gitHead":"dcc354da7c98914acfaf8b7e98afd67e05e28149","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.46.0","rollup":"^3.27.2","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.5_1691735299258_0.8473006282246429","host":"s3://npm-registry-packages"}},"4.0.6":{"name":"fe-fwk","version":"4.0.6","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.6","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"fc6a2cacdf05eccda1f10265796510ce7eb29f3b","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.6.tgz","fileCount":3,"integrity":"sha512-lidPTQPkFhWdhFLpwcTffDXrholEHmuBaFiltQeKs38nBCnh/xdExFusi3gW1TymjhvNmq3DXmH8v8J4HfiPkQ==","signatures":[{"sig":"MEQCIGDs8KS+tFrQkB/2BkG8Nn48O8E88FhdgTvZoxLeGhm6AiAr3AKMZGWUxP2iEQhS2qV2vSPSy+pRLiaRB9wXrWoHhw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35448},"main":"dist/fe-fwk.js","gitHead":"8d5643baf7a36cc3666f8d76535a7bfc08250d85","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.46.0","rollup":"^3.27.2","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.3","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.6_1691991240544_0.8901271719499109","host":"s3://npm-registry-packages"}},"3.0.16":{"name":"fe-fwk","version":"3.0.16","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.16","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"87a75dc7571e772d70c0efa33c97e6c0c5e9e531","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.16.tgz","fileCount":3,"integrity":"sha512-Iix9jtfzSe5pyH0ww4MUtkoNMWoFmh2cRLx06C7K9vzzm/vofDv/pXerWgOHdlK9M/kbZLl97o4Ugm6ummR9BQ==","signatures":[{"sig":"MEUCIHl4CHNvn5+TKTVfCfK6qFQe7Dzaq+jzdbfAJtINvCd0AiEAprJXtiHm7rErJm20vLgXI+CKTH6XL1C0IQNu7/Pmuy4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33500},"main":"dist/fe-fwk.js","gitHead":"39b75791ab05a7deddfbf1fe4c08f3643c0c9531","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"9.2.0","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.13.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.16_1692028743244_0.2690890727935986","host":"s3://npm-registry-packages"}},"4.0.7":{"name":"fe-fwk","version":"4.0.7","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.7","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"d7fda40a7a103316e397e272385ed6ebdd5be89b","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.7.tgz","fileCount":3,"integrity":"sha512-SDumxA1vdJjMkleVSPTYM5YiOUK0K4XJjYA1Epz2aprU//65zQuM51Z4VnRi/dr/bKyKF3tgozsA/tmbE5lf7g==","signatures":[{"sig":"MEUCIQCUpDBcroCFcJmqLJjwdtZQkM+4vvSQJyVOeoP0tr7foQIgFKKnVkYHKWfkvxkQIedHuU6YdHtuBRRX/YsisMvcDsY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35428},"main":"dist/fe-fwk.js","gitHead":"34da377afcb9deffb336f024fd58b85964a58489","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"9.2.0","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.13.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.7_1692028784542_0.9997025185347563","host":"s3://npm-registry-packages"}},"4.0.8":{"name":"fe-fwk","version":"4.0.8","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.8","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"ed70759b164c0f2a7a38488fe39c9d5d8c2740ed","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.8.tgz","fileCount":3,"integrity":"sha512-gyBsQ5/ERywsY5FMmpdY+VejT/1RGaOvqucrT7hpZ/xydfGRA/1FscO0DH1GKEuS1gRRVl4jgpOU9JcgvvRpQQ==","signatures":[{"sig":"MEUCIQCTtr4q7prcrXXafT1nCv+r5vIt7RNjmiEp4Ovo6O6AewIgZH2RJHACvXM7B7IWyxUNLB4LBTBBF2Kx27lkbUEYByo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35436},"main":"dist/fe-fwk.js","gitHead":"43385e7f75e7a69db60017e7fdab7338f1b3fd75","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.8_1692088400195_0.940716164455051","host":"s3://npm-registry-packages"}},"4.0.9":{"name":"fe-fwk","version":"4.0.9","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.9","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"79bf25f2d4049f0fb8c4105ca2a6748afe685029","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.9.tgz","fileCount":3,"integrity":"sha512-Dyw9ZzudzVHmMsQu6wBuH3V05qcLJJ6xc//MfHRzXV+O7FsPrMgP30NKesFoqd7xn7D61F2SzoNpdvDUlCL3Iw==","signatures":[{"sig":"MEYCIQC18Ihp2hJnE9Cfc2oIL4tqO4XUTRqzBcc0YPzcWNs1IQIhAK7WNFghHgXGQAq4BvThYBcwQQBB5ZU4Qy6o1B1xRSl7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35378},"main":"dist/fe-fwk.js","gitHead":"a1550b60854796cc6e8df4614a41bd9337746e16","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.9_1692182716993_0.47447312571486244","host":"s3://npm-registry-packages"}},"3.0.17":{"name":"fe-fwk","version":"3.0.17","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.17","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"acd8ce931bc9800ec321dd6e341983538c601238","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.17.tgz","fileCount":3,"integrity":"sha512-JWazGtCD5fcrrxPg+4RnEUG1ngZwjPoruUUpKkGCkpEE1UCOFDs90scI4ZO83lfJ+qTVpXG7uRvQKTChatVZqg==","signatures":[{"sig":"MEYCIQCyKVkQGA/WSFipMF/zRgtks8Tgmv5NJ6v2Q6MDilNTkAIhAM2YiQIEG966puO/3HPnD6RUXidVy2f8tKvmCC+k8oJV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33386},"main":"dist/fe-fwk.js","gitHead":"83af0ad175a85f9c0b4fdb155e2e8ce9518ad792","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.17_1692199417008_0.5639548475973031","host":"s3://npm-registry-packages"}},"4.0.10":{"name":"fe-fwk","version":"4.0.10","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.10","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"bb14ebc2eb4d37de6cbb1221acb30fcabd8a4130","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.10.tgz","fileCount":3,"integrity":"sha512-YkKvYbjCa6FZaTxcFogS3SjqOqMlbh2qMJ5wNP9GtaAADsot2DXbOZ68kL2slv+NOcZCRfWCk25vw092QH3Yaw==","signatures":[{"sig":"MEUCIDeNxJmSI3qRyBSSN7Kk18U9jO+99UrnqVY9O27UdvRlAiEA6P2MpBBLtmG/iP64MXxwn+N82YSqNLhitZA8uhhBBn0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35265},"main":"dist/fe-fwk.js","gitHead":"b808974e0bc8d429b5f21e00d8314ca1784a9701","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.10_1692199428371_0.7542533940101004","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"fe-fwk","version":"5.0.0","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@5.0.0","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"41032f2d42faf866baaa7dfe165dfbb106cd43b3","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-5.0.0.tgz","fileCount":3,"integrity":"sha512-lD1Pf+jEstdWZ6/+mSQLxyG3OiKiUfYsesFwTuPglarXwfxxuJYu1PJX/zMmkUrstBjzFgal4oMYV6RtOxbFXQ==","signatures":[{"sig":"MEYCIQD08wYbtt71hop7xQv7OQgVW8HjHovaj8gIzpQ/+GNB6gIhAMqqkuzWel2s7lfD1eHySxnayirjnbq/wqnB4T0ESzjd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37614},"main":"dist/fe-fwk.js","gitHead":"3cc182e8f046d530df3249dc291eab8021857692","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.49.0","rollup":"^3.29.1","vitest":"^0.34.4","@vitest/coverage-v8":"^0.34.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.2.1"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_5.0.0_1694441554695_0.6249269079890731","host":"s3://npm-registry-packages"}},"5.0.1":{"name":"fe-fwk","version":"5.0.1","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@5.0.1","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"b220c5286198fb9292e06cba39d9ce77e17323a9","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-5.0.1.tgz","fileCount":3,"integrity":"sha512-JGvhpZ2xq1PRCj/cdgMBQ+GoqThLPhQRz1xfXPAzefHOJZEywDBlMw2/yXajYN75y3xTx7xLKhapvL5G2TjwYw==","signatures":[{"sig":"MEUCIHmHUi/bb/ShxY2Vhy0et8+/uI/erlKsoCOymiK08iKjAiEAiBrss67gDXTOigVCG+kNVel7cSJcmNrqj6/sDnG6z2c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37629},"main":"dist/fe-fwk.js","gitHead":"9a91acf405494932637ff631b3508fe4856f04e0","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.49.0","rollup":"^3.29.1","vitest":"^0.34.4","@vitest/coverage-v8":"^0.34.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.2.1"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_5.0.1_1694799474820_0.08264471438661203","host":"s3://npm-registry-packages"}},"5.0.2":{"name":"fe-fwk","version":"5.0.2","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@5.0.2","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"2b7c462d450258b975d103d853ff22e0448a28f2","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-5.0.2.tgz","fileCount":3,"integrity":"sha512-ZcyqEwuplmGI+7UIpqxtRV7C+2kB5525vrp6ecEHPlHaw/m2e+IJpdo65ytvC790k/TsDABuYVlk1C1CXbBoSw==","signatures":[{"sig":"MEUCIDTpgXFVUodmIM4XSJT+/Kg2tVPlNP8UNA8lSM+QGR9GAiEAkMGvKWyZoYN8zDh7MD2cxV3EB26Pu1soP3/2BXTXGEo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37866},"main":"dist/fe-fwk.js","gitHead":"7c3ed14f41de6c04071b5fd908b6db32a8247215","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.52.0","rollup":"^4.1.5","vitest":"^0.34.6","@vitest/coverage-v8":"^0.34.6","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_5.0.2_1699179871593_0.761118487037975","host":"s3://npm-registry-packages"}},"5.0.3":{"name":"fe-fwk","version":"5.0.3","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@5.0.3","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"aaf746d316c457130de2e498d9af02c6bc89c22a","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-5.0.3.tgz","fileCount":4,"integrity":"sha512-+cIJQiz+wB09obrdSiXj2VpoMTt44W0y/9KcP8L437mAKR/CnY0dPzkEIiGPi9b1B+fWem3VzRxHCQKe9NhDvw==","signatures":[{"sig":"MEUCIBgRxZXnWNzdZQtn0j0vKmJm7YvvjBty7BV7mCuJu3XXAiEAhzcfYJiqoaAqhVt7PSyHR9urTAcXut8/ewS9Wsmnizg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49588},"main":"dist/fe-fwk.js","module":"dist/fe-fwk.js","exports":"./dist/fe-fwk.js","gitHead":"9760e24ebb2b3a45718dee446d2579179469ef6b","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.52.0","rollup":"^4.1.5","vitest":"^0.34.6","@vitest/coverage-v8":"^0.34.6","@rollup/plugin-terser":"^0.4.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_5.0.3_1699698711204_0.12649841224510094","host":"s3://npm-registry-packages"}},"5.0.4":{"name":"fe-fwk","version":"5.0.4","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@5.0.4","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"bd999f27a63f9ab34026772f758046faa7536239","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-5.0.4.tgz","fileCount":4,"integrity":"sha512-GuNXBDsMznMHtan2igXJj/VTQRso000JqAFtr8Xy7Vf/lz8l4WvhBiVFKv0F/5lJ5ugMPshs1HD7Y9QOvv9PZw==","signatures":[{"sig":"MEUCIAOCQUmNLNd1MeL4lCfb3tQt6kQrwXkn7sdG5X07c3+mAiEAy1k/HTtoHGJEtWNpih8GPVXDfz+UfMx6CGK6pBJtWqw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49770},"main":"dist/fe-fwk.js","module":"dist/fe-fwk.js","exports":"./dist/fe-fwk.js","gitHead":"453ffe6a9d510d7bd45f6b7bd05fb34c637af25b","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"8.19.2","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"18.11.0","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.52.0","rollup":"^4.1.5","vitest":"^0.34.6","@vitest/coverage-v8":"^0.34.6","@rollup/plugin-terser":"^0.4.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_5.0.4_1699725817173_0.8289718694799073","host":"s3://npm-registry-packages"}},"2.0.9":{"name":"fe-fwk","version":"2.0.9","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@2.0.9","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"9e575dfab77201d454c6262208262273ce33575c","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-2.0.9.tgz","fileCount":3,"integrity":"sha512-Ehsi4ZHldnMn9eb2hOmTM2SLyH3c7mR6dvf6F2zCBBUXvRaSoHSt06FJTKNxRA/bJkPHID4f7GymqVWRlyyOOg==","signatures":[{"sig":"MEUCIGqWkW+6UwLXnvsPvbmMhDEmsn2HzHJ/k6FNtB//FHKzAiEAlc5QY15xeeNiRlBC+06AmZwD8LAU8pWxn9dBPWZYKq4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18696},"main":"dist/fe-fwk.js","gitHead":"d156ee94158de22039b01d377a8fb1aaa59ea162","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"10.2.4","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.42.0","rollup":"^3.23.1","vitest":"^0.31.4","@vitest/coverage-c8":"^0.31.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_2.0.9_1710314852141_0.9478783718836594","host":"s3://npm-registry-packages"}},"3.0.18":{"name":"fe-fwk","version":"3.0.18","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@3.0.18","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"6b055a90525e98846a3f259edd717a60b877ac3f","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-3.0.18.tgz","fileCount":3,"integrity":"sha512-swRNQaRCdoDOb3MMRabA3TR8t3Zgu6HWyv+lRhLSwZkP251XsSvb+wBHLFhM/R/bNTzqtk2/eLwuuccPT3xWGw==","signatures":[{"sig":"MEUCIQC7UKcdpJhD03OhNdLYSR3NCLJH77X05x0uDD7LUfNMXQIgf/V0C/q03HVckrHeTcpADZYKOdRy0GErsgrtuPBA8VQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33659},"main":"dist/fe-fwk.js","gitHead":"ef977e58ddb7b684923bd18d27f8397a7a715bc3","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"10.2.4","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.1","@vitest/coverage-v8":"^0.34.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_3.0.18_1710315623308_0.4280583782850338","host":"s3://npm-registry-packages"}},"4.0.11":{"name":"fe-fwk","version":"4.0.11","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@4.0.11","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"702569ab27d968763628574978ea973849dcc172","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-4.0.11.tgz","fileCount":3,"integrity":"sha512-7ZT65s5aYpyN0aU6M34vyLTJWqEaKudwxTJCfNbIik0xArChstJhsMrnX/Y/HzStulc+xEPbpU4lARqffKe+Tg==","signatures":[{"sig":"MEUCIQCIhtXNj4TOtgpo8+7Z3exyA3WkU9aE/sdQosnDpMzubwIgaoK8ktE9z5W9n1m+vzobsKO72L1+S7C/zYLbkGorvA4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35538},"main":"dist/fe-fwk.js","gitHead":"902908511f7867a9e17f466a971bbe7c4ae931df","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"10.2.4","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^22.1.0","eslint":"^8.47.0","rollup":"^3.28.0","vitest":"^0.34.2","@vitest/coverage-v8":"^0.34.2","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-node-resolve":"^15.2.0"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_4.0.11_1710315914791_0.4664553042849504","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"fe-fwk","version":"6.0.0","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@6.0.0","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"3f51e2ab546b8a6ea4d8f28505f74e4e2a2a8035","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-6.0.0.tgz","fileCount":4,"integrity":"sha512-VbHzY/gHgbNrSN5xHFlgtwswYi92LA3ftkxfEj4MNgb8+bQ25o724bjl4luoZIK5j2SYiQBo2Sa0ykMHAf0w5g==","signatures":[{"sig":"MEQCIGBbGeHwvdE6qRZUe2wxt22eI7G3hnQ+BIbD+SmO/L+QAiATKpD+MSlCFI85wQlHnPYCDdypZhQFi9gVgX42D5CWZg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64487},"main":"dist/fe-fwk.js","module":"dist/fe-fwk.js","exports":"./dist/fe-fwk.js","gitHead":"89ee5796f67b7f14464727b6ca8ec26dac40aac2","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"10.2.4","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.0.0","eslint":"^9.3.0","rollup":"^4.17.2","vitest":"^1.3.0","@vitest/coverage-v8":"^1.6.0","@rollup/plugin-terser":"^0.4.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_6.0.0_1716710912801_0.65687565085465","host":"s3://npm-registry-packages"}},"5.0.5":{"name":"fe-fwk","version":"5.0.5","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@5.0.5","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"bde128167ef60b9278d467635662dce5982a3c9f","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-5.0.5.tgz","fileCount":4,"integrity":"sha512-vvk4CJqzabY4bTSvKvOKrdiFXJoUBUff7hjxrTGXQdrn5j6CIlPoV7s7HtPcV2y60wO6N1C26V8rZKGiGW358w==","signatures":[{"sig":"MEQCIHurrk1dXg2MlI00/qY85x0uppnIIjM0RONtejXPpkuxAiADoza5cBg87hQKgKNc6FYP8P6ObgOxfyiU3KUAg71myw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51638},"main":"dist/fe-fwk.js","module":"dist/fe-fwk.js","exports":"./dist/fe-fwk.js","gitHead":"fc27e80536c3cdec206aa31d9c45240c21e5ad38","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"10.8.1","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.0","eslint":"^9.4.0","rollup":"^4.18.0","vitest":"^1.3.0","@vitest/coverage-v8":"^1.6.0","@rollup/plugin-terser":"^0.4.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^26.0.1","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_5.0.5_1717999428349_0.692021604537959","host":"s3://npm-registry-packages"}},"5.0.6":{"name":"fe-fwk","version":"5.0.6","keywords":["frontend","framework","book","learning","web","development"],"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","_id":"fe-fwk@5.0.6","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"dist":{"shasum":"05b242ed898937868901255e1aba0dbe3a881e92","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-5.0.6.tgz","fileCount":4,"integrity":"sha512-gXFUltH9Du/yCwmXLE9uTcFHQRbbHiBBqRT06HJW+nIucZbqH2kSTJ8WMOolqwH1SyQWTlWrtuyo48/IUVPHSA==","signatures":[{"sig":"MEUCIC9aj86mgxpadhwxog+VvDEknGMgkROd/WTY0n4/+aPBAiEA4UBRyv6O3P3x5Jh9/ubLJdMS3crdfk+5z29zCSfjXBE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51948},"main":"dist/fe-fwk.js","module":"dist/fe-fwk.js","exports":"./dist/fe-fwk.js","gitHead":"9b49a2fc99323a513e7f52c429886ff8bd16d8c4","scripts":{"lint":"eslint src","test":"vitest run","build":"rollup -c","prepack":"npm run build","lint:fix":"eslint src --fix","test:watch":"vitest watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"_npmVersion":"10.8.1","description":"A frontend framework to teach web developers how frontend frameworks work.","directories":{},"_nodeVersion":"20.11.1","dependencies":{"fast-deep-equal":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.0","eslint":"^9.7.0","rollup":"^4.18.1","vitest":"^2.0.2","@vitest/coverage-v8":"^2.0.2","@rollup/plugin-terser":"^0.4.4","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^26.0.1","@rollup/plugin-node-resolve":"^15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/fe-fwk_5.0.6_1721460559839_0.7320497464825431","host":"s3://npm-registry-packages"}},"6.0.1":{"name":"fe-fwk","version":"6.0.1","description":"A frontend framework to teach web developers how frontend frameworks work.","keywords":["frontend","framework","book","learning","web","development"],"exports":"./dist/fe-fwk.js","main":"dist/fe-fwk.js","module":"dist/fe-fwk.js","homepage":"http://mng.bz/aM2o","bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"scripts":{"build":"rollup -c","lint":"eslint src","lint:fix":"eslint src --fix","test":"vitest run","test:watch":"vitest watch","test:coverage":"vitest run --coverage","prepack":"npm run build"},"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","devDependencies":{"@rollup/plugin-commonjs":"^26.0.1","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","@vitest/coverage-v8":"^2.0.2","eslint":"^9.7.0","jsdom":"^24.1.0","rollup":"^4.18.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-filesize":"^10.0.0","vitest":"^2.0.2"},"dependencies":{"fast-deep-equal":"^3.1.3"},"_id":"fe-fwk@6.0.1","gitHead":"8ba1f234ad1f516500d053ebe5a9f0df8be0a760","_nodeVersion":"20.11.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-A3Dbbd8Ytexz1sLUY811tZSbF/id7j8FDSnNo+mzrKv4VfEQtSAAqYAxMwKsaVn+AEw+8a0WQukgIiEA/TUvyw==","shasum":"6ccb9eba71b0d904dd4860ef62780fd763841e83","tarball":"https://registry.npmjs.org/fe-fwk/-/fe-fwk-6.0.1.tgz","fileCount":4,"unpackedSize":66265,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLAU0sqkVpJLYyoZyFpOePU/du7bIHdsJKkgc4Jd2gEQIgeCpSdy7z5tSbN2B2hqJQZlneFa3m7mSU3ufeiYxl7C4="}]},"_npmUser":{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"},"directories":{},"maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fe-fwk_6.0.1_1721551116798_0.060841631902818216"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-04T21:50:18.226Z","modified":"2024-07-21T08:38:37.146Z","0.1.0":"2022-12-03T18:24:46.288Z","1.0.0":"2022-12-04T21:50:18.422Z","1.0.1":"2022-12-05T06:47:38.599Z","1.0.2":"2022-12-05T19:29:24.434Z","1.0.3":"2022-12-05T19:44:16.209Z","1.0.4":"2022-12-06T08:19:06.005Z","1.0.5":"2022-12-06T09:07:06.884Z","1.0.7":"2023-01-09T07:28:15.215Z","2.0.0":"2023-01-09T07:29:55.569Z","2.0.1":"2023-01-09T08:04:45.371Z","2.0.2":"2023-03-21T08:00:04.117Z","2.0.3":"2023-03-22T06:36:48.214Z","2.0.4":"2023-03-27T07:20:01.768Z","1.0.8":"2023-03-29T07:09:12.984Z","3.0.0":"2023-05-13T09:25:23.454Z","3.0.1":"2023-05-13T09:47:34.486Z","3.0.2":"2023-05-15T06:52:50.937Z","3.0.3":"2023-05-17T18:08:13.029Z","3.0.4":"2023-05-18T06:45:58.584Z","2.0.5":"2023-05-23T18:27:00.848Z","3.0.5":"2023-05-23T18:46:24.225Z","3.0.6":"2023-05-25T09:02:08.331Z","3.0.7":"2023-05-25T14:36:49.782Z","2.0.6":"2023-05-25T16:22:29.872Z","3.0.8":"2023-06-02T05:43:10.137Z","2.0.7":"2023-06-02T15:52:01.669Z","3.0.9":"2023-06-05T06:05:40.254Z","2.0.8":"2023-06-05T10:46:48.793Z","3.0.10":"2023-06-05T18:02:18.137Z","3.0.11":"2023-06-15T06:44:37.593Z","3.0.12":"2023-06-15T06:50:11.735Z","3.0.13":"2023-06-27T06:19:01.948Z","3.0.14":"2023-07-19T05:30:58.763Z","4.0.0":"2023-07-20T06:23:19.889Z","3.0.15":"2023-08-07T05:33:01.225Z","4.0.1":"2023-08-07T05:58:54.643Z","4.0.2":"2023-08-09T05:59:45.207Z","4.0.3":"2023-08-09T06:15:13.718Z","4.0.4":"2023-08-10T05:35:18.242Z","4.0.5":"2023-08-11T06:28:19.405Z","4.0.6":"2023-08-14T05:34:00.731Z","3.0.16":"2023-08-14T15:59:03.463Z","4.0.7":"2023-08-14T15:59:44.723Z","4.0.8":"2023-08-15T08:33:20.373Z","4.0.9":"2023-08-16T10:45:17.171Z","3.0.17":"2023-08-16T15:23:37.208Z","4.0.10":"2023-08-16T15:23:48.560Z","5.0.0":"2023-09-11T14:12:34.887Z","5.0.1":"2023-09-15T17:37:54.975Z","5.0.2":"2023-11-05T10:24:31.792Z","5.0.3":"2023-11-11T10:31:51.372Z","5.0.4":"2023-11-11T18:03:37.361Z","2.0.9":"2024-03-13T07:27:32.275Z","3.0.18":"2024-03-13T07:40:23.443Z","4.0.11":"2024-03-13T07:45:15.012Z","6.0.0":"2024-05-26T08:08:32.999Z","5.0.5":"2024-06-10T06:03:48.485Z","5.0.6":"2024-07-20T07:29:20.139Z","6.0.1":"2024-07-21T08:38:36.977Z"},"bugs":{"url":"https://github.com/angelsolaorbaiceta/fe-fwk-book/issues"},"author":{"name":"Angel Sola Orbaiceta"},"license":"MIT","homepage":"http://mng.bz/aM2o","keywords":["frontend","framework","book","learning","web","development"],"description":"A frontend framework to teach web developers how frontend frameworks work.","maintainers":[{"name":"angelsolaorbaiceta","email":"angelsolaorbaiceta@gmail.com"}],"readme":"# Fe-Fwk\n\n![fe-fwk](https://img.shields.io/badge/fe--fwk-book-blueviolet)\n\nCode for the book \"[Build a frontend framework from scratch](http://mng.bz/aM2o)\".\n\nThis framework **isn't intended for production use**.\nIts intention is to **teach you how frontend frameworks work** by building one yourself, from scratch.\n\n## [v1.0 — Chapter 6](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/ch6/packages/runtime)\n\n_See the example application in the [examples/ch06 folder](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/main/examples/ch06)_.\n\nTo checkout this version of the code:\n\n```bash\ngit checkout ch6\n```\n\nThis version of the framework introduces the concept of a _Virtual DOM_.\nIt implements the `h()`, `hString()` and `hFragment()` functions to create virtual nodes and the `mountDOM()` and `destroyDOM()` functions to turn the virtual DOM representing the view of the application into HTML elements in the browser.\n\nThe application instance, created using the `createApp()` function, holds all the state for the application, which can be changed by dispatching commands using an instance of a `Dispatcher`.\nEvery time a command is dispatched, the reducer subscribed to the command is run to update the state, and then, the entire view is destroyed and recreated from scratch.\nThis is done by registering the application's `renderApp()` function to run after each command is processed in the dispatcher.\n\n### Virtual DOM\n\nThe view of the application is represented by a virtual DOM tree.\nThe virtual DOM tree can be broken down into components, which are functions that return a virtual DOM tree.\nThere are three types of virtual DOM nodes:\n\n- `h()`: creates an element virtual DOM node.\n- `hString()`: creates a text virtual DOM node.\n- `hFragment()`: creates a fragment virtual DOM node. This is a special type of virtual DOM node that represents a list of virtual DOM nodes, but it doesn't create any HTML element in the DOM.\n\nThe `h()` function takes as input the following arguments:\n\n- `tag`: the tag name of the HTML element to create.\n- `props`: an object with the attributes and event handlers to set on the HTML element.\n- `children`: an array of virtual DOM nodes to append as children of the HTML element. A child of type string will be converted to a text virtual DOM node.\n\nHere's an example of how to use the `h()` function to create a form with an input and a button:\n\n```js\nh('form', { class: 'form' }, [\n  h('input', { type: 'text', value: 'Hello world!' }),\n  h('button', { type: 'submit' }, ['Submit']),\n])\n```\n\n### Defining components\n\nA component is a pure function that returns a virtual DOM tree.\nComponents get the state of the application, or a part of it, as input:\n\n```js\nfunction Counter(state) {\n  return h('p', { class: 'counter' }, [`Count: ${state.count}`])\n}\n```\n\nComponents can receive the `emit()` function as second argument.\nThis function can be used to dispatch commands to update the state of the application:\n\n```js\nfunction Counter(state, emit) {\n  return hFragment([\n    h('p', { class: 'counter' }, [`Count: ${state.count}`]),\n    h('button', { on: { click: () => emit('increment') } }, ['Increment']),\n  ])\n}\n```\n\nThe commands dispatched by the component are handled by the reducers of the application.\nThe reducers change the state of the application, and then, the entire view is recreated from scratch.\n\n### The application\n\nThe application is created using the `createApp()` function.\nThe function expects an object with three properties:\n\n- `view`: the function that returns the virtual DOM tree representing the view of the application.\n- `state`: the initial state of the application.\n- `reducers`: an object with the reducers of the application.\n\nHere's an example of a button that increments a counter (using the `Counter` component defined above):\n\n```js\nfunction view(state)\nconst app = createApp({\n  view: Counter,\n  state: { count: 0 },\n  reducers: {\n    increment: (state) => ({ ...state, count: state.count + 1 }),\n  },\n})\n```\n\n## [v2.0 - Chapter 8](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/ch8/packages/runtime)\n\n_See the example application in the [examples/ch08 folder](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/main/examples/ch08)_.\n\nTo checkout this version of the code:\n\n```bash\n$ git checkout ch8\n```\n\nThis version of the framework implements the _reconciliation algorithm_ to only update the parts of the DOM that have changed.\n\n## [v3.0 - Chapter 12](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/ch12/packages/runtime)\n\n_See the example application in the [examples/ch12 folder](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/main/examples/ch12)_.\n\nTo checkout this version of the code:\n\n```bash\n$ git checkout ch12\n```\n\nThis version of the framework implements stateful components; each component is similar to a mini-application with its own lifecycle.\n\n### Defining components\n\nComponents are defined using the `defineComponent()` function.\nThe function takes as input an object that, at least, includes a `render()` function.\nThis `render()` function returns the virtual DOM for the component, and it's called by the framework every time the component needs to be updated:\n\n```js\nconst MyComponent = defineComponent({\n  render() {\n    return h('div', {}, 'Hello world!')\n  },\n})\n```\n\nComponents can be passed to the `h()` function to create virtual DOM nodes:\n\n```js\nconst vdom = h(MyComponent)\nmountDOM(vdom, document.body)\n```\n\n### Props\n\nComponents can receive data from the outside world via props.\nThe component can access the props passed to it via the `this.props` object.\n\nLet's imagine we have the following component:\n\n```js\nconst Greeting = defineComponent({\n  render() {\n    return h('p', {}, `Hello ${this.props.name}!`)\n  },\n})\n```\n\nTo mount this component in the DOM, passing it the `name` prop, we can do:\n\n```js\nconst vdom = h(Greeting, { name: 'Angel' })\nmountDOM(vdom, document.body)\n```\n\nWhich will render the following HTML:\n\n```html\n<body>\n  <p>Hello Angel!</p>\n</body>\n```\n\nProps are data coming from the outside world that the component doesn't own, thus, they can't be changed by the component.\nIf a component wants to change that data in any way, it needs to send a message to the outside world, which is done via _events_ (see section below).\n\n### Internal state\n\nComponents can also define a `state()` function that returns the initial state for the component.\nThis function is passed the component's `props` as input:\n\n```js\nconst Counter = defineComponent({\n  state(props) {\n    return {\n      count: props.initialCount ?? 0,\n    }\n  },\n\n  render() {\n    return h('p', {}, [`Count: ${this.state.count}`])\n  },\n})\n```\n\nThe component can access the state via the `this.state` object.\nThe component owns the state, so it can change it.\nTo modify the state, the component needs to call the `this.updateState()` function, which takes as input the new state—complete or partial—for the component:\n\n```js\nconst Counter = defineComponent({\n  state(props) {\n    return {\n      count: props.initialCount ?? 0,\n    }\n  },\n\n  render() {\n    return hFragment([\n      h(\n        'button',\n        {\n          on: {\n            click: () => this.updateState({ count: this.state.count + 1 }),\n          },\n        },\n        ['+']\n      ),\n      h('p', {}, [`Count: ${this.state.count}`]),\n    ])\n  },\n})\n```\n\nYou can now mount this component in the DOM, passing it the `initialCount` prop:\n\n```js\nconst vdom = h(Counter, { initialCount: 10 })\nmountDOM(vdom, document.body)\n```\n\nWhich will render the following HTML:\n\n```html\n<body>\n  <button>+</button>\n  <p>Count: 10</p>\n</body>\n```\n\nClicking the button will update the state of the component, which will trigger a re-render of the component, updating the DOM.\n\n### Child components\n\nA component can render other components as its children by including them in the virtual DOM returned by the `render()` function:\n\n```js\nconst ListItem = defineComponent({\n  render() {\n    return h('li', {}, [this.props.text])\n  },\n})\n\nconst List = defineComponent({\n  render() {\n    return h('ul', {}, [\n      h(ListItem, { text: 'A point is that which has no part.' }),\n      h(ListItem, { text: 'A line is breadthless length.' }),\n      h(ListItem, { text: 'The ends of a line are points.' }),\n    ])\n  },\n})\n```\n\n### Events\n\nComponents can send messages to the outside world via events.\nTo emit an event, a component needs to call the `this.emit()` function, which takes as input the name of the event and the payload to send.\nThe parent component can handle the event as if it was a regular DOM event.\n\nLet's imagine a button that, when clicked, increments a count by one, but when double-clicked, increments it by ten:\n\n```js\nconst IncrementButton = defineComponent({\n  render() {\n    return h(\n      'button',\n      {\n        on: {\n          click: () => this.emit('increment', { amount: 1 }),\n          dblclick: () => this.emit('increment', { amount: 10 }),\n        },\n      },\n      ['Increment']\n    )\n  },\n})\n```\n\nWe can incorporate it into a `Counter` component that keeps track of the count:\n\n```js\nconst Counter = defineComponent({\n  state() {\n    return { count: 0 }\n  },\n\n  render() {\n    return hFragment([\n      h(IncrementButton, {\n        on: {\n          increment: ({ amount }) =>\n            this.updateState({ count: this.state.count + amount }),\n        },\n      }),\n      h('p', {}, [`Count: ${this.state.count}`]),\n    ])\n  },\n})\n```\n\nYou can now mount this component in the DOM:\n\n```js\nconst vdom = h(Counter)\nmountDOM(vdom, document.body)\n```\n\nAnd play with it.\n\n### Methods\n\nA component can define methods that can be called inside the `render()` function.\nThis helps to keep the `render()` function clean and easy to read.\n\nFor example, we can move the event handler in the example above to a method:\n\n```js\nconst Counter = defineComponent({\n  state() {\n    return { count: 0 }\n  },\n\n  render() {\n    return hFragment([\n      h(IncrementButton, {\n        on: {\n          increment: this.increment, // Pass the method as the event handler\n        },\n      }),\n      h('p', {}, [`Count: ${this.state.count}`]),\n    ])\n  },\n\n  // Increments the count by the given amount\n  increment({ amount }) {\n    this.updateState({ count: this.state.count + amount })\n  },\n})\n```\n\n## [v4.0 - Chapter 14](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/ch14/packages/runtime)\n\n_See the example application in the [examples/ch14 folder](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/main/examples/ch14)_.\n\nTo checkout this version of the code:\n\n```bash\n$ git checkout ch14\n```\n\nThis version of the framework implements the `onMounted()` and `onUnmounted()` _lifecycle hooks_ for components.\nYou can react to a component being mounted and unmounted by passing the `defineComponent()` function you own functions:\n\n```js\ndefineComponent({\n  async onMounted() {\n    // Called when the component is mounted\n  },\n\n  async onUnmounted() {\n    // Called when the component is unmounted\n  },\n})\n```\n\n## [v5.0 - Chapter 15](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/ch15/packages/runtime)\n\n_See the example application in the [examples/ch15 folder](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/main/examples/ch15)_.\n\nTo checkout this version of the code:\n\n```bash\n$ git checkout ch15\n```\n\nThis version of the framework allows to insert external content into a component using _slots_.\nA component can define where the external content should be inserted by using the `hSlot()` function:\n\n```js\nconst Comp = defineComponent({\n  render() {\n    return h('div', {}, [hSlot()])\n  },\n})\n```\n\nThen, when mounting the component, you can pass the external content as the third argument to the `h()` function:\n\n```js\nh(Comp, {}, [h('span', {}, ['Hello'])])\n```\n\nThe result of mounting the component above will be:\n\n```html\n<div>\n  <span>Hello</span>\n</div>\n```\n\n## [v6.0 - Chapter 18](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/ch18/packages/runtime)\n\n_See the example application in the [examples/ch18 folder](https://github.com/angelsolaorbaiceta/fe-fwk-book/tree/main/examples/ch18)_.\n\nTo checkout this version of the code:\n\n```bash\n$ git checkout ch18\n```\n\nThis version of the framework includes the `HashRouter` router to handle routing in a single-page application.\nIn a hash router, the location is kept in the hash portion or the URL:\n\n```\nhttps: // example.com : 8080 /something/ ?query=abc123 #/fooBarBaz\n\n⎣____⎦    ⎣__________⎦  ⎣__⎦ ⎣________⎦ ⎣____________⎦ ⎣________⎦\nprotocol     domain     port    path      parameters      hash\n```\n\nThe `createApp()` function accepts a third parameter, which is an `options` object. This `options` object includes a `router` property to pass an instance of a `HashRouter` to the application:\n\n```javascript\nconst router = new HashRouter(routes)\ncreateApp(RootComponent, {}, { router })\n```\n\nThe routes map route paths to the component that should be rendered inside the `RouterOutlet` component.\nRoutes are defined as follow:\n\n```javascript\nconst routes = [\n  {\n    // Matches 'yourapp.com/#/'\n    path: '/',\n    component: Home,\n  },\n  // Matches 'yourapp.com/#/one'\n  {\n    path: '/one',\n    component: One,\n  },\n  {\n    // Matches 'yourapp.com/#/two/?/bar/?'\n    // Path variables can be defined by prepending them with a \":\"\n    path: '/two/:foo/bar/:bazz',\n    component: Two,\n  },\n  {\n    // Matches 'yourapp.com/#/three'\n    // Paths can be set a redirect to a different route\n    path: '/three',\n    redirect: '/one',\n  },\n  {\n    // A catch-all route can be defined to handle all unmatched routes\n    path: '*',\n    component: NotFound,\n  },\n]\n```\n\nHere are the rules for defining routes:\n\n- Route paths must either start with a `/` or be the catch-all route (`*`)\n- A route must have a component to handle it, or be a redirection (both can't happen at the same time)\n- Path variables can be defined by prepending a `:` to the variable name\n- Nested routes aren't supported\n\n### Router Outlet\n\nThe content matched by the application's router is rendered in the `RouterOutlet` component:\n\n```javascript\nconst App = defineComponent({\n  render() {\n    return h('main', {}, [RouterOutlet()])\n  },\n})\n```\n\nUsing more than one `RouterOutlet` in the application results in the component matched by the router being injected in all the outlets.\nNested outlets isn't supported (if you nest outlets, they'll all contain the same component).\n\nThe `RouterOutlet` component inserts the matched component inside a `<div>` element with an id attribute of `'router-outlet'`:\n\n```html\n<div id=\"router-outlet\">...</div>\n```\n\n### Router Links\n\nThe `RouterLink` component can be used to add links that route to a particular route:\n\n```javascript\nconst Navigation = defineComponent({\n  render() {\n    return h('nav', {}, [\n      h(RouterLink, { to: '/' }, ['Home']),\n      h(RouterLink, { to: '/about' }, ['About']),\n    ])\n  },\n})\n```\n\nThe `RouterLink` expects one prop:\n\n- `to`: the path name where the link will redirect the user to\n\nThe `RouterLink` handles the `click` event by first preventing it's default action of requesting the page to the server.\nThen handles the navigation by accessing the application's router and programatically navigate to the route.\n","readmeFilename":"README.md"}