basant307/AI_Governance_Project
048
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