@adobedjangir/commerce-admin-management 0.0.10 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/scripts/setup.js +46 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobedjangir/commerce-admin-management",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "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.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Adobe Inc.",
package/scripts/setup.js CHANGED
@@ -441,6 +441,45 @@ function setupWebSrc (projectRoot) {
441
441
  return { changed, results }
442
442
  }
443
443
 
444
+ /**
445
+ * Remove the aio `app init` boilerplate source directory for the
446
+ * dx/excshell/1 extension. We stripped its entry from app.config.yaml in
447
+ * patchAppConfig, but the matching scaffolded source tree at
448
+ * `src/dx-excshell-1/` is left behind. Delete it so its stale React-16
449
+ * code (with `react-error-boundary` default-import) doesn't get picked up
450
+ * by `aio app dev` or `npm install` peer-resolution.
451
+ */
452
+ function stripExcshellSourceDir (projectRoot) {
453
+ const dir = path.join(projectRoot, 'src', 'dx-excshell-1')
454
+ const parent = path.join(projectRoot, 'src')
455
+ let changed = false
456
+
457
+ if (fs.existsSync(dir)) {
458
+ try {
459
+ fs.rmSync(dir, { recursive: true, force: true })
460
+ changed = true
461
+ } catch (err) {
462
+ return { changed: false, reason: `rm-failed: ${err.message}` }
463
+ }
464
+ }
465
+
466
+ // If src/ is now empty (or was never anything but dx-excshell-1) drop it
467
+ // too — leaving an empty src/ in the project root is just clutter. We
468
+ // never remove it when it still contains other files (the host's own
469
+ // code), so this is safe.
470
+ if (fs.existsSync(parent)) {
471
+ try {
472
+ const remaining = fs.readdirSync(parent).filter((n) => n !== '.DS_Store')
473
+ if (remaining.length === 0) {
474
+ fs.rmSync(parent, { recursive: true, force: true })
475
+ changed = true
476
+ }
477
+ } catch (_) { /* best effort */ }
478
+ }
479
+
480
+ return { changed, reason: changed ? 'removed' : 'absent' }
481
+ }
482
+
444
483
  function setupAppConfig (projectRoot) {
445
484
  const appConfigPath = path.join(projectRoot, 'app.config.yaml')
446
485
  if (!fs.existsSync(appConfigPath)) {
@@ -477,6 +516,13 @@ function main () {
477
516
  return
478
517
  }
479
518
 
519
+ // Strip the leftover aio dx/excshell/1 source scaffold before anything
520
+ // else — its stale React-16 code conflicts with our React-18 bundle.
521
+ const excshell = stripExcshellSourceDir(projectRoot)
522
+ if (excshell.changed) {
523
+ console.log('[@adobedjangir/commerce-admin-management] removed src/dx-excshell-1/ (replaced by commerce/backend-ui/1)')
524
+ }
525
+
480
526
  const app = setupAppConfig(projectRoot)
481
527
  if (app.changed) {
482
528
  console.log(