Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 32f49af665 | |||
| 3f67a24e31 | |||
| e259ee2285 | |||
| 58fa41a101 | |||
| b0d8b47eb7 | |||
| 9b22bf5c9f | |||
| 9cbbc78ff9 |
@@ -11,6 +11,14 @@ Follow the steps below to tag a new release for the `actions/attest` action.
|
||||
gh release create vX.X.X
|
||||
```
|
||||
|
||||
1. Move (or create) the major version tag to point to the same commit tagged
|
||||
above:
|
||||
|
||||
```shell
|
||||
git tag -fa vX -m "vX"
|
||||
git push origin vX --force
|
||||
```
|
||||
|
||||
1. As appropriate, update any actions like
|
||||
[`actions/attest-build-provenance`](https://github.com/actions/attest-build-provenance)
|
||||
and [`actions/attest-sbom`](https://github.com/actions/attest-sbom) which
|
||||
|
||||
@@ -116,7 +116,9 @@ describe('action', () => {
|
||||
|
||||
expect(runMock).toHaveReturned()
|
||||
expect(setFailedMock).toHaveBeenCalledWith(
|
||||
expect.stringMatching(/missing "id-token" permission/)
|
||||
new Error(
|
||||
'missing "id-token" permission. Please add "permissions: id-token: write" to your workflow.'
|
||||
)
|
||||
)
|
||||
})
|
||||
})
|
||||
@@ -131,9 +133,7 @@ describe('action', () => {
|
||||
|
||||
expect(runMock).toHaveReturned()
|
||||
expect(setFailedMock).toHaveBeenCalledWith(
|
||||
expect.stringMatching(
|
||||
/one of subject-path or subject-digest must be provided/i
|
||||
)
|
||||
new Error('One of subject-path or subject-digest must be provided')
|
||||
)
|
||||
})
|
||||
})
|
||||
@@ -330,7 +330,9 @@ describe('action', () => {
|
||||
|
||||
expect(runMock).toHaveReturned()
|
||||
expect(setFailedMock).toHaveBeenCalledWith(
|
||||
'Too many subjects specified. The maximum number of subjects is 64.'
|
||||
new Error(
|
||||
'Too many subjects specified. The maximum number of subjects is 64.'
|
||||
)
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
+462
-143
@@ -11575,6 +11575,96 @@ class OCIError extends Error {
|
||||
exports.OCIError = OCIError;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 437:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
/*
|
||||
Copyright 2024 The Sigstore Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const http2_1 = __nccwpck_require__(85158);
|
||||
const make_fetch_happen_1 = __importDefault(__nccwpck_require__(9525));
|
||||
const proc_log_1 = __nccwpck_require__(56528);
|
||||
const promise_retry_1 = __importDefault(__nccwpck_require__(54742));
|
||||
const { HTTP_STATUS_INTERNAL_SERVER_ERROR, HTTP_STATUS_TOO_MANY_REQUESTS, HTTP_STATUS_REQUEST_TIMEOUT, } = http2_1.constants;
|
||||
const fetchWithRetry = async (url, options = {}) => {
|
||||
return (0, promise_retry_1.default)(async (retry, attemptNum) => {
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
const logRetry = (reason) => {
|
||||
proc_log_1.log.http('fetch', `${options.method} ${url} attempt ${attemptNum} failed with ${reason}`);
|
||||
};
|
||||
const response = await (0, make_fetch_happen_1.default)(url, {
|
||||
...options,
|
||||
retry: false, // We're handling retries ourselves
|
||||
}).catch((reason) => {
|
||||
logRetry(reason);
|
||||
return retry(reason);
|
||||
});
|
||||
if (retryable(response.status)) {
|
||||
logRetry(response.status);
|
||||
return retry(response);
|
||||
}
|
||||
return response;
|
||||
}, retryOpts(options.retry)).catch((err) => {
|
||||
// If we got an actual error, throw it
|
||||
if (err instanceof Error) {
|
||||
throw err;
|
||||
}
|
||||
// Otherwise, return the response (this is simply a retry-able response for
|
||||
// which we exceeded the retry limit)
|
||||
return err;
|
||||
});
|
||||
};
|
||||
// Returns a wrapped fetch function with default options
|
||||
fetchWithRetry.defaults = (defaultOptions = {}, wrappedFetch = fetchWithRetry) => {
|
||||
const defaultedFetch = (url, options = {}) => {
|
||||
const finalOptions = {
|
||||
...defaultOptions,
|
||||
...options,
|
||||
headers: { ...defaultOptions.headers, ...options.headers },
|
||||
};
|
||||
return wrappedFetch(url, finalOptions);
|
||||
};
|
||||
defaultedFetch.defaults = (newDefaults = {}) => fetchWithRetry.defaults(newDefaults, defaultedFetch);
|
||||
return defaultedFetch;
|
||||
};
|
||||
// Determine if a status code is retryable. This includes 5xx errors, 408, and
|
||||
// 429.
|
||||
const retryable = (status) => [HTTP_STATUS_REQUEST_TIMEOUT, HTTP_STATUS_TOO_MANY_REQUESTS].includes(status) || status >= HTTP_STATUS_INTERNAL_SERVER_ERROR;
|
||||
// Normalize the retry options to the format expected by promise-retry
|
||||
const retryOpts = (retry) => {
|
||||
if (typeof retry === 'boolean') {
|
||||
return { retries: retry ? 1 : 0 };
|
||||
}
|
||||
else if (typeof retry === 'number') {
|
||||
return { retries: retry };
|
||||
}
|
||||
else {
|
||||
return { retries: 0, ...retry };
|
||||
}
|
||||
};
|
||||
exports["default"] = fetchWithRetry;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 79539:
|
||||
@@ -11869,11 +11959,11 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const make_fetch_happen_1 = __importDefault(__nccwpck_require__(9525));
|
||||
const node_crypto_1 = __importDefault(__nccwpck_require__(6005));
|
||||
const constants_1 = __nccwpck_require__(61319);
|
||||
const credentials_1 = __nccwpck_require__(95475);
|
||||
const error_1 = __nccwpck_require__(60064);
|
||||
const fetch_1 = __importDefault(__nccwpck_require__(437));
|
||||
class RegistryClient {
|
||||
constructor(registry, repository, opts) {
|
||||
_RegistryClient_instances.add(this);
|
||||
@@ -11881,7 +11971,7 @@ class RegistryClient {
|
||||
_RegistryClient_repository.set(this, void 0);
|
||||
_RegistryClient_fetch.set(this, void 0);
|
||||
__classPrivateFieldSet(this, _RegistryClient_repository, repository, "f");
|
||||
__classPrivateFieldSet(this, _RegistryClient_fetch, make_fetch_happen_1.default.defaults(opts), "f");
|
||||
__classPrivateFieldSet(this, _RegistryClient_fetch, fetch_1.default.defaults(opts), "f");
|
||||
// Use http for localhost registries, https otherwise
|
||||
const hostname = new URL(`http://${registry}`).hostname;
|
||||
/* istanbul ignore next */
|
||||
@@ -13923,8 +14013,23 @@ exports.internalError = internalError;
|
||||
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Copyright 2023 The Sigstore Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.checkStatus = exports.HTTPError = void 0;
|
||||
exports.HTTPError = void 0;
|
||||
class HTTPError extends Error {
|
||||
constructor({ status, message, location, }) {
|
||||
super(`(${status}) ${message}`);
|
||||
@@ -13933,38 +14038,11 @@ class HTTPError extends Error {
|
||||
}
|
||||
}
|
||||
exports.HTTPError = HTTPError;
|
||||
const checkStatus = async (response) => {
|
||||
if (response.ok) {
|
||||
return response;
|
||||
}
|
||||
else {
|
||||
let message = response.statusText;
|
||||
const location = response.headers?.get('Location') || undefined;
|
||||
const contentType = response.headers?.get('Content-Type');
|
||||
// If response type is JSON, try to parse the body for a message
|
||||
if (contentType?.includes('application/json')) {
|
||||
try {
|
||||
await response.json().then((body) => {
|
||||
message = body.message;
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
throw new HTTPError({
|
||||
status: response.status,
|
||||
message: message,
|
||||
location: location,
|
||||
});
|
||||
}
|
||||
};
|
||||
exports.checkStatus = checkStatus;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 62960:
|
||||
/***/ 78509:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
@@ -13972,6 +14050,110 @@ exports.checkStatus = checkStatus;
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.fetchWithRetry = void 0;
|
||||
/*
|
||||
Copyright 2023 The Sigstore Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const http2_1 = __nccwpck_require__(85158);
|
||||
const make_fetch_happen_1 = __importDefault(__nccwpck_require__(9525));
|
||||
const proc_log_1 = __nccwpck_require__(56528);
|
||||
const promise_retry_1 = __importDefault(__nccwpck_require__(54742));
|
||||
const util_1 = __nccwpck_require__(90724);
|
||||
const error_1 = __nccwpck_require__(11294);
|
||||
const { HTTP2_HEADER_LOCATION, HTTP2_HEADER_CONTENT_TYPE, HTTP2_HEADER_USER_AGENT, HTTP_STATUS_INTERNAL_SERVER_ERROR, HTTP_STATUS_TOO_MANY_REQUESTS, HTTP_STATUS_REQUEST_TIMEOUT, } = http2_1.constants;
|
||||
async function fetchWithRetry(url, options) {
|
||||
return (0, promise_retry_1.default)(async (retry, attemptNum) => {
|
||||
const method = options.method || 'POST';
|
||||
const headers = {
|
||||
[HTTP2_HEADER_USER_AGENT]: util_1.ua.getUserAgent(),
|
||||
...options.headers,
|
||||
};
|
||||
const response = await (0, make_fetch_happen_1.default)(url, {
|
||||
method,
|
||||
headers,
|
||||
body: options.body,
|
||||
timeout: options.timeout,
|
||||
retry: false, // We're handling retries ourselves
|
||||
}).catch((reason) => {
|
||||
proc_log_1.log.http('fetch', `${method} ${url} attempt ${attemptNum} failed with ${reason}`);
|
||||
return retry(reason);
|
||||
});
|
||||
if (response.ok) {
|
||||
return response;
|
||||
}
|
||||
else {
|
||||
const error = await errorFromResponse(response);
|
||||
proc_log_1.log.http('fetch', `${method} ${url} attempt ${attemptNum} failed with ${response.status}`);
|
||||
if (retryable(response.status)) {
|
||||
return retry(error);
|
||||
}
|
||||
else {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}, retryOpts(options.retry));
|
||||
}
|
||||
exports.fetchWithRetry = fetchWithRetry;
|
||||
// Translate a Response into an HTTPError instance. This will attempt to parse
|
||||
// the response body for a message, but will default to the statusText if none
|
||||
// is found.
|
||||
const errorFromResponse = async (response) => {
|
||||
let message = response.statusText;
|
||||
const location = response.headers?.get(HTTP2_HEADER_LOCATION) || undefined;
|
||||
const contentType = response.headers?.get(HTTP2_HEADER_CONTENT_TYPE);
|
||||
// If response type is JSON, try to parse the body for a message
|
||||
if (contentType?.includes('application/json')) {
|
||||
try {
|
||||
const body = await response.json();
|
||||
message = body.message || message;
|
||||
}
|
||||
catch (e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
return new error_1.HTTPError({
|
||||
status: response.status,
|
||||
message: message,
|
||||
location: location,
|
||||
});
|
||||
};
|
||||
// Determine if a status code is retryable. This includes 5xx errors, 408, and
|
||||
// 429.
|
||||
const retryable = (status) => [HTTP_STATUS_REQUEST_TIMEOUT, HTTP_STATUS_TOO_MANY_REQUESTS].includes(status) || status >= HTTP_STATUS_INTERNAL_SERVER_ERROR;
|
||||
// Normalize the retry options to the format expected by promise-retry
|
||||
const retryOpts = (retry) => {
|
||||
if (typeof retry === 'boolean') {
|
||||
return { retries: retry ? 1 : 0 };
|
||||
}
|
||||
else if (typeof retry === 'number') {
|
||||
return { retries: retry };
|
||||
}
|
||||
else {
|
||||
return { retries: 0, ...retry };
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 62960:
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.Fulcio = void 0;
|
||||
/*
|
||||
@@ -13989,33 +14171,26 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const make_fetch_happen_1 = __importDefault(__nccwpck_require__(9525));
|
||||
const util_1 = __nccwpck_require__(90724);
|
||||
const error_1 = __nccwpck_require__(11294);
|
||||
const fetch_1 = __nccwpck_require__(78509);
|
||||
/**
|
||||
* Fulcio API client.
|
||||
*/
|
||||
class Fulcio {
|
||||
constructor(options) {
|
||||
this.fetch = make_fetch_happen_1.default.defaults({
|
||||
retry: options.retry,
|
||||
timeout: options.timeout,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'User-Agent': util_1.ua.getUserAgent(),
|
||||
},
|
||||
});
|
||||
this.baseUrl = options.baseURL;
|
||||
this.options = options;
|
||||
}
|
||||
async createSigningCertificate(request) {
|
||||
const url = `${this.baseUrl}/api/v2/signingCert`;
|
||||
const response = await this.fetch(url, {
|
||||
method: 'POST',
|
||||
const { baseURL, retry, timeout } = this.options;
|
||||
const url = `${baseURL}/api/v2/signingCert`;
|
||||
const response = await (0, fetch_1.fetchWithRetry)(url, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(request),
|
||||
timeout,
|
||||
retry,
|
||||
});
|
||||
await (0, error_1.checkStatus)(response);
|
||||
const data = await response.json();
|
||||
return data;
|
||||
return response.json();
|
||||
}
|
||||
}
|
||||
exports.Fulcio = Fulcio;
|
||||
@@ -14024,13 +14199,10 @@ exports.Fulcio = Fulcio;
|
||||
/***/ }),
|
||||
|
||||
/***/ 56205:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.Rekor = void 0;
|
||||
/*
|
||||
@@ -14048,23 +14220,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const make_fetch_happen_1 = __importDefault(__nccwpck_require__(9525));
|
||||
const util_1 = __nccwpck_require__(90724);
|
||||
const error_1 = __nccwpck_require__(11294);
|
||||
const fetch_1 = __nccwpck_require__(78509);
|
||||
/**
|
||||
* Rekor API client.
|
||||
*/
|
||||
class Rekor {
|
||||
constructor(options) {
|
||||
this.fetch = make_fetch_happen_1.default.defaults({
|
||||
retry: options.retry,
|
||||
timeout: options.timeout,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'User-Agent': util_1.ua.getUserAgent(),
|
||||
},
|
||||
});
|
||||
this.baseUrl = options.baseURL;
|
||||
this.options = options;
|
||||
}
|
||||
/**
|
||||
* Create a new entry in the Rekor log.
|
||||
@@ -14072,13 +14234,17 @@ class Rekor {
|
||||
* @returns {Promise<Entry>} The created entry
|
||||
*/
|
||||
async createEntry(propsedEntry) {
|
||||
const url = `${this.baseUrl}/api/v1/log/entries`;
|
||||
const response = await this.fetch(url, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
const { baseURL, timeout, retry } = this.options;
|
||||
const url = `${baseURL}/api/v1/log/entries`;
|
||||
const response = await (0, fetch_1.fetchWithRetry)(url, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Accept: 'application/json',
|
||||
},
|
||||
body: JSON.stringify(propsedEntry),
|
||||
timeout,
|
||||
retry,
|
||||
});
|
||||
await (0, error_1.checkStatus)(response);
|
||||
const data = await response.json();
|
||||
return entryFromResponse(data);
|
||||
}
|
||||
@@ -14088,45 +14254,19 @@ class Rekor {
|
||||
* @returns {Promise<Entry>} The retrieved entry
|
||||
*/
|
||||
async getEntry(uuid) {
|
||||
const url = `${this.baseUrl}/api/v1/log/entries/${uuid}`;
|
||||
const response = await this.fetch(url);
|
||||
await (0, error_1.checkStatus)(response);
|
||||
const { baseURL, timeout, retry } = this.options;
|
||||
const url = `${baseURL}/api/v1/log/entries/${uuid}`;
|
||||
const response = await (0, fetch_1.fetchWithRetry)(url, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
timeout,
|
||||
retry,
|
||||
});
|
||||
const data = await response.json();
|
||||
return entryFromResponse(data);
|
||||
}
|
||||
/**
|
||||
* Search the Rekor log index for entries matching the given query.
|
||||
* @param opts {SearchIndex} Options to search the Rekor log
|
||||
* @returns {Promise<string[]>} UUIDs of matching entries
|
||||
*/
|
||||
async searchIndex(opts) {
|
||||
const url = `${this.baseUrl}/api/v1/index/retrieve`;
|
||||
const response = await this.fetch(url, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(opts),
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
});
|
||||
await (0, error_1.checkStatus)(response);
|
||||
const data = await response.json();
|
||||
return data;
|
||||
}
|
||||
/**
|
||||
* Search the Rekor logs for matching the given query.
|
||||
* @param opts {SearchLogQuery} Query to search the Rekor log
|
||||
* @returns {Promise<Entry[]>} List of matching entries
|
||||
*/
|
||||
async searchLog(opts) {
|
||||
const url = `${this.baseUrl}/api/v1/log/entries/retrieve`;
|
||||
const response = await this.fetch(url, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(opts),
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
});
|
||||
await (0, error_1.checkStatus)(response);
|
||||
const rawData = await response.json();
|
||||
const data = rawData.map((d) => entryFromResponse(d));
|
||||
return data;
|
||||
}
|
||||
}
|
||||
exports.Rekor = Rekor;
|
||||
// Unpack the response from the Rekor API into a more convenient format.
|
||||
@@ -14147,13 +14287,10 @@ function entryFromResponse(data) {
|
||||
/***/ }),
|
||||
|
||||
/***/ 82759:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.TimestampAuthority = void 0;
|
||||
/*
|
||||
@@ -14171,28 +14308,22 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const make_fetch_happen_1 = __importDefault(__nccwpck_require__(9525));
|
||||
const util_1 = __nccwpck_require__(90724);
|
||||
const error_1 = __nccwpck_require__(11294);
|
||||
const fetch_1 = __nccwpck_require__(78509);
|
||||
class TimestampAuthority {
|
||||
constructor(options) {
|
||||
this.fetch = make_fetch_happen_1.default.defaults({
|
||||
retry: options.retry,
|
||||
timeout: options.timeout,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'User-Agent': util_1.ua.getUserAgent(),
|
||||
},
|
||||
});
|
||||
this.baseUrl = options.baseURL;
|
||||
this.options = options;
|
||||
}
|
||||
async createTimestamp(request) {
|
||||
const url = `${this.baseUrl}/api/v1/timestamp`;
|
||||
const response = await this.fetch(url, {
|
||||
method: 'POST',
|
||||
const { baseURL, timeout, retry } = this.options;
|
||||
const url = `${baseURL}/api/v1/timestamp`;
|
||||
const response = await (0, fetch_1.fetchWithRetry)(url, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(request),
|
||||
timeout,
|
||||
retry,
|
||||
});
|
||||
await (0, error_1.checkStatus)(response);
|
||||
return response.buffer();
|
||||
}
|
||||
}
|
||||
@@ -40919,6 +41050,8 @@ class CacheEntry {
|
||||
const cacheWritePromise = new Promise((resolve, reject) => {
|
||||
cacheWriteResolve = resolve
|
||||
cacheWriteReject = reject
|
||||
}).catch((err) => {
|
||||
body.emit('error', err)
|
||||
})
|
||||
|
||||
body = new CachingMinipassPipeline({ events: ['integrity', 'size'] }, new MinipassFlush({
|
||||
@@ -41673,6 +41806,7 @@ const { Minipass } = __nccwpck_require__(14968)
|
||||
const fetch = __nccwpck_require__(68998)
|
||||
const promiseRetry = __nccwpck_require__(54742)
|
||||
const ssri = __nccwpck_require__(4406)
|
||||
const { log } = __nccwpck_require__(56528)
|
||||
|
||||
const CachingMinipassPipeline = __nccwpck_require__(61064)
|
||||
const { getAgent } = __nccwpck_require__(79907)
|
||||
@@ -41760,6 +41894,8 @@ const remoteFetch = (request, options) => {
|
||||
options.onRetry(res)
|
||||
}
|
||||
|
||||
/* eslint-disable-next-line max-len */
|
||||
log.http('fetch', `${req.method} ${req.url} attempt ${attemptNum} failed with ${res.status}`)
|
||||
return retryHandler(res)
|
||||
}
|
||||
|
||||
@@ -41783,6 +41919,7 @@ const remoteFetch = (request, options) => {
|
||||
options.onRetry(err)
|
||||
}
|
||||
|
||||
log.http('fetch', `${req.method} ${req.url} attempt ${attemptNum} failed with ${err.code}`)
|
||||
return retryHandler(err)
|
||||
}
|
||||
}, options.retry).catch((err) => {
|
||||
@@ -49022,6 +49159,166 @@ module.exports = async (
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 56528:
|
||||
/***/ ((module) => {
|
||||
|
||||
const META = Symbol('proc-log.meta')
|
||||
module.exports = {
|
||||
META: META,
|
||||
output: {
|
||||
LEVELS: [
|
||||
'standard',
|
||||
'error',
|
||||
'buffer',
|
||||
'flush',
|
||||
],
|
||||
KEYS: {
|
||||
standard: 'standard',
|
||||
error: 'error',
|
||||
buffer: 'buffer',
|
||||
flush: 'flush',
|
||||
},
|
||||
standard: function (...args) {
|
||||
return process.emit('output', 'standard', ...args)
|
||||
},
|
||||
error: function (...args) {
|
||||
return process.emit('output', 'error', ...args)
|
||||
},
|
||||
buffer: function (...args) {
|
||||
return process.emit('output', 'buffer', ...args)
|
||||
},
|
||||
flush: function (...args) {
|
||||
return process.emit('output', 'flush', ...args)
|
||||
},
|
||||
},
|
||||
log: {
|
||||
LEVELS: [
|
||||
'notice',
|
||||
'error',
|
||||
'warn',
|
||||
'info',
|
||||
'verbose',
|
||||
'http',
|
||||
'silly',
|
||||
'timing',
|
||||
'pause',
|
||||
'resume',
|
||||
],
|
||||
KEYS: {
|
||||
notice: 'notice',
|
||||
error: 'error',
|
||||
warn: 'warn',
|
||||
info: 'info',
|
||||
verbose: 'verbose',
|
||||
http: 'http',
|
||||
silly: 'silly',
|
||||
timing: 'timing',
|
||||
pause: 'pause',
|
||||
resume: 'resume',
|
||||
},
|
||||
error: function (...args) {
|
||||
return process.emit('log', 'error', ...args)
|
||||
},
|
||||
notice: function (...args) {
|
||||
return process.emit('log', 'notice', ...args)
|
||||
},
|
||||
warn: function (...args) {
|
||||
return process.emit('log', 'warn', ...args)
|
||||
},
|
||||
info: function (...args) {
|
||||
return process.emit('log', 'info', ...args)
|
||||
},
|
||||
verbose: function (...args) {
|
||||
return process.emit('log', 'verbose', ...args)
|
||||
},
|
||||
http: function (...args) {
|
||||
return process.emit('log', 'http', ...args)
|
||||
},
|
||||
silly: function (...args) {
|
||||
return process.emit('log', 'silly', ...args)
|
||||
},
|
||||
timing: function (...args) {
|
||||
return process.emit('log', 'timing', ...args)
|
||||
},
|
||||
pause: function () {
|
||||
return process.emit('log', 'pause')
|
||||
},
|
||||
resume: function () {
|
||||
return process.emit('log', 'resume')
|
||||
},
|
||||
},
|
||||
time: {
|
||||
LEVELS: [
|
||||
'start',
|
||||
'end',
|
||||
],
|
||||
KEYS: {
|
||||
start: 'start',
|
||||
end: 'end',
|
||||
},
|
||||
start: function (name, fn) {
|
||||
process.emit('time', 'start', name)
|
||||
function end () {
|
||||
return process.emit('time', 'end', name)
|
||||
}
|
||||
if (typeof fn === 'function') {
|
||||
const res = fn()
|
||||
if (res && res.finally) {
|
||||
return res.finally(end)
|
||||
}
|
||||
end()
|
||||
return res
|
||||
}
|
||||
return end
|
||||
},
|
||||
end: function (name) {
|
||||
return process.emit('time', 'end', name)
|
||||
},
|
||||
},
|
||||
input: {
|
||||
LEVELS: [
|
||||
'start',
|
||||
'end',
|
||||
'read',
|
||||
],
|
||||
KEYS: {
|
||||
start: 'start',
|
||||
end: 'end',
|
||||
read: 'read',
|
||||
},
|
||||
start: function (fn) {
|
||||
process.emit('input', 'start')
|
||||
function end () {
|
||||
return process.emit('input', 'end')
|
||||
}
|
||||
if (typeof fn === 'function') {
|
||||
const res = fn()
|
||||
if (res && res.finally) {
|
||||
return res.finally(end)
|
||||
}
|
||||
end()
|
||||
return res
|
||||
}
|
||||
return end
|
||||
},
|
||||
end: function () {
|
||||
return process.emit('input', 'end')
|
||||
},
|
||||
read: function (...args) {
|
||||
let resolve, reject
|
||||
const promise = new Promise((_resolve, _reject) => {
|
||||
resolve = _resolve
|
||||
reject = _reject
|
||||
})
|
||||
process.emit('input', 'read', resolve, reject, ...args)
|
||||
return promise
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 54742:
|
||||
@@ -79642,14 +79939,25 @@ const endpoints_1 = __nccwpck_require__(69112);
|
||||
const predicate_1 = __nccwpck_require__(72103);
|
||||
const subject_1 = __nccwpck_require__(95206);
|
||||
const COLOR_CYAN = '\x1B[36m';
|
||||
const COLOR_GRAY = '\x1B[38;5;244m';
|
||||
const COLOR_DEFAULT = '\x1B[39m';
|
||||
const ATTESTATION_FILE_NAME = 'attestation.jsonl';
|
||||
const MAX_SUBJECT_COUNT = 64;
|
||||
const OCI_TIMEOUT = 2000;
|
||||
const OCI_RETRY = 3;
|
||||
/* istanbul ignore next */
|
||||
const logHandler = (level, ...args) => {
|
||||
// Send any HTTP-related log events to the GitHub Actions debug log
|
||||
if (level === 'http') {
|
||||
core.debug(args.join(' '));
|
||||
}
|
||||
};
|
||||
/**
|
||||
* The main function for the action.
|
||||
* @returns {Promise<void>} Resolves when the action is complete.
|
||||
*/
|
||||
async function run() {
|
||||
process.on('log', logHandler);
|
||||
// Provenance visibility will be public ONLY if we can confirm that the
|
||||
// repository is public AND the undocumented "private-signing" arg is NOT set.
|
||||
// Otherwise, it will be private.
|
||||
@@ -79694,13 +80002,17 @@ async function run() {
|
||||
}
|
||||
catch (err) {
|
||||
// Fail the workflow run if an error occurs
|
||||
core.setFailed(err instanceof Error ? err.message : /* istanbul ignore next */ `${err}`);
|
||||
core.setFailed(err instanceof Error ? err : /* istanbul ignore next */ `${err}`);
|
||||
// Log the cause of the error if one is available
|
||||
/* istanbul ignore if */
|
||||
if (err instanceof Error && 'cause' in err) {
|
||||
const innerErr = err.cause;
|
||||
core.debug(innerErr instanceof Error ? innerErr.message : `${innerErr}}`);
|
||||
core.info(mute(innerErr instanceof Error ? innerErr.toString() : `${innerErr}`));
|
||||
}
|
||||
}
|
||||
finally {
|
||||
process.removeListener('log', logHandler);
|
||||
}
|
||||
}
|
||||
exports.run = run;
|
||||
const createAttestation = async (subject, predicate, sigstoreInstance) => {
|
||||
@@ -79737,14 +80049,19 @@ const createAttestation = async (subject, predicate, sigstoreInstance) => {
|
||||
annotations: {
|
||||
'dev.sigstore.bundle.content': 'dsse-envelope',
|
||||
'dev.sigstore.bundle.predicateType': core.getInput('predicate-type')
|
||||
}
|
||||
},
|
||||
fetchOpts: { timeout: OCI_TIMEOUT, retry: OCI_RETRY }
|
||||
});
|
||||
core.info(highlight('Attestation uploaded to registry'));
|
||||
core.info(`${subject.name}@${artifact.digest}`);
|
||||
}
|
||||
return attestation;
|
||||
};
|
||||
// Emphasis string using ANSI color codes
|
||||
const highlight = (str) => `${COLOR_CYAN}${str}${COLOR_DEFAULT}`;
|
||||
// De-emphasize string using ANSI color codes
|
||||
/* istanbul ignore next */
|
||||
const mute = (str) => `${COLOR_GRAY}${str}${COLOR_DEFAULT}`;
|
||||
const tempDir = () => {
|
||||
const basePath = process.env['RUNNER_TEMP'];
|
||||
/* istanbul ignore if */
|
||||
@@ -83326,7 +83643,7 @@ exports.LRUCache = LRUCache;
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.Glob = void 0;
|
||||
const minimatch_1 = __nccwpck_require__(7111);
|
||||
const path_scurry_1 = __nccwpck_require__(69569);
|
||||
const path_scurry_1 = __nccwpck_require__(51081);
|
||||
const url_1 = __nccwpck_require__(57310);
|
||||
const pattern_js_1 = __nccwpck_require__(92895);
|
||||
const walker_js_1 = __nccwpck_require__(45548);
|
||||
@@ -89034,7 +89351,7 @@ exports.Minipass = Minipass;
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 69569:
|
||||
/***/ 51081:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
@@ -89115,21 +89432,21 @@ const IFMT = 0b1111;
|
||||
// mask to unset low 4 bits
|
||||
const IFMT_UNKNOWN = ~IFMT;
|
||||
// set after successfully calling readdir() and getting entries.
|
||||
const READDIR_CALLED = 16;
|
||||
const READDIR_CALLED = 0b0000_0001_0000;
|
||||
// set after a successful lstat()
|
||||
const LSTAT_CALLED = 32;
|
||||
const LSTAT_CALLED = 0b0000_0010_0000;
|
||||
// set if an entry (or one of its parents) is definitely not a dir
|
||||
const ENOTDIR = 64;
|
||||
const ENOTDIR = 0b0000_0100_0000;
|
||||
// set if an entry (or one of its parents) does not exist
|
||||
// (can also be set on lstat errors like EACCES or ENAMETOOLONG)
|
||||
const ENOENT = 128;
|
||||
const ENOENT = 0b0000_1000_0000;
|
||||
// cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK
|
||||
// set if we fail to readlink
|
||||
const ENOREADLINK = 256;
|
||||
const ENOREADLINK = 0b0001_0000_0000;
|
||||
// set if we know realpath() will fail
|
||||
const ENOREALPATH = 512;
|
||||
const ENOREALPATH = 0b0010_0000_0000;
|
||||
const ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
|
||||
const TYPEMASK = 1023;
|
||||
const TYPEMASK = 0b0011_1111_1111;
|
||||
const entToType = (s) => s.isFile()
|
||||
? IFREG
|
||||
: s.isDirectory()
|
||||
@@ -89743,7 +90060,7 @@ class PathBase {
|
||||
/* c8 ignore stop */
|
||||
try {
|
||||
const read = await this.#fs.promises.readlink(this.fullpath());
|
||||
const linkTarget = this.parent.resolve(read);
|
||||
const linkTarget = (await this.parent.realpath())?.resolve(read);
|
||||
if (linkTarget) {
|
||||
return (this.#linkTarget = linkTarget);
|
||||
}
|
||||
@@ -89772,7 +90089,7 @@ class PathBase {
|
||||
/* c8 ignore stop */
|
||||
try {
|
||||
const read = this.#fs.readlinkSync(this.fullpath());
|
||||
const linkTarget = this.parent.resolve(read);
|
||||
const linkTarget = (this.parent.realpathSync())?.resolve(read);
|
||||
if (linkTarget) {
|
||||
return (this.#linkTarget = linkTarget);
|
||||
}
|
||||
@@ -89787,7 +90104,9 @@ class PathBase {
|
||||
this.#type |= READDIR_CALLED;
|
||||
// mark all remaining provisional children as ENOENT
|
||||
for (let p = children.provisional; p < children.length; p++) {
|
||||
children[p].#markENOENT();
|
||||
const c = children[p];
|
||||
if (c)
|
||||
c.#markENOENT();
|
||||
}
|
||||
}
|
||||
#markENOENT() {
|
||||
@@ -93860,7 +94179,7 @@ exports.parse = parse;
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = {"i8":"2.3.0"};
|
||||
module.exports = {"i8":"2.3.1"};
|
||||
|
||||
/***/ }),
|
||||
|
||||
@@ -93940,7 +94259,7 @@ module.exports = JSON.parse('[["0","\\u0000",128],["a1","。",62],["8140","
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = JSON.parse('{"name":"make-fetch-happen","version":"13.0.0","description":"Opinionated, caching, retrying fetch client","main":"lib/index.js","files":["bin/","lib/"],"scripts":{"test":"tap","posttest":"npm run lint","eslint":"eslint","lint":"eslint \\"**/*.js\\"","lintfix":"npm run lint -- --fix","postlint":"template-oss-check","snap":"tap","template-oss-apply":"template-oss-apply --force"},"repository":{"type":"git","url":"https://github.com/npm/make-fetch-happen.git"},"keywords":["http","request","fetch","mean girls","caching","cache","subresource integrity"],"author":"GitHub Inc.","license":"ISC","dependencies":{"@npmcli/agent":"^2.0.0","cacache":"^18.0.0","http-cache-semantics":"^4.1.1","is-lambda":"^1.0.1","minipass":"^7.0.2","minipass-fetch":"^3.0.0","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4","negotiator":"^0.6.3","promise-retry":"^2.0.1","ssri":"^10.0.0"},"devDependencies":{"@npmcli/eslint-config":"^4.0.0","@npmcli/template-oss":"4.18.0","nock":"^13.2.4","safe-buffer":"^5.2.1","standard-version":"^9.3.2","tap":"^16.0.0"},"engines":{"node":"^16.14.0 || >=18.0.0"},"tap":{"color":1,"files":"test/*.js","check-coverage":true,"timeout":60,"nyc-arg":["--exclude","tap-snapshots/**"]},"templateOSS":{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.","ciVersions":["16.14.0","16.x","18.0.0","18.x"],"version":"4.18.0","publish":"true"}}');
|
||||
module.exports = JSON.parse('{"name":"make-fetch-happen","version":"13.0.1","description":"Opinionated, caching, retrying fetch client","main":"lib/index.js","files":["bin/","lib/"],"scripts":{"test":"tap","posttest":"npm run lint","eslint":"eslint","lint":"eslint \\"**/*.{js,cjs,ts,mjs,jsx,tsx}\\"","lintfix":"npm run lint -- --fix","postlint":"template-oss-check","snap":"tap","template-oss-apply":"template-oss-apply --force"},"repository":{"type":"git","url":"https://github.com/npm/make-fetch-happen.git"},"keywords":["http","request","fetch","mean girls","caching","cache","subresource integrity"],"author":"GitHub Inc.","license":"ISC","dependencies":{"@npmcli/agent":"^2.0.0","cacache":"^18.0.0","http-cache-semantics":"^4.1.1","is-lambda":"^1.0.1","minipass":"^7.0.2","minipass-fetch":"^3.0.0","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4","negotiator":"^0.6.3","proc-log":"^4.2.0","promise-retry":"^2.0.1","ssri":"^10.0.0"},"devDependencies":{"@npmcli/eslint-config":"^4.0.0","@npmcli/template-oss":"4.21.4","nock":"^13.2.4","safe-buffer":"^5.2.1","standard-version":"^9.3.2","tap":"^16.0.0"},"engines":{"node":"^16.14.0 || >=18.0.0"},"tap":{"color":1,"files":"test/*.js","check-coverage":true,"timeout":60,"nyc-arg":["--exclude","tap-snapshots/**"]},"templateOSS":{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.","version":"4.21.4","publish":"true"}}');
|
||||
|
||||
/***/ }),
|
||||
|
||||
|
||||
+19
@@ -2887,6 +2887,25 @@ will be liable to anyone for any damages related to this
|
||||
software or this license, under any kind of legal claim.***
|
||||
|
||||
|
||||
proc-log
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) GitHub, Inc.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
promise-retry
|
||||
MIT
|
||||
Copyright (c) 2014 IndigoUnited
|
||||
|
||||
Generated
+176
-319
@@ -1,36 +1,36 @@
|
||||
{
|
||||
"name": "actions/attest",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "actions/attest",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/attest": "^1.2.1",
|
||||
"@actions/core": "^1.10.1",
|
||||
"@actions/glob": "^0.4.0",
|
||||
"@sigstore/oci": "^0.3.0",
|
||||
"@sigstore/oci": "^0.3.2",
|
||||
"csv-parse": "^5.5.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sigstore/mock": "^0.7.2",
|
||||
"@types/jest": "^29.5.12",
|
||||
"@types/make-fetch-happen": "^10.0.4",
|
||||
"@types/node": "^20.12.7",
|
||||
"@types/node": "^20.12.10",
|
||||
"@typescript-eslint/eslint-plugin": "^7.8.0",
|
||||
"@typescript-eslint/parser": "^7.8.0",
|
||||
"@vercel/ncc": "^0.38.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-plugin-github": "^4.10.2",
|
||||
"eslint-plugin-jest": "^28.3.0",
|
||||
"eslint-plugin-jest": "^28.5.0",
|
||||
"eslint-plugin-jsonc": "^2.15.1",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"jest": "^29.7.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"markdownlint-cli": "^0.39.0",
|
||||
"markdownlint-cli": "^0.40.0",
|
||||
"nock": "^13.5.4",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-eslint": "^16.3.0",
|
||||
@@ -1729,11 +1729,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sigstore/oci": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/oci/-/oci-0.3.0.tgz",
|
||||
"integrity": "sha512-RZeirZtdSQvBC04j+rvPwBOnzMsc1NC3Ucx4krSh37Ch/Z1BwwAEV3QDQ18McXX2Guvc2pnWeGd6RXn+vpivww==",
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/oci/-/oci-0.3.2.tgz",
|
||||
"integrity": "sha512-3UJC2SV+A4HuILse/jvodDI+0QIN13fErxu3roX5HU9wOeP31UHH/WMQBlN3l5DVewXTufNs3Q85DzOI1tQNLQ==",
|
||||
"dependencies": {
|
||||
"make-fetch-happen": "^13.0.0"
|
||||
"make-fetch-happen": "^13.0.1",
|
||||
"proc-log": "^4.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.14.0 || >=18.0.0"
|
||||
@@ -1748,14 +1749,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sigstore/sign": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz",
|
||||
"integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==",
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.1.tgz",
|
||||
"integrity": "sha512-YZ71wKIOweC8ViUeZXboz0iPLqMkskxuoeN/D1CEpAyZvEepbX9oRMIoO6a/DxUqO1VEaqmcmmqzSiqtOsvSmw==",
|
||||
"dependencies": {
|
||||
"@sigstore/bundle": "^2.3.0",
|
||||
"@sigstore/core": "^1.0.0",
|
||||
"@sigstore/protobuf-specs": "^0.3.1",
|
||||
"make-fetch-happen": "^13.0.0"
|
||||
"make-fetch-happen": "^13.0.1",
|
||||
"proc-log": "^4.2.0",
|
||||
"promise-retry": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.14.0 || >=18.0.0"
|
||||
@@ -1955,9 +1958,9 @@
|
||||
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.12.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
|
||||
"integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
|
||||
"version": "20.12.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz",
|
||||
"integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==",
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
@@ -3043,12 +3046,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
|
||||
"integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
|
||||
"version": "12.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz",
|
||||
"integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/common-tags": {
|
||||
@@ -3774,12 +3777,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest": {
|
||||
"version": "28.3.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.3.0.tgz",
|
||||
"integrity": "sha512-5LjCSSno8E+IUCOX4hJiIb/upPIgpkaDEcaN/40gOcw26t/5UTLHFc4JdxKjOOvGTh0XdCu+fNr0fpOVNvcxMA==",
|
||||
"version": "28.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.5.0.tgz",
|
||||
"integrity": "sha512-6np6DGdmNq/eBbA7HOUNV8fkfL86PYwBfwyb8n23FXgJNTR8+ot3smRHjza9LGsBBZRypK3qyF79vMjohIL8eQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/utils": "^6.0.0"
|
||||
"@typescript-eslint/utils": "^6.0.0 || ^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.10.0 || ^18.12.0 || >=20.0.0"
|
||||
@@ -3798,130 +3801,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
|
||||
"integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"@typescript-eslint/visitor-keys": "6.21.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.0.0 || >=18.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
|
||||
"integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^16.0.0 || >=18.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
|
||||
"integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"@typescript-eslint/visitor-keys": "6.21.0",
|
||||
"debug": "^4.3.4",
|
||||
"globby": "^11.1.0",
|
||||
"is-glob": "^4.0.3",
|
||||
"minimatch": "9.0.3",
|
||||
"semver": "^7.5.4",
|
||||
"ts-api-utils": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.0.0 || >=18.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
|
||||
"integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.4.0",
|
||||
"@types/json-schema": "^7.0.12",
|
||||
"@types/semver": "^7.5.0",
|
||||
"@typescript-eslint/scope-manager": "6.21.0",
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"@typescript-eslint/typescript-estree": "6.21.0",
|
||||
"semver": "^7.5.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.0.0 || >=18.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^7.0.0 || ^8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
|
||||
"integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"eslint-visitor-keys": "^3.4.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.0.0 || >=18.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jest/node_modules/minimatch": {
|
||||
"version": "9.0.3",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
|
||||
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-jsonc": {
|
||||
"version": "2.15.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.15.1.tgz",
|
||||
@@ -5934,6 +5813,15 @@
|
||||
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/jsonpointer": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
|
||||
"integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/jsonwebtoken": {
|
||||
"version": "9.0.2",
|
||||
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
|
||||
@@ -6309,8 +6197,9 @@
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/make-fetch-happen": {
|
||||
"version": "13.0.0",
|
||||
"license": "ISC",
|
||||
"version": "13.0.1",
|
||||
"resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
|
||||
"integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
|
||||
"dependencies": {
|
||||
"@npmcli/agent": "^2.0.0",
|
||||
"cacache": "^18.0.0",
|
||||
@@ -6321,6 +6210,7 @@
|
||||
"minipass-flush": "^1.0.5",
|
||||
"minipass-pipeline": "^1.2.4",
|
||||
"negotiator": "^0.6.3",
|
||||
"proc-log": "^4.2.0",
|
||||
"promise-retry": "^2.0.1",
|
||||
"ssri": "^10.0.0"
|
||||
},
|
||||
@@ -6337,9 +6227,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markdown-it": {
|
||||
"version": "14.0.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz",
|
||||
"integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==",
|
||||
"version": "14.1.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
|
||||
"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"argparse": "^2.0.1",
|
||||
@@ -6347,20 +6237,20 @@
|
||||
"linkify-it": "^5.0.0",
|
||||
"mdurl": "^2.0.0",
|
||||
"punycode.js": "^2.3.1",
|
||||
"uc.micro": "^2.0.0"
|
||||
"uc.micro": "^2.1.0"
|
||||
},
|
||||
"bin": {
|
||||
"markdown-it": "bin/markdown-it.mjs"
|
||||
}
|
||||
},
|
||||
"node_modules/markdownlint": {
|
||||
"version": "0.33.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz",
|
||||
"integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==",
|
||||
"version": "0.34.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz",
|
||||
"integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"markdown-it": "14.0.0",
|
||||
"markdownlint-micromark": "0.1.8"
|
||||
"markdown-it": "14.1.0",
|
||||
"markdownlint-micromark": "0.1.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
@@ -6370,20 +6260,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markdownlint-cli": {
|
||||
"version": "0.39.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.39.0.tgz",
|
||||
"integrity": "sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==",
|
||||
"version": "0.40.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.40.0.tgz",
|
||||
"integrity": "sha512-JXhI3dRQcaqwiFYpPz6VJ7aKYheD53GmTz9y4D/d0F1MbZDGOp9pqKlbOfUX/pHP/iAoeiE4wYRmk8/kjLakxA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"commander": "~11.1.0",
|
||||
"commander": "~12.0.0",
|
||||
"get-stdin": "~9.0.0",
|
||||
"glob": "~10.3.10",
|
||||
"ignore": "~5.3.0",
|
||||
"glob": "~10.3.12",
|
||||
"ignore": "~5.3.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"jsonc-parser": "~3.2.1",
|
||||
"markdownlint": "~0.33.0",
|
||||
"minimatch": "~9.0.3",
|
||||
"run-con": "~1.3.2"
|
||||
"jsonpointer": "5.0.1",
|
||||
"markdownlint": "~0.34.0",
|
||||
"minimatch": "~9.0.4",
|
||||
"run-con": "~1.3.2",
|
||||
"toml": "~3.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"markdownlint": "markdownlint.js"
|
||||
@@ -6402,16 +6294,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markdownlint-cli/node_modules/glob": {
|
||||
"version": "10.3.10",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
||||
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
|
||||
"version": "10.3.12",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
|
||||
"integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"foreground-child": "^3.1.0",
|
||||
"jackspeak": "^2.3.5",
|
||||
"jackspeak": "^2.3.6",
|
||||
"minimatch": "^9.0.1",
|
||||
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
|
||||
"path-scurry": "^1.10.1"
|
||||
"minipass": "^7.0.4",
|
||||
"path-scurry": "^1.10.2"
|
||||
},
|
||||
"bin": {
|
||||
"glob": "dist/esm/bin.mjs"
|
||||
@@ -6424,9 +6316,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markdownlint-cli/node_modules/minimatch": {
|
||||
"version": "9.0.3",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
|
||||
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
|
||||
"version": "9.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
|
||||
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
@@ -6439,12 +6331,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markdownlint-micromark": {
|
||||
"version": "0.1.8",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz",
|
||||
"integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==",
|
||||
"version": "0.1.9",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz",
|
||||
"integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/DavidAnson"
|
||||
@@ -6964,10 +6856,11 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/path-scurry": {
|
||||
"version": "1.10.1",
|
||||
"license": "BlueOak-1.0.0",
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz",
|
||||
"integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==",
|
||||
"dependencies": {
|
||||
"lru-cache": "^9.1.1 || ^10.0.0",
|
||||
"lru-cache": "^10.2.0",
|
||||
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
@@ -7318,6 +7211,14 @@
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/proc-log": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
|
||||
"integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
|
||||
"engines": {
|
||||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/promise-retry": {
|
||||
"version": "2.0.1",
|
||||
"license": "MIT",
|
||||
@@ -8140,6 +8041,12 @@
|
||||
"node": ">=8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/toml": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz",
|
||||
"integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ts-api-utils": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
|
||||
@@ -8374,9 +8281,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/uc.micro": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz",
|
||||
"integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
|
||||
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/unbox-primitive": {
|
||||
@@ -9907,11 +9814,12 @@
|
||||
}
|
||||
},
|
||||
"@sigstore/oci": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/oci/-/oci-0.3.0.tgz",
|
||||
"integrity": "sha512-RZeirZtdSQvBC04j+rvPwBOnzMsc1NC3Ucx4krSh37Ch/Z1BwwAEV3QDQ18McXX2Guvc2pnWeGd6RXn+vpivww==",
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/oci/-/oci-0.3.2.tgz",
|
||||
"integrity": "sha512-3UJC2SV+A4HuILse/jvodDI+0QIN13fErxu3roX5HU9wOeP31UHH/WMQBlN3l5DVewXTufNs3Q85DzOI1tQNLQ==",
|
||||
"requires": {
|
||||
"make-fetch-happen": "^13.0.0"
|
||||
"make-fetch-happen": "^13.0.1",
|
||||
"proc-log": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"@sigstore/protobuf-specs": {
|
||||
@@ -9920,14 +9828,16 @@
|
||||
"integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ=="
|
||||
},
|
||||
"@sigstore/sign": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz",
|
||||
"integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==",
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.1.tgz",
|
||||
"integrity": "sha512-YZ71wKIOweC8ViUeZXboz0iPLqMkskxuoeN/D1CEpAyZvEepbX9oRMIoO6a/DxUqO1VEaqmcmmqzSiqtOsvSmw==",
|
||||
"requires": {
|
||||
"@sigstore/bundle": "^2.3.0",
|
||||
"@sigstore/core": "^1.0.0",
|
||||
"@sigstore/protobuf-specs": "^0.3.1",
|
||||
"make-fetch-happen": "^13.0.0"
|
||||
"make-fetch-happen": "^13.0.1",
|
||||
"proc-log": "^4.2.0",
|
||||
"promise-retry": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"@sinclair/typebox": {
|
||||
@@ -10109,9 +10019,9 @@
|
||||
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "20.12.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
|
||||
"integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
|
||||
"version": "20.12.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz",
|
||||
"integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==",
|
||||
"requires": {
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
@@ -10812,9 +10722,9 @@
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
|
||||
"integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
|
||||
"version": "12.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz",
|
||||
"integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==",
|
||||
"dev": true
|
||||
},
|
||||
"common-tags": {
|
||||
@@ -11348,89 +11258,12 @@
|
||||
}
|
||||
},
|
||||
"eslint-plugin-jest": {
|
||||
"version": "28.3.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.3.0.tgz",
|
||||
"integrity": "sha512-5LjCSSno8E+IUCOX4hJiIb/upPIgpkaDEcaN/40gOcw26t/5UTLHFc4JdxKjOOvGTh0XdCu+fNr0fpOVNvcxMA==",
|
||||
"version": "28.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.5.0.tgz",
|
||||
"integrity": "sha512-6np6DGdmNq/eBbA7HOUNV8fkfL86PYwBfwyb8n23FXgJNTR8+ot3smRHjza9LGsBBZRypK3qyF79vMjohIL8eQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/utils": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
|
||||
"integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"@typescript-eslint/visitor-keys": "6.21.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
|
||||
"integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
|
||||
"integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"@typescript-eslint/visitor-keys": "6.21.0",
|
||||
"debug": "^4.3.4",
|
||||
"globby": "^11.1.0",
|
||||
"is-glob": "^4.0.3",
|
||||
"minimatch": "9.0.3",
|
||||
"semver": "^7.5.4",
|
||||
"ts-api-utils": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/utils": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
|
||||
"integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint-community/eslint-utils": "^4.4.0",
|
||||
"@types/json-schema": "^7.0.12",
|
||||
"@types/semver": "^7.5.0",
|
||||
"@typescript-eslint/scope-manager": "6.21.0",
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"@typescript-eslint/typescript-estree": "6.21.0",
|
||||
"semver": "^7.5.4"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
|
||||
"integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "6.21.0",
|
||||
"eslint-visitor-keys": "^3.4.1"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "9.0.3",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
|
||||
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
}
|
||||
}
|
||||
"@typescript-eslint/utils": "^6.0.0 || ^7.0.0"
|
||||
}
|
||||
},
|
||||
"eslint-plugin-jsonc": {
|
||||
@@ -12732,6 +12565,12 @@
|
||||
"integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
|
||||
"dev": true
|
||||
},
|
||||
"jsonpointer": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
|
||||
"integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
|
||||
"dev": true
|
||||
},
|
||||
"jsonwebtoken": {
|
||||
"version": "9.0.2",
|
||||
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
|
||||
@@ -13031,7 +12870,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"make-fetch-happen": {
|
||||
"version": "13.0.0",
|
||||
"version": "13.0.1",
|
||||
"resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
|
||||
"integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
|
||||
"requires": {
|
||||
"@npmcli/agent": "^2.0.0",
|
||||
"cacache": "^18.0.0",
|
||||
@@ -13042,6 +12883,7 @@
|
||||
"minipass-flush": "^1.0.5",
|
||||
"minipass-pipeline": "^1.2.4",
|
||||
"negotiator": "^0.6.3",
|
||||
"proc-log": "^4.2.0",
|
||||
"promise-retry": "^2.0.1",
|
||||
"ssri": "^10.0.0"
|
||||
}
|
||||
@@ -13054,9 +12896,9 @@
|
||||
}
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "14.0.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz",
|
||||
"integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==",
|
||||
"version": "14.1.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
|
||||
"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^2.0.1",
|
||||
@@ -13064,34 +12906,36 @@
|
||||
"linkify-it": "^5.0.0",
|
||||
"mdurl": "^2.0.0",
|
||||
"punycode.js": "^2.3.1",
|
||||
"uc.micro": "^2.0.0"
|
||||
"uc.micro": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"markdownlint": {
|
||||
"version": "0.33.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz",
|
||||
"integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==",
|
||||
"version": "0.34.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz",
|
||||
"integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"markdown-it": "14.0.0",
|
||||
"markdownlint-micromark": "0.1.8"
|
||||
"markdown-it": "14.1.0",
|
||||
"markdownlint-micromark": "0.1.9"
|
||||
}
|
||||
},
|
||||
"markdownlint-cli": {
|
||||
"version": "0.39.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.39.0.tgz",
|
||||
"integrity": "sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==",
|
||||
"version": "0.40.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.40.0.tgz",
|
||||
"integrity": "sha512-JXhI3dRQcaqwiFYpPz6VJ7aKYheD53GmTz9y4D/d0F1MbZDGOp9pqKlbOfUX/pHP/iAoeiE4wYRmk8/kjLakxA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "~11.1.0",
|
||||
"commander": "~12.0.0",
|
||||
"get-stdin": "~9.0.0",
|
||||
"glob": "~10.3.10",
|
||||
"ignore": "~5.3.0",
|
||||
"glob": "~10.3.12",
|
||||
"ignore": "~5.3.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"jsonc-parser": "~3.2.1",
|
||||
"markdownlint": "~0.33.0",
|
||||
"minimatch": "~9.0.3",
|
||||
"run-con": "~1.3.2"
|
||||
"jsonpointer": "5.0.1",
|
||||
"markdownlint": "~0.34.0",
|
||||
"minimatch": "~9.0.4",
|
||||
"run-con": "~1.3.2",
|
||||
"toml": "~3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
@@ -13104,22 +12948,22 @@
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "10.3.10",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
||||
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
|
||||
"version": "10.3.12",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
|
||||
"integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"foreground-child": "^3.1.0",
|
||||
"jackspeak": "^2.3.5",
|
||||
"jackspeak": "^2.3.6",
|
||||
"minimatch": "^9.0.1",
|
||||
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
|
||||
"path-scurry": "^1.10.1"
|
||||
"minipass": "^7.0.4",
|
||||
"path-scurry": "^1.10.2"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "9.0.3",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
|
||||
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
|
||||
"version": "9.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
|
||||
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
@@ -13128,9 +12972,9 @@
|
||||
}
|
||||
},
|
||||
"markdownlint-micromark": {
|
||||
"version": "0.1.8",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz",
|
||||
"integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==",
|
||||
"version": "0.1.9",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz",
|
||||
"integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==",
|
||||
"dev": true
|
||||
},
|
||||
"mdurl": {
|
||||
@@ -13462,9 +13306,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"path-scurry": {
|
||||
"version": "1.10.1",
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz",
|
||||
"integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==",
|
||||
"requires": {
|
||||
"lru-cache": "^9.1.1 || ^10.0.0",
|
||||
"lru-cache": "^10.2.0",
|
||||
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -13669,6 +13515,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"proc-log": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
|
||||
"integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA=="
|
||||
},
|
||||
"promise-retry": {
|
||||
"version": "2.0.1",
|
||||
"requires": {
|
||||
@@ -14184,6 +14035,12 @@
|
||||
"is-number": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"toml": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz",
|
||||
"integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==",
|
||||
"dev": true
|
||||
},
|
||||
"ts-api-utils": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
|
||||
@@ -14332,9 +14189,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"uc.micro": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz",
|
||||
"integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
|
||||
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
|
||||
"dev": true
|
||||
},
|
||||
"unbox-primitive": {
|
||||
|
||||
+5
-5
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "actions/attest",
|
||||
"description": "Generate signed attestations for workflow artifacts",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"author": "",
|
||||
"private": true,
|
||||
"homepage": "https://github.com/actions/attest",
|
||||
@@ -72,25 +72,25 @@
|
||||
"@actions/attest": "^1.2.1",
|
||||
"@actions/core": "^1.10.1",
|
||||
"@actions/glob": "^0.4.0",
|
||||
"@sigstore/oci": "^0.3.0",
|
||||
"@sigstore/oci": "^0.3.2",
|
||||
"csv-parse": "^5.5.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sigstore/mock": "^0.7.2",
|
||||
"@types/jest": "^29.5.12",
|
||||
"@types/make-fetch-happen": "^10.0.4",
|
||||
"@types/node": "^20.12.7",
|
||||
"@types/node": "^20.12.10",
|
||||
"@typescript-eslint/eslint-plugin": "^7.8.0",
|
||||
"@typescript-eslint/parser": "^7.8.0",
|
||||
"@vercel/ncc": "^0.38.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-plugin-github": "^4.10.2",
|
||||
"eslint-plugin-jest": "^28.3.0",
|
||||
"eslint-plugin-jest": "^28.5.0",
|
||||
"eslint-plugin-jsonc": "^2.15.1",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"jest": "^29.7.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"markdownlint-cli": "^0.39.0",
|
||||
"markdownlint-cli": "^0.40.0",
|
||||
"nock": "^13.5.4",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-eslint": "^16.3.0",
|
||||
|
||||
+28
-3
@@ -13,16 +13,30 @@ type SigstoreInstance = 'public-good' | 'github'
|
||||
type AttestedSubject = { subject: Subject; attestationID: string }
|
||||
|
||||
const COLOR_CYAN = '\x1B[36m'
|
||||
const COLOR_GRAY = '\x1B[38;5;244m'
|
||||
const COLOR_DEFAULT = '\x1B[39m'
|
||||
const ATTESTATION_FILE_NAME = 'attestation.jsonl'
|
||||
|
||||
const MAX_SUBJECT_COUNT = 64
|
||||
|
||||
const OCI_TIMEOUT = 2000
|
||||
const OCI_RETRY = 3
|
||||
|
||||
/* istanbul ignore next */
|
||||
const logHandler = (level: string, ...args: unknown[]): void => {
|
||||
// Send any HTTP-related log events to the GitHub Actions debug log
|
||||
if (level === 'http') {
|
||||
core.debug(args.join(' '))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The main function for the action.
|
||||
* @returns {Promise<void>} Resolves when the action is complete.
|
||||
*/
|
||||
export async function run(): Promise<void> {
|
||||
process.on('log', logHandler)
|
||||
|
||||
// Provenance visibility will be public ONLY if we can confirm that the
|
||||
// repository is public AND the undocumented "private-signing" arg is NOT set.
|
||||
// Otherwise, it will be private.
|
||||
@@ -86,14 +100,19 @@ export async function run(): Promise<void> {
|
||||
} catch (err) {
|
||||
// Fail the workflow run if an error occurs
|
||||
core.setFailed(
|
||||
err instanceof Error ? err.message : /* istanbul ignore next */ `${err}`
|
||||
err instanceof Error ? err : /* istanbul ignore next */ `${err}`
|
||||
)
|
||||
|
||||
// Log the cause of the error if one is available
|
||||
/* istanbul ignore if */
|
||||
if (err instanceof Error && 'cause' in err) {
|
||||
const innerErr = err.cause
|
||||
core.debug(innerErr instanceof Error ? innerErr.message : `${innerErr}}`)
|
||||
core.info(
|
||||
mute(innerErr instanceof Error ? innerErr.toString() : `${innerErr}`)
|
||||
)
|
||||
}
|
||||
} finally {
|
||||
process.removeListener('log', logHandler)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +166,8 @@ const createAttestation = async (
|
||||
annotations: {
|
||||
'dev.sigstore.bundle.content': 'dsse-envelope',
|
||||
'dev.sigstore.bundle.predicateType': core.getInput('predicate-type')
|
||||
}
|
||||
},
|
||||
fetchOpts: { timeout: OCI_TIMEOUT, retry: OCI_RETRY }
|
||||
})
|
||||
core.info(highlight('Attestation uploaded to registry'))
|
||||
core.info(`${subject.name}@${artifact.digest}`)
|
||||
@@ -156,8 +176,13 @@ const createAttestation = async (
|
||||
return attestation
|
||||
}
|
||||
|
||||
// Emphasis string using ANSI color codes
|
||||
const highlight = (str: string): string => `${COLOR_CYAN}${str}${COLOR_DEFAULT}`
|
||||
|
||||
// De-emphasize string using ANSI color codes
|
||||
/* istanbul ignore next */
|
||||
const mute = (str: string): string => `${COLOR_GRAY}${str}${COLOR_DEFAULT}`
|
||||
|
||||
const tempDir = (): string => {
|
||||
const basePath = process.env['RUNNER_TEMP']
|
||||
|
||||
|
||||
Reference in New Issue
Block a user