UNPKG

@ohos/hpm-cli

Version:

CLI for HarmonyOS package manager

161 lines (160 loc) 8.68 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.Dependency = void 0; var _semver = _interopRequireDefault(require("semver")); var _helpers = require("../utils/helpers"); var _i18n = require("../i18n"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); } function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); } function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); } function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; } function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } /* * Copyright (c) 2020-2021 Huawei Device Co., Ltd. * 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. */ var _name = /*#__PURE__*/new WeakMap(); var _versionRange = /*#__PURE__*/new WeakMap(); var _fullName = /*#__PURE__*/new WeakMap(); var _params = /*#__PURE__*/new WeakMap(); var _tag = /*#__PURE__*/new WeakMap(); var _isOptional = /*#__PURE__*/new WeakMap(); var _suffix = /*#__PURE__*/new WeakMap(); var Dependency = exports.Dependency = /*#__PURE__*/function () { /** * * @param {String} name 组件名称 * @param {*} options * @param {*} tag * @param {*} isOptional * @param {String} fullName 组件全名称,包含os,buildArch字段 */ function Dependency(name, options, tag, isOptional, suffix) { _classCallCheck(this, Dependency); _classPrivateFieldInitSpec(this, _name, void 0); _classPrivateFieldInitSpec(this, _versionRange, void 0); _classPrivateFieldInitSpec(this, _fullName, void 0); _classPrivateFieldInitSpec(this, _params, {}); _classPrivateFieldInitSpec(this, _tag, void 0); _classPrivateFieldInitSpec(this, _isOptional, void 0); _classPrivateFieldInitSpec(this, _suffix, void 0); _classPrivateFieldSet(_name, this, name); _classPrivateFieldSet(_isOptional, this, isOptional); if ((0, _helpers.isObject)(options)) { _classPrivateFieldSet(_params, this, _objectSpread({}, options)); _classPrivateFieldSet(_versionRange, this, _classPrivateFieldGet(_params, this).version); delete _classPrivateFieldGet(_params, this).version; } else if (_semver["default"].validRange(options)) { _classPrivateFieldSet(_versionRange, this, options); } else { throw (0, _i18n.getI18nMessage)('dependencies.invalidRange', { name: name }); } _classPrivateFieldSet(_tag, this, tag); _classPrivateFieldSet(_suffix, this, suffix); } return _createClass(Dependency, [{ key: "name", get: function get() { return _classPrivateFieldGet(_name, this); } }, { key: "versionRanges", get: function get() { return _classPrivateFieldGet(_versionRange, this); } }, { key: "isOptional", get: function get() { return _classPrivateFieldGet(_isOptional, this); } }, { key: "params", get: function get() { return _classPrivateFieldGet(_params, this); } }, { key: "tag", get: function get() { return _classPrivateFieldGet(_tag, this); } }, { key: "suffix", get: function get() { return _classPrivateFieldGet(_suffix, this); } }, { key: "toJson", value: function toJson() { var json = {}; var key = "".concat(_classPrivateFieldGet(_isOptional, this) ? '?' : '').concat(_classPrivateFieldGet(_name, this)); var value = (0, _helpers.isEmptyObject)(_classPrivateFieldGet(_params, this)) ? _classPrivateFieldGet(_versionRange, this) : _objectSpread({ version: _classPrivateFieldGet(_versionRange, this) }, _classPrivateFieldGet(_params, this)); json[key] = value; if (_classPrivateFieldGet(_tag, this)) { json = _defineProperty({}, _classPrivateFieldGet(_tag, this), json); } return json; } }, { key: "match", value: function match(bundle) { if (bundle.manifest) { return _classPrivateFieldGet(_name, this) === bundle.manifest.name && _semver["default"].satisfies(bundle.manifest.version, _classPrivateFieldGet(_versionRange, this), { includePrerelease: true }); } if (_classPrivateFieldGet(_suffix, this)) { var result = false; var suffix = "".concat(bundle.branch, ".").concat(bundle.variant, ".").concat(bundle.os, ".").concat(bundle.buildArch); if (_classPrivateFieldGet(_suffix, this).includes('.x64')) { // x64 的包兼容 x86。 result = suffix === _classPrivateFieldGet(_suffix, this) || suffix === _classPrivateFieldGet(_suffix, this).replace('.x64', '.x86'); } else { result = suffix === _classPrivateFieldGet(_suffix, this); } return _classPrivateFieldGet(_name, this) === bundle.name && _semver["default"].satisfies(bundle.version, _classPrivateFieldGet(_versionRange, this), { includePrerelease: true }) && !(0, _helpers.isSnapshot)(bundle.version.version) && result; } return _classPrivateFieldGet(_name, this) === bundle.name && _semver["default"].satisfies(bundle.version, _classPrivateFieldGet(_versionRange, this), { includePrerelease: true }) && !(0, _helpers.isSnapshot)(bundle.version.version); } }]); }(); Dependency.merge = function (oldDep, newDep) { if (oldDep.name !== newDep.name) { return null; } var version = newDep.versionRanges || oldDep.versionRanges; var params = newDep.params || oldDep.params; var tag = newDep.tag || oldDep.tag; var isOptional = newDep.isOptional || oldDep.isOptional; return new Dependency(newDep.name, _objectSpread(_objectSpread({}, params), {}, { version: version }), tag, isOptional); };