{"_id":"@adobehrjain/commerce-admin-management","_rev":"11-9384d80af146a9f679b82575cb95af29","name":"@adobehrjain/commerce-admin-management","dist-tags":{"latest":"0.0.35"},"versions":{"0.0.13":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.13","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.13","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"09159aa4238bad09d15ed821b51263a3d37a1f40","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.13.tgz","fileCount":48,"integrity":"sha512-dGiZTGwkmyyxiGefHtrCsbpeQ1D3TsowJ8Up/hq1iDYlH3DehkgF+X/xXHK8U5h2hqaIS2blvneiUUhsTqG8+g==","signatures":[{"sig":"MEQCIAkMx7EXy+yZZHD3sVfdWuJ5EyzWpcRvcGAx3xFN+a/fAiAF9cvoN7PcPl/DPxWL9klmvIrHykIKruPbXsviHUGxvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":414073},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"768faae21844fe32c9ee88281ad2c03bdc05d526","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"esbuild":"^0.25.12","@adobehrjain/commerce-admin-get-config":"^0.0.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18.0.0","dotenv":">=16.0.0","react-dom":">=18.0.0","@adobe/aio-sdk":">=5.0.0","@adobe/exc-app":">=1.0.0","@adobe/uix-guest":">=0.8.0","react-router-dom":">=6.0.0","@adobe/aio-lib-db":">=1.0.0","@adobe/aio-lib-ims":">=7.0.0","react-error-boundary":">=3.1.0","@adobe/react-spectrum":">=3.30.0","@adobe/aio-lib-core-auth":">=1.1.0","@spectrum-icons/workflow":">=3.0.0 <5.0.0"},"peerDependenciesMeta":{"@adobe/aio-lib-db":{"optional":false},"@adobe/aio-lib-ims":{"optional":false},"@adobe/aio-lib-core-auth":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.13_1782121592186_0.1591652112637627","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.19","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.19","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"da7665f8e9fbc0707b61b0bdbfda1e2d008876d1","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.19.tgz","fileCount":48,"integrity":"sha512-LTNhHuP6bPdrqUIznYBFKQ7kMxNxzO1ETjcX06zD6msUqJUWlX068pmtsV5rTNivMhM+Fq76QqsroQFAdQisuw==","signatures":[{"sig":"MEYCIQDN6ugDtFJRxx1QK+YSVcmOxQ2n49mtrLyp2nWHDzQSwAIhAJziqptgygSUQQCcwRVhP/eAPm1SBts4Vjoz8oGjPS0q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430480},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"80f72f1f8039e747d7a7c88ddf55b9ec04bd6040","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"esbuild":"^0.25.12","@adobedjangir/commerce-admin-get-config":"^0.0.2"},"_hasShrinkwrap":false,"peerDependencies":{"dotenv":">=16.0.0","@adobe/aio-lib-db":">=1.0.0","@adobe/aio-lib-ims":">=7.0.0","@adobe/aio-lib-core-auth":">=1.1.0"},"peerDependenciesMeta":{"dotenv":{"optional":true},"@adobe/aio-lib-db":{"optional":true},"@adobe/aio-lib-ims":{"optional":true},"@adobe/aio-lib-core-auth":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.19_1782149723503_0.5845727408671535","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.20","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.20","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"a3899fb0d6f78ffbf9db8f7332bfc17428e13691","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.20.tgz","fileCount":48,"integrity":"sha512-GcyNVCPu7Q8nlmro0KRy+S5/yBV3BY8/PmJAj/LndB212nWH/AzeNSOXBhEAl3cvRKz41TxMdVKDwqVe/oiq6Q==","signatures":[{"sig":"MEQCIDzSUX68iF5nshseW267b7xGKC6bxESBAKMmQk7MzTxSAiAFgniB5K6oJboBsdTlOIBD3CW2jpudtifyiYLAYojtfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437203},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"80f72f1f8039e747d7a7c88ddf55b9ec04bd6040","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"esbuild":"^0.25.12","@adobedjangir/commerce-admin-get-config":"^0.0.2"},"_hasShrinkwrap":false,"peerDependencies":{"dotenv":">=16.0.0","@adobe/aio-lib-db":">=1.0.0","@adobe/aio-lib-ims":">=7.0.0","@adobe/aio-lib-core-auth":">=1.1.0"},"peerDependenciesMeta":{"dotenv":{"optional":true},"@adobe/aio-lib-db":{"optional":true},"@adobe/aio-lib-ims":{"optional":true},"@adobe/aio-lib-core-auth":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.20_1782149838241_0.15392407058029","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.25","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.25","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"21ece7f53f3f27b02b515cdd2b345c1459f08037","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.25.tgz","fileCount":48,"integrity":"sha512-RgFy8420RFRfaruW4aQvy+H+2PoRBMTjssM3WkRdRvU3oRmnWn4y6Kwn2Q7uqcOAxtEq6izl0lOLQd5nZBC8Qw==","signatures":[{"sig":"MEQCIEIWkzAVebLVPsmbDdPGlIcgFzly/VXhk+u7722TJMrYAiBOnWFSlchbR/JE9hIiNRPumymDTW+ZN6Gd9D+65Zsa7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437264},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"0895a148a98444ccf04c7b68e99e5069028dfb01","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"esbuild":"^0.25.12","@adobedjangir/commerce-admin-get-config":"^0.0.4"},"_hasShrinkwrap":false,"peerDependencies":{"dotenv":">=16.0.0","@adobe/aio-lib-db":">=1.0.0","@adobe/aio-lib-ims":">=7.0.0","@adobe/aio-lib-core-auth":">=1.1.0"},"peerDependenciesMeta":{"dotenv":{"optional":true},"@adobe/aio-lib-db":{"optional":true},"@adobe/aio-lib-ims":{"optional":true},"@adobe/aio-lib-core-auth":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.25_1782179933164_0.8617990366700254","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.26","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.26","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"997caa4adaef64684d26476704c15fc315b61ea1","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.26.tgz","fileCount":48,"integrity":"sha512-/Hiyvc+KHoWUDH/vxu8X2IKEj8jo4se1lFtV/Dn9iGbyK+kJmPz2v4TA4aobXcaw5YpTwFVrDJFCb/p7+/JNMA==","signatures":[{"sig":"MEYCIQD50ptgUl3lAyCZbySbJiJpXY6WbtBKEo3X9f7tOFZlaAIhAP9yjgIdvq9iNnwahaTabfgnO70PRuQoEQ26P4APyEQ4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437264},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"c16b1839be5dd5d0aec585389db01dce5444b798","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"esbuild":"^0.25.12","@adobedjangir/commerce-admin-get-config":"^0.0.5"},"_hasShrinkwrap":false,"peerDependencies":{"dotenv":">=16.0.0","@adobe/aio-lib-db":">=1.0.0","@adobe/aio-lib-ims":">=7.0.0","@adobe/aio-lib-core-auth":">=1.1.0"},"peerDependenciesMeta":{"dotenv":{"optional":true},"@adobe/aio-lib-db":{"optional":true},"@adobe/aio-lib-ims":{"optional":true},"@adobe/aio-lib-core-auth":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.26_1782180371168_0.05012491478535619","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.27","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.27","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"75da53c06545c88f3532f5c47ff5fbc796ff5601","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.27.tgz","fileCount":48,"integrity":"sha512-kWGrKQb4uWNuvLxoFLgq55cMGBIgMH7MR4NxvtydGhe1PE0vB9UJffaiRh9T+3KSo9uVikczNnUNTPdAcJmJ0g==","signatures":[{"sig":"MEUCIQD77QKMCK+P/3nBLxn8bhVeWihy2kZgvYeV7Cu725IPwAIgR4AyYwTl8i2TW5gHKICkFaU8LXAwTzrgwOqeZBI1W5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437180},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"b7088cfc6a47b8569227aa4070d24ecae6800661","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"esbuild":"^0.25.12","@adobehrjain/commerce-admin-get-config":"^0.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"dotenv":">=16.0.0","@adobe/aio-lib-db":">=1.0.0","@adobe/aio-lib-ims":">=7.0.0","@adobe/aio-lib-core-auth":">=1.1.0"},"peerDependenciesMeta":{"dotenv":{"optional":true},"@adobe/aio-lib-db":{"optional":true},"@adobe/aio-lib-ims":{"optional":true},"@adobe/aio-lib-core-auth":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.27_1782189939620_0.8195572102540458","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.29","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.29","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"f9cf04764c2f23b4c092c75002ea9eb591edcc4a","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.29.tgz","fileCount":48,"integrity":"sha512-lTY1OWvG/LqsqxGUU9s4laubClghUYoekGUjOPtWg3at+SE70R54eQKqsBH7YcH8/kMLRQKw5FGVGt+hy1U7Zg==","signatures":[{"sig":"MEUCIHexLU7Tw5wdqMT0HFo77r6bCKW4FrbvjMsrOzhXae6UAiEA+rdGjRFJWOQPooQiy3HqRWMa8Bhzi/qiYLG0pmXJ5DY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":436947},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"b7088cfc6a47b8569227aa4070d24ecae6800661","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"dotenv":"^16.4.5","esbuild":"^0.25.12","@adobe/aio-lib-db":"^1.0.1","@adobe/aio-lib-ims":"^8.0.0","@adobe/aio-lib-core-auth":"^1.1.0","@adobehrjain/commerce-admin-get-config":"^0.0.6"},"_hasShrinkwrap":false,"peerDependencies":{},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.29_1782192075831_0.6945451320312852","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.31","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.31","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"1332ccf7940829314dd80eddb2dd285af4b9b1ba","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.31.tgz","fileCount":48,"integrity":"sha512-l0uJx0VutQOj/uIF3NDjQIm00VhadBCEVgAilp6wHUDdwEwKKsjr8d3eTkBEg4ALMHnK05knxzTJMiV0QpfIew==","signatures":[{"sig":"MEUCIHIa998+AiJvot5psc7Trf7VrSWVwPPT/OdHrmwosUPSAiEA9OQ0zmzplPMeYlE5waMGZytpdOB404emyON/DgKHZOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446103},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"a3b1086920dbd92988e08d6890e136deb53791f1","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"dotenv":"^16.4.5","esbuild":"^0.25.12","@adobe/aio-lib-db":"^1.0.1","@adobe/aio-lib-ims":"^8.0.0","@adobe/aio-lib-core-auth":"^1.1.0","@adobehrjain/commerce-admin-get-config":"^0.0.5"},"_hasShrinkwrap":false,"peerDependencies":{},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.31_1782193405867_0.26442398195629324","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.32","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.32","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"e312bf17ef686cdcd0258fda286b346db5d5e923","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.32.tgz","fileCount":48,"integrity":"sha512-rv000v2WGgYnFr5RkxShky3VNaOYVvRImP2LH9k64OI3SWn9YW8reSUmOR76MMUDTrFFF5TgAj6SQ+i3J+mqEQ==","signatures":[{"sig":"MEUCIGbE1+t/kL3fgATG3egUbvXMF0b5fJXmlfn20jgxhtaEAiEAyCuT44Y+DWfNA3LCQRTXwZ5nCecXT6WrvSRaAS60cq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446103},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"a3b1086920dbd92988e08d6890e136deb53791f1","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"dotenv":"^16.4.5","esbuild":"^0.25.12","@adobe/aio-lib-db":"^1.0.1","@adobe/aio-lib-ims":"^8.0.0","@adobe/aio-lib-core-auth":"^1.1.0","@adobehrjain/commerce-admin-get-config":"^0.0.7"},"_hasShrinkwrap":false,"peerDependencies":{},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.32_1782193481221_0.20328899637934406","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.34","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"author":{"name":"Adobe Inc."},"license":"Apache-2.0","_id":"@adobehrjain/commerce-admin-management@0.0.34","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"bin":{"commerce-admin-management-setup":"scripts/setup.js"},"dist":{"shasum":"4b6433ce1480f80bd4ad89f771434b4409d5c775","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.34.tgz","fileCount":48,"integrity":"sha512-ackqPo27b0KnR1zeEqBsVhuBozwnZP/6ForNrF2hT3VWbXlYF6gUH2AY+0ngZJdM1MTuc4+EorYVnyF2usRhHA==","signatures":[{"sig":"MEYCIQDusIiUMRsx2OkfjwyZWIL/cDPMPPbCJ+yXRvAt57CXKwIhAIR92hH1znhn8+x/ryvfpNGuOpU+N9aRgRBd/fNgesx9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446919},"main":"./src/index.js","engines":{"node":">=18"},"exports":{".":"./src/index.js","./web":"./web/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web/index.js":"./web/index.js","./actions/utils":"./actions/utils.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml","./web/src/styles/index.css":"./web/src/styles/index.css"},"gitHead":"facf1659d0d57962abb1c9af127ece5f208325a4","scripts":{"build":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js","prepublishOnly":"node ./scripts/build-web.js"},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"repository":{"url":"git+https://github.com/djangiradobe/commerce-admin-management.git","type":"git","directory":"packages/commerce-admin-management"},"_npmVersion":"11.4.1","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"dotenv":"^16.4.5","esbuild":"^0.25.12","@adobe/aio-lib-db":"^1.0.1","@adobe/aio-lib-ims":"^8.0.0","@adobe/aio-lib-core-auth":"^1.1.0","@adobehrjain/commerce-admin-get-config":"^0.0.7"},"_hasShrinkwrap":false,"peerDependencies":{},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/commerce-admin-management_0.0.34_1782234019977_0.7921961806679678","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"@adobehrjain/commerce-admin-management","version":"0.0.35","description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","license":"Apache-2.0","author":{"name":"Adobe Inc."},"keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"main":"./src/index.js","bin":{"commerce-admin-management-setup":"scripts/setup.js"},"scripts":{"build":"node ./scripts/build-web.js","prepublishOnly":"node ./scripts/build-web.js","postinstall":"node ./scripts/build-web.js && node ./scripts/setup.js"},"exports":{".":"./src/index.js","./abdb":"./src/abdb-helper.js","./config":"./src/abdb-config.js","./crypto":"./src/system-config-crypto.js","./shared":"./src/system-config-shared.js","./oauth1a":"./src/oauth1a.js","./web":"./web/index.js","./web/index.js":"./web/index.js","./web/styles.css":"./web/styles.css","./web/dist/index.css":"./web/dist/index.css","./web/src/styles/index.css":"./web/src/styles/index.css","./actions/utils":"./actions/utils.js","./actions/ext.config.yaml":"./actions/configurations/ext.config.yaml"},"engines":{"node":">=18"},"peerDependencies":{},"peerDependenciesMeta":{},"dependencies":{"@adobehrjain/commerce-admin-get-config":"^0.0.8","@adobe/aio-lib-core-auth":"^1.1.0","@adobe/aio-lib-db":"^1.0.1","@adobe/aio-lib-ims":"^8.0.0","dotenv":"^16.4.5","esbuild":"^0.25.12"},"repository":{"type":"git","url":"git+https://github.com/djangiradobe/commerce-admin-management.git","directory":"packages/commerce-admin-management"},"bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","_id":"@adobehrjain/commerce-admin-management@0.0.35","gitHead":"9436c6f73f366b268731e9e6951fa8691df93649","_nodeVersion":"24.13.0","_npmVersion":"11.4.1","dist":{"integrity":"sha512-SLPqSbc4t06wd1Px7SaV7wVOX7b/CTn80Sh+zF/AP7Ghx2OzQVjrAPGhtUVmZJrgvHJX24nbiSggGCO/q6GF0g==","shasum":"09de64d6d6a98f06b3263dcf62219ae04317b903","tarball":"https://registry.npmjs.org/@adobehrjain/commerce-admin-management/-/commerce-admin-management-0.0.35.tgz","fileCount":48,"unpackedSize":446919,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIErCfDwwF4m6AUmBFwRkMLNRxZhH3qjSmhXfHG+pt23dAiEA92OS2YusW38eANuWioCcZ1660OLr3ztoCtUKNQTCHkE="}]},"_npmUser":{"name":"deepakjangid04","email":"djangir@adobe.com"},"directories":{},"maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/commerce-admin-management_0.0.35_1782234199026_0.09725617104665552"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T09:46:31.989Z","modified":"2026-06-23T17:03:19.303Z","0.0.13":"2026-06-22T09:46:32.331Z","0.0.19":"2026-06-22T17:35:23.685Z","0.0.20":"2026-06-22T17:37:18.381Z","0.0.25":"2026-06-23T01:58:53.310Z","0.0.26":"2026-06-23T02:06:11.306Z","0.0.27":"2026-06-23T04:45:39.776Z","0.0.29":"2026-06-23T05:21:15.999Z","0.0.31":"2026-06-23T05:43:26.002Z","0.0.32":"2026-06-23T05:44:41.366Z","0.0.34":"2026-06-23T17:00:20.139Z","0.0.35":"2026-06-23T17:03:19.149Z"},"bugs":{"url":"https://github.com/djangiradobe/commerce-admin-management/issues"},"author":{"name":"Adobe Inc."},"license":"Apache-2.0","homepage":"https://github.com/djangiradobe/commerce-admin-management/tree/main/packages/commerce-admin-management#readme","keywords":["adobe-io","aio","app-builder","adobe-commerce","magento","commerce-admin-management","abdb","react-spectrum"],"repository":{"type":"git","url":"git+https://github.com/djangiradobe/commerce-admin-management.git","directory":"packages/commerce-admin-management"},"description":"Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.","maintainers":[{"name":"hrjainadobe","email":"hrjain@adobe.com"},{"name":"deepakjangid04","email":"djangir@adobe.com"}],"readme":"# @adobehrjain/commerce-admin-management — Developer Guide\n\nA turnkey Adobe App Builder package for **schema-driven system configuration**\nin Adobe Commerce extensions. Provides encrypted scoped storage, a React-Spectrum\nadmin UI mounted inside the Commerce Admin, OAuth1a helpers, import/export,\nand an extension point for host apps to add their own pages and actions.\n\n---\n\n## Table of contents\n\n1. [What you get](#what-you-get)\n2. [Quick start](#quick-start)\n3. [What `npm install` scaffolds for you](#what-npm-install-scaffolds-for-you)\n4. [Required `.env` values](#required-env-values)\n5. [Architecture](#architecture)\n6. [Built-in actions](#built-in-actions)\n7. [Storage model](#storage-model)\n8. [Encryption](#encryption)\n9. [Commerce connection flow](#commerce-connection-flow)\n10. [Adding a host page (UI tab)](#adding-a-host-page-ui-tab)\n11. [Adding a host action (backend)](#adding-a-host-action-backend)\n12. [Reusable helpers exported by the package](#reusable-helpers-exported-by-the-package)\n13. [Configuration override matrix](#configuration-override-matrix)\n14. [Common operations](#common-operations)\n15. [Troubleshooting](#troubleshooting)\n\n---\n\n## What you get\n\n\n| Capability                                                                      | Where it lives                                      |\n| ------------------------------------------------------------------------------- | --------------------------------------------------- |\n| Schema-driven config form (sections / groups / fields)                          | UI: `SystemConfig` page (built-in tab)              |\n| Per-scope values (`default → websites → stores`) with Magento-style inheritance | Action: `system-config-list` / `system-config-save` |\n| AES-256-GCM encryption of sensitive fields at rest                              | `system-config-crypto` module                       |\n| Adobe Commerce REST/OAuth1a client helper                                       | `commerce-creds` module                             |\n| First-run setup wizard for Commerce credentials (saved encrypted in ABDB)       | UI: `CommerceSetupWizard`                           |\n| Bulk JSON export/import with cross-environment website/store id remapping       | Actions: `export-config`, `import-config`           |\n| App Builder Database (ABDB) auto-provisioning on deploy                         | `ext.config.yaml`                                   |\n| Host-extensible nav and pages                                                   | `configureWeb({ extraNav, extraPages })`            |\n| Auto-scaffolded host scaffold on `npm install`                                  | `scripts/setup.js` (postinstall hook)               |\n| Auto-bump host React/Spectrum/Adobe deps to React-18 floor                      | `scripts/setup.js` mutates host `package.json`      |\n\n\n---\n\n## Quick start\n\n```bash\n# 1. Create a new App Builder project (skip if you already have one)\naio app init my-commerce-admin\ncd my-commerce-admin\n\n# 2. Install with --legacy-peer-deps on first install.\n#    aio's default template pins React 16; this package requires React 18.\nnpm install @adobehrjain/commerce-admin-management\n\n# 3. Run the setup helper. Bumps host deps to React 18 / Spectrum 4 floor,\n#    scaffolds web-src/, removes the dx/excshell/1 boilerplate, and\n#    generates AIO_DB_REGION + SYSTEM_CONFIG_CRYPT_KEY in .env.\nnpx commerce-admin-management-setup\n\n# 4. Apply the bumped versions\nnpm install\n\n# 5. Deploy. ABDB is auto-provisioned; actions + web assets ship to CDN.\naio app deploy\n```\n\nOpen the URL the deploy prints. First run shows the Commerce setup wizard;\nenter your store URL + OAuth1a creds, click **Test connection**, then\n**Save & continue**. The rest of the UI is then unlocked.\n\nFor local dev:\n\n```bash\naio app run\n# → https://localhost:9080\n```\n\n---\n\n## What `npm install` scaffolds for you\n\nThe package's `postinstall` runs `scripts/setup.js`, which idempotently\nmaterializes a host scaffold:\n\n\n| Path                           | First install                                                  | Subsequent installs                                                                                                                     |\n| ------------------------------ | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |\n| `app.config.yaml`              | Adds `extensions: commerce/backend-ui/1: $include …` if absent | No-op                                                                                                                                   |\n| `web-src/src/index.js`         | Writes the package-wired bootstrap                             | Re-syncs if the marker is present; left alone if the host imported `@adobehrjain/commerce-admin-management/web` and removed the marker |\n| `web-src/src/nav.json`         | Writes a starter entry → `#/welcome`                           | Never overwritten                                                                                                                       |\n| `web-src/src/pages/index.js`   | Writes a registry that imports `Welcome`                       | Never overwritten                                                                                                                       |\n| `web-src/src/pages/Welcome.js` | Writes a React-Spectrum starter page                           | Never overwritten                                                                                                                       |\n\n\n> The \"never overwritten\" rule means you can edit those files freely;\n> upgrading the package will not lose your changes.\n\nThe package also runs `scripts/build-web.js`, producing\n`node_modules/@adobehrjain/commerce-admin-management/web/dist/index.{js,css}` so the host\nbundle has a ready-to-consume artifact.\n\n---\n\n## Required `.env` values\n\n\n| Variable                  | Purpose                                                                                                                                                                                                         |\n| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `OAUTH_CLIENT_ID`         | Adobe IMS Server-to-Server credentials — for ABDB token                                                                                                                                                         |\n| `OAUTH_CLIENT_SECRET`     | same                                                                                                                                                                                                            |\n| `OAUTH_ORG_ID`            | same                                                                                                                                                                                                            |\n| `OAUTH_SCOPES`            | should include `AdobeID, openid, read_organizations, additional_info.projectedProductContext, additional_info.roles, adobeio_api, read_client_secret, manage_client_secrets, event_receiver_api, commerce.accs` |\n| `AIO_DB_REGION`           | One of `amer | emea | apac | aus`. Must match the region where the App Builder Database service is entitled.                                                                                                    |\n| `SYSTEM_CONFIG_CRYPT_KEY` | At least 8 chars. **Generate once with `openssl rand -base64 32` and never rotate** — rotating breaks every encrypted value already in ABDB.                                                                    |\n\n\nCommerce REST creds (`COMMERCE_BASE_URL`, `COMMERCE_CONSUMER_KEY`, …) are\n**no longer set via `.env`**. They are entered in the in-app wizard and\nencrypted into ABDB under `default/_system/commerce/connection`.\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  Adobe Commerce Admin  ←  iframe  ←  Experience Cloud Shell │\n└─────────────────────────────────────────────────────────────┘\n                                │\n                                ▼\n              https://<workspace>.adobeio-static.net\n                                │\n                                ▼\n    React app (@adobehrjain/commerce-admin-management/web/dist/index.js)\n                                │\n                ┌───────────────┼───────────────┐\n                ▼               ▼               ▼\n  HashRouter   AppSectionNav   MainPage (gated on connection status)\n                                │\n                                ▼\n            getNavItems()  +  getPageComponent(id)\n                                │\n                                ▼\n            <Page runtime ims> ─→  callAction(props, key, op, body)\n                                │\n                                ▼\n            POST  /api/v1/web/<package>/<action>\n                                │\n                                ▼\n                    OpenWhisk action handlers\n                                │\n                ┌───────────────┼───────────────┐\n                ▼               ▼               ▼\n            ABDB        Commerce REST/OAuth1a   IMS\n       (system_config_data, system_config_schema, _system/*)\n```\n\n---\n\n## Built-in actions\n\nAll under runtime package `**CommerceAdminManagement**`.\n\n\n| Action                              | Verb | Description                                                                                      |\n| ----------------------------------- | ---- | ------------------------------------------------------------------------------------------------ |\n| `commerce-rest-get`                 | POST | Proxy any Commerce REST GET via OAuth1a using stored creds                                       |\n| `commerce-connection-status`        | POST | `{ configured: bool, creds: masked }`                                                            |\n| `commerce-connection-test`          | POST | Verifies form values OR saved creds against `store/storeConfigs`                                 |\n| `commerce-connection-save`          | POST | Tests then encrypts + upserts creds in ABDB                                                      |\n| `system-config-list`                | POST | Reads paths with Magento-style scope inheritance, decrypts sensitive fields                      |\n| `system-config-save`                | POST | Upserts values, encrypts sensitive paths                                                         |\n| `system-config-schema`              | POST | CRUD on the schema document                                                                      |\n| `export-config`                     | POST | Dumps schema + values (sensitive decrypted) as portable JSON                                     |\n| `import-config`                     | POST | Re-imports a dump, re-encrypts with the target's key, remaps website/store ids via Commerce REST |\n| `sync-store-mappings-from-commerce` | POST | Refreshes the `general/settings/store_mappings` blob from Commerce                               |\n\n\nAll actions are `require-adobe-auth: false` and `include-ims-credentials: true`,\nso they receive the host's OAuth credentials via env-injection — they don't\nrequire a user IMS token.\n\n---\n\n## Storage model\n\nABDB collection `system_config_data` — one document per (scope, scope_id, path):\n\n```json\n{\n  \"_id\": \"sysconfig__default__0__campaign_general__url__url\",\n  \"scope\": \"default\",\n  \"scope_id\": \"0\",\n  \"path\": \"campaign_general/url/url\",\n  \"value\": \"https://example.com\",\n  \"createdAt\": \"2026-01-04T...\",\n  \"updatedAt\": \"2026-06-19T...\"\n}\n```\n\n- `_id` is `sysconfig__<scope>__<scopeId>__<path-with-/-as-__>`\n- Inheritance chain: `stores:<storeId> → websites:<websiteId> → default:0`\n- Sensitive `value`s carry the prefix `enc:v1:<salt>:<iv>:<tag>:<ct>` (all\nbase64url) — see [Encryption](#encryption).\n\nSchema is stored separately in `system_config_schema` (single doc `_id: 'v1'`).\n\n---\n\n## Encryption\n\n`SYSTEM_CONFIG_CRYPT_KEY` is the master secret for AES-256-GCM.\n\n```js\nconst { encrypt, decrypt, isEncrypted } = require('@adobehrjain/commerce-admin-management/crypto')\n\nencrypt('hello', params)            // → 'enc:v1:...:...:...:...'\ndecrypt('enc:v1:...', params)       // → 'hello'\nisEncrypted('enc:v1:...')           // → true\n```\n\n- Per-record `salt` ⇒ same plaintext under same key produces a different\nciphertext each save (no oracle attacks).\n- Wire format is versioned (`v1`) so the algorithm can be rotated without\nbreaking existing values.\n- A fallback to `OAUTH_CLIENT_SECRET` exists for first-touch convenience but\nis **strongly discouraged in production** — your IMS client secret rotates;\nyour at-rest data must not.\n\n---\n\n## Commerce connection flow\n\n```\nFirst load           ──→  GET /commerce-connection-status   {configured: false}\n                                     │\n                                     ▼\n                            CommerceSetupWizard\n                                     │\nUser fills form       ──→  POST /commerce-connection-test   {ok: true|false}\nUser clicks Save      ──→  POST /commerce-connection-save\n                                     │\n                                     ▼  encrypt(JSON.stringify(creds), SYSTEM_CONFIG_CRYPT_KEY)\n                                     │  upsert ABDB at default/_system/commerce/connection\n                                     ▼\n                            App unlocks → System Config tab visible\n```\n\nAny action that needs Commerce REST calls\n`getCommerceCreds(params, logger)` or\n`getStoredCommerceOauthClient(params, logger)`, which read+decrypt the blob.\nA 5-minute in-process cache avoids repeating the lookup per request.\n\nA **Reconfigure Commerce** button in the top-right of the nav lets operators\nedit/replace the creds later.\n\n---\n\n## Adding a host page (UI tab)\n\nThree edits, no rebuild of the package:\n\n### 1. Create the page\n\n```jsx\n// web-src/src/pages/Orders.js\nimport React from 'react'\nimport { View, Heading } from '@adobe/react-spectrum'\n\nexport default function Orders ({ runtime, ims }) {\n  return (\n    <View padding=\"size-400\">\n      <Heading level={2}>Orders</Heading>\n    </View>\n  )\n}\n```\n\n### 2. Register it\n\n```js\n// web-src/src/pages/index.js\nimport Welcome from './Welcome'\nimport Orders from './Orders'\n\nconst pages = {\n  welcome: Welcome,\n  orders: Orders\n}\n\nexport default pages\n```\n\n### 3. Add a nav entry\n\n```json\n// web-src/src/nav.json\n{\n  \"items\": [\n    { \"id\": \"welcome\", \"path\": \"/welcome\", \"label\": \"Welcome\", \"icon\": \"Folder\" },\n    { \"id\": \"orders\",  \"path\": \"/orders\",  \"label\": \"Orders\",  \"icon\": \"ShoppingCart\" }\n  ]\n}\n```\n\n`aio app run` → the tab appears. The page receives `{ runtime, ims }` as\nprops for use with `callAction`.\n\n**Icon names** come from a Spectrum-icon registry in\n`[web/src/nav-icons.js](web/src/nav-icons.js)`. Built-in: `Settings`,\n`Properties`, `Data`, `User`, `ShoppingCart`, `Box`, `Folder`. To add more,\nextend that file and rebuild the package (`node scripts/build-web.js`).\n\n### Override a built-in page\n\nIf you want to replace the built-in **System Configurations** with your own\nversion, just put an entry with the same id in your host registry:\n\n```js\nconst pages = { 'system-config': MyOwnSystemConfig, ... }\n```\n\nThe host always wins on id collision.\n\n---\n\n## Adding a host action (backend)\n\nAdobe App Builder merges `application.runtimeManifest` from `app.config.yaml`\nwith the extension's manifest, so host-defined actions live next to the\npackage's without any wiring step.\n\n### 1. Write the action\n\n```js\n// actions/reports-list/index.js\nconst { Core } = require('@adobe/aio-sdk')\nconst { errorResponse } = require('@adobehrjain/commerce-admin-management/actions/utils')\nconst {\n  getStoredCommerceOauthClient\n} = require('@adobehrjain/commerce-admin-management/actions/commerce-creds')\n\nasync function main (params) {\n  const logger = Core.Logger('reports-list', { level: params.LOG_LEVEL || 'info' })\n  try {\n    const oauth = await getStoredCommerceOauthClient(params, logger)\n    const orders = await oauth.get('orders?searchCriteria[pageSize]=10')\n    return { statusCode: 200, body: { ok: true, items: orders.items || [] } }\n  } catch (e) {\n    if (e.code === 'COMMERCE_NOT_CONFIGURED') {\n      return errorResponse(412, e.message, logger)\n    }\n    return errorResponse(500, e.message, logger)\n  }\n}\n\nexports.main = main\n```\n\n### 2. Declare it in `app.config.yaml`\n\n```yaml\napplication:\n  runtimeManifest:\n    packages:\n      HostActions:\n        license: Apache-2.0\n        actions:\n          reports-list:\n            function: actions/reports-list/index.js\n            web: 'yes'\n            runtime: 'nodejs:20'\n            inputs:\n              LOG_LEVEL: debug\n              SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY\n              OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID\n              OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET\n              OAUTH_ORG_ID: $OAUTH_ORG_ID\n              OAUTH_SCOPES: $OAUTH_SCOPES\n              AIO_DB_REGION: $AIO_DB_REGION\n            annotations:\n              require-adobe-auth: false\n              include-ims-credentials: true\n              final: true\n```\n\n`aio app deploy` ships 11 package actions **+** your `HostActions/reports-list`\ntogether. The action URL appears in `web-src/src/config.json` automatically.\n\n### 3. Call it from a host page\n\n```jsx\nimport { callAction } from '@adobehrjain/commerce-admin-management/web'\n\n// inside the component:\nconst r = await callAction({ runtime, ims }, 'HostActions/reports-list', '', { /* body */ })\nconsole.log(r.body)\n```\n\n`callAction(props, key, operation, body)` POSTs to the URL stored under\n`key` in `web-src/src/config.json`, adds `Bearer` + `x-gw-ims-org-id`\nheaders, parses the JSON response, and surfaces non-2xx as thrown errors\nwith `err.status` and `err.response`.\n\n---\n\n## Reusable helpers exported by the package\n\n### Backend (Node)\n\n```js\n// ABDB client + helpers\nconst {\n  getClient,                    // → { client, close } using IMS S2S creds\n  withDbClient,                 // run a function with an auto-closed client\n  ensureImportCollectionsExist\n} = require('@adobehrjain/commerce-admin-management/abdb')\n\n// Magento-style scope helpers\nconst {\n  toStateKey,                   // (scope, scopeId, path) → ABDB _id\n  isValidPath,\n  normalizeScope,\n  normalizeScopeId,\n  buildInheritanceChain,\n  SENSITIVE_PLACEHOLDER\n} = require('@adobehrjain/commerce-admin-management/shared')\n\n// Per-record AES-256-GCM\nconst {\n  encrypt,\n  decrypt,\n  isEncrypted\n} = require('@adobehrjain/commerce-admin-management/crypto')\n\n// Commerce REST/OAuth1a\nconst {\n  getOauthClient,\n  getCommerceOauthClient\n} = require('@adobehrjain/commerce-admin-management/oauth1a')\n\n// Commerce credential storage (stored encrypted in ABDB)\nconst {\n  readCommerceCreds,\n  writeCommerceCreds,\n  testCommerceConnection,\n  getCommerceCreds,\n  getStoredCommerceOauthClient\n} = require('@adobehrjain/commerce-admin-management/actions/commerce-creds')\n\n// Schema-driven config lookup at runtime (used by external sync actions)\nconst { getConfig } = require('@adobehrjain/commerce-admin-management/config')\nconst value = await getConfig('campaign_general/url/url', params, { scope: 'stores', scopeCode: 'en_ch' })\n\n// Top-level barrel:\nconst { getConfig, getClient, encrypt } = require('@adobehrjain/commerce-admin-management')\n```\n\n### Front-end (ESM)\n\n```js\nimport {\n  // App shell\n  CommerceAdminManagementApp,   // full router + Spectrum provider\n  configureWeb,                 // pass actionUrls + extraNav + extraPages\n\n  // Components\n  MainPage,\n  SystemConfig,\n  SystemConfigSchemaEditor,\n  AppSectionNav,\n\n  // Registries\n  getNavItems,\n  getPageComponent,\n  NAV_ICONS,\n  getNavIcon,\n  BUILT_IN_PAGES,\n\n  // Hooks\n  useSystemConfig,\n  useSystemConfigSchema,\n  useConfirm,\n\n  // Utilities\n  callAction,\n\n  // Theme tokens (for styling host pages consistently)\n  THEME, PALETTE, RADIUS, SHADOW, SPACE, FONT\n} from '@adobehrjain/commerce-admin-management/web'\nimport '@adobehrjain/commerce-admin-management/web/styles.css'\n```\n\n---\n\n## Configuration override matrix\n\n\n| Setting                            | Default lives in                                                            | Override location                 | Override mechanism                                                                                                                                                      |\n| ---------------------------------- | --------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ABDB auto-provision                | package `ext.config.yaml` (`runtimeManifest.database.auto-provision: true`) | host `app.config.yaml`            | `application: runtimeManifest: database: auto-provision: false`                                                                                                         |\n| ABDB region                        | package `ext.config.yaml` (literal `emea`)                                  | host `app.config.yaml`            | `application: runtimeManifest: database: region: amer` (and update `AIO_DB_REGION` in `.env` to match)                                                                  |\n| Runtime IMS token                  | computed by `aio-lib-core-auth`                                             | n/a                               | The action runtime injects via `include-ims-credentials: true`                                                                                                          |\n| Action keys (URL paths)            | `web/src/settings.js` (`DEFAULT_ACTION_KEYS`)                               | host bootstrap                    | `configureWeb({ actionKeys: { ... } })`                                                                                                                                 |\n| Built-in nav entries               | package `web/src/nav.json`                                                  | host `web-src/src/nav.json`       | extras merge after built-ins; host wins on id collision                                                                                                                 |\n| Built-in pages                     | package `web/src/pages/index.js`                                            | host `web-src/src/pages/index.js` | extras merge; host wins on id collision                                                                                                                                 |\n| Bootstrap (`web-src/src/index.js`) | package generator                                                           | own the file                      | Either remove the marker comment **and** import from `@adobehrjain/commerce-admin-management/web`, **or** edit freely while keeping the marker (loses on next install) |\n\n\n---\n\n## Common operations\n\n### Rotate `SYSTEM_CONFIG_CRYPT_KEY`\n\n**Do not** unless you've planned for re-encryption — every existing encrypted\nvalue becomes undecryptable. If you must:\n\n1. Export with the old key: `POST /export-config { schemaOnly: false }` — the\n  dump contains plaintext values for sensitive fields (v2+ dump format).\n2. Update `SYSTEM_CONFIG_CRYPT_KEY` in `.env` and redeploy.\n3. Re-import the dump: `POST /import-config { dump, overwrite: true }` — the\n  importer re-encrypts sensitive paths with the new key.\n\nFor cross-environment migration (different key on each side), pass\n`sourceCryptKey: '<old-key>'` to `import-config` so it can decrypt the\nciphertext with the old key before re-encrypting with the new one.\n\n### Change region\n\n1. Update `AIO_DB_REGION` in `.env`.\n2. Update `region:` literal under `runtimeManifest.database` in\n  `app.config.yaml` (host overrides the package default).\n3. Ensure the workspace has App Builder Database entitled in that region in\n  the Adobe Developer Console.\n4. `aio app deploy`.\n\n### Promote a deploy\n\n```bash\naio app deploy --workspace Production\n```\n\nTargets the named workspace's database/region/region-bound creds.\n`SYSTEM_CONFIG_CRYPT_KEY` should differ per environment; use\n`import-config` with `sourceCryptKey` to migrate values.\n\n### Add an icon for use in `nav.json`\n\n1. Import the icon into `packages/commerce-admin-management/web/src/nav-icons.js`\n2. Add it to the `NAV_ICONS` map\n3. `node packages/commerce-admin-management/scripts/build-web.js`\n4. Reference it in `nav.json` as `\"icon\": \"<NewIconName>\"`\n\n### Re-link a local package during development\n\nIf you're hacking on the package and need the host to pick up changes:\n\n```bash\ncd packages/commerce-admin-management\nnode scripts/build-web.js\ncd ../..\nnpm install ./packages/commerce-admin-management   # refreshes node_modules link\nrm -rf .parcel-cache dist web-src/dist\naio app run\n```\n\n---\n\n## Troubleshooting\n\n\n| Symptom                                           | Likely cause                                                                                                   | Fix                                                                                                                                                       |\n| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `Database not provisioned`                        | App Builder Database not entitled on the workspace, **or** never ran `aio app deploy` since adding the package | Add the service in the Developer Console (region must match `AIO_DB_REGION`), then `aio app deploy`                                                       |\n| `Invalid region '$AIO_DB_REGION'`                 | Tried to use `$VAR` substitution in `runtimeManifest.database.region`                                          | aio substitutes `$VAR` only inside action `inputs:`. Use a literal region in YAML                                                                         |\n| Blank page at `#/<anything>`                      | Route table doesn't include a catch-all                                                                        | Already fixed — `App.js` uses `path=\"*\"`. If you forked it, add `<Route path=\"*\" element={…}>`                                                            |\n| Stuck on \"Checking Commerce connection…\" forever  | Running outside Experience Cloud iframe; `@adobe/uix-guest`'s `attach()` was blocking                          | Already fixed — MainPage's `attach()` now races a 2-second timeout                                                                                        |\n| Reports tab blank but System Configurations works | `pages/index.js` used CommonJS `require('./X').default` interop                                                | Use ES `import X from './X'` instead                                                                                                                      |\n| Nav button overflows below tabs                   | CSS not picked up                                                                                              | Make sure the package's `dist/index.css` is loaded (the bootstrap imports it automatically)                                                               |\n| Encryption errors after env change                | `SYSTEM_CONFIG_CRYPT_KEY` was rotated and there are old `enc:v1:` values                                       | Either restore the old key, or perform the export/import re-encryption flow above                                                                         |\n| `npm install` overwrote my bootstrap              | Marker comment still present                                                                                   | Remove the marker comment line, **and** ensure your file imports from `@adobehrjain/commerce-admin-management/web` so setup recognizes host-managed mode |\n\n\n---\n\n## File reference\n\n```\npackages/commerce-admin-management/\n├── DEVELOPER.md                                ← you are here\n├── README.md                                   ← short overview\n├── package.json\n├── src/                                        ← thin re-exports from @adobehrjain/commerce-admin-get-config\n│   ├── abdb-helper.js\n│   ├── abdb-config.js\n│   ├── system-config-crypto.js\n│   ├── system-config-shared.js\n│   └── oauth1a.js\n├── actions/\n│   ├── utils.js\n│   ├── commerce-creds.js                       ← read/write/test encrypted creds in ABDB\n│   └── configurations/\n│       ├── ext.config.yaml                     ← runtime manifest (database + 11 actions)\n│       ├── index.html\n│       ├── registration/index.js\n│       ├── commerce/index.js\n│       ├── commerce-connection-status/index.js\n│       ├── commerce-connection-test/index.js\n│       ├── commerce-connection-save/index.js\n│       ├── system-config-list/index.js\n│       ├── system-config-save/index.js\n│       ├── system-config-schema/index.js\n│       ├── export-config/index.js\n│       ├── import-config/index.js\n│       └── sync-store-mappings-from-commerce/index.js\n├── web/\n│   ├── index.js                                ← re-exports dist/\n│   ├── styles.css                              ← flat fallback\n│   ├── dist/                                   ← built by scripts/build-web.js\n│   └── src/\n│       ├── index.js                            ← package entry\n│       ├── nav.json                            ← built-in nav entries\n│       ├── nav-icons.js                        ← string-name → Spectrum icon map\n│       ├── settings.js                         ← actionKeys, extensionId, configureWeb, registries\n│       ├── theme.js\n│       ├── utils.js                            ← callAction\n│       ├── styles/index.css\n│       ├── pages/index.js                      ← built-in page registry\n│       ├── components/\n│       │   ├── App.js                          ← router + Provider + ErrorBoundary\n│       │   ├── MainPage.js                     ← gates app on Commerce connection\n│       │   ├── ExtensionRegistration.js        ← UIX guest registration\n│       │   ├── AppSectionNav.js                ← top nav from registry\n│       │   ├── CommerceSetupWizard.js          ← first-run wizard\n│       │   ├── SystemConfig.js                 ← main config form\n│       │   └── SystemConfigSchemaEditor.js     ← schema editor\n│       ├── hooks/\n│       ├── schema/systemConfigSchema.js\n│       └── utils/storeMappingsFromCommerceRest.js\n└── scripts/\n    ├── build-web.js                            ← esbuild bundle\n    └── setup.js                                ← postinstall scaffolding\n```\n\n---\n\n## License\n\nApache-2.0 © Adobe Inc.","readmeFilename":"README.md"}