From 642fa4d07549d73eb247dc4f7e6bc7535b36b453 Mon Sep 17 00:00:00 2001 From: Ben Helleman Date: Fri, 7 Mar 2025 15:18:48 -0500 Subject: [PATCH 1/3] fix(sites-29590): support user bearer token --- .gitignore | 1 + README.md | 44 ++-- package-lock.json | 487 +++++++++++++++++++------------------ package.json | 23 +- src/aem/aem-util.js | 18 ++ src/aem/cmd-handler.js | 146 +++++++++++ src/aem/download-assets.js | 90 +++++++ src/aem/downloadAssets.js | 145 ----------- src/aem/package-helper.js | 91 +++++++ src/aem/upload-assets.js | 87 +++++++ src/aem/uploadAssets.js | 149 ------------ src/aem/uploadPackage.js | 170 ------------- src/cmd/aem.js | 146 +---------- 13 files changed, 732 insertions(+), 865 deletions(-) create mode 100644 src/aem/aem-util.js create mode 100644 src/aem/cmd-handler.js create mode 100644 src/aem/download-assets.js delete mode 100644 src/aem/downloadAssets.js create mode 100644 src/aem/package-helper.js create mode 100644 src/aem/upload-assets.js delete mode 100644 src/aem/uploadAssets.js delete mode 100644 src/aem/uploadPackage.js diff --git a/.gitignore b/.gitignore index 694dc3e..fa4851e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ aem_config.json .vscode .nvmrc +aem-assets/* diff --git a/README.md b/README.md index 9ae3fce..850835c 100644 --- a/README.md +++ b/README.md @@ -95,50 +95,56 @@ npm run import -- \ Once complete, a pre-signed URL to download the import result (as a .zip archive) from S3 will be printed to the console that will contain the generated documents. -#### Importing content into AEM +### Importing content into AEM Add the following npm script entries to your Edge Delivery project's `package.json`: ``` -"aem-login": "aem-import-helper aem login" "aem-upload": "aem-import-helper aem upload" ``` -`aem-login`: Authenticates with your AEM Cloud Service environment. `aem-upload`: Uploads content packages and associated assets to AEM. -#### Authenticating with AEM +### Authenticating with AEM -Execute the following command to log in to your AEM environment: +To authenticate with AEM, it is suggested to obtain a development token for your AEM environment. To do this, +visit the Developer Console in your AEM author environment via Cloud Manager. For details on accessing +the Developer Console, see the [AEM as a Cloud Service documentation](https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/developing/aem-as-a-cloud-service-developer-console.html?lang=en) and +[Developer Flow](https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/developing/generating-access-tokens-for-server-side-apis#generating-the-access-token) to learn how to generate an Access Token. -``` -npm run aem-login -- --aemurl https://author-env-url -``` +Once in the Developer Console: +1. Click on Integrations +2. Click on Local token +3. Click on Get Local Development Token + +**NOTE: that the development token is only valid for 24 hours.** -At this point you will be prompted to enter your username and password. Once validated, your credentials will be securely stored in an encrypted format and used for future interactions. +You can store this token in a file on your local machine, or pass the token as a cli argument. +If you choose to store the token in a file, create a file and simply paste the token into the file and save it. -You will receive the following output: ``` -✔ Enter your AEM username: admin -✔ Enter your AEM password: -Validating credentials... -Saving credentials... -Login successful! Credentials saved securely. +--token OR ``` -#### Uploading content to AEM +### Uploading content to AEM Run the following command to upload content package (JCR pages) and associated assets to your AEM author: ``` -npm run aem-upload -- --zip /path/to/zip.zip --asset-mapping /path/to/asset-mapping.json +npm run aem-upload -- \ + --token token.txt \ + --zip /path/to/zip.zip \ + --asset-mapping /path/to/asset-mapping.json \ + --target https://author-p1234-e1234.adobeaemcloud.com ``` -The command takes in two arguments: +The command takes in four arguments: +* token: Absolute path to the file containing the token generated from the AEM author environment, or the token value. * zip: Absolute path to the content package ZIP file containing the JCR pages, generated by the importer tool. * asset-mapping: Absolute Path to the asset mapping file (`asset-mapping.json`), which contains mappings for asset urls and their corresponding JCR paths. +* target: The target AEM author environment URL. -Ensure that the content and assets are successfully uploaded to your AEM instance. Verify the uploaded content through your AEM Author environment. +Once the command is executed, the content package and associated assets are uploaded to your AEM author environment. The content package is installed and the assets are uploaded to the DAM. ## Bundling Multiple Import Scripts diff --git a/package-lock.json b/package-lock.json index 6560b66..7a53c4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,18 +11,19 @@ "dependencies": { "@adobe/aem-upload": "2.0.3", "aem-import-builder": "^0.3.2", - "chalk": "^5.3.0", - "esbuild": "^0.23.0", - "express": "^4.21.0", - "find-up": "^7.0.0", - "form-data": "4.0.1", + "chalk": "5.3.0", + "esbuild": "0.23.0", + "express": "4.21.0", + "find-up": "7.0.0", + "formdata-node": "6.0.3", "inquirer": "12.2.0", - "jsdom": "^25.0.1", - "node-fetch": "^3.3.2", - "ora": "^8.1.0", - "puppeteer": "^23.1.0", - "unzipper": "^0.12.3", - "yargs": "^17.7.2" + "jsdom": "25.0.1", + "node-fetch": "3.3.2", + "ora": "8.1.0", + "puppeteer": "23.1.0", + "unzipper": "0.12.3", + "xml2js": "0.6.2", + "yargs": "17.7.2" }, "bin": { "aem-import-helper": "src/bin.js" @@ -1098,9 +1099,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", - "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", "cpu": [ "ppc64" ], @@ -1114,9 +1115,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", - "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", "cpu": [ "arm" ], @@ -1130,9 +1131,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", - "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", "cpu": [ "arm64" ], @@ -1146,9 +1147,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", - "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", "cpu": [ "x64" ], @@ -1162,9 +1163,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", - "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", "cpu": [ "arm64" ], @@ -1178,9 +1179,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", - "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", "cpu": [ "x64" ], @@ -1194,9 +1195,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", - "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", "cpu": [ "arm64" ], @@ -1210,9 +1211,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", - "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", "cpu": [ "x64" ], @@ -1226,9 +1227,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", - "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", "cpu": [ "arm" ], @@ -1242,9 +1243,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", - "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", "cpu": [ "arm64" ], @@ -1258,9 +1259,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", - "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", "cpu": [ "ia32" ], @@ -1274,9 +1275,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", - "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", "cpu": [ "loong64" ], @@ -1290,9 +1291,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", - "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", "cpu": [ "mips64el" ], @@ -1306,9 +1307,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", - "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", "cpu": [ "ppc64" ], @@ -1322,9 +1323,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", - "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", "cpu": [ "riscv64" ], @@ -1338,9 +1339,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", - "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", "cpu": [ "s390x" ], @@ -1354,9 +1355,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", - "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", "cpu": [ "x64" ], @@ -1370,9 +1371,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", - "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", "cpu": [ "x64" ], @@ -1386,9 +1387,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", - "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", "cpu": [ "arm64" ], @@ -1402,9 +1403,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", - "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", "cpu": [ "x64" ], @@ -1418,9 +1419,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", - "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", "cpu": [ "x64" ], @@ -1434,9 +1435,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", - "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", "cpu": [ "arm64" ], @@ -1450,9 +1451,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", - "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", "cpu": [ "ia32" ], @@ -1466,9 +1467,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", - "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", "cpu": [ "x64" ], @@ -2421,9 +2422,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.0.tgz", - "integrity": "sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.1.tgz", + "integrity": "sha512-uK7o3hHkK+naEobMSJ+2ySYyXtQkBxIH8Gn4MK9ciePjNV+Pf+PgY/W7iPzn2MTjl3stcYB5AlcTmPYw7AXDwA==", "license": "Apache-2.0", "dependencies": { "debug": "^4.3.6", @@ -2943,13 +2944,10 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -3151,50 +3149,67 @@ "dev": true }, "node_modules/bare-events": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", - "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", "license": "Apache-2.0", "optional": true }, "node_modules/bare-fs": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", - "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", + "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", "license": "Apache-2.0", "optional": true, "dependencies": { "bare-events": "^2.0.0", - "bare-path": "^2.0.0", + "bare-path": "^3.0.0", "bare-stream": "^2.0.0" + }, + "engines": { + "bare": ">=1.7.0" } }, "node_modules/bare-os": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", - "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.5.1.tgz", + "integrity": "sha512-LvfVNDcWLw2AnIw5f2mWUgumW3I3N/WYGiWeimhQC1Ybt71n2FjlS9GJKeCnFeg1MKZHxzIFmpFnBXDI+sBeFg==", "license": "Apache-2.0", - "optional": true + "optional": true, + "engines": { + "bare": ">=1.14.0" + } }, "node_modules/bare-path": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", - "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", "license": "Apache-2.0", "optional": true, "dependencies": { - "bare-os": "^2.1.0" + "bare-os": "^3.0.1" } }, "node_modules/bare-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz", - "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==", + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", "license": "Apache-2.0", "optional": true, "dependencies": { - "b4a": "^1.6.6", - "streamx": "^2.20.0" + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } } }, "node_modules/base64-js": { @@ -3663,9 +3678,9 @@ } }, "node_modules/chromium-bidi": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz", - "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.4.tgz", + "integrity": "sha512-8zoq6ogmhQQkAKZVKO2ObFTl4uOkqoX1PlKQX3hZQ5E9cbUotcAb7h4pTNVAGGv8Z36PF3CtdOriEp/Rz82JqQ==", "license": "Apache-2.0", "dependencies": { "mitt": "3.0.1", @@ -3967,9 +3982,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -4279,9 +4294,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1342118", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1342118.tgz", - "integrity": "sha512-75fMas7PkYNDTmDyb6PRJCH7ILmHLp+BhrZGeMsa4bCh40DTxgCz2NRy5UDzII4C5KuD0oBMZ9vXKhEl6UD/3w==", + "version": "0.0.1312386", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz", + "integrity": "sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==", "license": "BSD-3-Clause" }, "node_modules/diff": { @@ -4544,9 +4559,9 @@ } }, "node_modules/esbuild": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", - "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -4556,30 +4571,30 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.1", - "@esbuild/android-arm": "0.23.1", - "@esbuild/android-arm64": "0.23.1", - "@esbuild/android-x64": "0.23.1", - "@esbuild/darwin-arm64": "0.23.1", - "@esbuild/darwin-x64": "0.23.1", - "@esbuild/freebsd-arm64": "0.23.1", - "@esbuild/freebsd-x64": "0.23.1", - "@esbuild/linux-arm": "0.23.1", - "@esbuild/linux-arm64": "0.23.1", - "@esbuild/linux-ia32": "0.23.1", - "@esbuild/linux-loong64": "0.23.1", - "@esbuild/linux-mips64el": "0.23.1", - "@esbuild/linux-ppc64": "0.23.1", - "@esbuild/linux-riscv64": "0.23.1", - "@esbuild/linux-s390x": "0.23.1", - "@esbuild/linux-x64": "0.23.1", - "@esbuild/netbsd-x64": "0.23.1", - "@esbuild/openbsd-arm64": "0.23.1", - "@esbuild/openbsd-x64": "0.23.1", - "@esbuild/sunos-x64": "0.23.1", - "@esbuild/win32-arm64": "0.23.1", - "@esbuild/win32-ia32": "0.23.1", - "@esbuild/win32-x64": "0.23.1" + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" } }, "node_modules/escalade": { @@ -5031,9 +5046,9 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", @@ -5041,7 +5056,7 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -5433,6 +5448,15 @@ "node": ">= 6" } }, + "node_modules/formdata-node": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", + "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -5579,15 +5603,14 @@ } }, "node_modules/get-uri": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", - "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", "license": "MIT", "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4", - "fs-extra": "^11.2.0" + "debug": "^4.3.4" }, "engines": { "node": ">= 14" @@ -5915,12 +5938,12 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -11192,19 +11215,19 @@ } }, "node_modules/pac-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", - "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", "license": "MIT", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.5", + "https-proxy-agent": "^7.0.6", "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.4" + "socks-proxy-agent": "^8.0.5" }, "engines": { "node": ">= 14" @@ -11533,19 +11556,19 @@ } }, "node_modules/proxy-agent": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", - "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.3", + "https-proxy-agent": "^7.0.6", "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", + "pac-proxy-agent": "^7.1.0", "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" + "socks-proxy-agent": "^8.0.5" }, "engines": { "node": ">= 14" @@ -11598,17 +11621,17 @@ } }, "node_modules/puppeteer": { - "version": "23.5.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.5.1.tgz", - "integrity": "sha512-9WUnrCx7nB/GEMbJdKiSSU6G4t6Nzn39BBochWYyhK2wWxKwibZDwEF71AUP9D17Byn6OoPifsXhyvnqN/D4mQ==", + "version": "23.1.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.1.0.tgz", + "integrity": "sha512-m+CyicDlGN1AVUeOsCa6/+KQydJzxfsPowL7fQy+VGNeaWafB0m8G5aGfXdfZztKMxzCsdz7KNNzbJPeG9wwFw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.4.0", - "chromium-bidi": "0.8.0", + "@puppeteer/browsers": "2.3.1", + "chromium-bidi": "0.6.4", "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1342118", - "puppeteer-core": "23.5.1", + "devtools-protocol": "0.0.1312386", + "puppeteer-core": "23.1.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11619,15 +11642,15 @@ } }, "node_modules/puppeteer-core": { - "version": "23.5.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.5.1.tgz", - "integrity": "sha512-We6xKCSZaZ23+GAYckeNfeDeJIVuhxOBsh/gZkbULu/XLFJ3umSiiQ8Ey927h3g/XrCCr8CnSZ5fvP5v2vB5Yw==", + "version": "23.1.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.1.0.tgz", + "integrity": "sha512-SvAsu+xnLN2FMXE/59bp3s3WXp8ewqUGzVV4AQtml/2xmsciZnU/bXcCW+eETHPWQ6Agg2vTI7QzWXPpEARK2g==", "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.4.0", - "chromium-bidi": "0.8.0", - "debug": "^4.3.7", - "devtools-protocol": "0.0.1342118", + "@puppeteer/browsers": "2.3.1", + "chromium-bidi": "0.6.4", + "debug": "^4.3.6", + "devtools-protocol": "0.0.1312386", "typed-query-selector": "^2.12.0", "ws": "^8.18.0" }, @@ -11635,23 +11658,6 @@ "node": ">=18" } }, - "node_modules/puppeteer-core/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -11706,12 +11712,6 @@ ], "license": "MIT" }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "license": "MIT" - }, "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -12163,6 +12163,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -12624,9 +12630,9 @@ } }, "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", "license": "MIT", "dependencies": { "ip-address": "^9.0.5", @@ -12638,12 +12644,12 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -12775,13 +12781,12 @@ } }, "node_modules/streamx": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", - "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", "license": "MIT", "dependencies": { "fast-fifo": "^1.3.2", - "queue-tick": "^1.0.1", "text-decoder": "^1.1.0" }, "optionalDependencies": { @@ -12963,17 +12968,17 @@ "license": "MIT" }, "node_modules/tar-fs": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", - "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", + "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", "license": "MIT", "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" } }, "node_modules/tar-stream": { @@ -13103,9 +13108,9 @@ } }, "node_modules/text-decoder": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", - "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.4" @@ -13706,6 +13711,28 @@ "node": ">=18" } }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", diff --git a/package.json b/package.json index cd7b3a9..a6a5519 100644 --- a/package.json +++ b/package.json @@ -38,18 +38,19 @@ "dependencies": { "@adobe/aem-upload": "2.0.3", "aem-import-builder": "^0.3.2", - "chalk": "^5.3.0", - "esbuild": "^0.23.0", - "express": "^4.21.0", - "find-up": "^7.0.0", - "form-data": "4.0.1", + "chalk": "5.3.0", + "esbuild": "0.23.0", + "express": "4.21.0", + "find-up": "7.0.0", + "formdata-node": "6.0.3", "inquirer": "12.2.0", - "jsdom": "^25.0.1", - "node-fetch": "^3.3.2", - "ora": "^8.1.0", - "puppeteer": "^23.1.0", - "unzipper": "^0.12.3", - "yargs": "^17.7.2" + "jsdom": "25.0.1", + "node-fetch": "3.3.2", + "ora": "8.1.0", + "puppeteer": "23.1.0", + "unzipper": "0.12.3", + "xml2js": "0.6.2", + "yargs": "17.7.2" }, "devDependencies": { "@eslint/js": "^9.13.0", diff --git a/src/aem/aem-util.js b/src/aem/aem-util.js new file mode 100644 index 0000000..d60496f --- /dev/null +++ b/src/aem/aem-util.js @@ -0,0 +1,18 @@ +/* + * Copyright 2025 Adobe. All rights reserved. + * This file is licensed to you 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 REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +export function getDamRootFolder(assetMappings) { + for (const jcrAssetPath of assetMappings.values()) { + const match = jcrAssetPath?.match(/^\/content\/dam\/([^/]+)/); + if (match) return match[1]; + } + throw new Error('Unable to locate the DAM root folder'); +} diff --git a/src/aem/cmd-handler.js b/src/aem/cmd-handler.js new file mode 100644 index 0000000..8f8edcf --- /dev/null +++ b/src/aem/cmd-handler.js @@ -0,0 +1,146 @@ +/* + * Copyright 2025 Adobe. All rights reserved. + * This file is licensed to you 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 REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +import fs from 'fs'; +import chalk from 'chalk'; +import path from 'path'; +import { cleanup, downloadAssets } from './download-assets.js'; +import { uploadAssets } from './upload-assets.js'; +import { installPackage } from './package-helper.js'; +import fetch from 'node-fetch'; +import {getDamRootFolder} from './aem-util.js'; + +/** + * Validate the existence of the asset-mapping.json and content package files. + * @param {string} assetMappingFile - The path to the asset-mapping.json file + * @param {string} contentPackagePath - The path to the content package ZIP file + * @return {boolean} True if the files exist, false otherwise + */ +function validateFiles(assetMappingFile, contentPackagePath) { + const files = [ + { path: contentPackagePath, message: `Content package not found: ${contentPackagePath}` }, + { path: assetMappingFile, message: `asset-mapping.json file not found: ${assetMappingFile}` }, + ]; + + for (const file of files) { + if (!fs.existsSync(file.path)) { + console.error(chalk.red(file.message)); + return false; + } + } + return true; +} + +/** + * Validate the AEM login token by making a HEAD request to the target environment. + * @param url - The AEM target environment + * @param token - The AEM login token + * @return {Promise} True if the token is valid, false otherwise + */ +async function validateLogin(url, token) { + try { + const headers = { + Authorization: `Bearer ${token}`, + }; + const response = await fetch(url, { method: 'HEAD', headers }); + + if (!response.ok) { + console.error(chalk.red(`Login failed with status: ${response.status} - ${response.statusText}`)); + if (response.status === 401 || response.status === 403) { + console.error(chalk.red('Unauthorized: Invalid token')); + } + return false; + } + + const text = await response.text(); + if (text.includes('Invalid token') || text.includes('Unauthorized')) { + console.error(chalk.red(`Invalid token detected in response body: ${text}`)); + return false; + } + + return response.status === 200; + } catch (error) { + console.error(chalk.red(`Network error: ${error.message}`)); + return false; + } +} + +export const aemBuilder = (yargs) => { + return yargs + .option('zip', { + type: 'string', + describe: 'Absolute path to the content package ZIP file', + demandOption: true, + }) + .option('asset-mapping', { + type: 'string', + describe: 'Absolute path to the image-mapping.json file', + demandOption: true, + }) + .option('token', { + describe: 'AEM login token or path to a file containing the token', + type: 'string', + demandOption: true, + }) + .option('target', { + describe: 'AEM target environment', + type: 'string', + demandOption: true, + }) + .option('keep', { + describe: 'If keep is true, local assets are not deleted after upload', + type: 'boolean', + default: false, + }); +} + +export const aemHandler = async (args) => { + if (!validateFiles(args['asset-mapping'], args['zip'])) { + process.exit(1); + } + + // check to see if the token is a string value or a file + let token = args.token; + if (fs.existsSync(token)) { + token = fs.readFileSync(token, 'utf-8').trim(); + } + + console.log(chalk.yellow('Validating token...')); + if (!await validateLogin(args.target, token)) { + process.exit(1); + } + + try { + const assetMappingJson = JSON.parse(fs.readFileSync(args['asset-mapping'], 'utf-8')); + const assetMapping = new Map(Object.entries(assetMappingJson)); + const downloadFolder = path.join(process.cwd(), 'aem-assets'); + + console.log(chalk.yellow('Downloading origin assets...')); + await downloadAssets(3, assetMapping, downloadFolder); + + const assetFolder = path.join(downloadFolder, getDamRootFolder(assetMapping)); + + console.log(chalk.yellow(`Uploading downloaded assets to ${args.target}...`)); + await uploadAssets(args.target, token, assetFolder); + + console.log(chalk.yellow(`Uploading content package ${args.target}...`)); + //await installPackage(args.target, token, args['zip']); + + if (!args.keep) { + await cleanup(downloadFolder); + } + } catch (err) { + console.error(chalk.red('Error during upload:', err)); + process.exit(1); + } + console.log(chalk.green('Content uploaded successfully.')); + process.exit(0) +} diff --git a/src/aem/download-assets.js b/src/aem/download-assets.js new file mode 100644 index 0000000..d8d7968 --- /dev/null +++ b/src/aem/download-assets.js @@ -0,0 +1,90 @@ +/* + * Copyright 2024 Adobe. All rights reserved. + * This file is licensed to you 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 REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +import fs from 'fs'; +import path from 'path'; +import chalk from 'chalk'; + +const CONTENT_DAM_PREFIX = '/content/dam'; + +/** + * Save the given blob to a file in the download folder. + * @param {Blob} blob - The blob to save. + * @param {string} jcrPath - The JCR path of the asset. + * @param {string} downloadFolder - The folder to download assets to. + * @return {Promise} A promise that resolves when the blob is saved to a file. + */ +async function saveBlobToFile(blob, jcrPath, downloadFolder) { + let assetPath = path.join(downloadFolder, jcrPath.replace(CONTENT_DAM_PREFIX, '')); + fs.mkdirSync(path.dirname(assetPath), { recursive: true }); + + const buffer = Buffer.from(await blob.arrayBuffer()); + fs.writeFileSync(assetPath, buffer); +} + +/** + * Download the given asset URL to the download folder. + * @param {string} url - The URL of the asset to download. + * @param {number} maxRetries - The maximum number of retries for downloading an asset. + * @param {number} retryDelay - The delay between retries in milliseconds. + * @return {Promise} A promise that resolves with the downloaded asset. + */ +async function downloadAssetWithRetry(url, maxRetries = 3, retryDelay = 5000) { + let attempts = 0; + while (attempts < maxRetries) { + try { + const response = await fetch(url); + if (!response.ok) { + const msg = `Failed to fetch ${url}. Status: ${response.status}.`; + console.info(chalk.yellow(msg)); + throw new Error(msg); + } + return await response.blob(); + } catch (error) { + attempts++; + if (attempts >= maxRetries) { + console.error(chalk.red(`Failed to download ${url} after ${maxRetries} attempts.`)); + throw error; + } + + console.info(chalk.yellow(`Retrying download (${url}/${maxRetries})...`)); + const delay = retryDelay * 2 ** (attempts - 1); + await new Promise((resolve) => setTimeout(resolve, delay)); + } + } +} + +/** + * Function to download assets from the asset mapping file. + * @param {number} maxRetries - The maximum number of retries for downloading an asset. + * @param {Map} assetMapping - The content of the asset mapping file. + * @param downloadFolder - The folder to download assets to. + * @returns {Promise} A promise that resolves when all assets are downloaded. + */ +export async function downloadAssets(maxRetries, assetMapping, downloadFolder) { + const downloadPromises = Array.from(assetMapping.entries()) + .map(async ([assetUrl, jcrPath]) => { + const blob = await downloadAssetWithRetry(assetUrl); + await saveBlobToFile(blob, jcrPath, downloadFolder); + }); + + await Promise.allSettled(downloadPromises); +} + +/** + * Function to clean up the asset folder. + * @param assetFolder + * @return {Promise} + */ +export async function cleanup(assetFolder) { + await fs.promises.rm(assetFolder, { recursive: true, force: true }); +} diff --git a/src/aem/downloadAssets.js b/src/aem/downloadAssets.js deleted file mode 100644 index e04c656..0000000 --- a/src/aem/downloadAssets.js +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright 2024 Adobe. All rights reserved. - * This file is licensed to you 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 REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - -import fs from 'fs'; -import path from 'path'; -import chalk from 'chalk'; - -const CONTENT_DAM_PREFIX = '/content/dam'; - -/** - * Function to ensure directory exists - */ -export function ensureDirSync(directoryPath) { - try { - // Create the directory if it doesn't exist, including parent directories - fs.mkdirSync(directoryPath, { recursive: true }); - } catch (err) { - console.error(chalk.red('Error ensuring directory exists:', err)); - } -} - -/** - * Function to download an asset with retry. - * - * @param {{maxRetries: number}} opts - Additional options for downloading the asset - * @param {string} assetUrl - The URL of the asset to download - * @param {string} jcrPath - The JCR path of the asset - * @param {number} retryDelay - The delay between retries in milliseconds defaults to 5000 - */ - -export async function downloadAsset(opts, assetUrl, jcrPath, retryDelay = 5000) { - const { maxRetries } = opts; - - for (let attempt = 1; attempt <= maxRetries; attempt++) { - try { - const response = await fetch(assetUrl); - - if (!response.ok) { - const msg = `Failed to fetch ${assetUrl}. Status: ${response.status}.`; - console.info(chalk.yellow(msg)); - throw new Error(msg); - } - - // Create the asset path - let assetPath = path.join(process.cwd(), jcrPath.replace(CONTENT_DAM_PREFIX, '')); - - ensureDirSync(path.dirname(assetPath)); - - // Read response body as a stream and write it to the file - const fileStream = fs.createWriteStream(assetPath); - const reader = response.body.getReader(); - - await new Promise((resolve, reject) => { - function processChunk({ done, value }) { - if (done) { - fileStream.end(); - resolve(); - return; - } - fileStream.write(value); - reader.read().then(processChunk).catch(reject); - } - reader.read().then(processChunk).catch(reject); - fileStream.on('error', reject); - }); - - console.info(chalk.yellow(`Downloaded ${assetUrl} successfully.`)); - return; - } catch (error) { - if (attempt === maxRetries) { - console.error(chalk.red(`Failed to download ${assetUrl} after ${maxRetries} attempts.`)); - throw error; - } else { - console.info(chalk.yellow(`Retrying download (${attempt}/${maxRetries})...`)); - - // Exponential backoff - const delay = retryDelay * 2 ** (attempt - 1); - await new Promise((resolve) => setTimeout(resolve, delay)); - } - } - } -} - -/** - * Function to download all assets to given location. - * - * @param opts - Options for downloading the assets - * @param assetUrlMap - The map of asset urls to their JCR node paths - * @returns {Promise} A promise that resolves when all assets are downloaded - */ -export async function downloadAssets(opts, assetUrlMap) { - // Map over the entries and create a promise for each asset download. - const downloadPromises = Array.from(assetUrlMap.entries()).map(([assetUrl, jcrPath]) => - downloadAsset(opts, assetUrl, jcrPath), - ); - - // Wait for all downloads to complete - // The promises are passed to Promise.allSettled, which runs them in parallel - await Promise.allSettled(downloadPromises); -} - -/** - * Get a map of asset URLs to JCR node paths from a JSON file. - * @param {string} assetMappingFilePath - The path to the JSON file containing asset URLs and JCR node paths - * @returns {Map | undefined} a map of asset URLs to JCR node paths, or undefined if the file is invalid - */ -export function getAssetUrlMap(assetMappingFilePath) { - try { - const data = fs.readFileSync(assetMappingFilePath, 'utf8'); - const jsonData = JSON.parse(data); - - if (typeof jsonData === 'object' && jsonData !== null) { - return new Map(Object.entries(jsonData)); - } - - // Return undefined if jsonData isn't valid - return undefined; - } catch (err) { - // Return undefined if there's an error reading the file or parsing JSON - return undefined; - } -} - -/** - * Function to download assets present in given markdown file. - * - * @param opts - The options for downloading assets - * @param assetMappingFilePath - The file containing mappings of asset urls to their JCR node paths - * @returns {Promise} - */ -export async function downloadAssetsInMarkdown(opts, assetMappingFilePath) { - const assetUrlMap = getAssetUrlMap(assetMappingFilePath); - - // Process the Map entries - await downloadAssets(opts, assetUrlMap); -} diff --git a/src/aem/package-helper.js b/src/aem/package-helper.js new file mode 100644 index 0000000..6b38941 --- /dev/null +++ b/src/aem/package-helper.js @@ -0,0 +1,91 @@ +/* + * Copyright 2024 Adobe. All rights reserved. + * This file is licensed to you 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 REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +import fs from 'fs'; +import { FormData, File } from 'formdata-node'; +import fetch from 'node-fetch'; +import chalk from 'chalk'; +import { parseStringPromise } from 'xml2js'; + +const BASE_DELAY = 5000; // base delay in milliseconds +const MAX_RETRIES = process.env.MAX_RETRIES || 3; // maximum number of retries + +/** + * Parse the XML response from the CRX package manager. If the response is successful, return true. + * Otherwise, return the error message. + * @param {string} xml - The XML response from the CRX package manager. + * @return {Promise<*|string|boolean>} + */ +async function parseCrxResponse(xml) { + const result = await parseStringPromise(xml, { explicitArray: false }); + const statusCode = result?.crx?.response?.status?.$?.code; + if (statusCode === '200') { + return true; + } else { + return result?.crx?.response?.status?._ || 'Unknown error'; + } +} + +/** + * Upload and force install the package to AEM. + * @param {string} target - The target AEM environment + * @param {string} token - The user's Bearer token. + * @param {string} packagePath - The path to the package. + * @returns {Promise} The response from the AEM server. + */ +export async function installPackage(target, token, packagePath) { + const endpoint = `${target}/crx/packmgr/service.jsp`; + + for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) { + const file = new File([fs.readFileSync(packagePath)], 'file'); + const formData = new FormData(); + formData.set('install', 'true'); + formData.set('file', file); + + try { + const fetchResponse = await fetch(endpoint, { + method: 'POST', + headers: { + authorization: `Bearer ${token}`, + }, + body: formData, + }); + + // AEM returns a 200 status code even if the package installation fails, but if the response was not ok, + // throw an error. + if (!fetchResponse.ok) { + throw new Error(`Failed to install package: ${fetchResponse.status} - ${fetchResponse.statusText}`); + } + + // now we need to parse the XML response from the CRX package manager + const xmlResponse = await fetchResponse.text(); + const response = await parseCrxResponse(xmlResponse); + + if (response !== true) { + throw new Error(`Failed to install package: ${response}`); + } + console.info(chalk.yellow(`Package installed successfully at ${endpoint}.`)); + return fetchResponse; + } catch (error) { + if (attempt === MAX_RETRIES) { + console.error(chalk.red('Max retries reached. Failed to install package.')); + throw error; + } else { + const retryDelay = BASE_DELAY * 2 ** (attempt - 1); + console.warn(chalk.yellow(`Retrying package install (${attempt}/${MAX_RETRIES}) in ${retryDelay}ms...`)); + await new Promise((resolve) => { + setTimeout(resolve, retryDelay); + }); + } + } + } +} + diff --git a/src/aem/upload-assets.js b/src/aem/upload-assets.js new file mode 100644 index 0000000..9950d23 --- /dev/null +++ b/src/aem/upload-assets.js @@ -0,0 +1,87 @@ +/* + * Copyright 2025 Adobe. All rights reserved. + * This file is licensed to you 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 REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +import { FileSystemUploadOptions, FileSystemUpload } from '@adobe/aem-upload'; +import chalk from 'chalk'; + +/** + * Build the AEM Assets URL to which the assets need to be uploaded. + * + * @param targetUrl - The URL of the AEM Assets instance + * @returns {string} The URL to which the assets need to be uploaded + */ +function buildAEMUrl(targetUrl) { + let aemUrl = targetUrl; + // Ensure the URL starts with http:// or https:// + if (!/^https?:\/\//i.test(aemUrl)) { + aemUrl = `https://${aemUrl}`; + } + + // Strip any trailing `/` from the aem url + aemUrl = aemUrl.replace(/\/+$/, ''); + + // Append `/content/dam` + return new URL('/content/dam', aemUrl).toString(); +} + + +/** + * Build the FileSystemUploadOptions for uploading assets to AEM. + * @param {string} target - The URL of the AEM Assets instance + * @param {string} token - The bearer token for authentication + * @returns {DirectBinaryUploadOptions} + */ +function buildFileSystemUploadOptions(target, token) { + return new FileSystemUploadOptions() + .withUrl(buildAEMUrl(target)) + .withConcurrent(true) + .withMaxConcurrent(10) + .withHttpRetryDelay(5000) // retry delay in milliseconds; default retry count = 3 + .withDeepUpload(true) // include all descendent folders and files + .withHttpOptions({ + headers: { + 'Authorization': `Bearer ${token}`, + }, + }) + // If 'true', and an asset with the given name already exists, the process will delete the existing + // asset and create a new one with the same name and the new binary. + .withUploadFileOptions({ replace: true }); +} + + +/** + * Create a file uploader to upload assets. Attach event listeners to handle file upload events. + * + * @returns {FileSystemUpload} The file uploader + */ +function createFileUploader() { + const fileUpload = new FileSystemUpload(); + + // specific handling that should occur when a file finishes uploading successfully + fileUpload.on('fileend', (data) => { + const { fileName } = data; + console.info(chalk.yellow(`Uploaded asset: ${fileName}`)); + }); + + // specific handling that should occur when a file upload fails + fileUpload.on('fileerror', (data) => { + const { fileName, errors } = data; + console.error(chalk.red(`Failed to upload asset: ${fileName}. ${errors.toString()}`)); + }); + + return fileUpload; +} + +export async function uploadAssets(target, token, assetFolder) { + const fileUpload = createFileUploader(); + const options = buildFileSystemUploadOptions(target, token); + return await fileUpload.upload(options, [assetFolder]); +} diff --git a/src/aem/uploadAssets.js b/src/aem/uploadAssets.js deleted file mode 100644 index a7e0661..0000000 --- a/src/aem/uploadAssets.js +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright 2024 Adobe. All rights reserved. - * This file is licensed to you 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 REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - -import path from 'path'; -import fs from 'fs'; -import { FileSystemUploadOptions, FileSystemUpload } from '@adobe/aem-upload'; -import { downloadAssetsInMarkdown, getAssetUrlMap } from './downloadAssets.js'; -import chalk from 'chalk'; - -function cleanup(downloadLocation) { - return fs.promises.rm(downloadLocation, { recursive: true, force: true }); -} - -/** - * Build the AEM Assets URL to which the assets need to be uploaded. - * - * @param targetUrl - The URL of the AEM Assets instance - * @returns {string} The URL to which the assets need to be uploaded - */ -function buildAEMUrl(targetUrl) { - let AEMUrl = targetUrl; - // Ensure the URL starts with http:// or https:// - if (!/^https?:\/\//i.test(AEMUrl)) { - AEMUrl = `https://${AEMUrl}`; - } - - // Strip any trailing `/` from the aem url - AEMUrl = AEMUrl.replace(/\/+$/, ''); - - // Append `/content/dam` - return new URL('/content/dam', AEMUrl).toString(); -} - -/** - * Get the encoded credentials for basic authentication. - * - * @param user - The AEM username - * @param password - The AEM password - * @returns {string} The encoded credentials - */ -function getEncodedCredentials(user, password) { - return Buffer.from(`${user}:${password}`).toString('base64'); -} - -/** - * Build the FileSystemUploadOptions for uploading assets to AEM. - * - * @param opts - The options for uploading assets to AEM - * @returns {DirectBinaryUploadOptions} - */ -function buildFileSystemUploadOptions(opts) { - const { targetAEMUrl, username, password } = opts; - - return new FileSystemUploadOptions() - .withUrl(buildAEMUrl(targetAEMUrl)) - .withConcurrent(true) - .withMaxConcurrent(10) - .withHttpRetryDelay(5000) // retry delay in milliseconds; default retry count = 3 - .withDeepUpload(true) // include all descendent folders and files - .withHttpOptions({ - headers: { - Authorization: `Basic ${getEncodedCredentials(username, password)}`, - }, - }) - // If 'true', and an asset with the given name already exists, the process will delete the existing - // asset and create a new one with the same name and the new binary. - .withUploadFileOptions({ replace: true }); -} - -/** - * Create a file uploader to upload assets. Attach event listeners to handle file upload events. - * - * @returns {FileSystemUpload} The file uploader - */ -function createFileUploader() { - const fileUpload = new FileSystemUpload(); - - // specific handling that should occur when a file finishes uploading successfully - fileUpload.on('fileend', (data) => { - const { fileName } = data; - console.info(chalk.yellow(`Uploaded asset: ${fileName}`)); - }); - - // specific handling that should occur when a file upload fails - fileUpload.on('fileerror', (data) => { - const { fileName, errors } = data; - console.error(chalk.red(`Failed to upload asset: ${fileName}. ${errors.toString()}`)); - }); - - return fileUpload; -} - -/** - * Get the AEM asset folder name from the asset mapping file. - */ -function getAemAssetFolderName(assetMappingFilePath) { - // Get the asset URL map from the asset mapping file - const assetUrlMap = getAssetUrlMap(assetMappingFilePath); - - // Look for jcr content path in the asset URL map - // check all entries in case the value is not present in the first entry due to some reason - for (const jcrAssetPath of assetUrlMap.values()) { - if (jcrAssetPath) { // Check if the value is not empty - const match = jcrAssetPath.match(/^\/content\/dam\/([^/]+)/); - if (match) { - return match[1]; - } - } - } - - return null; -} - -/** - * Upload assets from urls in markdown file to AEM. - * - * @param opts - The options for uploading assets to AEM - * @returns {Promise} The result of the upload operation - */ -export default async function uploadAssetsToAEM(opts) { - const { assetMappingFilePath } = opts; - const aemAssetFolderName = getAemAssetFolderName(assetMappingFilePath); - if (!aemAssetFolderName) { - throw new Error('No valid AEM asset path found in the JCR asset mapping file.'); - } - console.log(chalk.yellow(`Uploading assets to AEM asset folder: ${aemAssetFolderName}`)); - const downloadLocation = path.join(process.cwd(), aemAssetFolderName); - - // download assets from the asset mapping file - await downloadAssetsInMarkdown({ maxRetries: 3, downloadLocation }, assetMappingFilePath); - - // upload all assets in given folder - const fileUpload = createFileUploader(); - const result = await fileUpload.upload(buildFileSystemUploadOptions(opts), [downloadLocation]); - - // clean up the temporary folder - await cleanup(downloadLocation) - - return result; -} diff --git a/src/aem/uploadPackage.js b/src/aem/uploadPackage.js deleted file mode 100644 index db7fa97..0000000 --- a/src/aem/uploadPackage.js +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright 2024 Adobe. All rights reserved. - * This file is licensed to you 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 REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -import fs from 'fs'; -import fetch from 'node-fetch'; -import FormData from 'form-data'; -import chalk from 'chalk'; - -const BASE_DELAY = 5000; // base delay in milliseconds - -/** - * Creates a form-data payload for the package upload. - * @param {string} packagePath - The path to the content package file. - * @returns {FormData} The form-data payload. - */ -function createFormData(packagePath) { - // Read the file asynchronously using fs/promises - const fileContent = fs.readFileSync(packagePath); - - // Create a FormData instance - const formData = new FormData(); - formData.append('cmd', 'upload'); - formData.append('force', 'true'); - formData.append('package', fileContent, packagePath.split('/').pop()); - - return formData; -} - -/** - * Uploads the package to AEM. - * @param {string} uploadUrl - The URL for the package upload. - * @param {string} authHeader - The authorization header. - * @param {FormData} formData - The form-data payload. - * @returns {Promise} The response from the AEM server. - */ -async function uploadPackage(uploadUrl, authHeader, formData) { - return fetch(uploadUrl, { - method: 'POST', - headers: { - ...formData.getHeaders(), // Include FormData headers - Authorization: authHeader, - }, - body: formData, - }); -} - -/** - * Install the package in AEM. - * @param {string} installUrl - The URL for the package install. - * @param {string} authHeader - The authorization header. - * @returns {Promise} The response from the AEM server. - */ -async function installPackage(installUrl, authHeader) { - const formData = new FormData(); - formData.append('cmd', 'install'); - - return fetch(installUrl, { - method: 'POST', - headers: { - ...formData.getHeaders(), // Include FormData headers - Authorization: authHeader, - }, - body: formData, - }); -} - -async function parseJsonResponse(response) { - if (!response.ok) { - throw new Error(`Request failed with status ${response.status}: ${response.statusText}`); - } - const responseBody = await response.json(); - if (!responseBody.success) { - throw new Error(`AEM returned an error: ${JSON.stringify(responseBody)}`); - } - return responseBody; -} - -/** - * Uploads the package to AEM with retries. - * @param {string} endpoint - The URL for the package upload. - * @param {object} authHeader - The authorization header. - * @param {number} maxRetries - The maximum number of retries. - * @returns {Promise} The response from the AEM server. - */ -async function uploadPackageWithRetry(endpoint, packagePath, authHeader, maxRetries = 3) { - for (let attempt = 1; attempt <= maxRetries; attempt++) { - try { - // Upload package - const formData = createFormData(packagePath); - const uploadResponse = await uploadPackage(endpoint, authHeader, formData); - const uploadResponseBody = await parseJsonResponse(uploadResponse); - console.info(chalk.yellow(`Package uploaded successfully to ${uploadResponseBody.path}`)); - - return uploadResponseBody; - } catch (error) { - if (attempt === maxRetries) { - console.error(chalk.red('Max retries reached. Failed to upload package.', error.message)); - throw error; - } else { - const retryDelay = BASE_DELAY * 2 ** (attempt - 1); - console.warn(chalk.yellow(`Retrying package upload (${attempt}/${maxRetries}) in ${retryDelay}ms...`)); - await new Promise((resolve) => { - setTimeout(resolve, retryDelay); - }); - } - } - } -} - -/** - * Installs the package in AEM with retries. - * @param {string} endpoint - The URL for the package install. - * @param {object} authHeader - The authorization header. - * @param {number} maxRetries - The maximum number of retries. - * @returns {Promise} The response from the AEM server. - */ -async function installPackageWithRetry(endpoint, authHeader, maxRetries = 3) { - for (let attempt = 1; attempt <= maxRetries; attempt++) { - try { - // Install package - const installResponse = await installPackage(endpoint, authHeader); - const installResponseBody = await parseJsonResponse(installResponse); - console.info(chalk.yellow(`Package installed successfully at ${endpoint}.`)); - return installResponseBody; - - } catch (error) { - if (attempt === maxRetries) { - console.error(chalk.red('Max retries reached. Failed to install package.')); - throw error; - } else { - const retryDelay = BASE_DELAY * 2 ** (attempt - 1); - console.warn(chalk.yellow(`Retrying package install (${attempt}/${maxRetries}) in ${retryDelay}ms...`)); - await new Promise((resolve) => { - setTimeout(resolve, retryDelay); - }); - } - } - } -} - -/** - * Uploads a package to AEM using the CRX Package Manager API. - * @param {*} opts - The options for uploading the package - * @param {string} packagePath - The path to the content package file path - * @returns {Promise} The response from the AEM server. - */ -export default async function uploadPackageToAEM(opts) { - const { - username, password, targetAEMUrl, maxRetries = 3, packagePath, - } = opts; - - if (!username || !password || !targetAEMUrl || !packagePath) { - throw new Error('Missing required parameters: username, password, targetAEMUrl, or packagePath'); - } - - const packageName = packagePath.split('/').pop(); - const endpoint = `${targetAEMUrl}/crx/packmgr/service/.json/etc/packages/my_packages/${packageName}`; - const authHeader = `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`; - - await uploadPackageWithRetry(endpoint, packagePath, authHeader, maxRetries); - await installPackageWithRetry(endpoint, authHeader, maxRetries); -} diff --git a/src/cmd/aem.js b/src/cmd/aem.js index a37f28b..faf9505 100644 --- a/src/cmd/aem.js +++ b/src/cmd/aem.js @@ -11,87 +11,7 @@ */ import chalk from 'chalk'; -import fs from 'fs'; -import fetch from 'node-fetch'; -import inquirer from 'inquirer'; -import uploadPackageToAEM from '../aem/uploadPackage.js'; -import uploadAssetsToAEM from '../aem/uploadAssets.js'; -import { loadCredentials, saveCredentials } from '../utils/credential-utils.js'; - -// Validate credentials with AEM -async function validateLogin(url, username, password) { - try { - const headers = { - Authorization: `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`, - }; - const response = await fetch(url, { method: 'GET', headers }); - - if (!response.ok) { - console.error(chalk.red(`Login failed with status: ${response.status} - ${response.statusText}`)); - // Check if the server explicitly returns 401 or 403 - if (response.status === 401 || response.status === 403) { - console.error(chalk.red('Unauthorized: Invalid credentials')); - } - return false; - } - - // Check the response body for specific errors - const text = await response.text(); - if (text.includes('Invalid login') || text.includes('Unauthorized')) { - console.error(chalk.red(`Invalid credentials detected in response body: ${text}`)); - return false; - } - - return response.status === 200; - } catch (error) { - console.error(chalk.red(`Network error: ${error.message}`)); - return false; - } -} - -// Use inquirer to get user credentials -async function getUserCredentials() { - const answers = await inquirer.prompt([ - { name: 'username', message: 'Enter your AEM username:' }, - { name: 'password', message: 'Enter your AEM password:', type: 'password' }, - ]); - - return answers; -} - -// Validate the files -function validateFiles(assetMappingFile, contentPackagePath) { - if (!fs.existsSync(contentPackagePath)) { - console.error(chalk.red(`Content package not found: ${contentPackagePath}`)); - return false; - } - - if (!fs.existsSync(assetMappingFile)) { - console.error(chalk.red(`asset-mapping.json file not found: ${assetMappingFile}`)); - return false; - } - return true; -} - -// Get, validate and store the user login credentials -async function login(argv) { - const credentials = await getUserCredentials(); - console.log(chalk.yellow('Validating credentials...')); - if (!await validateLogin(argv.aemurl, credentials.username, credentials.password)) { - process.exit(1); - } - console.log(chalk.yellow('Saving credentials...')); - saveCredentials(argv.aemurl, credentials.username, credentials.password); - console.log(chalk.green('Login successful! Credentials saved securely.')); -} - -// Perform the upload of content to AEM -async function runUpload(opts) { - console.log(chalk.yellow('Uploading content to AEM...')); - await uploadAssetsToAEM(opts); - await uploadPackageToAEM(opts); - console.log(chalk.green('Content uploaded successfully.')); -} +import { aemBuilder, aemHandler } from '../aem/cmd-handler.js'; export function aemCommand(yargs) { yargs.command({ @@ -99,73 +19,17 @@ export function aemCommand(yargs) { describe: 'Manage AEM Cloud Service interactions', builder: (yargs) => { return yargs - .command({ - command: 'login', - describe: 'Login to AEM Cloud Service environment', - builder: (yargs) => { - return yargs.option('aemurl', { - describe: 'AEM Cloud Service URL to upload content to', - type: 'string', - demandOption: true, - }); - }, - handler: async (argv) => { - await login(argv); - process.exit(0); - }, - }) .command({ command: 'upload', describe: 'Upload content to AEM Cloud Service environment', - builder: (yargs) => { - return yargs - .option('zip', { - type: 'string', - describe: 'Absolute path to the content package ZIP file', - demandOption: true, - }) - .option('asset-mapping', { - type: 'string', - describe: 'Absolute path to the image-mapping.json file', - demandOption: true, - }) - }, - handler: async (args) => { - if (!validateFiles(args['asset-mapping'], args['zip'])) { - process.exit(1); - } - - console.log(chalk.yellow('Checking for credentials...')); - const credentials = loadCredentials(); - if (!credentials) { - console.log(chalk.red('No credentials found. Run `aem login` first.')); - process.exit(1); - } - - const opts = { - username: credentials.username, - password: credentials.password, - targetAEMUrl: credentials.url, - maxRetries: 3, - assetMappingFilePath: args['asset-mapping'], - packagePath: args['zip'], - }; - - try { - await runUpload(opts); - process.exit(0) - } catch (err) { - console.error(chalk.red('Error during upload:', err.message)); - process.exit(1); - } - - }, + builder: aemBuilder, + handler: aemHandler, }) - .demandCommand(1, 'You need to specify a valid subcommand: `login` or `upload`'); + .demandCommand(1, 'You need to specify a valid subcommand: `upload`'); }, handler: () => { // Default handler if no valid subcommand is provided - console.log(chalk.red('Invalid subcommand. Use `aem login` or `aem upload`.')); + console.log(chalk.red('Invalid subcommand. Use `aem upload`.')); process.exit(1); }, }); From ba5ab857c0dc18f1ddb42797cc8bef362b85cc77 Mon Sep 17 00:00:00 2001 From: Ben Helleman Date: Fri, 7 Mar 2025 20:07:34 -0500 Subject: [PATCH 2/3] fix(sites-29590): support user bearer token --- README.md | 18 ++++++++++++------ src/aem/cmd-handler.js | 16 ++++++++++++++-- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 850835c..39525cd 100644 --- a/README.md +++ b/README.md @@ -136,13 +136,19 @@ npm run aem-upload -- \ --zip /path/to/zip.zip \ --asset-mapping /path/to/asset-mapping.json \ --target https://author-p1234-e1234.adobeaemcloud.com + --keep + --output /path/to/download/folder ``` -The command takes in four arguments: -* token: Absolute path to the file containing the token generated from the AEM author environment, or the token value. -* zip: Absolute path to the content package ZIP file containing the JCR pages, generated by the importer tool. -* asset-mapping: Absolute Path to the asset mapping file (`asset-mapping.json`), which contains mappings for asset urls and their corresponding JCR paths. -* target: The target AEM author environment URL. +**Required:** +* **token**: Absolute path to the file containing the token generated from the AEM author environment, or the token value. +* **zip**: Absolute path to the content package ZIP file containing the JCR pages, generated by the importer tool. +* **asset-mapping**: Absolute Path to the asset mapping file (`asset-mapping.json`), which contains mappings for asset urls and their corresponding JCR paths. +* **target**: The target AEM author environment URL. + +**Optional:** +* _output_: Absolute path to the output folder where the downloaded assets will be stored. Default is `aem-assets`. +* _keep:_ Keep the downloaded assets in the output folder after execution. Default is `false`. Once the command is executed, the content package and associated assets are uploaded to your AEM author environment. The content package is installed and the assets are uploaded to the DAM. @@ -150,7 +156,7 @@ Once the command is executed, the content package and associated assets are uplo By creating a bundled version of your import script, it makes it compatible with the Import Service as all scripts are required to be in one js file. -Add an npm script entry to your Edge Delivery project's `package.json`: +Add a npm script entry to your Edge Delivery project's `package.json`: ``` "bundle": "aem-import-helper bundle" diff --git a/src/aem/cmd-handler.js b/src/aem/cmd-handler.js index 8f8edcf..0ef05d4 100644 --- a/src/aem/cmd-handler.js +++ b/src/aem/cmd-handler.js @@ -95,6 +95,11 @@ export const aemBuilder = (yargs) => { type: 'string', demandOption: true, }) + .option('output', { + describe: 'Output directory for downloaded assets', + type: 'string', + default: 'aem-assets', + }) .option('keep', { describe: 'If keep is true, local assets are not deleted after upload', type: 'boolean', @@ -107,6 +112,10 @@ export const aemHandler = async (args) => { process.exit(1); } + if (!fs.existsSync(args.output)) { + fs.mkdirSync(args.output); + } + // check to see if the token is a string value or a file let token = args.token; if (fs.existsSync(token)) { @@ -121,7 +130,10 @@ export const aemHandler = async (args) => { try { const assetMappingJson = JSON.parse(fs.readFileSync(args['asset-mapping'], 'utf-8')); const assetMapping = new Map(Object.entries(assetMappingJson)); - const downloadFolder = path.join(process.cwd(), 'aem-assets'); + + const downloadFolder = args.output === 'aem-assets' + ? path.join(process.cwd(), args.output) + : args.output; console.log(chalk.yellow('Downloading origin assets...')); await downloadAssets(3, assetMapping, downloadFolder); @@ -132,7 +144,7 @@ export const aemHandler = async (args) => { await uploadAssets(args.target, token, assetFolder); console.log(chalk.yellow(`Uploading content package ${args.target}...`)); - //await installPackage(args.target, token, args['zip']); + await installPackage(args.target, token, args['zip']); if (!args.keep) { await cleanup(downloadFolder); From 6e38a5018cc16e50b3a6ee3a6302120f61f6b953 Mon Sep 17 00:00:00 2001 From: Ben Helleman Date: Fri, 7 Mar 2025 23:22:32 -0500 Subject: [PATCH 3/3] fix(sites-29590): support user bearer token --- package-lock.json | 94 +++++++++++++++- package.json | 1 + src/aem/aem-util.js | 12 +- src/aem/cmd-handler.js | 4 +- src/aem/download-assets.js | 26 +++-- src/aem/upload-assets.js | 14 ++- test/aem/aem-util.test.js | 42 +++++++ test/aem/download-assts.test.js | 105 +++++++++++++++++ test/aem/downloadAssets.test.js | 192 -------------------------------- test/aem/fixtures/image1.jpeg | Bin 0 -> 164805 bytes test/aem/fixtures/image2.jpeg | Bin 0 -> 103273 bytes test/aem/fixtures/image3.jpeg | Bin 0 -> 103138 bytes test/aem/upload-assets.test.js | 67 +++++++++++ test/aem/uploadAssets.test.js | 90 --------------- 14 files changed, 347 insertions(+), 300 deletions(-) create mode 100644 test/aem/aem-util.test.js create mode 100644 test/aem/download-assts.test.js delete mode 100644 test/aem/downloadAssets.test.js create mode 100644 test/aem/fixtures/image1.jpeg create mode 100644 test/aem/fixtures/image2.jpeg create mode 100644 test/aem/fixtures/image3.jpeg create mode 100644 test/aem/upload-assets.test.js delete mode 100644 test/aem/uploadAssets.test.js diff --git a/package-lock.json b/package-lock.json index 7a53c4e..65db5f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,7 @@ "esmock": "^2.6.7", "globals": "^15.11.0", "mocha": "^10.7.3", + "nock": "^14.0.1", "sinon": "^18.0.1", "sinon-chai": "^4.0.0" }, @@ -2130,6 +2131,24 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@mswjs/interceptors": { + "version": "0.37.6", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.37.6.tgz", + "integrity": "sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2366,6 +2385,31 @@ "@octokit/openapi-types": "^22.2.0" } }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", + "dev": true, + "license": "MIT" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -6212,6 +6256,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "dev": true, + "license": "MIT" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -6495,8 +6546,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC", - "optional": true + "devOptional": true, + "license": "ISC" }, "node_modules/jsonfile": { "version": "6.1.0", @@ -7471,6 +7522,21 @@ "tslib": "^2.0.3" } }, + "node_modules/nock": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.1.tgz", + "integrity": "sha512-IJN4O9pturuRdn60NjQ7YkFt6Rwei7ZKaOwb1tvUIIqTgeD0SDDAX3vrqZD4wcXczeEy/AsUXxpGpP/yHqV7xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mswjs/interceptors": "^0.37.3", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">=18.20.0 <20 || >=20.12.1" + } + }, "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", @@ -11109,6 +11175,13 @@ "node": ">=0.10.0" } }, + "node_modules/outvariant": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", + "dev": true, + "license": "MIT" + }, "node_modules/p-each-series": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", @@ -11535,6 +11608,16 @@ "node": ">=0.4.0" } }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -12793,6 +12876,13 @@ "bare-events": "^2.2.0" } }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true, + "license": "MIT" + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", diff --git a/package.json b/package.json index a6a5519..a46d41d 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "esmock": "^2.6.7", "globals": "^15.11.0", "mocha": "^10.7.3", + "nock": "^14.0.1", "sinon": "^18.0.1", "sinon-chai": "^4.0.0" } diff --git a/src/aem/aem-util.js b/src/aem/aem-util.js index d60496f..9ebea50 100644 --- a/src/aem/aem-util.js +++ b/src/aem/aem-util.js @@ -9,10 +9,20 @@ * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ +import path from 'path'; + export function getDamRootFolder(assetMappings) { for (const jcrAssetPath of assetMappings.values()) { + // make sure that the asset path is not the root DAM folder, skip it if is + const dir = path.dirname(jcrAssetPath); + if (dir === '/content/dam') { + continue; + } + const match = jcrAssetPath?.match(/^\/content\/dam\/([^/]+)/); - if (match) return match[1]; + if (match) { + return match[1]; + } } throw new Error('Unable to locate the DAM root folder'); } diff --git a/src/aem/cmd-handler.js b/src/aem/cmd-handler.js index 0ef05d4..5e7c772 100644 --- a/src/aem/cmd-handler.js +++ b/src/aem/cmd-handler.js @@ -16,7 +16,7 @@ import { cleanup, downloadAssets } from './download-assets.js'; import { uploadAssets } from './upload-assets.js'; import { installPackage } from './package-helper.js'; import fetch from 'node-fetch'; -import {getDamRootFolder} from './aem-util.js'; +import { getDamRootFolder } from './aem-util.js'; /** * Validate the existence of the asset-mapping.json and content package files. @@ -136,7 +136,7 @@ export const aemHandler = async (args) => { : args.output; console.log(chalk.yellow('Downloading origin assets...')); - await downloadAssets(3, assetMapping, downloadFolder); + await downloadAssets(assetMapping, downloadFolder); const assetFolder = path.join(downloadFolder, getDamRootFolder(assetMapping)); diff --git a/src/aem/download-assets.js b/src/aem/download-assets.js index d8d7968..5ef653f 100644 --- a/src/aem/download-assets.js +++ b/src/aem/download-assets.js @@ -65,26 +65,30 @@ async function downloadAssetWithRetry(url, maxRetries = 3, retryDelay = 5000) { /** * Function to download assets from the asset mapping file. - * @param {number} maxRetries - The maximum number of retries for downloading an asset. * @param {Map} assetMapping - The content of the asset mapping file. - * @param downloadFolder - The folder to download assets to. - * @returns {Promise} A promise that resolves when all assets are downloaded. + * @param {string} downloadFolder - The folder to download assets to. + * @param {number} maxRetries - The maximum number of retries for downloading an asset. + * @param {number} retryDelay - The delay between retries in milliseconds. + * @return {Promise>>} A promise that resolves when all assets are downloaded. + * Each promise in the array will resolve with the JCR path of the downloaded asset. */ -export async function downloadAssets(maxRetries, assetMapping, downloadFolder) { +export async function downloadAssets(assetMapping, downloadFolder, maxRetries = 3,retryDelay = 5000) { const downloadPromises = Array.from(assetMapping.entries()) .map(async ([assetUrl, jcrPath]) => { - const blob = await downloadAssetWithRetry(assetUrl); + const blob = await downloadAssetWithRetry(assetUrl, maxRetries, retryDelay); await saveBlobToFile(blob, jcrPath, downloadFolder); + return jcrPath; }); - await Promise.allSettled(downloadPromises); + return Promise.allSettled(downloadPromises); } /** - * Function to clean up the asset folder. - * @param assetFolder - * @return {Promise} + * Helper function to delete the given folder. + * @param {string} folder - The folder to delete */ -export async function cleanup(assetFolder) { - await fs.promises.rm(assetFolder, { recursive: true, force: true }); +export function cleanup(folder) { + if (fs.existsSync(folder)) { + fs.rmdirSync(folder, { recursive: true }); + } } diff --git a/src/aem/upload-assets.js b/src/aem/upload-assets.js index 9950d23..5f9f702 100644 --- a/src/aem/upload-assets.js +++ b/src/aem/upload-assets.js @@ -62,6 +62,7 @@ function buildFileSystemUploadOptions(target, token) { * * @returns {FileSystemUpload} The file uploader */ +/* c8 ignore start */ function createFileUploader() { const fileUpload = new FileSystemUpload(); @@ -79,9 +80,18 @@ function createFileUploader() { return fileUpload; } +/* c8 ignore end */ -export async function uploadAssets(target, token, assetFolder) { - const fileUpload = createFileUploader(); +/** + * Upload assets to AEM. + * @param {string} target - The URL of the AEM Assets instance + * @param {string} token - The bearer token for authentication + * @param {string} assetFolder - The path to the asset folder to upload the assets from + * @param fileUploader - The file uploader to use for uploading assets (optional) + * @return {Promise} - The result of the upload operation as JSON. + */ +export async function uploadAssets(target, token, assetFolder, fileUploader = null) { + const fileUpload = fileUploader || createFileUploader(); const options = buildFileSystemUploadOptions(target, token); return await fileUpload.upload(options, [assetFolder]); } diff --git a/test/aem/aem-util.test.js b/test/aem/aem-util.test.js new file mode 100644 index 0000000..e212f0b --- /dev/null +++ b/test/aem/aem-util.test.js @@ -0,0 +1,42 @@ +/* + * Copyright 2025 Adobe. All rights reserved. + * This file is licensed to you 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 REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +import { expect } from 'chai'; +import { getDamRootFolder } from '../../src/aem/aem-util.js'; + +describe('aem-utils', function () { + /** + * Test getDamRootFolder function to return the correct root folder that's found + * in the asset mapping object. + */ + it('test getDamRootFolder', async () => { + let assetMapping = new Map([ + ['http://www.example.com/image.png', '/content/dam/xwalk/image.png'], + ]); + expect(getDamRootFolder(assetMapping)).to.equal('xwalk'); + + assetMapping.clear(); + + assetMapping.set('http://www.example.com/image.png', '/content/dam/image.png'); + expect(() => getDamRootFolder(assetMapping)).to.throw(Error, 'Unable to locate the DAM root folder'); + + assetMapping.clear(); + assetMapping.set('http://www.example.com/image.png', '/content/dam/image.png'); + assetMapping.set('http://www.example.com/image2.png', '/content/dam/first/image.png'); + expect(getDamRootFolder(assetMapping)).to.equal('first'); + + assetMapping.clear(); + assetMapping.set('http://www.example.com/image.png', '/image.png'); + assetMapping.set('http://www.example.com/image2.png', '/content/dam/first/image.png'); + assetMapping.set('http://www.example.com/image3.png', '/content/dam/second/image.png'); + expect(getDamRootFolder(assetMapping)).to.equal('first'); + }); +}); diff --git a/test/aem/download-assts.test.js b/test/aem/download-assts.test.js new file mode 100644 index 0000000..8d8bb15 --- /dev/null +++ b/test/aem/download-assts.test.js @@ -0,0 +1,105 @@ +/* + * Copyright 2025 Adobe. All rights reserved. + * This file is licensed to you 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 REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +import { expect } from 'chai'; +import { cleanup, downloadAssets } from '../../src/aem/download-assets.js'; +import nock from 'nock'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import fs from 'fs'; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +describe('download assets', function () { + + let downloadFolder; + + beforeEach(() => { + downloadFolder = path.join(__dirname, 'assets'); + }); + + afterEach(() => { + cleanup(downloadFolder); + }); + + it('expect download to be successful', async () => { + const scope = nock('http://www.aem.com') + .get('/asset1.jpg') + .replyWithFile(200, path.resolve(__dirname, 'fixtures/image1.jpeg')); + + const mapping = new Map([ + ['http://www.aem.com/asset1.jpg', '/content/dam/xwalk/image1.jpg'], + ]); + + await downloadAssets(mapping, downloadFolder); + expect(fs.existsSync(path.join(downloadFolder, 'xwalk/image1.jpg'))).to.be.true; + + await scope.done(); + }); + + it('expect download to be successful after retry', async () => { + const scope = nock('http://www.aem.com') + .get('/asset1.jpg') + .replyWithError('Server error') + .get('/asset1.jpg') + .replyWithFile(200, path.resolve(__dirname, 'fixtures/image1.jpeg')); + + const mapping = new Map([ + ['http://www.aem.com/asset1.jpg', '/content/dam/xwalk/image1.jpg'], + ]); + + await downloadAssets(mapping, downloadFolder, 3, 0); + expect(fs.existsSync(path.join(downloadFolder, 'xwalk/image1.jpg'))).to.be.true; + + await scope.done(); + }); + + // write a test that expect to exhaust retires and throw error + it('expect download to fail after max retries', async () => { + const scope = nock('http://www.aem.com') + .get('/asset1.jpg') + .replyWithError('Server error') + .get('/asset2.jpg') + .replyWithError('Server error') + .get('/asset3.jpg') + .replyWithFile(200, path.resolve(__dirname, 'fixtures/image3.jpeg')); + + const mapping = new Map([ + ['http://www.aem.com/asset1.jpg', '/content/dam/xwalk/image1.jpg'], + ['http://www.aem.com/asset2.jpg', '/content/dam/xwalk/image2.jpg'], + ['http://www.aem.com/asset3.jpg', '/content/dam/xwalk/image3.jpg'], + ]); + + const results = await downloadAssets(mapping, downloadFolder, 1, 0); + expect(results.filter((result) => result.status === 'rejected').length).to.equal(2); + expect(results.filter((result) => result.status === 'fulfilled').length).to.equal(1); + + await scope.done(); + }); + + it('expect download to fail with bad response', async () => { + const scope = nock('http://www.aem.com') + .get('/asset1.jpg') + .reply(404); + + const mapping = new Map([ + ['http://www.aem.com/asset1.jpg', '/content/dam/xwalk/image1.jpg'], + ]); + + try { + await downloadAssets(mapping, downloadFolder, 1, 0); + } catch (error) { + expect(error.message).to.equal('Failed to fetch http://www.aem.com/asset1.jpg. Status: 404.'); + } + + await scope.done(); + }); + +}); diff --git a/test/aem/downloadAssets.test.js b/test/aem/downloadAssets.test.js deleted file mode 100644 index 3d1fe13..0000000 --- a/test/aem/downloadAssets.test.js +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright 2025 Adobe. All rights reserved. - * This file is licensed to you 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 REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - -import fs from 'fs'; -import { expect, use } from 'chai'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; -import chaiAsPromised from 'chai-as-promised'; -import * as downloadAssetsModule from '../../src/aem/downloadAssets.js'; -import { downloadAssetsInMarkdown } from '../../src/aem/downloadAssets.js'; -import { Readable, Writable } from 'stream'; -import path from 'path'; -import { expectLogContains } from '../utils.js'; - -use(sinonChai); // chai.use -use(chaiAsPromised); - -describe('downloadAssets.js', function () { - this.timeout(30000); // Increase timeout to 30 seconds - let fetchStub; - let assetData; - let readFileSyncStub; - let mkdirSyncStub; - let createWriteStreamStub; - let consoleErrorStub; - - // Create a stub for fetch that returns a ReadableStream with asset data - function createFetchStub(data = 'asset data', status = 200, ok = true) { - return sinon.stub(globalThis, 'fetch').callsFake(async (url) => { - if (!url) throw new Error('URL is undefined'); - - const readableStream = new Readable({ - read() { - this.push(data); // Simulated asset data - this.push(null); - }, - }); - - // fetch in Node.js returns a Web ReadableStream, not a Node.js Readable stream. - // Wrap the Node.js Readable stream (readableStream) inside a Web ReadableStream (webReadableStream). - // This ensures getReader() is available. - const webReadableStream = new globalThis.ReadableStream({ - start(controller) { - readableStream.on('data', (chunk) => controller.enqueue(chunk)); - readableStream.on('end', () => controller.close()); - }, - }); - - return { ok, status, body: webReadableStream }; - }); - } - - let fetchHandler = () => { - return { - ok: true, - status: 200, - body: new Readable({ - read() { - this.push('asset data'); - this.push(null); - }, - }), - } - } - - beforeEach(() => { - consoleErrorStub = sinon.spy(console, 'error'); - readFileSyncStub = sinon.stub(fs, 'readFileSync'); - mkdirSyncStub = sinon.stub(fs, 'mkdirSync'); - assetData = ''; // Reset asset data - - // Mock writable stream for file writing - const mockStream = new Writable({ - write(chunk, encoding, callback) { - assetData += chunk.toString(); // Collect written data - callback(); // Signal that writing is done - }, - end(callback) { - callback(); // Ensure the stream properly ends - }, - }); - - createWriteStreamStub = sinon.stub(fs, 'createWriteStream').returns(mockStream); - fetchStub = createFetchStub(); - }); - - afterEach(() => { - sinon.restore(); - assetData = null; - }); - - describe('getAssetUrlMap', () => { - it('should return a map of asset URLs to JCR node paths', () => { - const mockData = JSON.stringify({ 'http://example.com/asset1.jpg': '/content/dam/asset1.jpg' }); - readFileSyncStub.returns(mockData); - - const result = downloadAssetsModule.getAssetUrlMap('path/to/asset-mapping.json'); - expect(result).to.deep.equal(new Map([['http://example.com/asset1.jpg', '/content/dam/asset1.jpg']])); - }); - - it('should return undefined for invalid JSON', () => { - readFileSyncStub.throws(new Error('Invalid JSON')); - - const result = downloadAssetsModule.getAssetUrlMap('path/to/asset-mapping.json'); - expect(result).to.be.undefined; - }); - }); - - describe('ensureDirSync', () => { - it('should create directory if it does not exist', () => { - mkdirSyncStub.returns(); - - downloadAssetsModule.ensureDirSync('path/to/directory'); - expect(mkdirSyncStub).to.have.been.calledWith('path/to/directory', { recursive: true }); - }); - - it('should log error if directory creation fails', () => { - mkdirSyncStub.throws(new Error('Error creating directory')); - - downloadAssetsModule.ensureDirSync('path/to/directory'); - expect(consoleErrorStub).to.have.been.calledWith(sinon.match.string); - }); - }); - - describe('downloadAsset', () => { - it('should download asset and save to file system', async () => { - await downloadAssetsModule.downloadAsset( - { maxRetries: 3 }, - 'http://example.com/asset.jpg', - '/content/dam/asset.jpg', - ); - - expect(fetchStub).to.have.been.calledWith('http://example.com/asset.jpg'); - - const finalPath = path.join(process.cwd(), 'asset.jpg'); - expect(createWriteStreamStub).to.have.been.calledWith(finalPath); - - // Ensure the asset data was correctly written to the mock stream - expect(assetData).to.equal('asset data'); - }); - - it('should retry download on failure', async () => { - const badRequest = () => { - return { - ok: false, - status: 404, - } - }; - - fetchStub.callsFake(badRequest); - - await expect( - downloadAssetsModule.downloadAsset({ maxRetries: 5 }, - 'http://example.com/asset.jpg', - '/content/dam/asset.jpg', - 0)) - .to.be.rejectedWith('Failed to fetch http://example.com/asset.jpg. Status: 404.'); - - // there should be 5 retry attempts - expect(fetchStub).to.have.callCount(5); - - // because the asset fails to download, the error message should be logged - expectLogContains(consoleErrorStub, 'Failed to download') - }); - }); - - describe('downloadAssetsInMarkdown', () => { - it('should download assets from markdown file', async () => { - const mapFileContent = '{"http://example.com/asset1.jpg":"/content/dam/asset1.jpg"}'; - readFileSyncStub.returns(mapFileContent); - - fetchStub.callsFake(fetchHandler); - - createWriteStreamStub.returns({ on: sinon.stub().callsArg(1) }); - - // test downloadAssetsInMarkdown method - await downloadAssetsInMarkdown({ maxRetries: 3, downloadLocation: 'path/to/download' }, 'path/to/markdown.md'); - expect(fetchStub).to.have.been.calledWith('http://example.com/asset1.jpg'); - expect(createWriteStreamStub).to.have.been.called; - expect(createWriteStreamStub).to.have.callCount(3); - }); - }); -}); diff --git a/test/aem/fixtures/image1.jpeg b/test/aem/fixtures/image1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0e9a434512470980be50ec3948fe58e081d9d1e6 GIT binary patch literal 164805 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⁡8gP0WdE~e(6I@B*vP&*UZJtF- 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

{%(j&ca$aq;J3v-daL1vMyP3 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 { + sinon.restore(); + }); + + it('validate the upload call has the correct arguments', async function () { + const fsUpload = new FileSystemUpload(); + const uploadStub = sinon.stub(fsUpload, 'upload').resolves('success'); + + await uploadAssets('http://www.aem.com', 'abcd123', '/assets', fsUpload); + expect(uploadStub.calledOnce).to.be.true; + + // expect the upload to have been called with the correct options + const optionArgs = uploadStub.getCall(0).args[0]; + expect(optionArgs.options.url).to.equal('http://www.aem.com/content/dam'); + + const pathArgs = uploadStub.getCall(0).args[1]; + expect(pathArgs[0]).to.equal('/assets'); + }); + + it('validate the upload call has the correct arguments for https', async function () { + const fsUpload = new FileSystemUpload(); + const uploadStub = sinon.stub(fsUpload, 'upload').resolves('success'); + + await uploadAssets('https://www.aem.com', 'abcd123', '/assets', fsUpload); + expect(uploadStub.calledOnce).to.be.true; + + // expect the upload to have been called with the correct options + const optionArgs = uploadStub.getCall(0).args[0]; + expect(optionArgs.options.url).to.equal('https://www.aem.com/content/dam'); + + const pathArgs = uploadStub.getCall(0).args[1]; + expect(pathArgs[0]).to.equal('/assets'); + }); + + it('validate the upload call has the correct arguments for non http(s) urls', async function () { + const fsUpload = new FileSystemUpload(); + const uploadStub = sinon.stub(fsUpload, 'upload').resolves('success'); + + await uploadAssets('www.aem.com', 'abcd123', '/assets', fsUpload); + expect(uploadStub.calledOnce).to.be.true; + + // expect the upload to have been called with the correct options + const optionArgs = uploadStub.getCall(0).args[0]; + expect(optionArgs.options.url).to.equal('https://www.aem.com/content/dam'); + + const pathArgs = uploadStub.getCall(0).args[1]; + expect(pathArgs[0]).to.equal('/assets'); + }); +}); diff --git a/test/aem/uploadAssets.test.js b/test/aem/uploadAssets.test.js deleted file mode 100644 index 84f4e6a..0000000 --- a/test/aem/uploadAssets.test.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2025 Adobe. All rights reserved. - * This file is licensed to you 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 REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - -import fs from 'fs'; -import path from 'path'; -import { expect } from 'chai'; -import sinon from 'sinon'; -import { FileSystemUpload, FileSystemUploadOptions } from '@adobe/aem-upload'; -import uploadAssetsToAEM from '../../src/aem/uploadAssets.js'; - -describe('uploadAssets.js', function() { - this.timeout(30000); // Increase timeout to 30 seconds - - let readFileSyncStub, rmStub, fileUploadStub, createWriteStreamStub, consoleErrorStub; - - beforeEach(() => { - readFileSyncStub = sinon.stub(fs, 'readFileSync'); - rmStub = sinon.stub(fs.promises, 'rm'); - global.fetchStub = sinon.stub(global, 'fetch'); - fileUploadStub = sinon.stub(FileSystemUpload.prototype, 'upload'); - consoleErrorStub = sinon.stub(console, 'error'); - createWriteStreamStub = sinon.stub(fs, 'createWriteStream'); - }); - - afterEach(() => { - sinon.restore(); - }); - - describe('uploadAssetsToAEM', () => { - it('should upload assets to AEM', async () => { - const mapFileContent = '{"http://example.com/test/asset1.jpg":"/content/dam/test/asset1.jpg"}'; - readFileSyncStub.returns(mapFileContent); - fileUploadStub.resolves({}); - const mockResponse = { ok: true, body: { pipe: sinon.stub() } }; - global.fetchStub.resolves(mockResponse); - createWriteStreamStub.returns({ on: sinon.stub().callsArg(1) }); - - const opts = { - targetAEMUrl: 'http://aem-instance', - username: 'admin', - password: 'admin', - assetMappingFilePath: 'path/to/asset-mapping.json', - }; - - const result = await uploadAssetsToAEM(opts); - - expect(fileUploadStub).to.have.been.calledWith(sinon.match.instanceOf(FileSystemUploadOptions), [path.join(process.cwd(), 'test')]); - expect(rmStub).to.have.been.calledWith(path.join(process.cwd(), 'test'), { recursive: true, force: true }); - expect(result).to.deep.equal({}); - }); - - it('should throw an error if no valid AEM asset path is found', async () => { - readFileSyncStub.returns('{}'); - - const opts = { - targetAEMUrl: 'http://aem-instance', - username: 'admin', - password: 'admin', - assetMappingFilePath: 'path/to/asset-mapping.json', - }; - - await expect(uploadAssetsToAEM(opts)).to.be.rejectedWith('No valid AEM asset path found in the JCR asset mapping file.'); - }); - - it('should log errors during file upload', async () => { - const mapFileContent = '{"http://example.com/asset1.jpg":"/content/dam/asset1.jpg"}'; - readFileSyncStub.returns(mapFileContent); - fileUploadStub.rejects(new Error('Upload error')); - - const opts = { - targetAEMUrl: 'http://aem-instance', - username: 'admin', - password: 'admin', - assetMappingFilePath: 'path/to/asset-mapping.json', - }; - - await expect(uploadAssetsToAEM(opts)).to.be.rejectedWith('Upload error'); - expect(consoleErrorStub).to.have.been.calledWith(sinon.match.string); - }); - }); -});