{"_id":"@andersonalmeidax0/appframe","_rev":"17-5bdeca095fecbd3bad76ce8e3d2e42c2","name":"@andersonalmeidax0/appframe","dist-tags":{"latest":"0.5.2"},"versions":{"0.1.0":{"name":"@andersonalmeidax0/appframe","version":"0.1.0","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.0","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"fa522d5e576789c2eb517e55b84fd4eb31ebb38d","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.0.tgz","fileCount":3,"integrity":"sha512-TGl+WOyooaUNwd6jkpR5Ewu4MWSALrnu7hr0V2iMi+v0X7VQ2RWjxRMxeoY1tcg1y+gpqYNZVIE0zFLsbxGYlQ==","signatures":[{"sig":"MEUCIQCNneRkTEju0Qbg7GZyXPEmzurm53ZdRa0OWM2GUcIAuwIgIVlPQUlojztILBhPd3sVgv7pfEXhVOJEjAhN46tqrUA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4619},"main":"AppFrame.jsx","gitHead":"4c30c6fa3c26e583b2a4ee44110902fe986ba661","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.0_1718592168757_0.6873487939963978","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@andersonalmeidax0/appframe","version":"0.1.1","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.1","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"aa9105ae2af3b99e4418f980ce40326c3db537fc","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.1.tgz","fileCount":3,"integrity":"sha512-XJepWQuqxbWLHo7SzwktobmRwfqbxHqwU1V3h9zt2Kma8c5O0MAPicrSGw7n5C0hvj978RUnAds61ExM++P7+g==","signatures":[{"sig":"MEUCIESjKqdeBMntLQqo81wbBwDYN8bw2HSvQJFZJFS0wwe/AiEApjOjt3hNiBOduVQuSsTaS7ixi8inKj8ToPQSac4tOTc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4720},"main":"AppFrame.jsx","gitHead":"4c30c6fa3c26e583b2a4ee44110902fe986ba661","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.1_1718592782584_0.628152475051095","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@andersonalmeidax0/appframe","version":"0.1.2","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.2","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"3c990379cd4972e947116760653dcf8c7036e933","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.2.tgz","fileCount":5,"integrity":"sha512-l0A3bJ5+XI/EthjfgeLoGryzzI8VdKD0jnBhpFxgvJ01yUN7fPAMXTMfci65q2l8vUnbUnbVTc51I4rxd6JjFA==","signatures":[{"sig":"MEYCIQDpe8pCdUkkDGpcyEIZR4rGO5VmjreQpk4wlHUKqBpPdAIhAIZL9fzKvWDFhUEFXYC6Y7nwqFkHzW2XybZ64bcBSR2G","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5852},"main":"AppFrame.jsx","gitHead":"8955dccf794563a649929c0c5354c88b88f4349e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.2_1721653481817_0.4022893735666173","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@andersonalmeidax0/appframe","version":"0.1.3","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.3","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"c656471d8190c1fb0fe1ea62ce5b5513037d0ff2","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.3.tgz","fileCount":5,"integrity":"sha512-hBisv4CkzLl0LiBmIbGeWuOFMT/2uKBPKyHS+TMYZYG2uOMC8dfF+DcfACb3hiC2gpqjenePSmtyy1l3WUGohg==","signatures":[{"sig":"MEQCIAVB1+I3v7RDN7NprEKVv1Al5gTkrjdmi96hKFuPHvxTAiA7Lzqk0UdPFgXL37t3dxl1lfVDD68X9SOJW0ZHCH0hJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7313},"main":"AppFrame.jsx","gitHead":"0077c7e0c9370ba026c5fe10d5b93cbd089db5e6","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.3_1721654181268_0.021336803195682652","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@andersonalmeidax0/appframe","version":"0.1.4","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.4","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"22cd45cc7c4beb4920369a3afdcdac64fe1afe0d","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.4.tgz","fileCount":5,"integrity":"sha512-jxeEGwKC3WoyAiXQvDaegm+kXTws+dVxP4gt/zdgKliC2pe5oH8pdshZIRVSR/IpxmXXJYQEYSZmH0BGz5yczA==","signatures":[{"sig":"MEYCIQDqn/ackySevPpdgcP1gKPg0MIK9YTQc6BX+sn+GrcaRwIhAPa2sqtfb5WJzxT0s2FHvcYdhw0YnqSjuMA2WY3hTTAX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8427},"main":"AppFrame.jsx","gitHead":"afc8c36c77b45916b4992b02872aca8b7fd6b7ec","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.4_1721654785909_0.33176085929875754","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"@andersonalmeidax0/appframe","version":"0.1.5","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.5","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"8625f9988e5ebbab8d3ce6921d5a9c7a5d26d554","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.5.tgz","fileCount":5,"integrity":"sha512-d8Y1th8TwtTa/NabN9+pDV7Fm03vlSlWiXeAiOAyEKy0UJH7l5SEVmWkvQSrp4etrj/rpC09gFkOPR8X9zSrxg==","signatures":[{"sig":"MEYCIQCQ8CsQbM+MLlXqe4Tfv3H6SHvrqZmPgc93jsNcLIxtLgIhAL7B+HviNy+RYNBPOBtplNFpsmRlx5d+fBF601WN0rOM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8577},"main":"AppFrame.jsx","gitHead":"9bab47249e553f0080220673a9207d3be591467b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.5_1721660391124_0.3846782743283359","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"@andersonalmeidax0/appframe","version":"0.1.6","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.6","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"141ccc8ded1700072a765d668cb48f62c0aa5048","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.6.tgz","fileCount":5,"integrity":"sha512-Qx32gvbBXPLloTpvjh1qRu7e/de0EqfYHJHfvSnx1vdHwfTdIPkaBMa71FUo931kVUOzUBf0qBU/7F/JONbDig==","signatures":[{"sig":"MEQCIBneZiSk1Eq6j3/emo+aqWINIIHy6B4+sCzP+38XHrxFAiAb9MdEWU5yEF1K6wuMcq27l35newAGUgWd8uulIDo6HQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8720},"main":"AppFrame.jsx","gitHead":"9bab47249e553f0080220673a9207d3be591467b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.6_1721661006279_0.17719460835490408","host":"s3://npm-registry-packages"}},"0.1.7":{"name":"@andersonalmeidax0/appframe","version":"0.1.7","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.7","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"d1728017fd756cc00f3964b78586da99ed2eecbb","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.7.tgz","fileCount":5,"integrity":"sha512-1tIvqOk/uP/Dd1qjwyuOy36WL/PtBwJri1fS+fr1qR8hzwUSm7FF0FA/CfsI6GQtss9B3G/G+sHae7dalb2HWQ==","signatures":[{"sig":"MEUCIQCaFLVN6Dnr6XilSHoOU4XBwLWlsh2v4l+hs8qYdmXj1wIgbg32DsS/dMexSVpq1Ksf+h8ECkLlsVprCDUugdAewhk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8919},"main":"AppFrame.jsx","gitHead":"8f470c48a8ca2deebc70329060d97a532dd50720","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.7_1721661321331_0.8435472404991984","host":"s3://npm-registry-packages"}},"0.1.8":{"name":"@andersonalmeidax0/appframe","version":"0.1.8","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.8","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"28461d676fb4de526cc50689c9532296d3ac6dcf","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.8.tgz","fileCount":5,"integrity":"sha512-0QOMzuqjAYSPVt8xxz0T2RQzNJ/AySLTtMB8VVZ76QGgeN03dLux4yOLIkWxPUTgO5iUh03rRuSawhk9yUkqTA==","signatures":[{"sig":"MEUCIDfdJVDFFOK8E2etarQ7QUfiuQCyXGHOcTfm1TgMBgObAiEA6F0+vIJg2yitloAYlrv5DfcTO3qzOc+ck3dsmsnTrEA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8944},"main":"AppFrame.jsx","gitHead":"8f470c48a8ca2deebc70329060d97a532dd50720","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"9.5.1","description":"appFrame","directories":{},"_nodeVersion":"18.16.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.8_1723418893431_0.8100607645579112","host":"s3://npm-registry-packages"}},"0.1.9":{"name":"@andersonalmeidax0/appframe","version":"0.1.9","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.1.9","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"aeb55e833cb3b33382c00ef764018bfb95c32826","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.1.9.tgz","fileCount":5,"integrity":"sha512-ecKYoqto+f3eBKvoO33BD5jNEJj64IIY64IhZlrHJojU+3Mg/9IN/dGqs1id0+gAh4M3/i2nKwLjFkd869mwHA==","signatures":[{"sig":"MEYCIQCph+R1n/Q2IBHfPlmeGlkya3kAKlY42GGEOEmeuu2IAwIhANIgW8gZCEyR/WW0KuloOpdCS+B94A3ddYNJ0SBeUF8w","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8957},"main":"AppFrame.jsx","gitHead":"8f470c48a8ca2deebc70329060d97a532dd50720","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"9.5.1","description":"appFrame","directories":{},"_nodeVersion":"18.16.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.1.9_1723419132062_0.9029350487338814","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@andersonalmeidax0/appframe","version":"0.2.0","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.2.0","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"a1b61af7e4e1a1bf2dd5b0483bb893dd4f4705b9","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.2.0.tgz","fileCount":5,"integrity":"sha512-SMnBbT0uAewHmr2z6db0+eM0be/Yl82akyRqCZz0wMsDQwtrptqkDfBhU4TCiLO0viWpEyYIx8YQEPMnabhTDg==","signatures":[{"sig":"MEQCIAT4aAjNxxicG34oBdqwpVoLmwgjwd35RzGTof5nugP0AiAj8ZkQWeELCQlEb/tR7e8K0uAco0h6xIkHQbdw2IUk+Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9677},"main":"AppFrame.jsx","gitHead":"95cad6c484df37b81b4b501ada6381853762b1ff","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"9.5.1","description":"appFrame","directories":{},"_nodeVersion":"18.16.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.2.0_1723428181018_0.7455949459361586","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@andersonalmeidax0/appframe","version":"0.2.1","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.2.1","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"022a738b89519dd3837272a11adfeb469c71f40b","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.2.1.tgz","fileCount":5,"integrity":"sha512-Kh0ItQeTZV1a1ve2iVAwbQUzU2kay6gzNdHYU8pzmpWMU+7Mm+DfJn2JfBluUZDx++uNWEQBJxT+LCfqUxN3GA==","signatures":[{"sig":"MEUCIEr/aUIx+9yj4YYVbibaiqbULjkp1S3bgGIOol8gu/JGAiEAsOVfOXvjuwSja/cSF3tCriDrlSCy2Y3bQ22cPR1w3rw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9789},"main":"AppFrame.jsx","gitHead":"95cad6c484df37b81b4b501ada6381853762b1ff","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.2.1_1735432546293_0.5959723996746933","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@andersonalmeidax0/appframe","version":"0.3.0","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.3.0","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"29d68a25d7008e507e68ca99a18a4621d5da4884","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.3.0.tgz","fileCount":5,"integrity":"sha512-ExM4WqKgS5IbvRi3jI/tzZpYH+g3L+Ru/K6aMvV9joN1XLOkwCaMmAucees7jL2QC8dtG9UajNF3XrqMQO/nbg==","signatures":[{"sig":"MEUCIQCbzfGZevCjmOfVXJKjc23cocO/SCmOTBbxZy2bYxzXhAIgMXjpKhSZiRqcGlDzmWeAHcWs6L2iVrXExl29bPUSkew=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10288},"main":"AppFrame.jsx","gitHead":"95cad6c484df37b81b4b501ada6381853762b1ff","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"8.19.4","description":"appFrame","directories":{},"_nodeVersion":"16.20.1","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.3.0_1735438423490_0.17623238982711986","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@andersonalmeidax0/appframe","version":"0.4.0","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.4.0","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"d8ab4a58873d433e75651dc2471b26d6b7ae423d","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.4.0.tgz","fileCount":5,"integrity":"sha512-5vEgpTUmMl3GIB+2n9B/PMQOsxj3AhGET/wmyI+/oGTvSazyeROquQ52qMCcowRqeV/vKBDZj3Yra1JUOIlgLg==","signatures":[{"sig":"MEQCIAXqtRVxYag1dVX2MJ7RfPgOFdrq6HwZW0wZQnVfo51uAiAVUv46ahB63eL0ifBAkrTTVTrIfWXaKfZGKVRPAtwZNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10880},"main":"AppFrame.jsx","gitHead":"9684c0f941ef3d6e420305ed8f7dea3e1fa798fa","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"9.8.1","description":"appFrame","directories":{},"_nodeVersion":"18.18.2","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.4.0_1760377464621_0.5746411649635979","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@andersonalmeidax0/appframe","version":"0.5.0","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.5.0","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"e7ec51d91ffe4241315836fa5d6d4b1dc84abd79","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.5.0.tgz","fileCount":7,"integrity":"sha512-hq7YToAoJLnW0QQobqp3aCTXITXoALy4FEXkba5KABQsEGPmEIMlLN8eEAhRU8GCxfs4uX7TpSSOvdgziifkOA==","signatures":[{"sig":"MEQCIDEOkJnjOqsL63Aju1QOPPIe7lFHJ4YuzDjpPI3ekyyyAiBSzEbbZSL9n7hiNr1iLQ2WPYNwA5HCXHQRmZNJrHH+Pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56371},"main":"AppFrame.jsx","gitHead":"a3e2a0c3c669cb3cb2b01387853b31ab9124d818","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"9.8.1","description":"appFrame","directories":{},"_nodeVersion":"18.18.2","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.5.0_1768597813060_0.854793543429696","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@andersonalmeidax0/appframe","version":"0.5.1","author":"","license":"ISC","_id":"@andersonalmeidax0/appframe@0.5.1","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"homepage":"https://github.com/andersonalmeidax0/appframe#readme","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"dist":{"shasum":"6e06f173fa33f56a85f27e16490d1ff00fb91e3e","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.5.1.tgz","fileCount":7,"integrity":"sha512-muNSW/dSFDui1UcGjAXGo/TNitZX0fLK09OX5fFWdK6slxWXTO8tfSdkppIgTcKLx2Wbqkb5vWuJcJuZZlviZg==","signatures":[{"sig":"MEYCIQCjwJGEV/SW/AapPQmQSgqT6vCtkcjQQ73yzqN1s0H4IwIhALrxiKi4SgTNNxSwzteCMGizLBEuod6Ik6fSNep9JVGw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56424},"main":"AppFrame.jsx","gitHead":"93f4c3c3416d41f96edc8ec63abb6233a51a0944","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"repository":{"url":"git+https://github.com/andersonalmeidax0/appframe.git","type":"git"},"_npmVersion":"9.8.1","description":"appFrame","directories":{},"_nodeVersion":"18.18.2","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appframe_0.5.1_1768599135467_0.30679238088750904","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@andersonalmeidax0/appframe","version":"0.5.2","description":"appFrame","main":"AppFrame.jsx","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/andersonalmeidax0/appframe.git"},"author":"","license":"ISC","bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"homepage":"https://github.com/andersonalmeidax0/appframe#readme","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","keycloak-js":"^24.0.4"},"_id":"@andersonalmeidax0/appframe@0.5.2","gitHead":"74b919fd36f2b687e6382f8ac09df645ecba0d11","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-7yyW+PsOYL6m1Nq788zQiSCA3OXZJcf6oQtDbdZpjNVndcSgpQp9AeXi2XVS9sW4FTfyEprNkV+gEbVvzFPhvQ==","shasum":"f5c0b6ecaff98fc4b9e35490f9b30a0b7aada8aa","tarball":"https://registry.npmjs.org/@andersonalmeidax0/appframe/-/appframe-0.5.2.tgz","fileCount":7,"unpackedSize":56467,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDZBrSGTrsb0uiNnsFXjDLLmdem19u4ccSQAImopAiDzgIhAN1ZS8WWJ25Cz1lxGPFK6MlB5Y1Zun2MuBr8xz+04pBl"}]},"_npmUser":{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"},"directories":{},"maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appframe_0.5.2_1768600388026_0.7328260963579973"},"_hasShrinkwrap":false}},"time":{"created":"2024-06-17T02:42:48.681Z","modified":"2026-01-16T21:53:08.279Z","0.1.0":"2024-06-17T02:42:48.932Z","0.1.1":"2024-06-17T02:53:02.743Z","0.1.2":"2024-07-22T13:04:41.981Z","0.1.3":"2024-07-22T13:16:21.407Z","0.1.4":"2024-07-22T13:26:26.179Z","0.1.5":"2024-07-22T14:59:51.293Z","0.1.6":"2024-07-22T15:10:06.442Z","0.1.7":"2024-07-22T15:15:21.505Z","0.1.8":"2024-08-11T23:28:13.581Z","0.1.9":"2024-08-11T23:32:12.338Z","0.2.0":"2024-08-12T02:03:01.240Z","0.2.1":"2024-12-29T00:35:46.472Z","0.3.0":"2024-12-29T02:13:43.668Z","0.4.0":"2025-10-13T17:44:24.804Z","0.5.0":"2026-01-16T21:10:13.224Z","0.5.1":"2026-01-16T21:32:15.627Z","0.5.2":"2026-01-16T21:53:08.172Z"},"bugs":{"url":"https://github.com/andersonalmeidax0/appframe/issues"},"license":"ISC","homepage":"https://github.com/andersonalmeidax0/appframe#readme","repository":{"type":"git","url":"git+https://github.com/andersonalmeidax0/appframe.git"},"description":"appFrame","maintainers":[{"name":"andersonalmeidax0","email":"andersonalmeidax0@gmail.com"}],"readme":"# Appframe\r\nReactComponent para aplicações com funcionalidades: \r\n- header (with login name and logout button)\r\n- menu for navigation\r\n- render subcomponents (pages) for each menu item\r\n- appContext singleton instance is passed through routes, to provide application context\r\n- Login Handler & JWT generator (keycloak)\r\n\r\n\r\n# how to use:\r\n1. Create index.html\r\n2. Create App using AppFrame. \r\n   - App can initialize keycloack however  its not mandatory\r\n3. Pass \"routes\", appname, appcontext, \r\n4. Create pageComponents  (and include it)\r\n\r\n# Step 1:\r\n\r\n```\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n  <head>\r\n    <meta charset=\"UTF-8\" />\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\r\n    <title>App</title>\r\n\r\n    <title></title>\r\n    <style>\r\n        body { margin:0px}\r\n        main { margin:8px}\r\n\theader { margin:0px;background-color: #ccc;}\r\n\tnav { margin:0px;background-color: #eee; }   \r\n        </style>\r\n\r\n\r\n  </head>\r\n  <body id=\"main\">\r\n    <script type=\"module\" src=\"/app.jsx\"></script>\r\n  </body>\r\n</html>\r\n```\r\n\r\n\r\n    \r\n### Step 2a - app.jsx :Example \"routes\":  labels, links and components for navigation\r\n```\r\nimport pages...\r\nvar routes = [\r\n  {\"route\":\"/index.html#page1\",\"label\":\"PageNotes\", \"component\":Page1},\r\n  {\"route\":\"/index.html#page2\",\"label\":\"PageNotes2\", \"component\":Page2},\r\n  {\"route\":\"/index.html#page3\",\"label\":\"PageTestComps\", \"component\":PageTestComps},\r\n  ]\r\n```\r\n\r\n### Step 2aa Example appContext\r\n```\r\nlet kc = {tokenParsed:{email:\"noLogon@nologon\"}, logout(){alert(\"Fake logout\")}}\r\nclass AppContext {\r\n  constructor(kc){\r\n    this.kc=kc;\r\n  }  \r\n}\r\n```\r\n\r\n\r\n## Step 2b\r\n```\r\n <AppFrame routes={routes}  appContext={appContext}  appname='AppTest1'  />\r\n```\r\n\r\n### Step 3:Example PageComponent\r\n```\r\nclass Page1 extends React.Component{\r\n        constructor(props){\r\n        super(props);\r\n    \t\tthis.state ={}\r\n        }\r\n   render() {\r\n        return ( <React.Fragment>...)\r\n      }\r\n}\r\n```\r\n\r\n\r\n### Step 4: Keycloack login&reload handler \r\n## Handle automatic redirect do keyclock to handle app browser autentication and JWT token generation \r\n## kc global variable: contains kc.token  (JWT)\r\n\r\n```\r\n//versions:\r\n//\"keycloak-js\": \"^24.0.4\",\r\n//\"react\": \"^18.2.0\",\r\n//To logout:  kc.logout({ redirectUri: 'http://apphost:port/' }\r\n\r\nimport Keycloak from 'keycloak-js';\r\n\r\nlet initOptions = {\r\n  url:'kc url',\r\n  realm: 'realm',\r\n  clientId: 'client',\r\n}\r\nconst kcInitParams = {\r\n  onLoad: 'login-required',\r\n  checkLoginIframe: true,\r\n  pkceMethod: 'S256',\r\n};\r\n\r\nlet kc = new Keycloak(initOptions);\r\n\r\nkcInitDefaults(kc, kcInitParams);\r\n```\r\n\r\n### Step 5: deps setup\r\n```\r\n{\r\n  \"dependencies\": {\r\n    \"@andersonalmeidax0/appframe\": \"^0.1.1\",\r\n    \"@vitejs/plugin-react\": \"^4.0.0\",\r\n    \"react\": \"^18.0.1\",\r\n    \"react-dom\": \"^18.0.1\",\r\n    \"react-scripts\": \"4.0.3\",\r\n    \"vite\": \"^4.3.3\"\r\n  },\r\n  \"scripts\": {\r\n    \"dev\": \"vite --port 8081\",\r\n    \"build\": \"vite build\",\r\n    \"preview\": \"vite preview\"\r\n  }\r\n}\r\n```\r\n\r\n### Step 6: vite setup:  vite.config.js ==> \"npm run dev\" to test\r\n```\r\nimport { defineConfig } from 'vite';\r\nimport path from 'path'\r\n\r\nimport react from '@vitejs/plugin-react';\r\n\r\nexport default defineConfig({\r\n  root: 'src',\r\n  build: {\r\n    outDir: '../_dist'\r\n  },   \r\n  plugins: [react()],\r\n  esbuild: {\r\n    jsxFactory: 'React.createElement',\r\n    jsxFragment: 'React.Fragment',\r\n  },\r\n  css: {\r\n    modules: {\r\n      localsConvention: 'camelCaseOnly',\r\n    }\r\n  }\r\n});\r\n```\r\n\r\n\r\n### Complete app.jsx\r\n```\r\nimport React from \"react\";\r\nimport ReactDOM from 'react-dom/client';\r\nimport {AppFrame} from '@andersonalmeidax0/appframe';\r\n\r\n\r\nclass App extends React.Component {\r\n    render() {\r\n      return (\r\n        <div>\r\n          <h1>Hello, world v3!</h1>\r\n        </div>\r\n      );\r\n    };\r\n}    \r\n\r\n//Not used (simple example)\r\nclass Page1 extends React.Component {\r\n    render() {\r\n      return (\r\n        <div><h1>Page1 v2</h1></div>\r\n      );\r\n    };\r\n} \r\n\r\nlet kc = {tokenParsed:{email:\"user1@gmail.com\"}, logout(){alert(\"Fake logout\")}}\r\nclass AppContext {\r\n constructor(kc){\r\n this.kc=kc;\r\n }\r\n}\r\nvar appContext = new AppContext(kc);\r\n\r\nvar routes = [\r\n{\"route\":\"/index.html#page1\",\"label\":\"Page1\", \"component\":Page1},\r\n{\"route\":\"/index.html#page2\",\"label\":\"Page2\", \"component\":Page1}\r\n];\r\n\r\nclass App2 extends React.Component {\r\n    render() {\r\n      return (\r\n       <AppFrame routes={routes}  appContext={appContext}  appname='AppTest1v23'  />\r\n      );\r\n    };\r\n} \r\n\r\n\r\nconst root = ReactDOM.createRoot(document.getElementById('main'));\r\nroot.render(<App2 />);\r\n\r\n```\r\n\r\n\r\n### Novo componente AppFrameL2\r\nLayout L1: menu como aside fora do main, e container é main\r\nNovo AppFrame2: Implementa layout2  (menu como nav, inside main, e container é article)\r\n\r\n\r\n\r\n## Layout \"L1\"\r\n![Alt text for the image](./layout1.png)\r\nIMG\r\n <img src=\"layout1.png\" alt=\"Centered image\">\r\n## Layout \"L2\"\r\n![Alt text for the image](./layout2.png)\r\n","readmeFilename":"README.md"}