{"_id":"@cesarchamal/single-spa-layout-app","_rev":"12-bb20ad0bb0890554dae4391786539696","name":"@cesarchamal/single-spa-layout-app","dist-tags":{"latest":"1.0.18"},"versions":{"0.1.1":{"name":"@cesarchamal/single-spa-layout-app","version":"0.1.1","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@0.1.1","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"8910d5e9099123bb64e090cf8841ef3540350e24","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-0.1.1.tgz","fileCount":7,"integrity":"sha512-0g6ZjSFAskM9cnadPTKLgNkC5DxPH3+WZFGbL3Gtcp0Z5Z/ZS04XVFswpnTS3dREE0T9rux/TaWkzzvgxYNx1w==","signatures":[{"sig":"MEYCIQD2TXWguyvhZJQBgZUUul8r9kYEopMA27ceSkEmV9pkbAIhAO/lo5KAmZ7JcpFWU7zLa/XtVT4Ewv6e19UPKtTXluOU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2770071},"main":"dist/single-spa-layout-app.umd.js","gitHead":"498bf6493e65d6080e9ed9fa21aa63b82627ea64","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"8.19.4","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"16.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"3.4.4","webpack":"4.41.5","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_0.1.1_1757241948735_0.33871885120769685","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cesarchamal/single-spa-layout-app","version":"0.1.2","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@0.1.2","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"77c1eb97d58652d2baef80315fd17c090fd7d59e","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-0.1.2.tgz","fileCount":7,"integrity":"sha512-eyDd5vzgLxSoUJZk8UX2mQ8MoQaM+aBONWjjbdu4djuJIqRWZXf3WqjpdF7fWfsEwmBSfroDU/HHS2oohKtw+g==","signatures":[{"sig":"MEMCIHEY5Vl+lcKCOyH83V8JXfpup8s+ShVlCRGYShygeHU0Ah8RRxtIKH+ZtVJug9m83cNoR29uSPAqw18m2v/w+Wui","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2770071},"main":"dist/single-spa-layout-app.umd.js","gitHead":"498bf6493e65d6080e9ed9fa21aa63b82627ea64","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"8.19.4","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"16.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"3.4.4","webpack":"4.41.5","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_0.1.2_1757247990380_0.7897659603509621","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.4","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.4","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"f518dc568ac0898fbd29cc248b06a86961a86803","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.4.tgz","fileCount":7,"integrity":"sha512-x3W16dzj45IDRh/9v7iwYUZFXeOVWd177N9Clf1PgszOw2xykzXaqtTtb0OdmHwbBo/ywN/dYHCgmQF3N6NxUA==","signatures":[{"sig":"MEUCIBysc34VPl5MRBib6EvrEiLM5aFT2PaV9I2cXj/uNF6tAiEA/XIGdMZY30iHcH6iyCNbuZuYAkj5ghzw3RehrqcyG9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3035783},"main":"dist/single-spa-layout-app.umd.js","gitHead":"fa149d99d9d80cddb65d631dab0677e8d4932115","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"8.19.4","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"16.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.4_1757746290131_0.8711532664043518","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.5","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.5","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"4755eb7f2396652917f8edaaad07fc933df9a88f","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.5.tgz","fileCount":7,"integrity":"sha512-OcpPlSRToQSvcOe0UbXGhZTpi5eivAfGTnsu7dY13hlrOKGlx1Cidk7TYjW7Xj0o/lNELirYa75uONbg/Tqv+w==","signatures":[{"sig":"MEQCIGJZi9gcDggI8LMb2cZMknsWgbJV2v7ytsGW8YCRYOWDAiAm3GUzhCwe6yT/jqhk3lPSvz7wGABRCJ463xO4kteClA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3035783},"main":"dist/single-spa-layout-app.umd.js","gitHead":"fa149d99d9d80cddb65d631dab0677e8d4932115","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"8.19.4","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"16.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.5_1757748214686_0.627538966637798","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.7","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.7","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"93d9049ced698189fac60d73098567966f5482ff","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.7.tgz","fileCount":7,"integrity":"sha512-8J8M38dqOXXTeJDxwKo4+Cl2+f2PcUbcq/7T7N0MfSzbT4Ja2N6sUuFm+CZh/mNA+rt7HIgDuJc/DMV8HArSJQ==","signatures":[{"sig":"MEUCIBQZTv9CXTwmdolGl9tz1WG4URMjzzT9S3LH/a2nQCfQAiEA+Gi8p1LIQ2vQKb5YSypqjok2Y3ziBgScDjv+ybml9g8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3035783},"main":"dist/single-spa-layout-app.umd.js","gitHead":"47268b1b923390a54b677407fe6100b521ebf86f","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"8.19.4","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"16.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.7_1757770058061_0.9712299315865496","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.9","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.9","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"d0a23ca0eb981c163bbe9991ef16347230ca65af","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.9.tgz","fileCount":7,"integrity":"sha512-Y2Jr3lRIV/Jt359q+twa/22R8OvFb37Xfp9y/dgG9EFb4j8ugPgykv/O6E6ZhAqcqKE2KxkoIYPWhSY4P6NZOA==","signatures":[{"sig":"MEUCIFf5Zy1V6Qul6QjBpYVASAwvSyTYIW8N+OY3tXdg3SyYAiEAndutHy7TaojOr7NouP64e9ONq4RnQ4rRUtZFCpylFYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3038797},"main":"dist/single-spa-layout-app.umd.js","gitHead":"47268b1b923390a54b677407fe6100b521ebf86f","scripts":{"lint":"vue-cli-service lint","build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"10.5.0","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"18.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","cross-env":"^7.0.3","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.9_1758015927943_0.5565713492700037","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.10","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.10","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"e53476cde690d6333f2812968edd088f16914bec","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.10.tgz","fileCount":7,"integrity":"sha512-kdZTXc0GCdWxE0VGDziUwyiA6EnxXp/W07pDJjyVYLzzKsCxDGn81ZfkjfnBHU5vDok0R/oHZXhHZZ+WFLscOA==","signatures":[{"sig":"MEYCIQCSwu/Nw0aawR2pow2e9FS+dxZSR3kGBYiPb721KPnHzgIhANY11vbvvDf3CGECqEEPAr2QpCJsVDRMkOrzAr1SSAbp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3039057},"main":"dist/single-spa-layout-app.umd.js","gitHead":"47268b1b923390a54b677407fe6100b521ebf86f","scripts":{"lint":"vue-cli-service lint","build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"10.5.0","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"18.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","cross-env":"^7.0.3","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.10_1758018139554_0.8859204990126117","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.14","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.14","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"4ae3a6034b80f5ea8bdb693263ac1b6dc3639e79","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.14.tgz","fileCount":7,"integrity":"sha512-zBxr4NIocXE+uK1XSmnDxuBKBpMWXJVM9+4cW0Snh5hSXA6gEOKGGRcLzD8UQRQ43vlwJ9oniepM98+NQtlXQQ==","signatures":[{"sig":"MEUCIDkGqq8ZWllIuxYe50DG9zzeGCXolncFFXZqTKbbLYKrAiEAnoLIRU7/HLGwv71cG6B/dy4Yfh0fri1iV5UC2rxfUuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3039057},"main":"dist/single-spa-layout-app.umd.js","gitHead":"47268b1b923390a54b677407fe6100b521ebf86f","scripts":{"lint":"vue-cli-service lint","build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"10.5.0","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"18.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","cross-env":"^7.0.3","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.14_1758022123729_0.3927033044184418","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.15","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.15","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"d27e93b41a7640c5d45d0779e625fe42e0cf6126","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.15.tgz","fileCount":7,"integrity":"sha512-m1FrYPUPSNndZxjfk+OdkA2c2DmrW/R6QYf2qSv99M+4YQTqajQekp/43F6cjzKXj0FDuC7PURROz9zQJVMGmQ==","signatures":[{"sig":"MEUCIQCvud9z2xRN7sNlLocPruTJTDxw72H4hwhFFmymvJZmNgIgdtbFVlWV6B7JTURdb0lZYk4H6jtqATL8mtFB75flxrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3039057},"main":"dist/single-spa-layout-app.umd.js","gitHead":"47268b1b923390a54b677407fe6100b521ebf86f","scripts":{"lint":"vue-cli-service lint","build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"10.5.0","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"18.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","cross-env":"^7.0.3","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.15_1758030274643_0.6870565494342089","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.16","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.16","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"89e1a672f6350c0bda4e2f0f0cad5dda2e1ca365","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.16.tgz","fileCount":7,"integrity":"sha512-+KXji9VdK9ewGAVqOH4Acn/QPpxrS3YuRuHGNxfTEwcVYzad66aVM48RJDf//hJdTggB0nrrz8P+SyB4S8eTIQ==","signatures":[{"sig":"MEUCID4XLR9BX/QJ9oPJL+OxPAXOqaRR0LBjWshJRD0QMZ2LAiEAzHdgOiqDXjjXU9kdXEqzntn60R2uRrWixIWKT52lUqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3039057},"main":"dist/single-spa-layout-app.umd.js","gitHead":"47268b1b923390a54b677407fe6100b521ebf86f","scripts":{"lint":"vue-cli-service lint","build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"10.5.0","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"18.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","cross-env":"^7.0.3","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.16_1758038309280_0.7990253868881207","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.17","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","_id":"@cesarchamal/single-spa-layout-app@1.0.17","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"dist":{"shasum":"f2838561371d25ecbe89b01cf3028d92dbbf7943","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.17.tgz","fileCount":7,"integrity":"sha512-OX1XZpPOauFKtj7csJBYmr5l5eeaUBidhWzA/kGW4Z5YnrwNbEEB+xmFD0zKcr+Eqg2Rz9o3oJPWwuKE7HDKog==","signatures":[{"sig":"MEQCIDBIWdL9JvNPd9csRHp8o1iw+sOcJenlQPPpSAuTprYOAiBdLS0RKIfdfPggWz0mHz3rCgIqDIA3GePA/HFgdYNTZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3039057},"main":"dist/single-spa-layout-app.umd.js","gitHead":"8223c6e7b0074bdb46152acae76223b7fca55e2d","scripts":{"lint":"vue-cli-service lint","build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","serve":"npm run build && npx http-server dist -p 4202 --cors","build:dev":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production"},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"repository":{"url":"git+https://github.com/cesarchamal/single-spa-layout-app.git","type":"git"},"_npmVersion":"10.5.0","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","directories":{},"_nodeVersion":"18.20.0","browserslist":["> 1%","last 2 versions"],"dependencies":{"vue":"^2.6.11","rxjs":"^6.4.0","bootstrap-vue":"2.2.2","single-spa-vue":"^3.0.1","@fortawesome/vue-fontawesome":"0.1.9","@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/free-brands-svg-icons":"5.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"1.24.4","eslint":"5.16.0","core-js":"^3.45.1","webpack":"4.41.5","cross-env":"^7.0.3","sass-loader":"8.0.2","babel-eslint":"10.0.3","@vue/cli-service":"4.1.0","eslint-plugin-vue":"5.0.0","vue-eslint-parser":"^6.0.0","eslint-plugin-json":"^3.1.0","eslint-plugin-import":"2.22.1","@vue/cli-plugin-babel":"4.1.0","vue-template-compiler":"2.6.11","@vue/cli-plugin-eslint":"4.1.0","eslint-config-airbnb-base":"14.0.0","vue-cli-plugin-single-spa":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/single-spa-layout-app_1.0.17_1758042449292_0.7659704523970843","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@cesarchamal/single-spa-layout-app","version":"1.0.18","description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","main":"dist/single-spa-layout-app.umd.js","scripts":{"build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js","build:dev":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode development","build:prod":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build --target lib --formats umd src/singleSpaEntry.js --mode production","serve":"npm run build && npx http-server dist -p 4202 --cors","lint":"vue-cli-service lint"},"devDependencies":{"@vue/cli-plugin-babel":"4.1.0","@vue/cli-plugin-eslint":"4.1.0","@vue/cli-service":"4.1.0","babel-eslint":"10.0.3","cross-env":"^7.0.3","core-js":"^3.45.1","eslint":"5.16.0","eslint-config-airbnb-base":"14.0.0","eslint-plugin-import":"2.22.1","eslint-plugin-json":"^3.1.0","eslint-plugin-vue":"5.0.0","sass":"1.24.4","sass-loader":"8.0.2","vue-cli-plugin-single-spa":"1.1.0","vue-eslint-parser":"^6.0.0","vue-template-compiler":"2.6.11","webpack":"4.41.5"},"browserslist":["> 1%","last 2 versions"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/cesarchamal/single-spa-layout-app.git"},"keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"author":{"name":"Cesar Francisco Chavez Maldonado"},"bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","publishConfig":{"access":"public"},"dependencies":{"@fortawesome/fontawesome-svg-core":"1.2.27","@fortawesome/free-brands-svg-icons":"5.12.1","@fortawesome/free-solid-svg-icons":"5.12.0","@fortawesome/vue-fontawesome":"0.1.9","bootstrap-vue":"2.2.2","rxjs":"^6.4.0","single-spa-vue":"^3.0.1","vue":"^2.6.11"},"_id":"@cesarchamal/single-spa-layout-app@1.0.18","gitHead":"8223c6e7b0074bdb46152acae76223b7fca55e2d","_nodeVersion":"18.20.0","_npmVersion":"10.5.0","dist":{"integrity":"sha512-JnsoY5cR9P1WLXSqxd2CGc2UCxQbu8MULx9OPZdiDDMnv5HdLEHO2ThRiaQUnwEuSxVquh04aTC/ygFVi2MSGg==","shasum":"1651fa70598c42bd1e885f2dbd7c4dcef13fb782","tarball":"https://registry.npmjs.org/@cesarchamal/single-spa-layout-app/-/single-spa-layout-app-1.0.18.tgz","fileCount":7,"unpackedSize":3039057,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDHaGYORUG/xyV0vfqOISovnXInWnk0Fsfg8lDUu3CurAiEA3scPbi+PvAEAcG2M506altAVDbSZDNy8j/GbkcdrViM="}]},"_npmUser":{"name":"cesarchamal","email":"ces_ch@hotmail.com"},"directories":{},"maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/single-spa-layout-app_1.0.18_1758341299340_0.7127848252626567"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-07T10:45:48.553Z","modified":"2025-09-20T04:08:19.801Z","0.1.1":"2025-09-07T10:45:48.954Z","0.1.2":"2025-09-07T12:26:30.600Z","1.0.4":"2025-09-13T06:51:30.341Z","1.0.5":"2025-09-13T07:23:34.958Z","1.0.7":"2025-09-13T13:27:38.303Z","1.0.9":"2025-09-16T09:45:28.199Z","1.0.10":"2025-09-16T10:22:19.752Z","1.0.14":"2025-09-16T11:28:43.945Z","1.0.15":"2025-09-16T13:44:34.869Z","1.0.16":"2025-09-16T15:58:29.547Z","1.0.17":"2025-09-16T17:07:29.584Z","1.0.18":"2025-09-20T04:08:19.545Z"},"bugs":{"url":"https://github.com/cesarchamal/single-spa-layout-app/issues"},"author":{"name":"Cesar Francisco Chavez Maldonado"},"license":"MIT","homepage":"https://github.com/cesarchamal/single-spa-layout-app#readme","keywords":["single-spa","login","npm","bootstrap","bootstrap-vue","webpack"],"repository":{"type":"git","url":"git+https://github.com/cesarchamal/single-spa-layout-app.git"},"description":"Vue application with header, navbar and footer for be included in a single-spa application as registered app.","maintainers":[{"name":"cesarchamal","email":"ces_ch@hotmail.com"}],"readme":"# single-spa-layout-app\n\n<img src=\"https://single-spa.js.org/img/logo-white-bgblue.svg\" width=\"50\" height=\"50\">\n\n[![npm version](https://img.shields.io/npm/v/@cesarchamal/single-spa-layout-app.svg?style=flat-square)](https://www.npmjs.com/package/@cesarchamal/single-spa-layout-app)\n\n> **Part of [Demo Microfrontends](https://github.com/cesarchamal/demo-microfrontends)** - A comprehensive Single-SPA microfrontend architecture demonstration\n\nA Vue.js layout microfrontend for Single-SPA providing shared navigation, header, and footer components across the entire application.\n\n## 🏗️ Microfrontend Architecture\n\nThis application is one of **12 microfrontends** in the demo-microfrontends project:\n\n| Microfrontend | Framework | Port | Route | Repository |\n|---------------|-----------|------|-------|------------|\n| 🎯 Root App | Single-SPA | 8080 | Orchestrator | [single-spa-root](https://github.com/cesarchamal/single-spa-root) |\n| 🔐 Auth App | Vue.js | 4201 | /login | [single-spa-auth-app](https://github.com/cesarchamal/single-spa-auth-app) |\n| **🎨 Layout App** | **Vue.js** | **4202** | **All routes** | **This repo** |\n| 🏠 Home App | AngularJS | 4203 | / | [single-spa-home-app](https://github.com/cesarchamal/single-spa-home-app) |\n| 🅰️ Angular App | Angular 8 | 4204 | /angular/* | [single-spa-angular-app](https://github.com/cesarchamal/single-spa-angular-app) |\n| 💚 Vue App | Vue.js 2 | 4205 | /vue/* | [single-spa-vue-app](https://github.com/cesarchamal/single-spa-vue-app) |\n| ⚛️ React App | React 16 | 4206 | /react/* | [single-spa-react-app](https://github.com/cesarchamal/single-spa-react-app) |\n| 🍦 Vanilla App | ES2020+ | 4207 | /vanilla/* | [single-spa-vanilla-app](https://github.com/cesarchamal/single-spa-vanilla-app) |\n| 🧩 Web Components | Lit | 4208 | /webcomponents/* | [single-spa-webcomponents-app](https://github.com/cesarchamal/single-spa-webcomponents-app) |\n| 📘 TypeScript App | TypeScript | 4209 | /typescript/* | [single-spa-typescript-app](https://github.com/cesarchamal/single-spa-typescript-app) |\n| 💎 jQuery App | jQuery 3.6 | 4210 | /jquery/* | [single-spa-jquery-app](https://github.com/cesarchamal/single-spa-jquery-app) |\n| 🔥 Svelte App | Svelte 3 | 4211 | /svelte/* | [single-spa-svelte-app](https://github.com/cesarchamal/single-spa-svelte-app) |\n\n**Main Repository**: [demo-microfrontends](https://github.com/cesarchamal/demo-microfrontends)\n\n## Features\n\n- **Shared Layout**: Common header, navigation, and footer components\n- **Vue.js 2**: Progressive JavaScript framework\n- **Bootstrap Vue**: Responsive UI components and grid system\n- **FontAwesome Icons**: Comprehensive icon library\n- **Responsive Design**: Mobile-first responsive layout\n- **Navigation Management**: Dynamic menu and routing integration\n\n## Technology Stack\n\n- **Framework**: Vue.js 2.6.11\n- **UI Library**: Bootstrap Vue 2.2.2\n- **Build Tool**: Vue CLI 4 with library target\n- **Styling**: SCSS with Bootstrap integration\n- **Icons**: FontAwesome with Vue integration\n- **Integration**: Single-SPA Vue adapter\n\n## Development\n\n### Prerequisites\n\n- Node.js (v18.0.0 or higher)\n- npm (v8.0.0 or higher)\n\n### Installation\n\n```bash\nnpm install\n```\n\n### Development Server\n\n```bash\nnpm start\n# Runs on http://localhost:4202\n```\n\n### Build\n\n```bash\nnpm run build\n# Outputs to dist/single-spa-layout-app.umd.js\n```\n\n## Layout Components\n\n### Header Component\n- Application branding and logo\n- User authentication status\n- Global navigation menu\n- Responsive hamburger menu\n\n### Navigation Component\n- Primary navigation menu\n- Active route highlighting\n- Dropdown submenus\n- Mobile-responsive design\n\n### Footer Component\n- Copyright information\n- Links and social media\n- Contact information\n- Responsive layout\n\n### Sidebar (Optional)\n- Secondary navigation\n- Collapsible design\n- Context-sensitive content\n- Mobile drawer functionality\n\n## Single-SPA Integration\n\nThis microfrontend exports the required Single-SPA lifecycle functions:\n\n```javascript\nexport const bootstrap = vueLifecycles.bootstrap;\nexport const mount = vueLifecycles.mount;\nexport const unmount = vueLifecycles.unmount;\n```\n\n### Mount Point\n\nThe application mounts to the DOM element with ID `layout-app`:\n\n```html\n<div id=\"layout-app\"></div>\n```\n\n### Route Configuration\n\nConfigured to be active on all routes except `/login`:\n\n```javascript\nsingleSpa.registerApplication(\n  'layout',\n  () => loadApp('single-spa-layout-app'),\n  showWhenNotAnyOf(['/login'])\n);\n```\n\n### Global Layout Strategy\n- Always visible except on login page\n- Provides consistent user experience\n- Shared navigation state\n- Responsive breakpoints\n\n## Vue Configuration\n\n### External Dependencies\nThe application uses webpack externals for shared dependencies:\n\n```javascript\nconfig.externals([\n  'vue',\n  'bootstrap-vue',\n  'single-spa-vue',\n  '@fortawesome/fontawesome-svg-core',\n  '@fortawesome/free-brands-svg-icons',\n  '@fortawesome/free-solid-svg-icons'\n]);\n```\n\n### Library Build\nBuilt as UMD library for Single-SPA consumption:\n\n```javascript\nconfigureWebpack: {\n  output: {\n    library: 'single-spa-layout-app',\n    libraryTarget: 'umd',\n    filename: 'single-spa-layout-app.js'\n  }\n}\n```\n\n## Layout Features\n\n### Responsive Design\n- Mobile-first approach\n- Bootstrap grid system\n- Flexible breakpoints\n- Touch-friendly navigation\n\n### Navigation Management\n- Dynamic menu generation\n- Route-based active states\n- Breadcrumb navigation\n- Search functionality\n\n### User Interface\n- Consistent branding\n- Accessibility compliant\n- Dark/light theme support\n- Loading states\n\n### Performance\n- Lazy-loaded components\n- Optimized bundle size\n- Efficient re-renders\n- Memory management\n\n## Styling Architecture\n\n### SCSS Structure\n```scss\n// Variables and mixins\n@import 'variables';\n@import 'mixins';\n\n// Bootstrap customization\n@import 'bootstrap-overrides';\n\n// Component styles\n@import 'components/header';\n@import 'components/navigation';\n@import 'components/footer';\n```\n\n### CSS Classes\n- BEM methodology\n- Utility classes\n- Component-scoped styles\n- Responsive utilities\n\n## File Structure\n\n```\nsingle-spa-layout-app/\n├── src/\n│   ├── components/           # Layout components\n│   │   ├── Header.vue       # Header component\n│   │   ├── Navigation.vue   # Navigation component\n│   │   └── Footer.vue       # Footer component\n│   ├── styles/              # SCSS stylesheets\n│   │   ├── variables.scss   # SCSS variables\n│   │   └── styles.scss      # Main styles\n│   ├── App.vue              # Root layout component\n│   └── singleSpaEntry.js    # Single-SPA integration\n├── dist/                    # Build output directory\n├── package.json             # Dependencies and scripts\n├── vue.config.js           # Vue CLI configuration\n├── .gitignore              # Git ignore rules\n└── README.md               # This file\n```\n\n## Configuration\n\n### Vue CLI Configuration (vue.config.js)\n```javascript\nmodule.exports = {\n  configureWebpack: {\n    output: {\n      library: 'single-spa-layout-app',\n      libraryTarget: 'umd'\n    },\n    plugins: [\n      new webpack.optimize.LimitChunkCountPlugin({\n        maxChunks: 1\n      })\n    ]\n  }\n};\n```\n\n### Bootstrap Integration\n- Custom theme variables\n- Component overrides\n- Responsive utilities\n- Grid system customization\n\n## Accessibility\n\n### WCAG Compliance\n- Semantic HTML structure\n- ARIA labels and roles\n- Keyboard navigation\n- Screen reader support\n\n### Navigation Accessibility\n- Skip links\n- Focus management\n- High contrast support\n- Reduced motion support\n\n## Performance Optimization\n\n- **Bundle Size**: ~1.5MB (UMD build with styles)\n- **Load Time**: Optimized with external dependencies\n- **Runtime**: Efficient Vue.js updates\n- **Memory**: Proper component cleanup\n\n## Browser Support\n\n- Modern browsers (ES2015+)\n- IE11+ with polyfills\n- Mobile browsers\n- Progressive enhancement\n\n## Customization\n\n### Theming\n```scss\n// Override Bootstrap variables\n$primary: #007bff;\n$secondary: #6c757d;\n$success: #28a745;\n\n// Custom layout variables\n$header-height: 60px;\n$sidebar-width: 250px;\n```\n\n### Component Props\n```javascript\n// Navigation component props\nprops: {\n  menuItems: Array,\n  activeRoute: String,\n  collapsed: Boolean\n}\n```\n\n## Testing\n\n### Unit Tests\n```bash\nnpm run test:unit\n```\n\n### Component Tests\n```bash\nnpm run test:components\n```\n\n### Linting\n```bash\nnpm run lint\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Follow Vue.js and Bootstrap best practices\n4. Ensure responsive design\n5. Test across different screen sizes\n6. Submit a pull request\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Related Projects\n\n- [Vue.js](https://vuejs.org/) - Progressive JavaScript framework\n- [Bootstrap Vue](https://bootstrap-vue.org/) - Vue.js Bootstrap components\n- [FontAwesome](https://fontawesome.com/) - Icon library\n- [Single-SPA](https://single-spa.js.org/) - Microfrontend framework\n- [Demo Microfrontends](https://github.com/cesarchamal/demo-microfrontends) - Complete microfrontend demo\n\n## 🚀 Quick Start\n\n**Run the complete microfrontend system:**\n```bash\n# Clone main repository\ngit clone https://github.com/cesarchamal/demo-microfrontends.git\ncd demo-microfrontends\n\n# Start all microfrontends\n./run.sh local dev\n```\n\n**Run this microfrontend individually:**\n```bash\nnpm install\nnpm start\n# Visit http://localhost:4202\n```\n\n## Author\n\nCesar Francisco Chavez Maldonado - Vue.js Layout Microfrontend","readmeFilename":"README.md"}