{"_id":"@aravinthan_p/appnest-engine","_rev":"23-e87ca9398ccead0abdb0727f6752e4c5","name":"@aravinthan_p/appnest-engine","dist-tags":{"latest":"1.0.22"},"versions":{"1.0.0":{"name":"@aravinthan_p/appnest-engine","version":"1.0.0","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.0","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"20fce7d5893a6bd17fd0e9ab87dcbcd9030391b2","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.0.tgz","fileCount":9581,"integrity":"sha512-L17q4kH8bqJJ8EnJImEcz7Imnxmvw4Jg/27JmetPBTBEGeN95u4WvDmlHSi1extpsBkC+o1/lH5XYg7d9N7OgA==","signatures":[{"sig":"MEQCICxYfH10l2T6SH4gEy5Bgx6ByeWpUi0/dhchyzRUNWjpAiB/Dn7nCNQCV2G73ZaqI2TGNgWZ/8d4Jr1dQ2Em+hGmrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144115601},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.0_1772093982673_0.310598139852436","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aravinthan_p/appnest-engine","version":"1.0.1","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.1","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"1af8a394dc917068b5dfbdf068e73a8367353575","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.1.tgz","fileCount":9581,"integrity":"sha512-+Ufp11GOoaOXYUWK9cGlcNauSPVo+qyfPFySgRfiGf7uiONdH5s1bkfYiQkvcjXW2U8yfxZI6k59U5ag0HZIBA==","signatures":[{"sig":"MEQCIDC26BB1Xw3IhbwT1lBdvydzBO8GYAgHybQP9Xck7vlcAiB6CP8VmS3HFMVcbsKoqc0Je90WwKh5EsoRn256Fn2puQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144115625},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.1_1772100586591_0.43916736250088384","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aravinthan_p/appnest-engine","version":"1.0.2","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.2","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"f35ea3977f2fa9b8e9c16eea312889c29265ec83","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.2.tgz","fileCount":43,"integrity":"sha512-iEiEOohpltgpejzil1eNJJFZRVKlbqox3Q4YQXqarQNHzDaBDFtT22UEsZSHhcpmMKKKf4AtJahJZLIjFeEJ0g==","signatures":[{"sig":"MEUCIQDLL3ai7dbqCN3enyC8XQJPWefe4cfYg1xerzXIqjnkFAIgEMsprZc5fDHQo8eK23hta26mSukfGZHB8AHN/H7jA2A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355841},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"workspaces":["appnest-backend","appnest-frontend","appnest-proxy","appnest-installation-frontend"],"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.2_1772101884098_0.7122239039241118","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aravinthan_p/appnest-engine","version":"1.0.3","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.3","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"fa430396607905afc84b569dbb3a25f767d6a85b","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.3.tgz","fileCount":43,"integrity":"sha512-R1gD3hYmAbb4cK+IvIq5WeJGB215PG+5VdjSdxQLfMmrOuXTMDUm/dsonKm6AFbgmMgjLD1CWRO7M6rQU7U+XQ==","signatures":[{"sig":"MEUCIQDAy3BGhfDP67Jumd5CXj7X3Dglro55dxU9lsJco/s8dQIgBh112xIFwvLfCUxngIwwciEJOI24MdjpNn6ngMZTmgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355841},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"workspaces":["appnest-backend","appnest-frontend","appnest-proxy","appnest-installation-frontend"],"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.3_1772102672700_0.30790318278867224","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aravinthan_p/appnest-engine","version":"1.0.4","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.4","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"e25afc4af730b87019c24050238b04209dcf052b","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.4.tgz","fileCount":43,"integrity":"sha512-S7xDAtnkjYLaSZAEz1lhZYlGcm7lJpoB6Q3NsYAfLWXnelq2sCsTyXyKrgJli9QbRnoime6NhXyDtm5jB8+Xqg==","signatures":[{"sig":"MEUCIAERfO30jr8OkPnsgLD9UCvxDuZjQWKW8UY/SazQ7d1IAiEAw8qdj9awJhCTQPrvnH/vI1clAxEZgZxFiNjf92dGR88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355789},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"workspaces":["appnest-backend","appnest-frontend","appnest-proxy","appnest-installation-frontend"],"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.4_1772105305439_0.8089647783559057","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@aravinthan_p/appnest-engine","version":"1.0.5","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.5","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"5c5370963e7fda9552c753f39a0483652e8100ba","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.5.tgz","fileCount":43,"integrity":"sha512-NVRG7zlvyIM/ymaMOgQJ2zUjM4Is07x9Mfuk6R+gWBtCfOBUPMVMZMzTqmlQwpFuxY21comGpIK4K0SpENdfKQ==","signatures":[{"sig":"MEUCIB4ZbXH3VxY9v6FeUU8JbfdmIpr0dfCNBong/QTzdjxYAiEAiB/GPErEbsv4A3DNRVX3EMWKdEYBJxW2ZtA/diT4ZdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355662},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.5_1772107223527_0.5496027302435507","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@aravinthan_p/appnest-engine","version":"1.0.6","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.6","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine-local":"cli.js"},"dist":{"shasum":"32175dd95dd9d16809307eeed44d6871e1fea377","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.6.tgz","fileCount":43,"integrity":"sha512-mQUDx1pKz+MtLjdMpBjwxa4rsenOcA/huYH3i0NrVnicGryC/T98dwBdjI9En+Q8wILHoTCsp71ihm5w+dGJsg==","signatures":[{"sig":"MEQCIBrSxWvD1CfXz+U+kfo2hLfiyv4Z1x84PUBJybc7eC0eAiBNBU/iyNk1KBuIVKZuacwNIgeBRlc7n0iG+pT2nuMTbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355681},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.6_1772110915625_0.6159918435933609","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@aravinthan_p/appnest-engine","version":"1.0.7","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.7","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine-local":"cli.js"},"dist":{"shasum":"a2b495fa17c334ee1c448c9abff13076db7d4889","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.7.tgz","fileCount":43,"integrity":"sha512-ZFj7UTndL671zmpR1HxxrsD275TzzBuU8CDKpLAyRxzwHaK/msrD2jpqoxDqrW5KBGS3I1l2hbZYkhgH7vkCjw==","signatures":[{"sig":"MEUCIQCdFgpDIYmSisMJ7armkoFIcMNF6OVl96TFSHnYluV0kgIgFW1/XABqaxpiArn7kHMc1QONvPwugXnejMFs2l9T7nM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355534},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.7_1772112054391_0.6745145076931569","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@aravinthan_p/appnest-engine","version":"1.0.8","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.8","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"0739750adb1d2fbe9bb307d5a40b23c75c24cf2a","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.8.tgz","fileCount":43,"integrity":"sha512-IODBgLVuBs1e/y3R5DwMtAd8IgZRBbd1z0tlVR/ySINrxrOwlZkFQ3W8Evvs2bObCBpgwfUTazgB2KVERIoEqw==","signatures":[{"sig":"MEUCICrdhlpDglMNb4gsefy0dGYltF8tuKVArNvUbFjP+NzuAiEAsPbC6tbzV/SeXGuzun7VkGgKA3DJ4FAk9E5f+UHU81c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355528},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.8_1772112085587_0.43624703802900755","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@aravinthan_p/appnest-engine","version":"1.0.9","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.9","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"36ac4c09f77f7211ff927a7572e72480da02a9e4","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.9.tgz","fileCount":43,"integrity":"sha512-GJsgKMeDkUdNaCQo451udLzF+/l6s8wqg5RaKZRG2vR+Tbos1hpai2clMV84mkzmQOUCcrmTDC1vtkzW1mnRlA==","signatures":[{"sig":"MEUCIB9rsj/LlGCdtvgRrltx2ogSa4+jodZdQ+mG+DAxh6fVAiEA/kmaovfcbk6bPnk16/TWqg+AKF/p+utthUV/H+TEe7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355577},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.9_1772112727163_0.9853438305514994","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@aravinthan_p/appnest-engine","version":"1.0.10","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.10","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"aa3f3bee382fe5b61edf3cb30488b84a41a0e881","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.10.tgz","fileCount":43,"integrity":"sha512-B6aklK7KElrz2nTJQ+N4P9KszVCsM3x1VohLaZGRufOaJc4ktMRsmDcO0MPzI5iEuJfYaWNW6EmZWWAvbtQZTA==","signatures":[{"sig":"MEUCIQChc3+1KPcTH6Azr7JwAjI98FCOUpJMWkuqiwm1rvFtEwIgQJn8McooKm+XHxgh9eXPMNWvnW/Li8bZODEpo6mR7d0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356396},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.10_1772186275326_0.6877445110101239","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@aravinthan_p/appnest-engine","version":"1.0.11","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.11","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"89b03b3caaa0037a49553c9e565d77b88e47be6a","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.11.tgz","fileCount":43,"integrity":"sha512-foZm9LhysKbWG1fXRM/andTiVvrw/oY/deh6iGl164yHmyB6/UArtgBbG0xYZv6Uh++N2ijB3j+V4X0LT/q5pw==","signatures":[{"sig":"MEQCIFrsZUYENdu8ksfG9nm56DVw25ut2DU1ZBcjzs70+H3KAiAd+2XhJl35YkkqTePTMnq8NLWKefvhDbjG1t7GXzCKzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356497},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.11_1772186675755_0.09497650343887099","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@aravinthan_p/appnest-engine","version":"1.0.12","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.12","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"3a206eff03430c73d057bf5e3d2d50c795f69dc6","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.12.tgz","fileCount":43,"integrity":"sha512-ROCh88vIhHRQFzS9vCd0IuhZ4jEVVew+zyOVmunly84+d2b7zTwTZTsWr6I1bFhABuTwpuy/sMb/dztpPsmi4A==","signatures":[{"sig":"MEUCIQDb2XnYbFUuYdQApskZyBIUlEEPTj+/pyNOjAZmpyN/hAIgYcKbyhrxiUxszXdQhALscIEZAF/iy2vVOwbLBZc1zOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356487},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.12_1772187968980_0.7301011997580409","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@aravinthan_p/appnest-engine","version":"1.0.13","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.13","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"63b4f0f525087a0546c50c7291d5262e667d10aa","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.13.tgz","fileCount":44,"integrity":"sha512-Zw9QDAAclyo5efylKzLrDKfLoCRU3O5CeA4yHktbBxKWfo6gRluqOn66BWrsNJBpDem0O41SwU9Y+EqjFp7iGQ==","signatures":[{"sig":"MEUCIFpZDt398ac36H5MPT+yr7lf6TLqi9PbRunBOTuLlsFqAiEAvoEotwzZ5Y/qPBhRF1M7JxReE4NdVsYQO7CPz8cdiKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366091},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.13_1772702554559_0.7806982236865945","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@aravinthan_p/appnest-engine","version":"1.0.14","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.14","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"37ca784e93fa683c3582779dd1ab98a091b9cb96","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.14.tgz","fileCount":44,"integrity":"sha512-F3hdbOENtuyWXmJRKRZ9kJF07pDU+6V5/XRZO1zEa6Oh2BKuFjXVduVth39X/xZSyVGrixBn2mKTdB7ZdTEZeQ==","signatures":[{"sig":"MEUCIFtfLDNaUVaWfTM77GN1Ft83A5/UMcMKy6UQgjFVbn/SAiEA2dN05fMB4RBybP3gY9+rUEd2Ry3GEvRbEpuKxFFPdSE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366041},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.14_1772802439908_0.5170584788096837","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@aravinthan_p/appnest-engine","version":"1.0.15","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.15","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"3198d0fc628310a84b91ade320809ccff694b1d8","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.15.tgz","fileCount":44,"integrity":"sha512-Q0F1J84Dri4QbUAwTkkMz6/0wA6NuFJtl29XC5xapjY1GjuHBgb0gHLSE+dRSM4fO1mtnYhh0zMOmu1UXRh+Ag==","signatures":[{"sig":"MEUCIQCuCLrZH70TY9uqK0oIaStldsV3pq2rlnODfMVlqGMQQAIgf8E1BgHioJJ1wcMMaKy8ibtBMvyx1Jkx+CmD6mEA+OQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366040},"main":"index.js","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.15_1773065669822_0.503488529887413","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@aravinthan_p/appnest-engine","version":"1.0.16","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.16","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"20f2a0566f9a31cd7a448f66222b4e832615b570","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.16.tgz","fileCount":43,"integrity":"sha512-aTRM4FeWWKGqw2FBWbAUZNNrFxqlhq1y7qetwwFS1UHL1iwRgChg0DUP32ANsNuRO5kOXCQ/aU2KQ+RigyAeWQ==","signatures":[{"sig":"MEYCIQD/zfzWR4FSd24OWlwyyTFTO3oysbXL+hWGlo/oaC1BXQIhAMbJo9hBGQlBgkUexseiw8BJcegMZHWL79l0gL9gP3xG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323598},"main":"index.js","gitHead":"87aa7530a791c49b7e4dbaaf358c855bea67068c","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.16_1773224959344_0.744475805778283","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@aravinthan_p/appnest-engine","version":"1.0.17","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.17","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"9c5d24c6db5556da66ddd8f030695ed325925410","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.17.tgz","fileCount":43,"integrity":"sha512-ji0UhwgRPQ6Ayq9e7n6t5zD2Isk1hNw6GrOVy3d59R7B5n+yACNrmIbPqzgllhwl0j/u90y5QgbI2Io24XWY6A==","signatures":[{"sig":"MEYCIQDHQOjR8TLYg/nkrzNislmLFGOsPhYxPkuPjhrbr4fQLgIhAO1ZGUd1eyjEvGYXlWVtunD0d5FjkvUFxDgEcaKVcGGW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323598},"main":"index.js","gitHead":"e2ec1e8e3592166accfce7b121734276d43cd4a1","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.17_1773225190813_0.0002858379167050007","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@aravinthan_p/appnest-engine","version":"1.0.18","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.18","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"bdd3f539098c8bcc6dbb159d5e4da668f05551f2","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.18.tgz","fileCount":43,"integrity":"sha512-xXnABGhKNX6oi6wf6WB/QUcIsyb6NaCvYtG6F3Kz0ctRDCQs+qv4ZzPvNIrcz9TAmJSnmGakwRCtkJN13hZx/Q==","signatures":[{"sig":"MEYCIQCDLTEij6LIwh39Po4+sMnQVa78FApJqPfCNdcpX4GNmQIhAKERFTl34SXWLgIU7rLXFprrlHO5fvg2uF8Ems1H0saZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323598},"main":"index.js","gitHead":"8e5a577566356ebcb1f8be87ab5f975a56b5eb5b","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.18_1773225430252_0.3903535924869923","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@aravinthan_p/appnest-engine","version":"1.0.19","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.19","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"c24f67021572289af0b31fd01e3c41f0a531ed95","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.19.tgz","fileCount":43,"integrity":"sha512-1qnc2S4+dYHu9N3ddACGF3MiCnTdMy6fCilR6oop52RZ6ND3qwMqYw3cUTth+vPcWdNkm5bsuILz3m+wU5zPQw==","signatures":[{"sig":"MEYCIQCmcD8UBYzcLVxfh+mV4LLNzpTkaa1Wz7wtkGOyTkqE0wIhAPHKldIgFeF1N36WFv6XFUyJPv4qd2u4rkV5f/gmMkoy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323598},"main":"index.js","gitHead":"8e5a577566356ebcb1f8be87ab5f975a56b5eb5b","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.19_1773225706318_0.18116978590352462","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@aravinthan_p/appnest-engine","version":"1.0.20","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.20","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"edc66714e7a9f0228c6832b0e22e7a3783eea32b","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.20.tgz","fileCount":43,"integrity":"sha512-IM2woO71r8L6K+Kzg0L0KUIzNE+rmmICg7ShLu2zBDvPMQBbe/7Awcc2XQ0LewrpVZN//9YVZMcZjuibz0IrtQ==","signatures":[{"sig":"MEQCIGA67CDzezNbxO2MS+5QmVLIM8f7cgCOEdrc4LfqlCbIAiBNGPF1Qd2TwwzWii5XcLu0Azv1LGE2UUUxIjkTOO38Cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324892},"main":"index.js","gitHead":"56624f769cf50a3d821c81344bff20e1a6764b00","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.20_1773756317546_0.350549606813076","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@aravinthan_p/appnest-engine","version":"1.0.21","keywords":[],"author":"","license":"ISC","_id":"@aravinthan_p/appnest-engine@1.0.21","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"bin":{"appnest-engine":"cli.js"},"dist":{"shasum":"489cb5f48e0ac900ed8f6465b370f972b58c7f40","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.21.tgz","fileCount":43,"integrity":"sha512-eKrhgo3xKN0NEGEAgvu3oceBBkJPIFJxFVN3jixOC2ainwMpL9Dgqi8RTrFK7GFwsXqks2DSMbkD7uXoJXGLlQ==","signatures":[{"sig":"MEUCICSWboHNpurIWanbEvocMudFnpWY/o6LsTNH6UeB8SS/AiEAxWWn1IAjJxqYcD3JVbFDex9de8xylmLdVAGGN6pBAl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325289},"main":"index.js","gitHead":"c6191ac89671514fd49efbd2f54e6f09d3431f43","_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"_npmVersion":"10.9.4","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-installation-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint":"^9.39.2","commander":"^14.0.2","stylelint":"^17.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/appnest-engine_1.0.21_1773764662704_0.1058081717623236","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@aravinthan_p/appnest-engine","version":"1.0.22","main":"index.js","keywords":[],"bin":{"appnest-engine":"cli.js"},"author":"","license":"ISC","description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-install-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","dependencies":{"@eslint/js":"^9.39.2","commander":"^14.0.2","eslint":"^9.39.2","globals":"^14.0.0","stylelint":"^17.3.0"},"_id":"@aravinthan_p/appnest-engine@1.0.22","gitHead":"5e45cce247404157d81ccf67f795c353d8436e4e","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-0a8ItN4VE1E7NtCRg/DKYZIhRcH+0elsmtMEJQy83jc/D2ZdqQfAYvrb5rpu2QlZd8yGxWkSqEvK+Ue/8a1xSQ==","shasum":"fa74e2ec3915d85d73a3b3e3548cea98ae462e98","tarball":"https://registry.npmjs.org/@aravinthan_p/appnest-engine/-/appnest-engine-1.0.22.tgz","fileCount":45,"unpackedSize":343715,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHau93VnaZpVyK5ji6AwMWpeFDlySatM9wsFdKruETdPAiEAvvklvZ5zAgRH2kvqB/cIDN7LiV2wj7FdpmlPLM60JRE="}]},"_npmUser":{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"},"directories":{},"maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appnest-engine_1.0.22_1773932366421_0.33571144704333533"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-26T08:19:42.561Z","modified":"2026-03-19T14:59:26.727Z","1.0.0":"2026-02-26T08:19:43.820Z","1.0.1":"2026-02-26T10:09:47.821Z","1.0.2":"2026-02-26T10:31:24.280Z","1.0.3":"2026-02-26T10:44:32.891Z","1.0.4":"2026-02-26T11:28:25.593Z","1.0.5":"2026-02-26T12:00:23.685Z","1.0.6":"2026-02-26T13:01:55.794Z","1.0.7":"2026-02-26T13:20:54.583Z","1.0.8":"2026-02-26T13:21:25.783Z","1.0.9":"2026-02-26T13:32:07.310Z","1.0.10":"2026-02-27T09:57:55.517Z","1.0.11":"2026-02-27T10:04:35.919Z","1.0.12":"2026-02-27T10:26:09.151Z","1.0.13":"2026-03-05T09:22:34.767Z","1.0.14":"2026-03-06T13:07:20.064Z","1.0.15":"2026-03-09T14:14:29.961Z","1.0.16":"2026-03-11T10:29:19.497Z","1.0.17":"2026-03-11T10:33:10.969Z","1.0.18":"2026-03-11T10:37:10.515Z","1.0.19":"2026-03-11T10:41:46.520Z","1.0.20":"2026-03-17T14:05:17.717Z","1.0.21":"2026-03-17T16:24:22.868Z","1.0.22":"2026-03-19T14:59:26.584Z"},"license":"ISC","keywords":[],"description":"Development CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-install-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.","maintainers":[{"name":"aravinthan_p","email":"aravinthan.prabakaran@surveysparrow.com"}],"readme":"# Appnest Engine\n\nDevelopment CLI and runtime for Appnest apps. It wires your **app-backend**, **app-frontend**, and optional **app-install-frontend** behind a single proxy, runs checks, and helps you bundle and zip the app for distribution.\n\n**Package:** `@aravinthan_p/appnest-engine` · **CLI binary:** `appnest-engine`\n\nFor a focused list of commands, see **[appnest-engine-commands.md](./appnest-engine-commands.md)**.\n\n---\n\n## Overview\n\nAppnest Engine runs from the **developer’s project directory** (where `app-backend`, `app-frontend`, etc. live). It provides:\n\n- **CLI** – Commands for init, precheck, install, start, validate, bundle, and pack (see [appnest-engine-commands.md](./appnest-engine-commands.md)).\n- **Proxy** – One server on port **3000** (default) that routes traffic to your app’s backend and frontends.\n- **Engine packages** – Shared runtime (proxy, backend layer, Vite dev servers) that load your app code from the current directory via `ORIGINAL_CWD`.\n\n---\n\n## Flow\n\n```\n┌─────────────────────────────────────────────────────────────────────────┐\n│  Developer runs:  appnest-engine app start                              │\n│  (from their app project directory: app-backend, app-frontend, etc.)      │\n└─────────────────────────────────────────────────────────────────────────┘\n                                      │\n                                      ▼\n┌─────────────────────────────────────────────────────────────────────────┐\n│  CLI (cli.js)                                                            │\n│  • Parses \"app start\" → appnestAction(\"start\")                             │\n│  • runtimeUtils.runApp() starts only: appnest-proxy                       │\n└─────────────────────────────────────────────────────────────────────────┘\n                                      │\n                                      ▼\n┌─────────────────────────────────────────────────────────────────────────┐\n│  appnest-proxy (port 3000)                                               │\n│  • Reads .env from ORIGINAL_CWD (developer’s project)                    │\n│  • Allocates ports for app-backend, app-frontend, app-install-frontend   │\n│  • Starts appnest-backend (loads user’s app-backend/server.js)          │\n│  • Starts appnest-frontend (Vite dev server for app-frontend)             │\n│  • Starts appnest-install-frontend if app-install-frontend exists    │\n│  • Proxies:                                                              │\n│      /app-backend/*  → app-backend                                       │\n│      /app-frontend/* → app-frontend                                      │\n│      /app-install-frontend/* → installation UI                      │\n│  • Watches app-backend / app-frontend and restarts on change (backend)   │\n│    or on config change (frontends); HMR for normal frontend edits        │\n└─────────────────────────────────────────────────────────────────────────┘\n                                      │\n          ┌───────────────────────────┼───────────────────────────┐\n          ▼                           ▼                           ▼\n┌──────────────────┐    ┌────────────────────┐    ┌────────────────────────────┐\n│ appnest-backend  │    │ appnest-frontend   │    │ appnest-install-frontend   │\n│ (Express layer)  │    │ (Vite dev server)  │    │ (Vite dev server)          │\n│ Loads user’s     │    │ Serves user’s      │    │ Serves user’s              │\n│ app-backend/     │    │ app-frontend/      │    │ app-install-frontend/ │\n│ server.js        │    │                    │    │ (optional)                 │\n└──────────────────┘    └────────────────────┘    └────────────────────────────┘\n```\n\n- **User directory** = where the developer runs the CLI (`process.cwd()` → `ORIGINAL_CWD` for child processes).\n- **Engine packages** (in this repo) = `appnest-backend`, `appnest-frontend`, `appnest-install-frontend`, `appnest-proxy`. They load and serve the **app** folders from the user directory.\n\n---\n\n## Project structure\n\n| Path | Role |\n|------|------|\n| `cli.js` | Entry point for `appnest-engine`; Commander; delegates to `appnest-command-line`. |\n| `index.js` | Exports `appnestAction` for programmatic use. |\n| `package.json` | Root package; `bin.appnest-engine` → `cli.js`; version used by CLI. |\n| **appnest-command-line/** | CLI actions: init, precheck, install, start, validate, bundle, pack. |\n| **appnest-proxy/** | Express on port 3000; reads user `.env`; starts backend + frontends; proxies and file watching. |\n| **appnest-backend/** | Express app that loads the user’s `app-backend/server.js` under `/app-backend`. |\n| **appnest-frontend/** | Vite dev server / build tooling for the user’s `app-frontend`. |\n| **appnest-install-frontend/** | Vite dev server / build for the user’s optional `app-install-frontend`. |\n\n**Developer project** (user directory) typically includes:\n\n- `app-backend/` (e.g. `server.js`)\n- `app-frontend/` (e.g. Vite/React app)\n- Optional: `app-install-frontend/`\n- `.env` — proxy reads this for ports, `CLIENT_SCRIPT_URL`, `PROXY_DEBUG_LOGS`, etc.\n\n---\n\n## Installation\n\nFrom the **engine** repo root:\n\n```bash\nnpm install\n```\n\nThat installs **root** dependencies only (`commander`, `eslint`, `stylelint`, …). To install dependencies inside each engine package (`appnest-backend`, `appnest-frontend`, `appnest-install-frontend`, `appnest-proxy`), run:\n\n```bash\nappnest-engine app install-packages\n```\n\n(Run from anywhere with the CLI on your `PATH`, or use `node path/to/cli.js app install-packages` from the engine repo.)\n\n---\n\n## CLI usage\n\n| Command | Description |\n|---------|-------------|\n| `appnest-engine --version` | Print engine version (root `package.json`). |\n| `appnest-engine app init` | Download Appnest base code from GitHub into the current directory. |\n| `appnest-engine app precheck` | Node.js (≥22) and existence of all configured engine + app paths. |\n| `appnest-engine app install-packages` | `npm install` in `appnest-backend`, `appnest-frontend`, `appnest-install-frontend`, `appnest-proxy`. |\n| `appnest-engine app start` | Start **appnest-proxy**; proxy starts backend + frontends and proxies traffic. |\n| `appnest-engine app bundle-frontend` | Run `npm run build` in `appnest-frontend` and `appnest-install-frontend` (builds into the **user’s** app folders via `ORIGINAL_CWD`). |\n| `appnest-engine app pack` | Runs **bundle-frontend**, then packages `app-frontend`, `app-backend`, `app-install-frontend` (+ `manifest.json`) into `appnest-app-pack/` and a timestamped zip under `app-pack-zip/`. |\n| `appnest-engine app validate` | ESLint (and related checks) on `app-backend` / `app-frontend`; validates `manifest.json`. |\n| `appnest-engine app ai-context` | Download AI context into `appnest-ai-context/` at project root. Replaces existing folder if present. |\n| `appnest-engine help` | Print short help for available `app` actions. |\n\n**Typical developer flow**\n\n1. In the **app project** directory: `appnest-engine app init` (if needed).\n2. `appnest-engine app precheck` (optional).\n3. `appnest-engine app install-packages` (after cloning or updating the engine).\n4. From the **app project** directory: `appnest-engine app start` → proxy on port **3000**, e.g. `http://localhost:3000/app-frontend/`, API at `http://localhost:3000/app-backend/`.\n\n---\n\n## Runtime flow (`start`)\n\n1. **CLI** starts **appnest-proxy** with `ORIGINAL_CWD` = current working directory.\n2. **Proxy** reads `.env`, allocates ports, then:\n   - Starts **appnest-backend** (user’s `app-backend/server.js`).\n   - Starts **appnest-frontend** (Vite for `app-frontend`).\n   - If `app-install-frontend` exists, starts **appnest-install-frontend**.\n3. Routes (defaults; ports from `.env` where applicable):\n   - `/app-backend` → backend\n   - `/app-frontend` → main frontend\n   - `/app-install-frontend` → installation UI\n4. **Watching**: `app-backend` changes restart the backend; `vite.config.js` / `.env` changes can restart frontends; ordinary source edits use Vite HMR.\n\n---\n\n## Zip / bundle flow\n\n- **`bundle-frontend`** builds both engine frontends so output lands in the user’s `app-frontend/dist` and `app-install-frontend/dist` (when those trees exist).\n- **`pack`** runs **bundle-frontend**, may rewrite paths in `app-frontend/dist/index.html`, copies `app-frontend`, `app-backend`, `app-install-frontend`, and `manifest.json` into **`appnest-app-pack/`**, then creates **`app-pack-zip/app-pack-<timestamp>.zip`**.\n\n---\n\n## License\n\nISC\n","readmeFilename":"README.md"}