CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
validation.js149 linesDownload Raw Back to out
1"use strict";2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {3    if (k2 === undefined) k2 = k;4    var desc = Object.getOwnPropertyDescriptor(m, k);5    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {6      desc = { enumerable: true, get: function() { return m[k]; } };7    }8    Object.defineProperty(o, k2, desc);9}) : (function(o, m, k, k2) {10    if (k2 === undefined) k2 = k;11    o[k2] = m[k];12}));13var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {14    Object.defineProperty(o, "default", { enumerable: true, value: v });15}) : function(o, v) {16    o["default"] = v;17});18var __importStar = (this && this.__importStar) || (function () {19    var ownKeys = function(o) {20        ownKeys = Object.getOwnPropertyNames || function (o) {21            var ar = [];22            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;23            return ar;24        };25        return ownKeys(o);26    };27    return function (mod) {28        if (mod && mod.__esModule) return mod;29        var result = {};30        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);31        __setModuleDefault(result, mod);32        return result;33    };34})();35var __importDefault = (this && this.__importDefault) || function (mod) {36    return (mod && mod.__esModule) ? mod : { "default": mod };37};38Object.defineProperty(exports, "__esModule", { value: true });39exports.validatePublisher = validatePublisher;40exports.validateExtensionName = validateExtensionName;41exports.validateVersion = validateVersion;42exports.validateEngineCompatibility = validateEngineCompatibility;43exports.validateVSCodeTypesCompatibility = validateVSCodeTypesCompatibility;44exports.validateExtensionDependencies = validateExtensionDependencies;45const semver = __importStar(require("semver"));46const parse_semver_1 = __importDefault(require("parse-semver"));47const util_1 = require("./util");48const nameRegex = /^[a-z0-9][a-z0-9\-]*$/i;49function validatePublisher(publisher) {50    if (!publisher) {51        throw new Error(`Missing extension "publisher": "<ID>" in package.json. Learn more: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#create-a-publisher`);52    }53    if (!nameRegex.test(publisher)) {54        throw new Error(`Invalid extension "publisher": "${publisher}" in package.json. Expected the identifier of a publisher, not its human-friendly name. Learn more: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#create-a-publisher`);55    }56    return publisher;57}58function validateExtensionName(name) {59    if (!name) {60        throw new Error(`Missing extension "name": "<name>" in package.json. Learn more: https://code.visualstudio.com/api/references/extension-manifest`);61    }62    if (!nameRegex.test(name)) {63        throw new Error(`Invalid extension "name": "${name}" in package.json. Learn more: https://code.visualstudio.com/api/references/extension-manifest`);64    }65    return name;66}67function validateVersion(version) {68    if (!version) {69        throw new Error(`Missing extension "version": "<version>" in package.json. Learn more: https://code.visualstudio.com/api/references/extension-manifest`);70    }71    if (!semver.valid(version)) {72        throw new Error(`Invalid extension "version": "${version}" in package.json. Learn more:	https://code.visualstudio.com/api/references/extension-manifest`);73    }74    return version;75}76function validateEngineCompatibility(version) {77    if (!version) {78        throw new Error(`Missing vscode engine compatibility version. ("engines": { "vscode": "<version>" } in package.json) Learn more: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#visual-studio-code-compatibility`);79    }80    if (!/^\*$|^(\^|>=)?((\d+)|x)\.((\d+)|x)\.((\d+)|x)(\-.*)?$/.test(version)) {81        throw new Error(`Invalid vscode engine compatibility version '${version}'. ("engines": { "vscode": "${version}" } in package.json) Learn more: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#visual-studio-code-compatibility`);82    }83    return version;84}85/**86 * User shouldn't use a newer version of @types/vscode than the one specified in engines.vscode87 *88 * NOTE: This is enforced at the major and minor level. Since we don't have control over the patch89 * version (it's auto-incremented by DefinitelyTyped), we don't look at the patch version at all.90 */91function validateVSCodeTypesCompatibility(engineVersion, typeVersion) {92    if (engineVersion === '*') {93        return;94    }95    if (!typeVersion) {96        throw new Error(`Missing @types/vscode version`);97    }98    let plainEngineVersion, plainTypeVersion;99    try {100        const engineSemver = (0, parse_semver_1.default)(`vscode@${engineVersion}`);101        plainEngineVersion = engineSemver.version;102    }103    catch (err) {104        throw new Error('Failed to parse semver of engines.vscode');105    }106    try {107        const typeSemver = (0, parse_semver_1.default)(`@types/vscode@${typeVersion}`);108        plainTypeVersion = typeSemver.version;109    }110    catch (err) {111        throw new Error('Failed to parse semver of @types/vscode');112    }113    // For all `x`, use smallest version for comparison114    plainEngineVersion = plainEngineVersion.replace(/x/g, '0');115    const [typeMajor, typeMinor] = plainTypeVersion.split('.').map(x => {116        try {117            return parseInt(x);118        }119        catch (err) {120            return 0;121        }122    });123    const [engineMajor, engineMinor] = plainEngineVersion.split('.').map(x => {124        try {125            return parseInt(x);126        }127        catch (err) {128            return 0;129        }130    });131    const error = new Error(`@types/vscode ${typeVersion} greater than engines.vscode ${engineVersion}. Either upgrade engines.vscode or use an older @types/vscode version`);132    if (typeMajor > engineMajor) {133        throw error;134    }135    if (typeMajor === engineMajor && typeMinor > engineMinor) {136        throw error;137    }138}139function validateExtensionDependencies(dependencies, fieldName) {140    if (!dependencies || dependencies.length === 0) {141        return;142    }143    for (const dep of dependencies) {144        if (dep.toLowerCase() === 'github.copilot') {145            util_1.log.warn(`The "${dep}" extension is being deprecated in favor of the "${dep}-chat" extension. Please use "${dep}-chat" in ${fieldName} instead and remove any references to "${dep}".`);146        }147    }148}149//# sourceMappingURL=validation.js.map
basant307/AI_Governance_Project · CoolFace