diff --git a/angular.json b/angular.json
index c33c083a7e..94dfb216a3 100644
--- a/angular.json
+++ b/angular.json
@@ -244,19 +244,12 @@
       "sourceRoot": "lib/js-api/src",
       "architect": {
         "build": {
-          "builder": "@angular-devkit/build-angular:ng-packagr",
+          "builder": "nx:run-commands",
           "options": {
-            "tsConfig": "lib/js-api/src/tsconfig.lib.json",
-            "project": "lib/js-api/src/ng-package.json"
+            "command": "npm run js_api_build"
           },
           "configurations": {
-            "production": {
-              "project": "lib/js-api/src/ng-package.json",
-              "tsConfig": "lib/js-api/src/tsconfig.lib.prod.json"
-            },
-            "development": {
-              "tsConfig": "lib/js-api/src/tsconfig.lib.json"
-            }
+            "production": {}
           },
           "defaultConfiguration": "production"
         },
diff --git a/e2e/process-services-cloud/start-task/start-task-form-cloud.e2e.ts b/e2e/process-services-cloud/start-task/start-task-form-cloud.e2e.ts
index 98c859964b..861dd20369 100644
--- a/e2e/process-services-cloud/start-task/start-task-form-cloud.e2e.ts
+++ b/e2e/process-services-cloud/start-task/start-task-form-cloud.e2e.ts
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-import { browser, protractor } from 'protractor';
+import { browser } from 'protractor';
 import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
 import { TasksCloudDemoPage } from './../pages/tasks-cloud-demo.page';
 import {
@@ -28,9 +28,7 @@ import {
     GroupIdentityService,
     TaskFormCloudComponent,
     LocalStorageUtil,
-    StartProcessCloudPage,
     TaskHeaderCloudPage,
-    ProcessHeaderCloudPage,
     TasksService,
     UploadActions,
     ContentNodeSelectorDialogPage,
@@ -43,7 +41,6 @@ import { StartProcessCloudConfiguration } from './../config/start-process-cloud.
 import { ProcessCloudDemoPage } from './../pages/process-cloud-demo.page';
 import { ProcessDetailsCloudDemoPage } from './../pages/process-details-cloud-demo.page';
 import { FileModel } from '../../models/ACS/file.model';
-import CONSTANTS = require('../../util/constants');
 
 describe('Start Task Form', () => {
 
@@ -61,7 +58,6 @@ describe('Start Task Form', () => {
     const breadCrumbDropdownPage = new BreadcrumbDropdownPage();
     const processDetailsCloudDemoPage = new ProcessDetailsCloudDemoPage();
     const widget = new ProcessCloudWidgetPage();
-    const startProcessPage = new StartProcessCloudPage();
 
     const processCloudDemoPage = new ProcessCloudDemoPage();
     const editProcessFilter = processCloudDemoPage.editProcessFilterCloudComponent();
@@ -69,7 +65,6 @@ describe('Start Task Form', () => {
     const processFilter = processCloudDemoPage.processFilterCloudComponent;
 
     const taskHeaderCloudPage = new TaskHeaderCloudPage();
-    const processHeaderCloud = new ProcessHeaderCloudPage();
 
     const apiService = createApiService();
     const uploadActions = new UploadActions(apiService);
@@ -82,7 +77,6 @@ describe('Start Task Form', () => {
     const startProcessCloudConfig = startProcessCloudConfiguration.getConfiguration();
 
     const standaloneTaskName = StringUtil.generateRandomString(5);
-    const startEventFormProcess = StringUtil.generateRandomString(5);
     let testUser; let groupInfo;
     let processDefinitionService: ProcessDefinitionsService;
     let processInstancesService: ProcessInstancesService;
diff --git a/lib/js-api/src/LICENSE.txt b/lib/js-api/LICENSE.txt
similarity index 100%
rename from lib/js-api/src/LICENSE.txt
rename to lib/js-api/LICENSE.txt
diff --git a/lib/js-api/src/README.md b/lib/js-api/README.md
similarity index 100%
rename from lib/js-api/src/README.md
rename to lib/js-api/README.md
diff --git a/lib/js-api/index.ts b/lib/js-api/index.ts
new file mode 100644
index 0000000000..5bf6283d7a
--- /dev/null
+++ b/lib/js-api/index.ts
@@ -0,0 +1,43 @@
+/*!
+ * @license
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export * from './src/api/content-rest-api/index';
+export * from './src/api/content-custom-api/index';
+export * from './src/api/discovery-rest-api/index';
+export * from './src/api/gs-classification-rest-api/index';
+export * from './src/api/gs-core-rest-api/index';
+export * from './src/api/auth-rest-api/index';
+export * from './src/api/activiti-rest-api/index';
+export * from './src/api/search-rest-api/index';
+export * from './src/api/model-rest-api/index';
+
+export * from './src/api/content-custom-api/api/content.api';
+export * from './src/authentication/contentAuth';
+export * from './src/authentication/processAuth';
+export * from './src/authentication/oauth2Auth';
+export * from './src/contentClient';
+export * from './src/processClient';
+export * from './src/storage';
+export * from './src/alfrescoApi';
+export * from './src/alfrescoApiClient';
+export * from './src/alfrescoApiConfig';
+
+export * from './src/to-deprecate/alfresco-api-type';
+
+export * from './src/api-clients/api-client';
+export * from './src/api-clients/http-client.interface';
+export * from './src/utils';
diff --git a/lib/js-api/src/package.json b/lib/js-api/package.json
similarity index 80%
rename from lib/js-api/src/package.json
rename to lib/js-api/package.json
index e190277c80..8a79c29a8b 100644
--- a/lib/js-api/src/package.json
+++ b/lib/js-api/package.json
@@ -16,5 +16,9 @@
     "event-emitter": "^0.3.5",
     "superagent": "^8.0.9",
     "tslib": "^2.6.1"
-  }
+  },
+  "main": "./index.js",
+  "typings": "./typings/index.d.ts",
+  "module": "./esm5/index.js",
+  "es2015": "./esm2015/index.js"
 }
diff --git a/lib/js-api/src/ng-package.json b/lib/js-api/src/ng-package.json
deleted file mode 100644
index 84c5fadfbf..0000000000
--- a/lib/js-api/src/ng-package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
-    "dest": "../../../dist/libs/js-api",
-    "lib": {
-      "entryFile": "index.ts"
-    },
-    "allowedNonPeerDependencies": ["event-emitter", "superagent"],
-    "assets": ["LICENSE.txt", "README.md"]
-  }
diff --git a/lib/js-api/src/tsconfig.json b/lib/js-api/src/tsconfig.json
deleted file mode 100644
index 3145224a9e..0000000000
--- a/lib/js-api/src/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "extends": "../../../tsconfig.json",
-  "files": [],
-  "include": [],
-  "references": [
-    {
-      "path": "./tsconfig.lib.json"
-    },
-    {
-      "path": "./tsconfig.lib.prod.json"
-    }
-  ],
-  "compilerOptions": {
-    "baseUrl": "src",
-    "target": "es2020"
-  },
-  "angularCompilerOptions": {
-    "skipTemplateCodegen": true,
-    "strictMetadataEmit": true,
-    "enableResourceInlining": true,
-    "strictTemplates": true
-  }
-}
diff --git a/lib/js-api/src/tsconfig.lib.json b/lib/js-api/src/tsconfig.lib.json
deleted file mode 100644
index 45c40a7980..0000000000
--- a/lib/js-api/src/tsconfig.lib.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "extends": "./tsconfig.json",
-  "compilerOptions": {
-    "outDir": "../../../dist/out-tsc",
-    "declaration": true,
-    "declarationMap": true
-  },
-  "exclude": ["./test.ts", "**/*.spec.ts", "**/*.test.ts"],
-  "include": ["**/*.ts"]
-}
diff --git a/lib/js-api/src/tsconfig.lib.prod.json b/lib/js-api/src/tsconfig.lib.prod.json
deleted file mode 100644
index 2a2faa884c..0000000000
--- a/lib/js-api/src/tsconfig.lib.prod.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "extends": "./tsconfig.lib.json",
-  "compilerOptions": {
-    "declarationMap": false
-  },
-  "angularCompilerOptions": {
-    "compilationMode": "partial"
-  }
-}
diff --git a/lib/js-api/tsconfig.json b/lib/js-api/tsconfig.json
new file mode 100644
index 0000000000..c4d1b98a8f
--- /dev/null
+++ b/lib/js-api/tsconfig.json
@@ -0,0 +1,24 @@
+{
+  "compilerOptions": {
+    "importHelpers": true,
+    "removeComments": true,
+    "preserveConstEnums": true,
+    "sourceMap": true,
+    "strictFunctionTypes": true,
+    "noImplicitAny": true,
+    "noImplicitThis": true,
+    "noUnusedLocals": true,
+    "noUnusedParameters": true,
+    "noImplicitReturns": true,
+    "esModuleInterop": true,
+    "allowSyntheticDefaultImports": true,
+    "moduleResolution": "node",
+    "stripInternal": false,
+    "target": "es2015",
+    "outDir": "./.out",
+    "lib": ["es2018", "dom"],
+    "typeRoots": ["node_modules/@types"],
+    "types": []
+  },
+  "exclude": [".history", "*/node_modules", "config", "performance", "coverage", "node_modules", "package", "dist", "test"]
+}
diff --git a/lib/js-api/tsconfig/tsconfig.base.json b/lib/js-api/tsconfig/tsconfig.base.json
new file mode 100644
index 0000000000..694e06ef9f
--- /dev/null
+++ b/lib/js-api/tsconfig/tsconfig.base.json
@@ -0,0 +1,15 @@
+{
+    "extends": "../tsconfig.json",
+    "compilerOptions": {
+        "noEmit": false,
+        "mapRoot": ".",
+        "paths": {
+            "@alfresco/js-api": ["./"],
+            "@alfresco/js-api/*": ["./*"]
+        },
+        "inlineSources": true
+    },
+    "files": [
+        "../index.ts"
+    ]
+}
diff --git a/lib/js-api/tsconfig/tsconfig.cjs.json b/lib/js-api/tsconfig/tsconfig.cjs.json
new file mode 100644
index 0000000000..0811931bd2
--- /dev/null
+++ b/lib/js-api/tsconfig/tsconfig.cjs.json
@@ -0,0 +1,8 @@
+{
+    "extends": "./tsconfig.base.json",
+    "compilerOptions": {
+        "module": "commonjs",
+        "target": "es2015",
+        "outDir": "../../../dist/libs/js-api"
+    }
+}
diff --git a/lib/js-api/tsconfig/tsconfig.esm2015.json b/lib/js-api/tsconfig/tsconfig.esm2015.json
new file mode 100644
index 0000000000..727c879bec
--- /dev/null
+++ b/lib/js-api/tsconfig/tsconfig.esm2015.json
@@ -0,0 +1,10 @@
+{
+    "extends": "./tsconfig.base.json",
+    "compilerOptions": {
+        "module": "es2015",
+        "importHelpers": true,
+        "moduleResolution": "node",
+        "target": "es2015",
+        "outDir": "../../../dist/libs/js-api/esm2015"
+    }
+}
diff --git a/lib/js-api/tsconfig/tsconfig.esm5.json b/lib/js-api/tsconfig/tsconfig.esm5.json
new file mode 100644
index 0000000000..73c9b5a7f6
--- /dev/null
+++ b/lib/js-api/tsconfig/tsconfig.esm5.json
@@ -0,0 +1,10 @@
+{
+    "extends": "./tsconfig.base.json",
+    "compilerOptions": {
+        "module": "es2015",
+        "importHelpers": true,
+        "moduleResolution": "node",
+        "target": "ES2015",
+        "outDir": "../../../dist/libs/js-api/esm5"
+    }
+}
diff --git a/lib/js-api/tsconfig/tsconfig.types.json b/lib/js-api/tsconfig/tsconfig.types.json
new file mode 100644
index 0000000000..41eb505222
--- /dev/null
+++ b/lib/js-api/tsconfig/tsconfig.types.json
@@ -0,0 +1,11 @@
+{
+    "extends": "./tsconfig.base.json",
+    "compilerOptions": {
+        "module": "es2015",
+        "target": "esnext",
+        "removeComments": false,
+        "declaration": true,
+        "declarationDir": "../../../dist/libs/js-api/typings",
+        "emitDeclarationOnly": true
+    }
+}
diff --git a/package-lock.json b/package-lock.json
index 28b23e5ff2..cee61b2860 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -50,6 +50,7 @@
         "raphael": "2.3.0",
         "rxjs": "6.6.6",
         "subscriptions-transport-ws": "^0.11.0",
+        "superagent": "^8.1.2",
         "tslib": "^2.6.2",
         "zone.js": "~0.11.4"
       },
@@ -88,6 +89,7 @@
         "@types/pdfjs-dist": "^2.10.378",
         "@types/selenium-webdriver": "^4.0.11",
         "@types/shelljs": "^0.8.15",
+        "@types/superagent": "^4.1.22",
         "@typescript-eslint/eslint-plugin": "5.59.8",
         "@typescript-eslint/parser": "5.62.0",
         "@typescript-eslint/typescript-estree": "6.7.0",
@@ -132,6 +134,7 @@
         "moment": "^2.29.4",
         "ng-packagr": "14.0.3",
         "nock": "^13.3.8",
+        "npm-run-all": "^4.1.5",
         "nx": "14.4.2",
         "postcss": "^8.4.31",
         "postcss-sass": "^0.5.0",
@@ -144,6 +147,7 @@
         "sass-loader": "13.3.2",
         "selenium-webdriver": "4.1.0",
         "shelljs": "^0.8.5",
+        "shx": "^0.3.4",
         "spdx-license-list": "^6.8.0",
         "stylelint": "^14.15.0",
         "stylelint-config-standard-scss": "^3.0.0",
@@ -21005,6 +21009,12 @@
       "dev": true,
       "license": "MIT"
     },
+    "node_modules/@types/cookiejar": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz",
+      "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==",
+      "dev": true
+    },
     "node_modules/@types/cors": {
       "version": "2.8.13",
       "dev": true,
@@ -21397,6 +21407,16 @@
       "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==",
       "dev": true
     },
+    "node_modules/@types/superagent": {
+      "version": "4.1.22",
+      "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.22.tgz",
+      "integrity": "sha512-GMaOrnnUsjChvH8zlzdDPARRXky8bU3E8xsU/fOclgqsINekbwDu1+wzJzJaGzZP91SGpOutf5Te5pm5M/qCWg==",
+      "dev": true,
+      "dependencies": {
+        "@types/cookiejar": "*",
+        "@types/node": "*"
+      }
+    },
     "node_modules/@types/tapable": {
       "version": "1.0.8",
       "license": "MIT"
@@ -38160,6 +38180,15 @@
         "safe-buffer": "~5.1.0"
       }
     },
+    "node_modules/memorystream": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+      "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.10.0"
+      }
+    },
     "node_modules/meow": {
       "version": "9.0.0",
       "dev": true,
@@ -39783,6 +39812,200 @@
         "encoding": "^0.1.13"
       }
     },
+    "node_modules/npm-run-all": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
+      "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^3.2.1",
+        "chalk": "^2.4.1",
+        "cross-spawn": "^6.0.5",
+        "memorystream": "^0.3.1",
+        "minimatch": "^3.0.4",
+        "pidtree": "^0.3.0",
+        "read-pkg": "^3.0.0",
+        "shell-quote": "^1.6.1",
+        "string.prototype.padend": "^3.0.0"
+      },
+      "bin": {
+        "npm-run-all": "bin/npm-run-all/index.js",
+        "run-p": "bin/run-p/index.js",
+        "run-s": "bin/run-s/index.js"
+      },
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/cross-spawn": {
+      "version": "6.0.5",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+      "dev": true,
+      "dependencies": {
+        "nice-try": "^1.0.4",
+        "path-key": "^2.0.1",
+        "semver": "^5.5.0",
+        "shebang-command": "^1.2.0",
+        "which": "^1.2.9"
+      },
+      "engines": {
+        "node": ">=4.8"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/hosted-git-info": {
+      "version": "2.8.9",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+      "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+      "dev": true
+    },
+    "node_modules/npm-run-all/node_modules/load-json-file": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+      "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+      "dev": true,
+      "dependencies": {
+        "graceful-fs": "^4.1.2",
+        "parse-json": "^4.0.0",
+        "pify": "^3.0.0",
+        "strip-bom": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+      "dev": true,
+      "dependencies": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/parse-json": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+      "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+      "dev": true,
+      "dependencies": {
+        "error-ex": "^1.3.1",
+        "json-parse-better-errors": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+      "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/path-type": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+      "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+      "dev": true,
+      "dependencies": {
+        "pify": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/pidtree": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
+      "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==",
+      "dev": true,
+      "bin": {
+        "pidtree": "bin/pidtree.js"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/pify": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+      "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/read-pkg": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+      "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+      "dev": true,
+      "dependencies": {
+        "load-json-file": "^4.0.0",
+        "normalize-package-data": "^2.3.2",
+        "path-type": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/semver": {
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+      "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+      "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/strip-bom": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/npm-run-all/node_modules/which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "which": "bin/which"
+      }
+    },
     "node_modules/npm-run-path": {
       "version": "4.0.1",
       "license": "MIT",
@@ -45493,6 +45716,15 @@
         "node": ">=8"
       }
     },
+    "node_modules/shell-quote": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+      "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/shelljs": {
       "version": "0.8.5",
       "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
@@ -45551,6 +45783,22 @@
         "node": ">= 0.10"
       }
     },
+    "node_modules/shx": {
+      "version": "0.3.4",
+      "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz",
+      "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==",
+      "dev": true,
+      "dependencies": {
+        "minimist": "^1.2.3",
+        "shelljs": "^0.8.5"
+      },
+      "bin": {
+        "shx": "lib/cli.js"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
     "node_modules/side-channel": {
       "version": "1.0.4",
       "license": "MIT",
@@ -47026,9 +47274,9 @@
       }
     },
     "node_modules/superagent": {
-      "version": "8.0.9",
-      "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz",
-      "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==",
+      "version": "8.1.2",
+      "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
+      "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==",
       "dependencies": {
         "component-emitter": "^1.3.0",
         "cookiejar": "^2.1.4",
diff --git a/package.json b/package.json
index ab69b00064..c7bb588508 100644
--- a/package.json
+++ b/package.json
@@ -34,7 +34,13 @@
     "postbuild:ci": "node ./scripts/app-config-replace.js",
     "06": "echo -------------------------------------------- Clean ----------------------------------------------",
     "clean": "rimraf dist node_modules dist/libs",
-    "playwright": "npx playwright test --config='e2e-playwright/playwright.config.ts'"
+    "playwright": "npx playwright test --config='e2e-playwright/playwright.config.ts'",
+    "js_api_build": "shx rm -rf ./dist/libs/js-api && npm-run-all js_api_build_cjs js_api_build_esm5 js_api_build_esm2015 js_api_build_types js_api_assets",
+    "js_api_build_cjs": "tsc -p ./lib/js-api/tsconfig/tsconfig.cjs.json",
+    "js_api_build_esm5": "shx rm -rf ./dist/libs/js-api/esm5 && tsc -p ./lib/js-api/tsconfig/tsconfig.esm5.json",
+    "js_api_build_esm2015": "shx rm -rf ./dist/libs/js-api/esm2015 && tsc -p ./lib/js-api/tsconfig/tsconfig.esm2015.json",
+    "js_api_build_types": "shx rm -rf ./dist/libs/js-api/typings && tsc -p ./lib/js-api/tsconfig/tsconfig.types.json",
+    "js_api_assets": "shx cp ./lib/js-api/package.json ./dist/libs/js-api/ && shx cp ./lib/js-api/README.md ./dist/libs/js-api/ && shx cp ./lib/js-api/LICENSE.txt ./dist/libs/js-api/"
   },
   "repository": {
     "type": "git",
@@ -94,6 +100,7 @@
     "raphael": "2.3.0",
     "rxjs": "6.6.6",
     "subscriptions-transport-ws": "^0.11.0",
+    "superagent": "^8.1.2",
     "tslib": "^2.6.2",
     "zone.js": "~0.11.4"
   },
@@ -132,6 +139,7 @@
     "@types/pdfjs-dist": "^2.10.378",
     "@types/selenium-webdriver": "^4.0.11",
     "@types/shelljs": "^0.8.15",
+    "@types/superagent": "^4.1.22",
     "@typescript-eslint/eslint-plugin": "5.59.8",
     "@typescript-eslint/parser": "5.62.0",
     "@typescript-eslint/typescript-estree": "6.7.0",
@@ -176,6 +184,7 @@
     "moment": "^2.29.4",
     "ng-packagr": "14.0.3",
     "nock": "^13.3.8",
+    "npm-run-all": "^4.1.5",
     "nx": "14.4.2",
     "postcss": "^8.4.31",
     "postcss-sass": "^0.5.0",
@@ -188,6 +197,7 @@
     "sass-loader": "13.3.2",
     "selenium-webdriver": "4.1.0",
     "shelljs": "^0.8.5",
+    "shx": "^0.3.4",
     "spdx-license-list": "^6.8.0",
     "stylelint": "^14.15.0",
     "stylelint-config-standard-scss": "^3.0.0",
diff --git a/scripts/update-version.sh b/scripts/update-version.sh
index 9ca2de06c1..281659a1a0 100755
--- a/scripts/update-version.sh
+++ b/scripts/update-version.sh
@@ -92,15 +92,9 @@ update_dependencies() {
     for PROJECT in ${projects[@]}
     do
         if [[ $PROJECT == "js-api" ]]; then
-            if [[ $1 == "cli" ]]; then
-                echo "├─ hotfix: Pinning CLI to 7.2.0"
-                PROJECT="@alfresco\/$PROJECT"
-                update_dependency_version $PROJECT "7.2.0"
-            else
-                PROJECT="@alfresco\/$PROJECT"
-                echo "├─ $PROJECT@$JS_API_VERSION"
-                update_dependency_version $PROJECT $JS_API_VERSION
-            fi
+            PROJECT="@alfresco\/$PROJECT"
+            echo "├─ $PROJECT@$JS_API_VERSION"
+            update_dependency_version $PROJECT $JS_API_VERSION
         else
             PROJECT="@alfresco\/adf-$PROJECT"
             echo "├─ $PROJECT@$VERSION"