From 665d790360b1872de72202cde0e89b7850c5feec Mon Sep 17 00:00:00 2001 From: Prajjwal Date: Wed, 23 Oct 2024 16:08:52 +0530 Subject: [PATCH] adds azure support --- packages/warp-cache/package-lock.json | 648 ++++++++++-------- packages/warp-cache/package.json | 4 +- packages/warp-cache/src/cache.ts | 57 ++ .../src/internal/cacheHttpClient.ts | 33 +- .../warpcache-ts-sdk/.openapi-generator/FILES | 7 +- ...ommons-azure-blob-commit-cache-response.ts | 36 + ...ommons-azure-blob-delete-cache-response.ts | 36 + .../commons-azure-blob-get-cache-response.ts | 48 ++ ...mmons-azure-blob-reserve-cache-response.ts | 30 + .../models/commons-cache-entry-metadata.ts | 48 ++ .../models/commons-cache-entry-with-stat.ts | 9 + .../models/commons-cache-entry.ts | 9 + .../models/commons-commit-cache-response.ts | 15 + .../models/commons-delete-cache-response.ts | 9 + ...se.ts => commons-gcsget-cache-response.ts} | 18 +- .../models/commons-get-cache-response.ts | 15 +- .../models/commons-reserve-cache-response.ts | 9 + .../internal/warpcache-ts-sdk/models/index.ts | 7 +- .../src/internal/warpcache-ts-sdk/schema.ts | 7 +- .../$commons_AzureBlobCommitCacheResponse.ts | 15 + .../$commons_AzureBlobDeleteCacheResponse.ts | 15 + .../$commons_AzureBlobGetCacheResponse.ts | 19 + .../$commons_AzureBlobReserveCacheResponse.ts | 10 + .../schemas/$commons_CacheEntry.ts | 3 + .../schemas/$commons_CacheEntryMetadata.ts | 19 + .../schemas/$commons_CacheEntryWithStat.ts | 3 + .../schemas/$commons_CommitCacheResponse.ts | 7 + .../schemas/$commons_DeleteCacheResponse.ts | 3 + ...nse.ts => $commons_GCSGetCacheResponse.ts} | 2 +- .../schemas/$commons_GetCacheResponse.ts | 5 +- .../schemas/$commons_ReserveCacheResponse.ts | 3 + packages/warp-cache/src/test.ts | 26 +- 32 files changed, 872 insertions(+), 303 deletions(-) create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-commit-cache-response.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-delete-cache-response.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-get-cache-response.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-reserve-cache-response.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-metadata.ts rename packages/warp-cache/src/internal/warpcache-ts-sdk/models/{commons-gcsget-cache-reponse.ts => commons-gcsget-cache-response.ts} (74%) create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobCommitCacheResponse.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobDeleteCacheResponse.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobGetCacheResponse.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobReserveCacheResponse.ts create mode 100644 packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryMetadata.ts rename packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/{$commons_GCSGetCacheReponse.ts => $commons_GCSGetCacheResponse.ts} (92%) diff --git a/packages/warp-cache/package-lock.json b/packages/warp-cache/package-lock.json index 7bf4fb4f..31cec580 100644 --- a/packages/warp-cache/package-lock.json +++ b/packages/warp-cache/package-lock.json @@ -1,12 +1,12 @@ { "name": "github-actions.warp-cache", - "version": "1.2.0", + "version": "1.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "github-actions.warp-cache", - "version": "1.2.0", + "version": "1.3.0", "license": "MIT", "dependencies": { "@actions/core": "^1.10.0", @@ -17,7 +17,7 @@ "@actions/io": "^1.0.1", "@azure/abort-controller": "^1.1.0", "@azure/ms-rest-js": "^2.6.0", - "@azure/storage-blob": "^12.13.0", + "@azure/storage-blob": "^12.25.0", "@google-cloud/storage": "^7.9.0", "@octokit/webhooks-definitions": "^3.67.3", "axios": "^1.6.2", @@ -104,60 +104,85 @@ } }, "node_modules/@azure/core-auth": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz", - "integrity": "sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz", + "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.11.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, - "node_modules/@azure/core-http": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.2.tgz", - "integrity": "sha512-o1wR9JrmoM0xEAa0Ue7Sp8j+uJvmqYaGoHOCT5qaVYmvgmnZDC0OvQimPA/JR3u77Sz6D1y3Xmk1y69cDU9q9A==", + "node_modules/@azure/core-auth/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/core-util": "^1.1.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz", + "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.6.1", "@azure/logger": "^1.0.0", - "@types/node-fetch": "^2.5.0", - "@types/tunnel": "^0.0.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.7", - "process": "^0.11.10", - "tslib": "^2.2.0", - "tunnel": "^0.0.6", - "uuid": "^8.3.0", - "xml2js": "^0.5.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" } }, - "node_modules/@azure/core-http/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/@azure/core-client/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "tslib": "^2.6.2" }, "engines": { - "node": ">= 6" + "node": ">=18.0.0" } }, - "node_modules/@azure/core-http/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/@azure/core-http-compat": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz", + "integrity": "sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-client": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-http-compat/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@azure/core-lro": { @@ -185,28 +210,98 @@ "node": ">=14.0.0" } }, - "node_modules/@azure/core-tracing": { - "version": "1.0.0-preview.13", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", - "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "node_modules/@azure/core-rest-pipeline": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.17.0.tgz", + "integrity": "sha512-62Vv8nC+uPId3j86XJ0WI+sBf0jlqTqPUFCBNrGtlaUeQUIXWV/D8GE5A1d+Qx8H7OQojn2WguC8kChD6v0shA==", + "license": "MIT", "dependencies": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.8.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.9.0", + "@azure/logger": "^1.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.2.0.tgz", + "integrity": "sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@azure/core-util": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.3.2.tgz", - "integrity": "sha512-2bECOUh88RvL1pMZTcc6OzfobBeWDBf5oBbhjIhT1MV9otMVWCzpOJkkiKtrnO88y5GGBelgY8At73KGAdbkeQ==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.11.0.tgz", + "integrity": "sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-xml": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.4.tgz", + "integrity": "sha512-J4FYAqakGXcbfeZjwjMzjNcpcH4E+JtEBv+xcV1yL0Ydn/6wbQfeFKTCHh9wttAi0lmajHw7yBbHPRG+YHckZQ==", + "license": "MIT", + "dependencies": { + "fast-xml-parser": "^4.4.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@azure/logger": { @@ -249,21 +344,39 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.15.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.15.0.tgz", - "integrity": "sha512-e7JBKLOFi0QVJqqLzrjx1eL3je3/Ug2IQj24cTM9b85CsnnFjLGeGjJVIjbGGZaytewiCEG7r3lRwQX7fKj0/w==", + "version": "12.25.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.25.0.tgz", + "integrity": "sha512-oodouhA3nCCIh843tMMbxty3WqfNT+Vgzj3Xo5jqR9UPnzq3d7mzLjlHAYz7lW+b4km3SIgz+NAgztvhm7Z6kQ==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-http": "^3.0.0", + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.4.0", + "@azure/core-client": "^1.6.2", + "@azure/core-http-compat": "^2.0.0", "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", - "@azure/core-tracing": "1.0.0-preview.13", + "@azure/core-rest-pipeline": "^1.10.1", + "@azure/core-tracing": "^1.1.2", + "@azure/core-util": "^1.6.1", + "@azure/core-xml": "^1.4.3", "@azure/logger": "^1.0.0", "events": "^3.0.0", "tslib": "^2.2.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" + } + }, + "node_modules/@azure/storage-blob/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@fastify/busboy": { @@ -304,23 +417,22 @@ } }, "node_modules/@google-cloud/storage": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.9.0.tgz", - "integrity": "sha512-PlFl7g3r91NmXtZHXsSEfTZES5ysD3SSBWmX4iBdQ2TFH7tN/Vn/IhnVELCHtgh1vc+uYPZ7XvRYaqtDCdghIA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.13.0.tgz", + "integrity": "sha512-Y0rYdwM5ZPW3jw/T26sMxxfPrVQTKm9vGrZG8PRyGuUmUJ8a2xNuQ9W/NNA1prxqv2i54DSydV8SJqxF2oCVgA==", + "license": "Apache-2.0", "dependencies": { "@google-cloud/paginator": "^5.0.0", "@google-cloud/projectify": "^4.0.0", "@google-cloud/promisify": "^4.0.0", "abort-controller": "^3.0.0", "async-retry": "^1.3.3", - "compressible": "^2.0.12", "duplexify": "^4.1.3", - "ent": "^2.2.0", - "fast-xml-parser": "^4.3.0", + "fast-xml-parser": "^4.4.1", "gaxios": "^6.0.2", "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", "mime": "^3.0.0", - "mime-types": "^2.0.8", "p-limit": "^3.0.1", "retry-request": "^7.0.0", "teeny-request": "^9.0.0", @@ -503,14 +615,6 @@ "deprecated": "Use @octokit/webhooks-types, @octokit/webhooks-schemas, or @octokit/webhooks-examples instead. See https://github.com/octokit/webhooks/issues/447", "license": "MIT" }, - "node_modules/@opentelemetry/api": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", - "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -529,28 +633,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.6.tgz", "integrity": "sha512-q0RkvNgMweWWIvSMDiXhflGUKMdIxBo2M2tYM/0kEGDueQByFzK4KZAgu5YHGFNxziTlppNpTIBcqHQAxlfHdA==" }, - "node_modules/@types/node-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", - "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@types/request": { "version": "2.48.12", "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", @@ -573,14 +655,6 @@ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" }, - "node_modules/@types/tunnel": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", - "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/uuid": { "version": "3.4.10", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", @@ -631,11 +705,12 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -716,17 +791,6 @@ "node": ">= 0.8" } }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -789,11 +853,6 @@ "once": "^1.4.0" } }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==" - }, "node_modules/event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -816,9 +875,9 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/fast-xml-parser": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz", - "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", "funding": [ { "type": "github", @@ -829,6 +888,7 @@ "url": "https://paypal.me/naturalintelligence" } ], + "license": "MIT", "dependencies": { "strnum": "^1.0.5" }, @@ -837,15 +897,16 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -935,6 +996,22 @@ "node": ">=14.0.0" } }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -1101,14 +1178,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -1204,7 +1273,8 @@ "node_modules/strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" }, "node_modules/stubs": { "version": "3.0.0", @@ -1267,9 +1337,10 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "license": "0BSD" }, "node_modules/tunnel": { "version": "0.0.6", @@ -1443,49 +1514,66 @@ } }, "@azure/core-auth": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz", - "integrity": "sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz", + "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==", "requires": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.2.0" - } - }, - "@azure/core-http": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.2.tgz", - "integrity": "sha512-o1wR9JrmoM0xEAa0Ue7Sp8j+uJvmqYaGoHOCT5qaVYmvgmnZDC0OvQimPA/JR3u77Sz6D1y3Xmk1y69cDU9q9A==", - "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/core-util": "^1.1.1", - "@azure/logger": "^1.0.0", - "@types/node-fetch": "^2.5.0", - "@types/tunnel": "^0.0.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.7", - "process": "^0.11.10", - "tslib": "^2.2.0", - "tunnel": "^0.0.6", - "uuid": "^8.3.0", - "xml2js": "^0.5.0" + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.11.0", + "tslib": "^2.6.2" }, "dependencies": { - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "tslib": "^2.6.2" + } + } + } + }, + "@azure/core-client": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz", + "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==", + "requires": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.6.1", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "dependencies": { + "@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "requires": { + "tslib": "^2.6.2" + } + } + } + }, + "@azure/core-http-compat": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz", + "integrity": "sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ==", + "requires": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-client": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.0" + }, + "dependencies": { + "@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "requires": { + "tslib": "^2.6.2" } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, @@ -1508,22 +1596,74 @@ "tslib": "^2.2.0" } }, - "@azure/core-tracing": { - "version": "1.0.0-preview.13", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", - "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "@azure/core-rest-pipeline": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.17.0.tgz", + "integrity": "sha512-62Vv8nC+uPId3j86XJ0WI+sBf0jlqTqPUFCBNrGtlaUeQUIXWV/D8GE5A1d+Qx8H7OQojn2WguC8kChD6v0shA==", "requires": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.8.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.9.0", + "@azure/logger": "^1.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "dependencies": { + "@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "requires": { + "tslib": "^2.6.2" + } + }, + "http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + } + } + }, + "@azure/core-tracing": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.2.0.tgz", + "integrity": "sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==", + "requires": { + "tslib": "^2.6.2" } }, "@azure/core-util": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.3.2.tgz", - "integrity": "sha512-2bECOUh88RvL1pMZTcc6OzfobBeWDBf5oBbhjIhT1MV9otMVWCzpOJkkiKtrnO88y5GGBelgY8At73KGAdbkeQ==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.11.0.tgz", + "integrity": "sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==", "requires": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.6.2" + }, + "dependencies": { + "@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "requires": { + "tslib": "^2.6.2" + } + } + } + }, + "@azure/core-xml": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.4.tgz", + "integrity": "sha512-J4FYAqakGXcbfeZjwjMzjNcpcH4E+JtEBv+xcV1yL0Ydn/6wbQfeFKTCHh9wttAi0lmajHw7yBbHPRG+YHckZQ==", + "requires": { + "fast-xml-parser": "^4.4.1", + "tslib": "^2.6.2" } }, "@azure/logger": { @@ -1562,18 +1702,33 @@ } }, "@azure/storage-blob": { - "version": "12.15.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.15.0.tgz", - "integrity": "sha512-e7JBKLOFi0QVJqqLzrjx1eL3je3/Ug2IQj24cTM9b85CsnnFjLGeGjJVIjbGGZaytewiCEG7r3lRwQX7fKj0/w==", + "version": "12.25.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.25.0.tgz", + "integrity": "sha512-oodouhA3nCCIh843tMMbxty3WqfNT+Vgzj3Xo5jqR9UPnzq3d7mzLjlHAYz7lW+b4km3SIgz+NAgztvhm7Z6kQ==", "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-http": "^3.0.0", + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.4.0", + "@azure/core-client": "^1.6.2", + "@azure/core-http-compat": "^2.0.0", "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", - "@azure/core-tracing": "1.0.0-preview.13", + "@azure/core-rest-pipeline": "^1.10.1", + "@azure/core-tracing": "^1.1.2", + "@azure/core-util": "^1.6.1", + "@azure/core-xml": "^1.4.3", "@azure/logger": "^1.0.0", "events": "^3.0.0", "tslib": "^2.2.0" + }, + "dependencies": { + "@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "requires": { + "tslib": "^2.6.2" + } + } } }, "@fastify/busboy": { @@ -1601,23 +1756,21 @@ "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==" }, "@google-cloud/storage": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.9.0.tgz", - "integrity": "sha512-PlFl7g3r91NmXtZHXsSEfTZES5ysD3SSBWmX4iBdQ2TFH7tN/Vn/IhnVELCHtgh1vc+uYPZ7XvRYaqtDCdghIA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.13.0.tgz", + "integrity": "sha512-Y0rYdwM5ZPW3jw/T26sMxxfPrVQTKm9vGrZG8PRyGuUmUJ8a2xNuQ9W/NNA1prxqv2i54DSydV8SJqxF2oCVgA==", "requires": { "@google-cloud/paginator": "^5.0.0", "@google-cloud/projectify": "^4.0.0", "@google-cloud/promisify": "^4.0.0", "abort-controller": "^3.0.0", "async-retry": "^1.3.3", - "compressible": "^2.0.12", "duplexify": "^4.1.3", - "ent": "^2.2.0", - "fast-xml-parser": "^4.3.0", + "fast-xml-parser": "^4.4.1", "gaxios": "^6.0.2", "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", "mime": "^3.0.0", - "mime-types": "^2.0.8", "p-limit": "^3.0.1", "retry-request": "^7.0.0", "teeny-request": "^9.0.0", @@ -1754,11 +1907,6 @@ "resolved": "https://registry.npmjs.org/@octokit/webhooks-definitions/-/webhooks-definitions-3.67.3.tgz", "integrity": "sha512-do4Z1r2OVhuI0ihJhQ8Hg+yPWnBYEBNuFNCrvtPKoYT1w81jD7pBXgGe86lYuuNirkDHb0Nxt+zt4O5GiFJfgA==" }, - "@opentelemetry/api": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", - "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==" - }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -1774,27 +1922,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.6.tgz", "integrity": "sha512-q0RkvNgMweWWIvSMDiXhflGUKMdIxBo2M2tYM/0kEGDueQByFzK4KZAgu5YHGFNxziTlppNpTIBcqHQAxlfHdA==" }, - "@types/node-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", - "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, "@types/request": { "version": "2.48.12", "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", @@ -1817,14 +1944,6 @@ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" }, - "@types/tunnel": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", - "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", - "requires": { - "@types/node": "*" - } - }, "@types/uuid": { "version": "3.4.10", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", @@ -1866,11 +1985,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" }, @@ -1929,14 +2048,6 @@ "delayed-stream": "~1.0.0" } }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1987,11 +2098,6 @@ "once": "^1.4.0" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==" - }, "event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -2008,17 +2114,17 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "fast-xml-parser": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz", - "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", "requires": { "strnum": "^1.0.5" } }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" }, "form-data": { "version": "2.5.1", @@ -2080,6 +2186,11 @@ "jws": "^4.0.0" } }, + "html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==" + }, "http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -2201,11 +2312,6 @@ "yocto-queue": "^0.1.0" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" - }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -2324,9 +2430,9 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" }, "tunnel": { "version": "0.0.6", diff --git a/packages/warp-cache/package.json b/packages/warp-cache/package.json index ff86e893..bb2087fb 100644 --- a/packages/warp-cache/package.json +++ b/packages/warp-cache/package.json @@ -1,6 +1,6 @@ { "name": "github-actions.warp-cache", - "version": "1.2.5", + "version": "1.3.0", "preview": true, "description": "Github action to use WarpBuild's in-house cache offering", "keywords": [ @@ -46,7 +46,7 @@ "@actions/io": "^1.0.1", "@azure/abort-controller": "^1.1.0", "@azure/ms-rest-js": "^2.6.0", - "@azure/storage-blob": "^12.13.0", + "@azure/storage-blob": "^12.25.0", "@google-cloud/storage": "^7.9.0", "@octokit/webhooks-definitions": "^3.67.3", "axios": "^1.6.2", diff --git a/packages/warp-cache/src/cache.ts b/packages/warp-cache/src/cache.ts index 1a009a94..c1f43fb5 100644 --- a/packages/warp-cache/src/cache.ts +++ b/packages/warp-cache/src/cache.ts @@ -256,6 +256,44 @@ export async function restoreCache( core.info('Cache restored successfully') break } + + case 'azure_blob': { + if (!cacheEntry.azure_blob?.pre_signed_url) { + return undefined + } + + if (options?.lookupOnly) { + core.info('Lookup only - skipping download') + return cacheKey + } + + try { + await cacheHttpClient.downloadCache( + cacheEntry.provider, + cacheEntry.azure_blob?.pre_signed_url, + archivePath + ) + } catch (error) { + core.info('Cache Miss. Failed to download cache.') + return undefined + } + + if (core.isDebug()) { + await listTar(archivePath, compressionMethod) + } + + const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath) + core.info( + `Cache Size: ~${Math.round( + archiveFileSize / (1024 * 1024) + )} MB (${archiveFileSize} B)` + ) + + await extractTar(archivePath, compressionMethod) + + core.info('Cache restored successfully') + break + } } return cacheKey @@ -406,6 +444,25 @@ export async function saveCache( reserveCacheResponse?.result?.gcs?.cache_key ?? '' ) break + + case 'azure_blob': + core.debug(`Saving Cache to Azure Blob`) + cacheKey = await cacheHttpClient.saveCache( + 'azure_blob', + key, + cacheVersion, + archivePath, + // S3 Params are undefined for GCS + undefined, + undefined, + undefined, + undefined, + // GCS Params are undefined for Azure Blob + undefined, + undefined, + undefined, + reserveCacheResponse?.result?.azure_blob?.pre_signed_url ?? '' + ) } } catch (error) { const typedError = error as Error diff --git a/packages/warp-cache/src/internal/cacheHttpClient.ts b/packages/warp-cache/src/internal/cacheHttpClient.ts index ea99d69a..736183ae 100644 --- a/packages/warp-cache/src/internal/cacheHttpClient.ts +++ b/packages/warp-cache/src/internal/cacheHttpClient.ts @@ -41,6 +41,7 @@ import {multiPartUploadToGCS, uploadFileToS3} from './uploadUtils' import {CommonsGetCacheRequest} from './warpcache-ts-sdk/models/commons-get-cache-request' import {CommonsDeleteCacheRequest} from './warpcache-ts-sdk/models/commons-delete-cache-request' import {OAuth2Client} from 'google-auth-library' +import {BlockBlobClient} from '@azure/storage-blob' const versionSalt = '1.0' @@ -293,6 +294,11 @@ export async function downloadCache( await downloadCacheMultipartGCP(storage, archiveLocation, archivePath) break } + case 'azure_blob': { + const blockBlobClient = new BlockBlobClient(archiveLocation) + await blockBlobClient.downloadToFile(archivePath) + break + } } } @@ -421,7 +427,8 @@ export async function saveCache( S3PreSignedURLs?: string[], GCSAuthToken?: string, GCSBucketName?: string, - GCSObjectName?: string + GCSObjectName?: string, + AzureSASURL?: string ): Promise { const cacheSize = utils.getArchiveFileSizeInBytes(archivePath) core.info( @@ -511,6 +518,30 @@ export async function saveCache( '' break } + + case 'azure_blob': { + if (!AzureSASURL) { + core.debug(`Azure SAS URL is not set. SAS URL: ${AzureSASURL}`) + throw new Error( + 'Unable to upload cache to Azure Blob. SAS URL is not provided.' + ) + } + + core.debug('Uploading cache') + const blockBlobClient = new BlockBlobClient(AzureSASURL) + await blockBlobClient.uploadFile(archivePath, { + maxSingleShotSize: 10 * 1024 * 1024 // 10 MB + }) + + core.debug('Committing cache') + commitCacheResponse = await commitCache(cacheKey, cacheVersion) + + cacheKeyResponse = + commitCacheResponse.result?.cache_entry?.cache_user_given_key ?? + commitCacheResponse.result?.azure_blob?.cache_key ?? + '' + break + } } if (!isSuccessStatusCode(commitCacheResponse.statusCode)) { diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/.openapi-generator/FILES b/packages/warp-cache/src/internal/warpcache-ts-sdk/.openapi-generator/FILES index 63d1474c..085ad494 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/.openapi-generator/FILES +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/.openapi-generator/FILES @@ -10,6 +10,11 @@ configuration.ts git_push.sh index.ts models/commons-append-operation-input.ts +models/commons-azure-blob-commit-cache-response.ts +models/commons-azure-blob-delete-cache-response.ts +models/commons-azure-blob-get-cache-response.ts +models/commons-azure-blob-reserve-cache-response.ts +models/commons-cache-entry-metadata.ts models/commons-cache-entry-with-stat.ts models/commons-cache-entry.ts models/commons-commit-cache-request.ts @@ -20,7 +25,7 @@ models/commons-delete-cache-request.ts models/commons-delete-cache-response.ts models/commons-gcscommit-cache-response.ts models/commons-gcsdelete-cache-response.ts -models/commons-gcsget-cache-reponse.ts +models/commons-gcsget-cache-response.ts models/commons-gcsreserve-cache-response.ts models/commons-get-cache-request.ts models/commons-get-cache-response.ts diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-commit-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-commit-cache-response.ts new file mode 100644 index 00000000..319dd20f --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-commit-cache-response.ts @@ -0,0 +1,36 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * WarpCache + * Caching server for WarpBuild + * + * The version of the OpenAPI document: 0.1.0 + * Contact: suppport@warpbuild.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface CommonsAzureBlobCommitCacheResponse + */ +export interface CommonsAzureBlobCommitCacheResponse { + /** + * + * @type {string} + * @memberof CommonsAzureBlobCommitCacheResponse + */ + 'cache_key': string; + /** + * + * @type {string} + * @memberof CommonsAzureBlobCommitCacheResponse + */ + 'cache_version': string; +} + diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-delete-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-delete-cache-response.ts new file mode 100644 index 00000000..a5ed2ed3 --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-delete-cache-response.ts @@ -0,0 +1,36 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * WarpCache + * Caching server for WarpBuild + * + * The version of the OpenAPI document: 0.1.0 + * Contact: suppport@warpbuild.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface CommonsAzureBlobDeleteCacheResponse + */ +export interface CommonsAzureBlobDeleteCacheResponse { + /** + * + * @type {string} + * @memberof CommonsAzureBlobDeleteCacheResponse + */ + 'cache_key': string; + /** + * + * @type {string} + * @memberof CommonsAzureBlobDeleteCacheResponse + */ + 'cache_version': string; +} + diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-get-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-get-cache-response.ts new file mode 100644 index 00000000..9aee8aa2 --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-get-cache-response.ts @@ -0,0 +1,48 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * WarpCache + * Caching server for WarpBuild + * + * The version of the OpenAPI document: 0.1.0 + * Contact: suppport@warpbuild.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface CommonsAzureBlobGetCacheResponse + */ +export interface CommonsAzureBlobGetCacheResponse { + /** + * + * @type {string} + * @memberof CommonsAzureBlobGetCacheResponse + */ + 'bucket_name'?: string; + /** + * + * @type {string} + * @memberof CommonsAzureBlobGetCacheResponse + */ + 'cache_key'?: string; + /** + * + * @type {string} + * @memberof CommonsAzureBlobGetCacheResponse + */ + 'cache_version'?: string; + /** + * + * @type {string} + * @memberof CommonsAzureBlobGetCacheResponse + */ + 'pre_signed_url'?: string; +} + diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-reserve-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-reserve-cache-response.ts new file mode 100644 index 00000000..a0225a78 --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-azure-blob-reserve-cache-response.ts @@ -0,0 +1,30 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * WarpCache + * Caching server for WarpBuild + * + * The version of the OpenAPI document: 0.1.0 + * Contact: suppport@warpbuild.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface CommonsAzureBlobReserveCacheResponse + */ +export interface CommonsAzureBlobReserveCacheResponse { + /** + * + * @type {string} + * @memberof CommonsAzureBlobReserveCacheResponse + */ + 'pre_signed_url'?: string; +} + diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-metadata.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-metadata.ts new file mode 100644 index 00000000..0098edd4 --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-metadata.ts @@ -0,0 +1,48 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * WarpCache + * Caching server for WarpBuild + * + * The version of the OpenAPI document: 0.1.0 + * Contact: suppport@warpbuild.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * + * @export + * @interface CommonsCacheEntryMetadata + */ +export interface CommonsCacheEntryMetadata { + /** + * + * @type {string} + * @memberof CommonsCacheEntryMetadata + */ + 'cloud_connection_id'?: string; + /** + * + * @type {string} + * @memberof CommonsCacheEntryMetadata + */ + 'runner_id'?: string; + /** + * + * @type {string} + * @memberof CommonsCacheEntryMetadata + */ + 'stack_id'?: string; + /** + * + * @type {string} + * @memberof CommonsCacheEntryMetadata + */ + 'stack_name'?: string; +} + diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-with-stat.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-with-stat.ts index 020ae3db..c1902466 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-with-stat.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry-with-stat.ts @@ -13,6 +13,9 @@ */ +// May contain unused imports in some cases +// @ts-ignore +import { CommonsCacheEntryMetadata } from './commons-cache-entry-metadata'; /** * @@ -56,6 +59,12 @@ export interface CommonsCacheEntryWithStat { * @memberof CommonsCacheEntryWithStat */ 'last_used_at'?: string; + /** + * + * @type {CommonsCacheEntryMetadata} + * @memberof CommonsCacheEntryWithStat + */ + 'metadata'?: CommonsCacheEntryMetadata; /** * * @type {string} diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry.ts index 2cc4ca2a..2c1f420a 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-cache-entry.ts @@ -13,6 +13,9 @@ */ +// May contain unused imports in some cases +// @ts-ignore +import { CommonsCacheEntryMetadata } from './commons-cache-entry-metadata'; /** * @@ -50,6 +53,12 @@ export interface CommonsCacheEntry { * @memberof CommonsCacheEntry */ 'id'?: string; + /** + * + * @type {CommonsCacheEntryMetadata} + * @memberof CommonsCacheEntry + */ + 'metadata'?: CommonsCacheEntryMetadata; /** * * @type {string} diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-commit-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-commit-cache-response.ts index 17b913b4..f3482219 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-commit-cache-response.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-commit-cache-response.ts @@ -13,6 +13,9 @@ */ +// May contain unused imports in some cases +// @ts-ignore +import { CommonsAzureBlobCommitCacheResponse } from './commons-azure-blob-commit-cache-response'; // May contain unused imports in some cases // @ts-ignore import { CommonsCacheEntry } from './commons-cache-entry'; @@ -35,12 +38,24 @@ export interface CommonsCommitCacheResponse { * @memberof CommonsCommitCacheResponse */ 'annotations'?: { [key: string]: string; }; + /** + * + * @type {CommonsAzureBlobCommitCacheResponse} + * @memberof CommonsCommitCacheResponse + */ + 'azure_blob'?: CommonsAzureBlobCommitCacheResponse; /** * * @type {CommonsCacheEntry} * @memberof CommonsCommitCacheResponse */ 'cache_entry'?: CommonsCacheEntry; + /** + * Used for BYOC purposes. Check CommitCacheEvent for more details. + * @type {number} + * @memberof CommonsCommitCacheResponse + */ + 'cache_entry_size'?: number; /** * * @type {CommonsGCSCommitCacheResponse} diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-delete-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-delete-cache-response.ts index 21465a58..72eb5266 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-delete-cache-response.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-delete-cache-response.ts @@ -13,6 +13,9 @@ */ +// May contain unused imports in some cases +// @ts-ignore +import { CommonsAzureBlobDeleteCacheResponse } from './commons-azure-blob-delete-cache-response'; // May contain unused imports in some cases // @ts-ignore import { CommonsCacheEntry } from './commons-cache-entry'; @@ -35,6 +38,12 @@ export interface CommonsDeleteCacheResponse { * @memberof CommonsDeleteCacheResponse */ 'annotations'?: { [key: string]: string; }; + /** + * + * @type {CommonsAzureBlobDeleteCacheResponse} + * @memberof CommonsDeleteCacheResponse + */ + 'azure_blob'?: CommonsAzureBlobDeleteCacheResponse; /** * * @type {CommonsCacheEntry} diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-gcsget-cache-reponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-gcsget-cache-response.ts similarity index 74% rename from packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-gcsget-cache-reponse.ts rename to packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-gcsget-cache-response.ts index 4cdbff29..30384a2a 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-gcsget-cache-reponse.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-gcsget-cache-response.ts @@ -20,49 +20,49 @@ import { CommonsShortLivedToken } from './commons-short-lived-token'; /** * * @export - * @interface CommonsGCSGetCacheReponse + * @interface CommonsGCSGetCacheResponse */ -export interface CommonsGCSGetCacheReponse { +export interface CommonsGCSGetCacheResponse { /** * * @type {string} - * @memberof CommonsGCSGetCacheReponse + * @memberof CommonsGCSGetCacheResponse */ 'bucket_name'?: string; /** * * @type {string} - * @memberof CommonsGCSGetCacheReponse + * @memberof CommonsGCSGetCacheResponse */ 'cache_key'?: string; /** * * @type {string} - * @memberof CommonsGCSGetCacheReponse + * @memberof CommonsGCSGetCacheResponse */ 'cache_version'?: string; /** * Method contains the auth method to be used to connect to the GCP storage backend * @type {string} - * @memberof CommonsGCSGetCacheReponse + * @memberof CommonsGCSGetCacheResponse */ 'method'?: string; /** * * @type {string} - * @memberof CommonsGCSGetCacheReponse + * @memberof CommonsGCSGetCacheResponse */ 'pre_signed_url'?: string; /** * * @type {string} - * @memberof CommonsGCSGetCacheReponse + * @memberof CommonsGCSGetCacheResponse */ 'project_id'?: string; /** * * @type {CommonsShortLivedToken} - * @memberof CommonsGCSGetCacheReponse + * @memberof CommonsGCSGetCacheResponse */ 'short_lived_token'?: CommonsShortLivedToken; } diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-get-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-get-cache-response.ts index 8953b339..ea32c785 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-get-cache-response.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-get-cache-response.ts @@ -13,12 +13,15 @@ */ +// May contain unused imports in some cases +// @ts-ignore +import { CommonsAzureBlobGetCacheResponse } from './commons-azure-blob-get-cache-response'; // May contain unused imports in some cases // @ts-ignore import { CommonsCacheEntry } from './commons-cache-entry'; // May contain unused imports in some cases // @ts-ignore -import { CommonsGCSGetCacheReponse } from './commons-gcsget-cache-reponse'; +import { CommonsGCSGetCacheResponse } from './commons-gcsget-cache-response'; // May contain unused imports in some cases // @ts-ignore import { CommonsS3GetCacheResponse } from './commons-s3-get-cache-response'; @@ -35,6 +38,12 @@ export interface CommonsGetCacheResponse { * @memberof CommonsGetCacheResponse */ 'annotations'?: { [key: string]: string; }; + /** + * + * @type {CommonsAzureBlobGetCacheResponse} + * @memberof CommonsGetCacheResponse + */ + 'azure_blob'?: CommonsAzureBlobGetCacheResponse; /** * * @type {CommonsCacheEntry} @@ -43,10 +52,10 @@ export interface CommonsGetCacheResponse { 'cache_entry'?: CommonsCacheEntry; /** * - * @type {CommonsGCSGetCacheReponse} + * @type {CommonsGCSGetCacheResponse} * @memberof CommonsGetCacheResponse */ - 'gcs'?: CommonsGCSGetCacheReponse; + 'gcs'?: CommonsGCSGetCacheResponse; /** * * @type {string} diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-reserve-cache-response.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-reserve-cache-response.ts index 2135d90a..a6ed4b34 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-reserve-cache-response.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/commons-reserve-cache-response.ts @@ -13,6 +13,9 @@ */ +// May contain unused imports in some cases +// @ts-ignore +import { CommonsAzureBlobReserveCacheResponse } from './commons-azure-blob-reserve-cache-response'; // May contain unused imports in some cases // @ts-ignore import { CommonsGCSReserveCacheResponse } from './commons-gcsreserve-cache-response'; @@ -32,6 +35,12 @@ export interface CommonsReserveCacheResponse { * @memberof CommonsReserveCacheResponse */ 'annotations'?: { [key: string]: string; }; + /** + * + * @type {CommonsAzureBlobReserveCacheResponse} + * @memberof CommonsReserveCacheResponse + */ + 'azure_blob'?: CommonsAzureBlobReserveCacheResponse; /** * * @type {CommonsGCSReserveCacheResponse} diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/index.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/index.ts index 71f711dc..094bcca2 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/models/index.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/models/index.ts @@ -1,5 +1,10 @@ export * from './commons-append-operation-input'; +export * from './commons-azure-blob-commit-cache-response'; +export * from './commons-azure-blob-delete-cache-response'; +export * from './commons-azure-blob-get-cache-response'; +export * from './commons-azure-blob-reserve-cache-response'; export * from './commons-cache-entry'; +export * from './commons-cache-entry-metadata'; export * from './commons-cache-entry-with-stat'; export * from './commons-commit-cache-request'; export * from './commons-commit-cache-response'; @@ -9,7 +14,7 @@ export * from './commons-delete-cache-request'; export * from './commons-delete-cache-response'; export * from './commons-gcscommit-cache-response'; export * from './commons-gcsdelete-cache-response'; -export * from './commons-gcsget-cache-reponse'; +export * from './commons-gcsget-cache-response'; export * from './commons-gcsreserve-cache-response'; export * from './commons-get-cache-request'; export * from './commons-get-cache-response'; diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schema.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schema.ts index 6c039eeb..9ae4ebe4 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schema.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schema.ts @@ -3,8 +3,13 @@ /* eslint-disable */ export { $commons_AppendOperationInput } from './schemas/$commons_AppendOperationInput'; +export { $commons_AzureBlobCommitCacheResponse } from './schemas/$commons_AzureBlobCommitCacheResponse'; +export { $commons_AzureBlobDeleteCacheResponse } from './schemas/$commons_AzureBlobDeleteCacheResponse'; +export { $commons_AzureBlobGetCacheResponse } from './schemas/$commons_AzureBlobGetCacheResponse'; +export { $commons_AzureBlobReserveCacheResponse } from './schemas/$commons_AzureBlobReserveCacheResponse'; export { $commons_CacheAnnotationsMap } from './schemas/$commons_CacheAnnotationsMap'; export { $commons_CacheEntry } from './schemas/$commons_CacheEntry'; +export { $commons_CacheEntryMetadata } from './schemas/$commons_CacheEntryMetadata'; export { $commons_CacheEntryWithStat } from './schemas/$commons_CacheEntryWithStat'; export { $commons_CommitCacheRequest } from './schemas/$commons_CommitCacheRequest'; export { $commons_CommitCacheResponse } from './schemas/$commons_CommitCacheResponse'; @@ -14,7 +19,7 @@ export { $commons_DeleteCacheRequest } from './schemas/$commons_DeleteCacheReque export { $commons_DeleteCacheResponse } from './schemas/$commons_DeleteCacheResponse'; export { $commons_GCSCommitCacheResponse } from './schemas/$commons_GCSCommitCacheResponse'; export { $commons_GCSDeleteCacheResponse } from './schemas/$commons_GCSDeleteCacheResponse'; -export { $commons_GCSGetCacheReponse } from './schemas/$commons_GCSGetCacheReponse'; +export { $commons_GCSGetCacheResponse } from './schemas/$commons_GCSGetCacheResponse'; export { $commons_GCSReserveCacheResponse } from './schemas/$commons_GCSReserveCacheResponse'; export { $commons_GetCacheRequest } from './schemas/$commons_GetCacheRequest'; export { $commons_GetCacheResponse } from './schemas/$commons_GetCacheResponse'; diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobCommitCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobCommitCacheResponse.ts new file mode 100644 index 00000000..e9fb8414 --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobCommitCacheResponse.ts @@ -0,0 +1,15 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export const $commons_AzureBlobCommitCacheResponse = { + properties: { + cache_key: { + type: 'string', + isRequired: true, + }, + cache_version: { + type: 'string', + isRequired: true, + }, + }, +} as const; \ No newline at end of file diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobDeleteCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobDeleteCacheResponse.ts new file mode 100644 index 00000000..507754a4 --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobDeleteCacheResponse.ts @@ -0,0 +1,15 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export const $commons_AzureBlobDeleteCacheResponse = { + properties: { + cache_key: { + type: 'string', + isRequired: true, + }, + cache_version: { + type: 'string', + isRequired: true, + }, + }, +} as const; \ No newline at end of file diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobGetCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobGetCacheResponse.ts new file mode 100644 index 00000000..3696cb45 --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobGetCacheResponse.ts @@ -0,0 +1,19 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export const $commons_AzureBlobGetCacheResponse = { + properties: { + bucket_name: { + type: 'string', + }, + cache_key: { + type: 'string', + }, + cache_version: { + type: 'string', + }, + pre_signed_url: { + type: 'string', + }, + }, +} as const; \ No newline at end of file diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobReserveCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobReserveCacheResponse.ts new file mode 100644 index 00000000..e4d6f6cf --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_AzureBlobReserveCacheResponse.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export const $commons_AzureBlobReserveCacheResponse = { + properties: { + pre_signed_url: { + type: 'string', + }, + }, +} as const; \ No newline at end of file diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntry.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntry.ts index d2173592..5f9ae26f 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntry.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntry.ts @@ -18,6 +18,9 @@ export const $commons_CacheEntry = { id: { type: 'string', }, + metadata: { + type: 'commons_CacheEntryMetadata', + }, organization_id: { type: 'string', }, diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryMetadata.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryMetadata.ts new file mode 100644 index 00000000..fcc53e5c --- /dev/null +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryMetadata.ts @@ -0,0 +1,19 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export const $commons_CacheEntryMetadata = { + properties: { + cloud_connection_id: { + type: 'string', + }, + runner_id: { + type: 'string', + }, + stack_id: { + type: 'string', + }, + stack_name: { + type: 'string', + }, + }, +} as const; \ No newline at end of file diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryWithStat.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryWithStat.ts index ee797f95..bd1b561a 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryWithStat.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CacheEntryWithStat.ts @@ -21,6 +21,9 @@ export const $commons_CacheEntryWithStat = { last_used_at: { type: 'string', }, + metadata: { + type: 'commons_CacheEntryMetadata', + }, organization_id: { type: 'string', }, diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CommitCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CommitCacheResponse.ts index 8268ad1a..7ec58001 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CommitCacheResponse.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_CommitCacheResponse.ts @@ -9,9 +9,16 @@ export const $commons_CommitCacheResponse = { context to the cache service. This is not stored in the cache but is published in events for tracking purposes.`, }, + azure_blob: { + type: 'commons_AzureBlobCommitCacheResponse', + }, cache_entry: { type: 'commons_CacheEntry', }, + cache_entry_size: { + type: 'number', + description: `Used for BYOC purposes. Check CommitCacheEvent for more details.`, + }, gcs: { type: 'commons_GCSCommitCacheResponse', }, diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_DeleteCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_DeleteCacheResponse.ts index f2c78404..d3118cdd 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_DeleteCacheResponse.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_DeleteCacheResponse.ts @@ -9,6 +9,9 @@ export const $commons_DeleteCacheResponse = { context to the cache service. This is not stored in the cache but is published in events for tracking purposes.`, }, + azure_blob: { + type: 'commons_AzureBlobDeleteCacheResponse', + }, cache_entry: { type: 'commons_CacheEntry', }, diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GCSGetCacheReponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GCSGetCacheResponse.ts similarity index 92% rename from packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GCSGetCacheReponse.ts rename to packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GCSGetCacheResponse.ts index 340537fb..3a9a830d 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GCSGetCacheReponse.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GCSGetCacheResponse.ts @@ -1,7 +1,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -export const $commons_GCSGetCacheReponse = { +export const $commons_GCSGetCacheResponse = { properties: { bucket_name: { type: 'string', diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GetCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GetCacheResponse.ts index 002c3229..fe3f3636 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GetCacheResponse.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_GetCacheResponse.ts @@ -9,11 +9,14 @@ export const $commons_GetCacheResponse = { context to the cache service. This is not stored in the cache but is published in events for tracking purposes.`, }, + azure_blob: { + type: 'commons_AzureBlobGetCacheResponse', + }, cache_entry: { type: 'commons_CacheEntry', }, gcs: { - type: 'commons_GCSGetCacheReponse', + type: 'commons_GCSGetCacheResponse', }, provider: { type: 'string', diff --git a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_ReserveCacheResponse.ts b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_ReserveCacheResponse.ts index 0a55a104..17bb4367 100644 --- a/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_ReserveCacheResponse.ts +++ b/packages/warp-cache/src/internal/warpcache-ts-sdk/schemas/$commons_ReserveCacheResponse.ts @@ -9,6 +9,9 @@ export const $commons_ReserveCacheResponse = { context to the cache service. This is not stored in the cache but is published in events for tracking purposes.`, }, + azure_blob: { + type: 'commons_AzureBlobReserveCacheResponse', + }, gcs: { type: 'commons_GCSReserveCacheResponse', }, diff --git a/packages/warp-cache/src/test.ts b/packages/warp-cache/src/test.ts index 6da40584..86e20bba 100644 --- a/packages/warp-cache/src/test.ts +++ b/packages/warp-cache/src/test.ts @@ -2,16 +2,16 @@ import {deleteCache, restoreCache, saveCache} from './cache' import {getCacheVersion} from './internal/cacheHttpClient' import {getCompressionMethod} from './internal/cacheUtils' -process.env['WARPBUILD_CACHE_URL'] = 'https://cache.dev.warpbuild.dev' -// process.env['WARPBUILD_CACHE_URL'] = 'http://localhost:8000' +// process.env['WARPBUILD_CACHE_URL'] = 'https://cache.dev.warpbuild.dev' +process.env['WARPBUILD_CACHE_URL'] = 'http://localhost:8000' // process.env['WARPBUILD_CACHE_URL'] = // 'https://6134-36-255-234-176.ngrok-free.app' process.env['RUNNER_TEMP'] = '/Users/prajjwal/Repos/warpbuild/playground/tmp_fs' process.env['NODE_DEBUG'] = 'http' process.env['RUNNER_DEBUG'] = '1' process.env['WARPBUILD_RUNNER_VERIFICATION_TOKEN'] = - 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTM0MTg3MzMsInJlcG8iOiJiZW5jaG1hcmtzIiwicmVwb093bmVyIjoiV2FycEJ1aWxkcyIsIngtd2FycGJ1aWxkLW9yZ2FuaXphdGlvbi1pZCI6IndmbW4wODBlaWY4cm5pd3EifQ.a435J9ccjs9V_FzQMdbwTvXOYU8hvRieYkXM7yumlWAJyxDTsq4mi3CP1Ob9y6nLEKr35TYqGwxKFSTOW1oxYQ' -process.env['GITHUB_REPOSITORY'] = 'Warpbuilds/backend-cache' + 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhYyI6Ilt7XCJTY29wZVwiOlwicmVmcy9oZWFkcy9tYWluXCIsXCJQZXJtaXNzaW9uXCI6M31dIiwiY29ubmVjdGlvbklkIjoiMmVkYTNiMjYtYzY5OC00YjQ5LWFjMWUtYjdhNDIyOTEyM2FiIiwiZXhwIjoxNzI5NTAwNzU5LCJuYmYiOjE3MjkyNDE1NTksInJ1bm5lcklkIjoid2FycGRldi14NjQtdzk3eng5aHIwZ2xjeW45ZiIsInN0YWNrSWQiOiJ3aHhnaWNrZHhlbTJjN3oxIiwieC13YXJwYnVpbGQtb3JnYW5pemF0aW9uLWlkIjoid2ZtbjA4MGVpZjhybml3cSJ9.YwIjh-1-u9DjauOJJNsqQ3RohbenYe1Vr00LrfZHje1bXpixBWe6I89hy0dzuko8EGq4VbtE2QNAPmankJpwxA' +process.env['GITHUB_REPOSITORY'] = 'Warpbuilds/kitchen-sink' process.env['GITHUB_REF'] = 'refs/heads/main' // saveCache( @@ -33,16 +33,18 @@ process.env['GITHUB_REF'] = 'refs/heads/main' // true // ) -restoreCache( +// restoreCache( +// ['/Users/prajjwal/Repos/warpbuild/playground/test_fs'], +// 'test-fs-local-key', +// ['test-fs'], +// {}, +// true, +// false +// ) + +deleteCache( ['/Users/prajjwal/Repos/warpbuild/playground/test_fs'], 'test-fs-local-key', - ['test-fs'], - {}, true, false ) - -// deleteCache( -// ['/Users/prajjwal/Repos/warpbuild/playground/test_fs'], -// 'test-fs-local-key' -// )