diff --git a/.licenses/npm/@actions/artifact.dep.yml b/.licenses/npm/@actions/artifact.dep.yml index 9a1cb3a..7c4c881 100644 Binary files a/.licenses/npm/@actions/artifact.dep.yml and b/.licenses/npm/@actions/artifact.dep.yml differ diff --git a/.licenses/npm/@actions/core.dep.yml b/.licenses/npm/@actions/core.dep.yml index 33f5fd8..12293f9 100644 Binary files a/.licenses/npm/@actions/core.dep.yml and b/.licenses/npm/@actions/core.dep.yml differ diff --git a/.licenses/npm/@actions/github.dep.yml b/.licenses/npm/@actions/github.dep.yml index 09817e4..e250d5d 100644 Binary files a/.licenses/npm/@actions/github.dep.yml and b/.licenses/npm/@actions/github.dep.yml differ diff --git a/.licenses/npm/@actions/http-client-4.0.0.dep.yml b/.licenses/npm/@actions/http-client-4.0.1.dep.yml similarity index 91% rename from .licenses/npm/@actions/http-client-4.0.0.dep.yml rename to .licenses/npm/@actions/http-client-4.0.1.dep.yml index e1a55ca..292a073 100644 Binary files a/.licenses/npm/@actions/http-client-4.0.0.dep.yml and b/.licenses/npm/@actions/http-client-4.0.1.dep.yml differ diff --git a/.licenses/npm/@azure/storage-blob.dep.yml b/.licenses/npm/@azure/storage-blob.dep.yml index b77d1a4..36b0a58 100644 Binary files a/.licenses/npm/@azure/storage-blob.dep.yml and b/.licenses/npm/@azure/storage-blob.dep.yml differ diff --git a/.licenses/npm/@azure/storage-common.dep.yml b/.licenses/npm/@azure/storage-common.dep.yml index daa7f94..ac0e41e 100644 Binary files a/.licenses/npm/@azure/storage-common.dep.yml and b/.licenses/npm/@azure/storage-common.dep.yml differ diff --git a/.licenses/npm/@bufbuild/protobuf.dep.yml b/.licenses/npm/@bufbuild/protobuf.dep.yml deleted file mode 100644 index 7ed2cb7..0000000 Binary files a/.licenses/npm/@bufbuild/protobuf.dep.yml and /dev/null differ diff --git a/.licenses/npm/@bufbuild/protoplugin.dep.yml b/.licenses/npm/@bufbuild/protoplugin.dep.yml deleted file mode 100644 index f29d8ec..0000000 Binary files a/.licenses/npm/@bufbuild/protoplugin.dep.yml and /dev/null differ diff --git a/.licenses/npm/@octokit/endpoint.dep.yml b/.licenses/npm/@octokit/endpoint.dep.yml index c8d9ae5..3a6e908 100644 Binary files a/.licenses/npm/@octokit/endpoint.dep.yml and b/.licenses/npm/@octokit/endpoint.dep.yml differ diff --git a/.licenses/npm/@octokit/plugin-retry.dep.yml b/.licenses/npm/@octokit/plugin-retry.dep.yml index 1857a1d..5fdf0b7 100644 Binary files a/.licenses/npm/@octokit/plugin-retry.dep.yml and b/.licenses/npm/@octokit/plugin-retry.dep.yml differ diff --git a/.licenses/npm/@octokit/request.dep.yml b/.licenses/npm/@octokit/request.dep.yml index 3e2e17e..f4f9a05 100644 Binary files a/.licenses/npm/@octokit/request.dep.yml and b/.licenses/npm/@octokit/request.dep.yml differ diff --git a/.licenses/npm/@protobuf-ts/plugin.dep.yml b/.licenses/npm/@protobuf-ts/plugin.dep.yml deleted file mode 100644 index c65ddc6..0000000 Binary files a/.licenses/npm/@protobuf-ts/plugin.dep.yml and /dev/null differ diff --git a/.licenses/npm/@protobuf-ts/protoc.dep.yml b/.licenses/npm/@protobuf-ts/protoc.dep.yml deleted file mode 100644 index b1b4004..0000000 Binary files a/.licenses/npm/@protobuf-ts/protoc.dep.yml and /dev/null differ diff --git a/.licenses/npm/@typescript/vfs.dep.yml b/.licenses/npm/@typescript/vfs.dep.yml deleted file mode 100644 index d685ffe..0000000 Binary files a/.licenses/npm/@typescript/vfs.dep.yml and /dev/null differ diff --git a/.licenses/npm/json-with-bigint.dep.yml b/.licenses/npm/json-with-bigint.dep.yml new file mode 100644 index 0000000..0b64520 Binary files /dev/null and b/.licenses/npm/json-with-bigint.dep.yml differ diff --git a/.licenses/npm/typescript-3.9.10.dep.yml b/.licenses/npm/typescript-3.9.10.dep.yml deleted file mode 100644 index 01cccaf..0000000 Binary files a/.licenses/npm/typescript-3.9.10.dep.yml and /dev/null differ diff --git a/.licenses/npm/typescript-5.4.5.dep.yml b/.licenses/npm/typescript-5.4.5.dep.yml deleted file mode 100644 index ace4699..0000000 Binary files a/.licenses/npm/typescript-5.4.5.dep.yml and /dev/null differ diff --git a/.licenses/npm/typescript-5.9.3.dep.yml b/.licenses/npm/typescript-5.9.3.dep.yml deleted file mode 100644 index 37acb07..0000000 Binary files a/.licenses/npm/typescript-5.9.3.dep.yml and /dev/null differ diff --git a/dist/index.js b/dist/index.js index d7aade7..e5fe238 100644 --- a/dist/index.js +++ b/dist/index.js @@ -77339,7 +77339,7 @@ module.exports = index; /***/ 2822: /***/ ((module) => { -module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/artifact","version":"6.2.1","preview":true,"description":"Actions artifact lib","keywords":["github","actions","artifact"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/artifact","license":"MIT","type":"module","main":"lib/artifact.js","types":"lib/artifact.d.ts","exports":{".":{"types":"./lib/artifact.d.ts","import":"./lib/artifact.js"}},"directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/artifact"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"cd ../../ && npm run test ./packages/artifact","bootstrap":"cd ../../ && npm run bootstrap","tsc-run":"tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/","tsc":"npm run bootstrap && npm run tsc-run","gen:docs":"typedoc --plugin typedoc-plugin-markdown --out docs/generated src/artifact.ts --githubPages false --readme none"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^3.0.0","@actions/github":"^9.0.0","@actions/http-client":"^4.0.0","@azure/storage-blob":"^12.30.0","@octokit/core":"^7.0.6","@octokit/plugin-request-log":"^6.0.0","@octokit/plugin-retry":"^8.0.0","@octokit/request":"^10.0.7","@octokit/request-error":"^7.1.0","@protobuf-ts/plugin":"^2.2.3-alpha.1","@protobuf-ts/runtime":"^2.9.4","archiver":"^7.0.1","jwt-decode":"^4.0.0","unzip-stream":"^0.3.1"},"devDependencies":{"@types/archiver":"^7.0.0","@types/unzip-stream":"^0.3.4","typedoc":"^0.28.16","typedoc-plugin-markdown":"^4.9.0","typescript":"^5.9.3"},"overrides":{"uri-js":"npm:uri-js-replace@^1.0.1","node-fetch":"^3.3.2"}}'); +module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/artifact","version":"6.3.1","preview":true,"description":"Actions artifact lib","keywords":["github","actions","artifact"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/artifact","license":"MIT","type":"module","main":"lib/artifact.js","types":"lib/artifact.d.ts","exports":{".":{"types":"./lib/artifact.d.ts","import":"./lib/artifact.js"}},"directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/artifact"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"cd ../../ && npm run test ./packages/artifact","bootstrap":"cd ../../ && npm run bootstrap","tsc-run":"tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/","tsc":"npm run bootstrap && npm run tsc-run","gen:docs":"typedoc --plugin typedoc-plugin-markdown --out docs/generated src/artifact.ts --githubPages false --readme none"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^3.0.1","@actions/github":"^9.1.1","@actions/http-client":"^4.0.1","@azure/storage-blob":"^12.31.0","@octokit/core":"^7.0.6","@octokit/plugin-request-log":"^6.0.0","@octokit/plugin-retry":"^8.1.0","@octokit/request":"^10.0.8","@octokit/request-error":"^7.1.0","@protobuf-ts/runtime":"^2.11.1","@protobuf-ts/runtime-rpc":"^2.11.1","archiver":"^7.0.1","jwt-decode":"^4.0.0","unzip-stream":"^0.3.1"},"devDependencies":{"@protobuf-ts/plugin":"^2.11.1","@types/archiver":"^7.0.0","@types/unzip-stream":"^0.3.4","typedoc":"^0.28.19","typedoc-plugin-markdown":"^4.11.0","typescript":"^5.9.3"},"overrides":{"uri-js":"npm:uri-js-replace@^1.0.1","node-fetch":"^3.3.2"}}'); /***/ }) @@ -82601,8 +82601,9 @@ var artifact_twirp_client_awaiter = (undefined && undefined.__awaiter) || functi class ArtifactHttpClient { constructor(userAgent, maxAttempts, baseRetryIntervalMilliseconds, retryMultiplier) { this.maxAttempts = 5; - this.baseRetryIntervalMilliseconds = 3000; + this.baseRetryIntervalMilliseconds = 8000; this.retryMultiplier = 1.5; + this.retryTimeoutMilliseconds = 120000; const token = getRuntimeToken(); this.baseUrl = getResultsServiceUrl(); if (maxAttempts) { @@ -82641,11 +82642,16 @@ class ArtifactHttpClient { let attempt = 0; let errorMessage = ''; let rawBody = ''; + let totalRetryWaitMilliseconds = 0; while (attempt < this.maxAttempts) { let isRetryable = false; + let retryAfterSeconds; try { const response = yield operation(); const statusCode = response.message.statusCode; + if (statusCode === HttpCodes.TooManyRequests) { + retryAfterSeconds = this.getRetryAfterSeconds(response); + } rawBody = yield response.readBody(); core_debug(`[Response] - ${response.message.statusCode}`); core_debug(`Headers: ${JSON.stringify(response.message.headers, null, 2)}`); @@ -82683,9 +82689,16 @@ class ArtifactHttpClient { if (attempt + 1 === this.maxAttempts) { throw new Error(`Failed to make request after ${this.maxAttempts} attempts: ${errorMessage}`); } - const retryTimeMilliseconds = this.getExponentialRetryTimeMilliseconds(attempt); + const retryTimeMilliseconds = retryAfterSeconds !== undefined + ? retryAfterSeconds * 1000 + : this.getExponentialRetryTimeMilliseconds(attempt); + if (totalRetryWaitMilliseconds + retryTimeMilliseconds > + this.retryTimeoutMilliseconds) { + throw new Error(`Retry wait of ${retryTimeMilliseconds} ms would exceed the maximum total retry wait of ${this.retryTimeoutMilliseconds} ms: ${errorMessage}`); + } info(`Attempt ${attempt + 1} of ${this.maxAttempts} failed with error: ${errorMessage}. Retrying request in ${retryTimeMilliseconds} ms...`); yield this.sleep(retryTimeMilliseconds); + totalRetryWaitMilliseconds += retryTimeMilliseconds; attempt++; } throw new Error(`Request failed`); @@ -82708,6 +82721,17 @@ class ArtifactHttpClient { ]; return retryableStatusCodes.includes(statusCode); } + // Only positive integer seconds are supported, not HTTP-date values. + getRetryAfterSeconds(response) { + var _a; + const header = response.message.headers['retry-after']; + const value = (_a = (Array.isArray(header) ? header[0] : header)) === null || _a === void 0 ? void 0 : _a.trim(); + if (value === undefined || !/^\d+$/.test(value)) { + return undefined; + } + const parsed = parseInt(value, 10); + return !isNaN(parsed) && parsed > 0 ? parsed : undefined; + } sleep(milliseconds) { return artifact_twirp_client_awaiter(this, void 0, void 0, function* () { return new Promise(resolve => setTimeout(resolve, milliseconds)); @@ -95880,15 +95904,12 @@ class UserDelegationKeyCredential { - - - //# sourceMappingURL=index.js.map ;// CONCATENATED MODULE: ./node_modules/@azure/storage-blob/dist/esm/utils/constants.js // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const esm_utils_constants_SDK_VERSION = "12.30.0"; +const esm_utils_constants_SDK_VERSION = "12.31.0"; const SERVICE_VERSION = "2026-02-06"; const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB @@ -116080,7 +116101,7 @@ class BlobClient extends StorageClient_StorageClient { options.conditions = options.conditions || {}; ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps); return tracingClient.withSpan("BlobClient-download", options, async (updatedOptions) => { - const res = utils_common_assertResponse(await this.blobContext.download({ + const res = utils_common_assertResponse((await this.blobContext.download({ abortSignal: options.abortSignal, leaseAccessConditions: options.conditions, modifiedAccessConditions: { @@ -116096,7 +116117,7 @@ class BlobClient extends StorageClient_StorageClient { snapshot: options.snapshot, cpkInfo: options.customerProvidedKey, tracingOptions: updatedOptions.tracingOptions, - })); + }))); const wrappedRes = { ...res, _response: res._response, // _response is made non-enumerable @@ -117418,7 +117439,7 @@ class BlockBlobClient extends BlobClient { throw new Error("This operation currently is only supported in Node.js."); } return tracingClient.withSpan("BlockBlobClient-query", options, async (updatedOptions) => { - const response = utils_common_assertResponse(await this._blobContext.query({ + const response = utils_common_assertResponse((await this._blobContext.query({ abortSignal: options.abortSignal, queryRequest: { queryType: "SQL", @@ -117433,7 +117454,7 @@ class BlockBlobClient extends BlobClient { }, cpkInfo: options.customerProvidedKey, tracingOptions: updatedOptions.tracingOptions, - })); + }))); return new BlobQueryResponse(response, { abortSignal: options.abortSignal, onProgress: options.onProgress, @@ -119329,9 +119350,9 @@ class BlobBatchClient { return tracingClient.withSpan("BlobBatchClient-submitBatch", options, async (updatedOptions) => { const batchRequestBody = batchRequest.getHttpRequestBody(); // ServiceSubmitBatchResponseModel and ContainerSubmitBatchResponse are compatible for now. - const rawBatchResponse = utils_common_assertResponse(await this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, { + const rawBatchResponse = utils_common_assertResponse((await this.serviceOrContainerContext.submitBatch(utf8ByteLength(batchRequestBody), batchRequest.getMultiPartContentType(), batchRequestBody, { ...updatedOptions, - })); + }))); // Parse the sub responses result, if logic reaches here(i.e. the batch request succeeded with status code 202). const batchResponseParser = new BatchResponseParser(rawBatchResponse, batchRequest.getSubRequests()); const responseSummary = await batchResponseParser.parseBatchResponse(); @@ -122354,6 +122375,19 @@ function getProxyFetch(destinationUrl) { function getApiBaseUrl() { return process.env['GITHUB_API_URL'] || 'https://api.github.com'; } +function getUserAgentWithOrchestrationId(baseUserAgent) { + var _a; + const orchId = (_a = process.env['ACTIONS_ORCHESTRATION_ID']) === null || _a === void 0 ? void 0 : _a.trim(); + if (orchId) { + const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_'); + const tag = `actions_orchestration_id/${sanitizedId}`; + if (baseUserAgent === null || baseUserAgent === void 0 ? void 0 : baseUserAgent.includes(tag)) + return baseUserAgent; + const ua = baseUserAgent ? `${baseUserAgent} ` : ''; + return `${ua}${tag}`; + } + return baseUserAgent; +} //# sourceMappingURL=utils.js.map ;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js function getUserAgent() { @@ -122674,7 +122708,7 @@ function isKeyOperator(operator) { function getValues(context, operator, key, modifier) { var value = context[key], result = []; if (isDefined(value) && value !== "") { - if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + if (typeof value === "string" || typeof value === "number" || typeof value === "bigint" || typeof value === "boolean") { value = value.toString(); if (modifier && modifier !== "*") { value = value.substring(0, parseInt(modifier, 10)); @@ -122863,6 +122897,147 @@ var endpoint = withDefaults(null, DEFAULTS); // EXTERNAL MODULE: ./node_modules/fast-content-type-parse/index.js var fast_content_type_parse = __nccwpck_require__(1120); +;// CONCATENATED MODULE: ./node_modules/json-with-bigint/json-with-bigint.js +const noiseValue = /^-?\d+n+$/; // Noise - strings that match the custom format before being converted to it +const originalStringify = JSON.stringify; +const originalParse = JSON.parse; + +/* + Function to serialize value to a JSON string. + Converts BigInt values to a custom format (strings with digits and "n" at the end) and then converts them to proper big integers in a JSON string. +*/ +const JSONStringify = (value, replacer, space) => { + if ("rawJSON" in JSON) { + return originalStringify( + value, + (key, value) => { + if (typeof value === "bigint") return JSON.rawJSON(value.toString()); + + if (typeof replacer === "function") return replacer(key, value); + + if (Array.isArray(replacer) && replacer.includes(key)) return value; + + return value; + }, + space + ); + } + + if (!value) return originalStringify(value, replacer, space); + + const bigInts = /([\[:])?"(-?\d+)n"($|([\\n]|\s)*(\s|[\\n])*[,\}\]])/g; + const noise = /([\[:])?("-?\d+n+)n("$|"([\\n]|\s)*(\s|[\\n])*[,\}\]])/g; + const convertedToCustomJSON = originalStringify( + value, + (key, value) => { + const isNoise = + typeof value === "string" && Boolean(value.match(noiseValue)); + + if (isNoise) return value.toString() + "n"; // Mark noise values with additional "n" to offset the deletion of one "n" during the processing + + if (typeof value === "bigint") return value.toString() + "n"; + + if (typeof replacer === "function") return replacer(key, value); + + if (Array.isArray(replacer) && replacer.includes(key)) return value; + + return value; + }, + space + ); + const processedJSON = convertedToCustomJSON.replace(bigInts, "$1$2$3"); // Delete one "n" off the end of every BigInt value + const denoisedJSON = processedJSON.replace(noise, "$1$2$3"); // Remove one "n" off the end of every noisy string + + return denoisedJSON; +}; + +/* + Function to check if the JSON.parse's context.source feature is supported. +*/ +const isContextSourceSupported = () => + JSON.parse("1", (_, __, context) => !!context && context.source === "1"); + +/* + Faster (2x) and simpler function to parse JSON. + Based on JSON.parse's context.source feature, which is not universally available now. + Does not support the legacy custom format, used in the first version of this library. +*/ +const JSONParseV2 = (text, reviver) => { + const intRegex = /^-?\d+$/; + + return JSON.parse(text, (key, value, context) => { + const isBigNumber = + typeof value === "number" && + (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER); + const isInt = intRegex.test(context.source); + const isBigInt = isBigNumber && isInt; + + if (isBigInt) return BigInt(context.source); + + if (typeof reviver !== "function") return value; + + return reviver(key, value, context); + }); +}; + +/* + Function to parse JSON. + If JSON has number values greater than Number.MAX_SAFE_INTEGER, we convert those values to a custom format, then parse them to BigInt values. + Other types of values are not affected and parsed as native JSON.parse() would parse them. +*/ +const JSONParse = (text, reviver) => { + if (!text) return originalParse(text, reviver); + + if (isContextSourceSupported()) return JSONParseV2(text, reviver); // Shortcut to a faster (2x) and simpler version + + const MAX_INT = Number.MAX_SAFE_INTEGER.toString(); + const MAX_DIGITS = MAX_INT.length; + const stringsOrLargeNumbers = + /"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g; + const noiseValueWithQuotes = /^"-?\d+n+"$/; // Noise - strings that match the custom format before being converted to it + const customFormat = /^-?\d+n$/; + + // Find and mark big numbers with "n" + const serializedData = text.replace( + stringsOrLargeNumbers, + (text, digits, fractional, exponential) => { + const isString = text[0] === '"'; + const isNoise = isString && Boolean(text.match(noiseValueWithQuotes)); + + if (isNoise) return text.substring(0, text.length - 1) + 'n"'; // Mark noise values with additional "n" to offset the deletion of one "n" during the processing + + const isFractionalOrExponential = fractional || exponential; + const isLessThanMaxSafeInt = + digits && + (digits.length < MAX_DIGITS || + (digits.length === MAX_DIGITS && digits <= MAX_INT)); // With a fixed number of digits, we can correctly use lexicographical comparison to do a numeric comparison + + if (isString || isFractionalOrExponential || isLessThanMaxSafeInt) + return text; + + return '"' + text + 'n"'; + } + ); + + // Convert marked big numbers to BigInt + return originalParse(serializedData, (key, value, context) => { + const isCustomFormatBigInt = + typeof value === "string" && Boolean(value.match(customFormat)); + + if (isCustomFormatBigInt) + return BigInt(value.substring(0, value.length - 1)); + + const isNoiseValue = + typeof value === "string" && Boolean(value.match(noiseValue)); + + if (isNoiseValue) return value.substring(0, value.length - 1); // Remove one "n" off the end of the noisy string + + if (typeof reviver !== "function") return value; + + return reviver(key, value, context); + }); +}; + ;// CONCATENATED MODULE: ./node_modules/@octokit/request-error/dist-src/index.js class RequestError extends Error { name; @@ -122912,7 +123087,7 @@ class RequestError extends Error { // pkg/dist-src/version.js -var dist_bundle_VERSION = "10.0.7"; +var dist_bundle_VERSION = "10.0.8"; // pkg/dist-src/defaults.js var defaults_default = { @@ -122924,6 +123099,7 @@ var defaults_default = { // pkg/dist-src/fetch-wrapper.js + // pkg/dist-src/is-plain-object.js function dist_bundle_isPlainObject(value) { if (typeof value !== "object" || value === null) return false; @@ -122946,7 +123122,7 @@ async function fetchWrapper(requestOptions) { } const log = requestOptions.request?.log || console; const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; - const body = dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSON.stringify(requestOptions.body) : requestOptions.body; + const body = dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSONStringify(requestOptions.body) : requestOptions.body; const requestHeaders = Object.fromEntries( Object.entries(requestOptions.headers).map(([name, value]) => [ name, @@ -123045,7 +123221,7 @@ async function getResponseData(response) { let text = ""; try { text = await response.text(); - return JSON.parse(text); + return JSONParse(text); } catch (err) { return text; } @@ -126308,6 +126484,7 @@ const defaults = { } }; const GitHub = Octokit.plugin(restEndpointMethods, paginateRest).defaults(defaults); + /** * Convience function to correctly format Octokit Options to pass into the constructor. * @@ -126321,6 +126498,11 @@ function getOctokitOptions(token, options) { if (auth) { opts.auth = auth; } + // Orchestration ID + const userAgent = getUserAgentWithOrchestrationId(opts.userAgent); + if (userAgent) { + opts.userAgent = userAgent; + } return opts; } //# sourceMappingURL=utils.js.map @@ -126641,8 +126823,11 @@ var light = __nccwpck_require__(3251); var plugin_retry_dist_bundle_VERSION = "0.0.0-development"; // pkg/dist-src/error-request.js +function isRequestError(error) { + return error.request !== void 0; +} async function errorRequest(state, octokit, error, options) { - if (!error.request || !error.request.request) { + if (!isRequestError(error) || !error?.request.request) { throw error; } if (error.status >= 400 && !state.doNotRetry.includes(error.status)) { @@ -126659,8 +126844,8 @@ async function errorRequest(state, octokit, error, options) { async function wrapRequest(state, octokit, request, options) { const limiter = new light(); limiter.on("failed", function(error, info) { - const maxRetries = ~~error.request.request.retries; - const after = ~~error.request.request.retryAfter; + const maxRetries = ~~error.request.request?.retries; + const after = ~~error.request.request?.retryAfter; options.request.retryCount = info.retryCount + 1; if (maxRetries > info.retryCount) { return after * state.retryAfterBaseValue; @@ -126672,7 +126857,7 @@ async function wrapRequest(state, octokit, request, options) { ); } async function requestWithGraphqlErrorHandling(state, octokit, request, options) { - const response = await request(request, options); + const response = await request(options); if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( response.data.errors[0].message )) { @@ -126696,11 +126881,7 @@ function retry(octokit, octokitOptions) { }, octokitOptions.retry ); - if (state.enabled) { - octokit.hook.error("request", errorRequest.bind(null, state, octokit)); - octokit.hook.wrap("request", wrapRequest.bind(null, state, octokit)); - } - return { + const retryPlugin = { retry: { retryRequest: (error, retries, retryAfter) => { error.request.request = Object.assign({}, error.request.request, { @@ -126711,6 +126892,11 @@ function retry(octokit, octokitOptions) { } } }; + if (state.enabled) { + octokit.hook.error("request", errorRequest.bind(null, state, retryPlugin)); + octokit.hook.wrap("request", wrapRequest.bind(null, state, retryPlugin)); + } + return retryPlugin; } retry.VERSION = plugin_retry_dist_bundle_VERSION; diff --git a/package-lock.json b/package-lock.json index c8e8d8f..1c76352 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "8.0.1", "license": "MIT", "dependencies": { - "@actions/artifact": "^6.2.1", + "@actions/artifact": "^6.3.1", "@actions/core": "^3.0.0", "minimatch": "^10.1.1" }, @@ -36,31 +36,31 @@ } }, "node_modules/@actions/artifact": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-6.2.1.tgz", - "integrity": "sha512-sJGH0mhEbEjBCw7o6SaLhUU66u27aFW8HTfkIb5Tk2/Wy0caUDc+oYQEgnuFN7a0HCpAbQyK0U6U7XUJDgDWrw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-6.3.1.tgz", + "integrity": "sha512-DBXgdB9T4yj2KSe0tFg+MTi9T5se+16bdrFQh+3Y6Nq1lZ3gYQk1BjHoTof+7Zf36bEAlfVMf+8ifRKeyGJugQ==", "license": "MIT", "dependencies": { - "@actions/core": "^3.0.0", - "@actions/github": "^9.0.0", - "@actions/http-client": "^4.0.0", - "@azure/storage-blob": "^12.30.0", + "@actions/core": "^3.0.1", + "@actions/github": "^9.1.1", + "@actions/http-client": "^4.0.1", + "@azure/storage-blob": "^12.31.0", "@octokit/core": "^7.0.6", "@octokit/plugin-request-log": "^6.0.0", - "@octokit/plugin-retry": "^8.0.0", - "@octokit/request": "^10.0.7", + "@octokit/plugin-retry": "^8.1.0", + "@octokit/request": "^10.0.8", "@octokit/request-error": "^7.1.0", - "@protobuf-ts/plugin": "^2.2.3-alpha.1", - "@protobuf-ts/runtime": "^2.9.4", + "@protobuf-ts/runtime": "^2.11.1", + "@protobuf-ts/runtime-rpc": "^2.11.1", "archiver": "^7.0.1", "jwt-decode": "^4.0.0", "unzip-stream": "^0.3.1" } }, "node_modules/@actions/core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.0.tgz", - "integrity": "sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.1.tgz", + "integrity": "sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==", "license": "MIT", "dependencies": { "@actions/exec": "^3.0.0", @@ -77,9 +77,9 @@ } }, "node_modules/@actions/github": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-9.0.0.tgz", - "integrity": "sha512-yJ0RoswsAaKcvkmpCE4XxBRiy/whH2SdTBHWzs0gi4wkqTDhXMChjSdqBz/F4AeiDlP28rQqL33iHb+kjAMX6w==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-9.1.1.tgz", + "integrity": "sha512-tL5JbYOBZHc0ngEnCsaDcryUizIUIlQyIMwy1Wkx93H5HzbBJ7TbiPx2PnFjBwZW0Vh05JmfFZhecE6gglYegA==", "license": "MIT", "dependencies": { "@actions/http-client": "^3.0.2", @@ -102,9 +102,9 @@ } }, "node_modules/@actions/http-client": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.0.tgz", - "integrity": "sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.1.tgz", + "integrity": "sha512-+Nvd1ImaOZBSoPbsUtEhv+1z99H12xzncCkz0a3RuehINE81FZSe2QTj3uvAPTcJX/SCzUQHQ0D1GrPMbrPitg==", "license": "MIT", "dependencies": { "tunnel": "^0.0.6", @@ -273,9 +273,9 @@ } }, "node_modules/@azure/storage-blob": { - "version": "12.30.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.30.0.tgz", - "integrity": "sha512-peDCR8blSqhsAKDbpSP/o55S4sheNwSrblvCaHUZ5xUI73XA7ieUGGwrONgD/Fng0EoDe1VOa3fAQ7+WGB3Ocg==", + "version": "12.31.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.31.0.tgz", + "integrity": "sha512-DBgNv10aCSxopt92DkTDD0o9xScXeBqPKGmR50FPZQaEcH4JLQ+GEOGEDv19V5BMkB7kxr+m4h6il/cCDPvmHg==", "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.1.2", @@ -289,7 +289,7 @@ "@azure/core-util": "^1.11.0", "@azure/core-xml": "^1.4.5", "@azure/logger": "^1.1.4", - "@azure/storage-common": "^12.2.0", + "@azure/storage-common": "^12.3.0", "events": "^3.0.0", "tslib": "^2.8.1" }, @@ -298,9 +298,9 @@ } }, "node_modules/@azure/storage-common": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/@azure/storage-common/-/storage-common-12.2.0.tgz", - "integrity": "sha512-YZLxiJ3vBAAnFbG3TFuAMUlxZRexjQX5JDQxOkFGb6e2TpoxH3xyHI6idsMe/QrWtj41U/KoqBxlayzhS+LlwA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@azure/storage-common/-/storage-common-12.3.0.tgz", + "integrity": "sha512-/OFHhy86aG5Pe8dP5tsp+BuJ25JOAl9yaMU3WZbkeoiFMHFtJ7tu5ili7qEdBXNW9G5lDB19trwyI6V49F/8iQ==", "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.1.2", @@ -833,36 +833,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@bufbuild/protobuf": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.11.0.tgz", - "integrity": "sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==", - "license": "(Apache-2.0 AND BSD-3-Clause)" - }, - "node_modules/@bufbuild/protoplugin": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protoplugin/-/protoplugin-2.11.0.tgz", - "integrity": "sha512-lyZVNFUHArIOt4W0+dwYBe5GBwbKzbOy8ObaloEqsw9Mmiwv2O48TwddDoHN4itylC+BaEGqFdI1W8WQt2vWJQ==", - "license": "Apache-2.0", - "dependencies": { - "@bufbuild/protobuf": "2.11.0", - "@typescript/vfs": "^1.6.2", - "typescript": "5.4.5" - } - }, - "node_modules/@bufbuild/protoplugin/node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -1795,9 +1765,9 @@ } }, "node_modules/@octokit/endpoint": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.2.tgz", - "integrity": "sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.3.tgz", + "integrity": "sha512-FWFlNxghg4HrXkD3ifYbS/IdL/mDHjh9QcsNyhQjN8dplUoZbejsdpmuqdA76nxj2xoWPs7p8uX2SNr9rYu0Ag==", "license": "MIT", "dependencies": { "@octokit/types": "^16.0.0", @@ -1870,9 +1840,9 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-8.0.3.tgz", - "integrity": "sha512-vKGx1i3MC0za53IzYBSBXcrhmd+daQDzuZfYDd52X5S0M2otf3kVZTVP8bLA3EkU0lTvd1WEC2OlNNa4G+dohA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-8.1.0.tgz", + "integrity": "sha512-O1FZgXeiGb2sowEr/hYTr6YunGdSAFWnr2fyW39Ah85H8O33ELASQxcvOFF5LE6Tjekcyu2ms4qAzJVhSaJxTw==", "license": "MIT", "dependencies": { "@octokit/request-error": "^7.0.2", @@ -1887,15 +1857,16 @@ } }, "node_modules/@octokit/request": { - "version": "10.0.7", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.7.tgz", - "integrity": "sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==", + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.8.tgz", + "integrity": "sha512-SJZNwY9pur9Agf7l87ywFi14W+Hd9Jg6Ifivsd33+/bGUQIjNujdFiXII2/qSlN2ybqUHfp5xpekMEjIBTjlSw==", "license": "MIT", "dependencies": { - "@octokit/endpoint": "^11.0.2", + "@octokit/endpoint": "^11.0.3", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "fast-content-type-parse": "^3.0.0", + "json-with-bigint": "^3.5.3", "universal-user-agent": "^7.0.2" }, "engines": { @@ -1946,46 +1917,6 @@ "url": "https://opencollective.com/pkgr" } }, - "node_modules/@protobuf-ts/plugin": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.11.1.tgz", - "integrity": "sha512-HyuprDcw0bEEJqkOWe1rnXUP0gwYLij8YhPuZyZk6cJbIgc/Q0IFgoHQxOXNIXAcXM4Sbehh6kjVnCzasElw1A==", - "license": "Apache-2.0", - "dependencies": { - "@bufbuild/protobuf": "^2.4.0", - "@bufbuild/protoplugin": "^2.4.0", - "@protobuf-ts/protoc": "^2.11.1", - "@protobuf-ts/runtime": "^2.11.1", - "@protobuf-ts/runtime-rpc": "^2.11.1", - "typescript": "^3.9" - }, - "bin": { - "protoc-gen-dump": "bin/protoc-gen-dump", - "protoc-gen-ts": "bin/protoc-gen-ts" - } - }, - "node_modules/@protobuf-ts/plugin/node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@protobuf-ts/protoc": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.11.1.tgz", - "integrity": "sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg==", - "license": "Apache-2.0", - "bin": { - "protoc": "protoc.js" - } - }, "node_modules/@protobuf-ts/runtime": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.11.1.tgz", @@ -2471,18 +2402,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@typescript/vfs": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.2.tgz", - "integrity": "sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.1" - }, - "peerDependencies": { - "typescript": "*" - } - }, "node_modules/@typespec/ts-http-runtime": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.2.tgz", @@ -6831,6 +6750,12 @@ "dev": true, "license": "MIT" }, + "node_modules/json-with-bigint": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/json-with-bigint/-/json-with-bigint-3.5.3.tgz", + "integrity": "sha512-QObKu6nxy7NsxqR0VK4rkXnsNr5L9ElJaGEg+ucJ6J7/suoKZ0n+p76cu9aCqowytxEbwYNzvrMerfMkXneF5A==", + "license": "MIT" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -9003,6 +8928,7 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index 881fbcc..27e73b1 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "homepage": "https://github.com/actions/download-artifact#readme", "dependencies": { - "@actions/artifact": "^6.2.1", + "@actions/artifact": "^6.3.1", "@actions/core": "^3.0.0", "minimatch": "^10.1.1" },