Updated the files.
This commit is contained in:
parent
1553e6b971
commit
753967d4f5
23418 changed files with 3784666 additions and 0 deletions
1
my-app/node_modules/@sigstore/tuf/dist/appdata.d.ts
generated
vendored
Executable file
1
my-app/node_modules/@sigstore/tuf/dist/appdata.d.ts
generated
vendored
Executable file
|
@ -0,0 +1 @@
|
|||
export declare function appDataPath(name: string): string;
|
44
my-app/node_modules/@sigstore/tuf/dist/appdata.js
generated
vendored
Executable file
44
my-app/node_modules/@sigstore/tuf/dist/appdata.js
generated
vendored
Executable file
|
@ -0,0 +1,44 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.appDataPath = 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 os_1 = __importDefault(require("os"));
|
||||
const path_1 = __importDefault(require("path"));
|
||||
function appDataPath(name) {
|
||||
const homedir = os_1.default.homedir();
|
||||
switch (process.platform) {
|
||||
/* istanbul ignore next */
|
||||
case 'darwin': {
|
||||
const appSupport = path_1.default.join(homedir, 'Library', 'Application Support');
|
||||
return path_1.default.join(appSupport, name);
|
||||
}
|
||||
/* istanbul ignore next */
|
||||
case 'win32': {
|
||||
const localAppData = process.env.LOCALAPPDATA || path_1.default.join(homedir, 'AppData', 'Local');
|
||||
return path_1.default.join(localAppData, name, 'Data');
|
||||
}
|
||||
/* istanbul ignore next */
|
||||
default: {
|
||||
const localData = process.env.XDG_DATA_HOME || path_1.default.join(homedir, '.local', 'share');
|
||||
return path_1.default.join(localData, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.appDataPath = appDataPath;
|
23
my-app/node_modules/@sigstore/tuf/dist/client.d.ts
generated
vendored
Executable file
23
my-app/node_modules/@sigstore/tuf/dist/client.d.ts
generated
vendored
Executable file
|
@ -0,0 +1,23 @@
|
|||
import type { MakeFetchHappenOptions } from 'make-fetch-happen';
|
||||
export type Retry = MakeFetchHappenOptions['retry'];
|
||||
type FetchOptions = {
|
||||
retry?: Retry;
|
||||
timeout?: number;
|
||||
};
|
||||
export type TUFOptions = {
|
||||
cachePath: string;
|
||||
mirrorURL: string;
|
||||
rootPath?: string;
|
||||
forceCache: boolean;
|
||||
forceInit: boolean;
|
||||
} & FetchOptions;
|
||||
export interface TUF {
|
||||
getTarget(targetName: string): Promise<string>;
|
||||
}
|
||||
export declare class TUFClient implements TUF {
|
||||
private updater;
|
||||
constructor(options: TUFOptions);
|
||||
refresh(): Promise<void>;
|
||||
getTarget(targetName: string): Promise<string>;
|
||||
}
|
||||
export {};
|
113
my-app/node_modules/@sigstore/tuf/dist/client.js
generated
vendored
Executable file
113
my-app/node_modules/@sigstore/tuf/dist/client.js
generated
vendored
Executable file
|
@ -0,0 +1,113 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TUFClient = 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 fs_1 = __importDefault(require("fs"));
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const tuf_js_1 = require("tuf-js");
|
||||
const _1 = require(".");
|
||||
const target_1 = require("./target");
|
||||
const TUF_SEEDS_PATH = require.resolve('../seeds.json');
|
||||
const TARGETS_DIR_NAME = 'targets';
|
||||
class TUFClient {
|
||||
constructor(options) {
|
||||
const url = new URL(options.mirrorURL);
|
||||
const repoName = encodeURIComponent(url.host + url.pathname.replace(/\/$/, ''));
|
||||
const cachePath = path_1.default.join(options.cachePath, repoName);
|
||||
initTufCache(cachePath);
|
||||
seedCache({
|
||||
cachePath,
|
||||
mirrorURL: options.mirrorURL,
|
||||
tufRootPath: options.rootPath,
|
||||
forceInit: options.forceInit,
|
||||
});
|
||||
this.updater = initClient({
|
||||
mirrorURL: options.mirrorURL,
|
||||
cachePath,
|
||||
forceCache: options.forceCache,
|
||||
retry: options.retry,
|
||||
timeout: options.timeout,
|
||||
});
|
||||
}
|
||||
async refresh() {
|
||||
return this.updater.refresh();
|
||||
}
|
||||
getTarget(targetName) {
|
||||
return (0, target_1.readTarget)(this.updater, targetName);
|
||||
}
|
||||
}
|
||||
exports.TUFClient = TUFClient;
|
||||
// Initializes the TUF cache directory structure including the initial
|
||||
// root.json file. If the cache directory does not exist, it will be
|
||||
// created. If the targets directory does not exist, it will be created.
|
||||
// If the root.json file does not exist, it will be copied from the
|
||||
// rootPath argument.
|
||||
function initTufCache(cachePath) {
|
||||
const targetsPath = path_1.default.join(cachePath, TARGETS_DIR_NAME);
|
||||
if (!fs_1.default.existsSync(cachePath)) {
|
||||
fs_1.default.mkdirSync(cachePath, { recursive: true });
|
||||
}
|
||||
if (!fs_1.default.existsSync(targetsPath)) {
|
||||
fs_1.default.mkdirSync(targetsPath);
|
||||
}
|
||||
}
|
||||
// Populates the TUF cache with the initial root.json file. If the root.json
|
||||
// file does not exist (or we're forcing re-initialization), copy it from either
|
||||
// the rootPath argument or from one of the repo seeds.
|
||||
function seedCache({ cachePath, mirrorURL, tufRootPath, forceInit, }) {
|
||||
const cachedRootPath = path_1.default.join(cachePath, 'root.json');
|
||||
// If the root.json file does not exist (or we're forcing re-initialization),
|
||||
// populate it either from the supplied rootPath or from one of the repo seeds.
|
||||
if (!fs_1.default.existsSync(cachedRootPath) || forceInit) {
|
||||
if (tufRootPath) {
|
||||
fs_1.default.copyFileSync(tufRootPath, cachedRootPath);
|
||||
}
|
||||
else {
|
||||
// Load the embedded repo seeds
|
||||
const seeds = JSON.parse(fs_1.default.readFileSync(TUF_SEEDS_PATH).toString('utf-8'));
|
||||
const repoSeed = seeds[mirrorURL];
|
||||
if (!repoSeed) {
|
||||
throw new _1.TUFError({
|
||||
code: 'TUF_INIT_CACHE_ERROR',
|
||||
message: `No root.json found for mirror: ${mirrorURL}`,
|
||||
});
|
||||
}
|
||||
fs_1.default.writeFileSync(cachedRootPath, Buffer.from(repoSeed['root.json'], 'base64'));
|
||||
// Copy any seed targets into the cache
|
||||
Object.entries(repoSeed.targets).forEach(([targetName, target]) => {
|
||||
fs_1.default.writeFileSync(path_1.default.join(cachePath, TARGETS_DIR_NAME, targetName), Buffer.from(target, 'base64'));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
function initClient(options) {
|
||||
const config = {
|
||||
fetchTimeout: options.timeout,
|
||||
fetchRetry: options.retry,
|
||||
};
|
||||
return new tuf_js_1.Updater({
|
||||
metadataBaseUrl: options.mirrorURL,
|
||||
targetBaseUrl: `${options.mirrorURL}/targets`,
|
||||
metadataDir: options.cachePath,
|
||||
targetDir: path_1.default.join(options.cachePath, TARGETS_DIR_NAME),
|
||||
forceCache: options.forceCache,
|
||||
config,
|
||||
});
|
||||
}
|
11
my-app/node_modules/@sigstore/tuf/dist/error.d.ts
generated
vendored
Executable file
11
my-app/node_modules/@sigstore/tuf/dist/error.d.ts
generated
vendored
Executable file
|
@ -0,0 +1,11 @@
|
|||
type TUFErrorCode = 'TUF_INIT_CACHE_ERROR' | 'TUF_FIND_TARGET_ERROR' | 'TUF_REFRESH_METADATA_ERROR' | 'TUF_DOWNLOAD_TARGET_ERROR' | 'TUF_READ_TARGET_ERROR';
|
||||
export declare class TUFError extends Error {
|
||||
code: TUFErrorCode;
|
||||
cause: any | undefined;
|
||||
constructor({ code, message, cause, }: {
|
||||
code: TUFErrorCode;
|
||||
message: string;
|
||||
cause?: any;
|
||||
});
|
||||
}
|
||||
export {};
|
12
my-app/node_modules/@sigstore/tuf/dist/error.js
generated
vendored
Executable file
12
my-app/node_modules/@sigstore/tuf/dist/error.js
generated
vendored
Executable file
|
@ -0,0 +1,12 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TUFError = void 0;
|
||||
class TUFError extends Error {
|
||||
constructor({ code, message, cause, }) {
|
||||
super(message);
|
||||
this.code = code;
|
||||
this.cause = cause;
|
||||
this.name = this.constructor.name;
|
||||
}
|
||||
}
|
||||
exports.TUFError = TUFError;
|
10
my-app/node_modules/@sigstore/tuf/dist/index.d.ts
generated
vendored
Executable file
10
my-app/node_modules/@sigstore/tuf/dist/index.d.ts
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
import { TrustedRoot } from '@sigstore/protobuf-specs';
|
||||
import { TUFOptions as RequiredTUFOptions, TUF } from './client';
|
||||
export declare const DEFAULT_MIRROR_URL = "https://tuf-repo-cdn.sigstore.dev";
|
||||
export type TUFOptions = Partial<RequiredTUFOptions> & {
|
||||
force?: boolean;
|
||||
};
|
||||
export declare function getTrustedRoot(options?: TUFOptions): Promise<TrustedRoot>;
|
||||
export declare function initTUF(options?: TUFOptions): Promise<TUF>;
|
||||
export type { TUF } from './client';
|
||||
export { TUFError } from './error';
|
56
my-app/node_modules/@sigstore/tuf/dist/index.js
generated
vendored
Executable file
56
my-app/node_modules/@sigstore/tuf/dist/index.js
generated
vendored
Executable file
|
@ -0,0 +1,56 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TUFError = exports.initTUF = exports.getTrustedRoot = exports.DEFAULT_MIRROR_URL = 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 protobuf_specs_1 = require("@sigstore/protobuf-specs");
|
||||
const appdata_1 = require("./appdata");
|
||||
const client_1 = require("./client");
|
||||
exports.DEFAULT_MIRROR_URL = 'https://tuf-repo-cdn.sigstore.dev';
|
||||
const DEFAULT_CACHE_DIR = 'sigstore-js';
|
||||
const DEFAULT_RETRY = { retries: 2 };
|
||||
const DEFAULT_TIMEOUT = 5000;
|
||||
const TRUSTED_ROOT_TARGET = 'trusted_root.json';
|
||||
async function getTrustedRoot(
|
||||
/* istanbul ignore next */
|
||||
options = {}) {
|
||||
const client = createClient(options);
|
||||
const trustedRoot = await client.getTarget(TRUSTED_ROOT_TARGET);
|
||||
return protobuf_specs_1.TrustedRoot.fromJSON(JSON.parse(trustedRoot));
|
||||
}
|
||||
exports.getTrustedRoot = getTrustedRoot;
|
||||
async function initTUF(
|
||||
/* istanbul ignore next */
|
||||
options = {}) {
|
||||
const client = createClient(options);
|
||||
return client.refresh().then(() => client);
|
||||
}
|
||||
exports.initTUF = initTUF;
|
||||
// Create a TUF client with default options
|
||||
function createClient(options) {
|
||||
/* istanbul ignore next */
|
||||
return new client_1.TUFClient({
|
||||
cachePath: options.cachePath || (0, appdata_1.appDataPath)(DEFAULT_CACHE_DIR),
|
||||
rootPath: options.rootPath,
|
||||
mirrorURL: options.mirrorURL || exports.DEFAULT_MIRROR_URL,
|
||||
retry: options.retry ?? DEFAULT_RETRY,
|
||||
timeout: options.timeout ?? DEFAULT_TIMEOUT,
|
||||
forceCache: options.forceCache ?? false,
|
||||
forceInit: options.forceInit ?? options.force ?? false,
|
||||
});
|
||||
}
|
||||
var error_1 = require("./error");
|
||||
Object.defineProperty(exports, "TUFError", { enumerable: true, get: function () { return error_1.TUFError; } });
|
2
my-app/node_modules/@sigstore/tuf/dist/target.d.ts
generated
vendored
Executable file
2
my-app/node_modules/@sigstore/tuf/dist/target.d.ts
generated
vendored
Executable file
|
@ -0,0 +1,2 @@
|
|||
import { Updater } from 'tuf-js';
|
||||
export declare function readTarget(tuf: Updater, targetPath: string): Promise<string>;
|
80
my-app/node_modules/@sigstore/tuf/dist/target.js
generated
vendored
Executable file
80
my-app/node_modules/@sigstore/tuf/dist/target.js
generated
vendored
Executable file
|
@ -0,0 +1,80 @@
|
|||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.readTarget = 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 fs_1 = __importDefault(require("fs"));
|
||||
const error_1 = require("./error");
|
||||
// Downloads and returns the specified target from the provided TUF Updater.
|
||||
async function readTarget(tuf, targetPath) {
|
||||
const path = await getTargetPath(tuf, targetPath);
|
||||
return new Promise((resolve, reject) => {
|
||||
fs_1.default.readFile(path, 'utf-8', (err, data) => {
|
||||
if (err) {
|
||||
reject(new error_1.TUFError({
|
||||
code: 'TUF_READ_TARGET_ERROR',
|
||||
message: `error reading target ${path}`,
|
||||
cause: err,
|
||||
}));
|
||||
}
|
||||
else {
|
||||
resolve(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.readTarget = readTarget;
|
||||
// Returns the local path to the specified target. If the target is not yet
|
||||
// cached locally, the provided TUF Updater will be used to download and
|
||||
// cache the target.
|
||||
async function getTargetPath(tuf, target) {
|
||||
let targetInfo;
|
||||
try {
|
||||
targetInfo = await tuf.getTargetInfo(target);
|
||||
}
|
||||
catch (err) {
|
||||
throw new error_1.TUFError({
|
||||
code: 'TUF_REFRESH_METADATA_ERROR',
|
||||
message: 'error refreshing TUF metadata',
|
||||
cause: err,
|
||||
});
|
||||
}
|
||||
if (!targetInfo) {
|
||||
throw new error_1.TUFError({
|
||||
code: 'TUF_FIND_TARGET_ERROR',
|
||||
message: `target ${target} not found`,
|
||||
});
|
||||
}
|
||||
let path = await tuf.findCachedTarget(targetInfo);
|
||||
// An empty path here means the target has not been cached locally, or is
|
||||
// out of date. In either case, we need to download it.
|
||||
if (!path) {
|
||||
try {
|
||||
path = await tuf.downloadTarget(targetInfo);
|
||||
}
|
||||
catch (err) {
|
||||
throw new error_1.TUFError({
|
||||
code: 'TUF_DOWNLOAD_TARGET_ERROR',
|
||||
message: `error downloading target ${path}`,
|
||||
cause: err,
|
||||
});
|
||||
}
|
||||
}
|
||||
return path;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue