PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@expo/cli/build/src/utils

Просмотр файла: npm.js

"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.sanitizeNpmPackageName = sanitizeNpmPackageName;
exports.npmViewAsync = npmViewAsync;
exports.getNpmUrlAsync = getNpmUrlAsync;
exports.downloadAndExtractNpmModuleAsync = downloadAndExtractNpmModuleAsync;
exports.extractLocalNpmTarballAsync = extractLocalNpmTarballAsync;
exports.extractNpmTarballFromUrlAsync = extractNpmTarballFromUrlAsync;
exports.extractNpmTarballAsync = extractNpmTarballAsync;
var _getUserState = require("@expo/config/build/getUserState");
var _spawnAsync = _interopRequireDefault(require("@expo/spawn-async"));
var _assert = _interopRequireDefault(require("assert"));
var _fs = _interopRequireDefault(require("fs"));
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
var _path = _interopRequireDefault(require("path"));
var _slugify = _interopRequireDefault(require("slugify"));
var _stream = require("stream");
var _tar = _interopRequireDefault(require("tar"));
var _util = require("util");
var _fileSystemCache = require("../api/rest/cache/FileSystemCache");
var _wrapFetchWithCache = require("../api/rest/cache/wrapFetchWithCache");
var Log = _interopRequireWildcard(require("../log"));
var _createFileTransform = require("./createFileTransform");
var _dir = require("./dir");
var _errors = require("./errors");
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        default: obj
    };
}
function _interopRequireWildcard(obj) {
    if (obj && obj.__esModule) {
        return obj;
    } else {
        var newObj = {};
        if (obj != null) {
            for(var key in obj){
                if (Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
                    if (desc.get || desc.set) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
        }
        newObj.default = obj;
        return newObj;
    }
}
const cachedFetch = (0, _wrapFetchWithCache).wrapFetchWithCache(_nodeFetch.default, new _fileSystemCache.FileSystemCache({
    cacheDirectory: getCacheFilePath()
}));
function sanitizeNpmPackageName(name) {
    // https://github.com/npm/validate-npm-package-name/#naming-rules
    return applyKnownNpmPackageNameRules(name) || applyKnownNpmPackageNameRules((0, _slugify).default(name)) || // If nothing is left use 'app' like we do in Xcode projects.
    "app";
}
function applyKnownNpmPackageNameRules(name) {
    // https://github.com/npm/validate-npm-package-name/#naming-rules
    // package name cannot start with '.' or '_'.
    while(/^(\.|_)/.test(name)){
        name = name.substring(1);
    }
    name = name.toLowerCase().replace(/[^a-zA-Z._\-/@]/g, "");
    return name// .replace(/![a-z0-9-._~]+/g, '')
    // Remove special characters
    .normalize("NFD").replace(/[\u0300-\u036f]/g, "") || null;
}
async function npmViewAsync(...props) {
    var ref;
    const cmd = [
        "view",
        ...props,
        "--json"
    ];
    const results = (ref = (await (0, _spawnAsync).default("npm", cmd)).stdout) == null ? void 0 : ref.trim();
    const cmdString = `npm ${cmd.join(" ")}`;
    Log.debug("Run:", cmdString);
    if (!results) {
        return null;
    }
    try {
        return JSON.parse(results);
    } catch (error) {
        throw new Error(`Could not parse JSON returned from "${cmdString}".\n\n${results}\n\nError: ${error.message}`);
    }
}
async function getNpmUrlAsync(packageName) {
    const results = await npmViewAsync(packageName, "dist.tarball");
    (0, _assert).default(results, `Could not get npm url for package "${packageName}"`);
    // Fully qualified url returns a string.
    // Example:
    // 𝝠 npm view expo-template-bare-minimum@sdk-33 dist.tarball --json
    if (typeof results === "string") {
        return results;
    }
    // When the tag is arbitrary, the tarball url is an array, return the last value as it's the most recent.
    // Example:
    // 𝝠 npm view expo-template-bare-minimum@33 dist.tarball --json
    if (Array.isArray(results)) {
        return results[results.length - 1];
    }
    throw new _errors.CommandError("Expected results of `npm view ...` to be an array or string. Instead found: " + results);
}
// @ts-ignore
const pipeline = (0, _util).promisify(_stream.Stream.pipeline);
async function downloadAndExtractNpmModuleAsync(npmName, props) {
    const url = await getNpmUrlAsync(npmName);
    Log.debug("Fetch from URL:", url);
    await extractNpmTarballFromUrlAsync(url, props);
}
async function extractLocalNpmTarballAsync(tarFilePath, props) {
    const readStream = _fs.default.createReadStream(tarFilePath);
    await extractNpmTarballAsync(readStream, props);
}
function getCacheFilePath() {
    return _path.default.join((0, _getUserState).getExpoHomeDirectory(), "template-cache");
}
async function createUrlStreamAsync(url) {
    const response = await cachedFetch(url);
    if (!response.ok) {
        throw new Error(`Unexpected response: ${response.statusText}. From url: ${url}`);
    }
    return response.body;
}
async function extractNpmTarballFromUrlAsync(url, props) {
    await extractNpmTarballAsync(await createUrlStreamAsync(url), props);
}
async function extractNpmTarballAsync(stream, props) {
    const { cwd , strip , name , fileList =[]  } = props;
    await (0, _dir).ensureDirectoryAsync(cwd);
    await pipeline(stream, _tar.default.extract({
        cwd,
        transform: (0, _createFileTransform).createFileTransform(name),
        onentry: (0, _createFileTransform).createEntryResolver(name),
        strip: strip != null ? strip : 1
    }, fileList));
}

//# sourceMappingURL=npm.js.map

Выполнить команду


Для локальной разработки. Не используйте в интернете!