Deployed the page to Github Pages.
This commit is contained in:
parent
1d79754e93
commit
2c89899458
62797 changed files with 6551425 additions and 15279 deletions
9
node_modules/@sigstore/sign/dist/external/error.d.ts
generated
vendored
Normal file
9
node_modules/@sigstore/sign/dist/external/error.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
export declare class HTTPError extends Error {
|
||||
statusCode: number;
|
||||
location?: string;
|
||||
constructor({ status, message, location, }: {
|
||||
status: number;
|
||||
message: string;
|
||||
location?: string;
|
||||
});
|
||||
}
|
26
node_modules/@sigstore/sign/dist/external/error.js
generated
vendored
Normal file
26
node_modules/@sigstore/sign/dist/external/error.js
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
"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.HTTPError = void 0;
|
||||
class HTTPError extends Error {
|
||||
constructor({ status, message, location, }) {
|
||||
super(`(${status}) ${message}`);
|
||||
this.statusCode = status;
|
||||
this.location = location;
|
||||
}
|
||||
}
|
||||
exports.HTTPError = HTTPError;
|
4
node_modules/@sigstore/sign/dist/external/fetch.d.ts
generated
vendored
Normal file
4
node_modules/@sigstore/sign/dist/external/fetch.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
import fetch, { FetchOptions } from 'make-fetch-happen';
|
||||
type Response = Awaited<ReturnType<typeof fetch>>;
|
||||
export declare function fetchWithRetry(url: string, options: FetchOptions): Promise<Response>;
|
||||
export {};
|
99
node_modules/@sigstore/sign/dist/external/fetch.js
generated
vendored
Normal file
99
node_modules/@sigstore/sign/dist/external/fetch.js
generated
vendored
Normal file
|
@ -0,0 +1,99 @@
|
|||
"use strict";
|
||||
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 = require("http2");
|
||||
const make_fetch_happen_1 = __importDefault(require("make-fetch-happen"));
|
||||
const proc_log_1 = require("proc-log");
|
||||
const promise_retry_1 = __importDefault(require("promise-retry"));
|
||||
const util_1 = require("../util");
|
||||
const error_1 = require("./error");
|
||||
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 };
|
||||
}
|
||||
};
|
37
node_modules/@sigstore/sign/dist/external/fulcio.d.ts
generated
vendored
Normal file
37
node_modules/@sigstore/sign/dist/external/fulcio.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
import type { FetchOptions } from '../types/fetch';
|
||||
export type FulcioOptions = {
|
||||
baseURL: string;
|
||||
} & FetchOptions;
|
||||
export interface SigningCertificateRequest {
|
||||
credentials: {
|
||||
oidcIdentityToken: string;
|
||||
};
|
||||
publicKeyRequest: {
|
||||
publicKey: {
|
||||
algorithm: string;
|
||||
content: string;
|
||||
};
|
||||
proofOfPossession: string;
|
||||
};
|
||||
}
|
||||
export interface SigningCertificateResponse {
|
||||
signedCertificateEmbeddedSct?: {
|
||||
chain: {
|
||||
certificates: string[];
|
||||
};
|
||||
};
|
||||
signedCertificateDetachedSct?: {
|
||||
chain: {
|
||||
certificates: string[];
|
||||
};
|
||||
signedCertificateTimestamp: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Fulcio API client.
|
||||
*/
|
||||
export declare class Fulcio {
|
||||
private options;
|
||||
constructor(options: FulcioOptions);
|
||||
createSigningCertificate(request: SigningCertificateRequest): Promise<SigningCertificateResponse>;
|
||||
}
|
41
node_modules/@sigstore/sign/dist/external/fulcio.js
generated
vendored
Normal file
41
node_modules/@sigstore/sign/dist/external/fulcio.js
generated
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Fulcio = 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 fetch_1 = require("./fetch");
|
||||
/**
|
||||
* Fulcio API client.
|
||||
*/
|
||||
class Fulcio {
|
||||
constructor(options) {
|
||||
this.options = options;
|
||||
}
|
||||
async createSigningCertificate(request) {
|
||||
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,
|
||||
});
|
||||
return response.json();
|
||||
}
|
||||
}
|
||||
exports.Fulcio = Fulcio;
|
28
node_modules/@sigstore/sign/dist/external/rekor.d.ts
generated
vendored
Normal file
28
node_modules/@sigstore/sign/dist/external/rekor.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
import type { LogEntry, ProposedDSSEEntry, ProposedEntry, ProposedHashedRekordEntry, ProposedIntotoEntry } from '@sigstore/rekor-types';
|
||||
import type { FetchOptions } from '../types/fetch';
|
||||
export type { ProposedDSSEEntry, ProposedEntry, ProposedHashedRekordEntry, ProposedIntotoEntry, };
|
||||
export type Entry = {
|
||||
uuid: string;
|
||||
} & LogEntry[string];
|
||||
export type RekorOptions = {
|
||||
baseURL: string;
|
||||
} & FetchOptions;
|
||||
/**
|
||||
* Rekor API client.
|
||||
*/
|
||||
export declare class Rekor {
|
||||
private options;
|
||||
constructor(options: RekorOptions);
|
||||
/**
|
||||
* Create a new entry in the Rekor log.
|
||||
* @param propsedEntry {ProposedEntry} Data to create a new entry
|
||||
* @returns {Promise<Entry>} The created entry
|
||||
*/
|
||||
createEntry(propsedEntry: ProposedEntry): Promise<Entry>;
|
||||
/**
|
||||
* Get an entry from the Rekor log.
|
||||
* @param uuid {string} The UUID of the entry to retrieve
|
||||
* @returns {Promise<Entry>} The retrieved entry
|
||||
*/
|
||||
getEntry(uuid: string): Promise<Entry>;
|
||||
}
|
80
node_modules/@sigstore/sign/dist/external/rekor.js
generated
vendored
Normal file
80
node_modules/@sigstore/sign/dist/external/rekor.js
generated
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Rekor = 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 fetch_1 = require("./fetch");
|
||||
/**
|
||||
* Rekor API client.
|
||||
*/
|
||||
class Rekor {
|
||||
constructor(options) {
|
||||
this.options = options;
|
||||
}
|
||||
/**
|
||||
* Create a new entry in the Rekor log.
|
||||
* @param propsedEntry {ProposedEntry} Data to create a new entry
|
||||
* @returns {Promise<Entry>} The created entry
|
||||
*/
|
||||
async createEntry(propsedEntry) {
|
||||
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,
|
||||
});
|
||||
const data = await response.json();
|
||||
return entryFromResponse(data);
|
||||
}
|
||||
/**
|
||||
* Get an entry from the Rekor log.
|
||||
* @param uuid {string} The UUID of the entry to retrieve
|
||||
* @returns {Promise<Entry>} The retrieved entry
|
||||
*/
|
||||
async getEntry(uuid) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
exports.Rekor = Rekor;
|
||||
// Unpack the response from the Rekor API into a more convenient format.
|
||||
function entryFromResponse(data) {
|
||||
const entries = Object.entries(data);
|
||||
if (entries.length != 1) {
|
||||
throw new Error('Received multiple entries in Rekor response');
|
||||
}
|
||||
// Grab UUID and entry data from the response
|
||||
const [uuid, entry] = entries[0];
|
||||
return {
|
||||
...entry,
|
||||
uuid,
|
||||
};
|
||||
}
|
17
node_modules/@sigstore/sign/dist/external/tsa.d.ts
generated
vendored
Normal file
17
node_modules/@sigstore/sign/dist/external/tsa.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
/// <reference types="node" />
|
||||
import type { FetchOptions } from '../types/fetch';
|
||||
export interface TimestampRequest {
|
||||
artifactHash: string;
|
||||
hashAlgorithm: string;
|
||||
certificates?: boolean;
|
||||
nonce?: number;
|
||||
tsaPolicyOID?: string;
|
||||
}
|
||||
export type TimestampAuthorityOptions = {
|
||||
baseURL: string;
|
||||
} & FetchOptions;
|
||||
export declare class TimestampAuthority {
|
||||
private options;
|
||||
constructor(options: TimestampAuthorityOptions);
|
||||
createTimestamp(request: TimestampRequest): Promise<Buffer>;
|
||||
}
|
38
node_modules/@sigstore/sign/dist/external/tsa.js
generated
vendored
Normal file
38
node_modules/@sigstore/sign/dist/external/tsa.js
generated
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TimestampAuthority = 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 fetch_1 = require("./fetch");
|
||||
class TimestampAuthority {
|
||||
constructor(options) {
|
||||
this.options = options;
|
||||
}
|
||||
async createTimestamp(request) {
|
||||
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,
|
||||
});
|
||||
return response.buffer();
|
||||
}
|
||||
}
|
||||
exports.TimestampAuthority = TimestampAuthority;
|
Loading…
Add table
Add a link
Reference in a new issue