Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if(props.srcURL) info.srcUrl = props.srcURL
if(props.pageURL) info.pageUrl = props.pageURL
info.menuItemId = menuItemId
const item = {
label: properties.title,
click(){
ipcMain.emit('chrome-context-menus-clicked',null, extensionId, webContents.id, info)}
}
if(menuItemId) item.menuItemId = menuItemId
if(properties.checked !== void 0) item.checked = properties.checked
if(properties.enabled !== void 0) item.enabled = properties.enabled
if(properties.documentUrlPatterns !== void 0){
const url = props.pageURL || props.frameURL
// console.log('documentUrlPatterns',url,properties.documentUrlPatterns)
if(url && !nm.some(url, properties.documentUrlPatterns.map(x=>x=='' ? "**" : x.replace(/\*/,'**')))){
item.hide = true
}
}
if(properties.targetUrlPatterns !== void 0){
const url = props.linkURL
// console.log('targetUrlPatterns',url,properties.targetUrlPatterns.map(x=>x=='' ? "**" : x.replace(/\*/,'**')))
if(url && !nm.some(url, properties.targetUrlPatterns.map(x=>x=='' ? "**" : x.replace(/\*/,'**')))){
item.hide = true
}
}
if(!item.hide){
const addItem = properties.type == "separator" ? {type: 'separator'} : item
let parent
if(properties.parentId && (parent = menuList.find(m=>m.menuItemId == properties.parentId))){
if(properties.icons && extensionInfos[extensionId] && extensionInfos[extensionId].base_path) addItem.icon = path.join(extensionInfos[extensionId].base_path,Object.values(properties.icons)[0].replace(/\.svg$/,'.png'))
if(parent.submenu === void 0){
ipcMain.emit('chrome-context-menus-clicked',null, extensionId, webContents.id, info)}
}
if(menuItemId) item.menuItemId = menuItemId
if(properties.checked !== void 0) item.checked = properties.checked
if(properties.enabled !== void 0) item.enabled = properties.enabled
if(properties.documentUrlPatterns !== void 0){
const url = props.pageURL || props.frameURL
// console.log('documentUrlPatterns',url,properties.documentUrlPatterns)
if(url && !nm.some(url, properties.documentUrlPatterns.map(x=>x=='' ? "**" : x.replace(/\*/,'**')))){
item.hide = true
}
}
if(properties.targetUrlPatterns !== void 0){
const url = props.linkURL
// console.log('targetUrlPatterns',url,properties.targetUrlPatterns.map(x=>x=='' ? "**" : x.replace(/\*/,'**')))
if(url && !nm.some(url, properties.targetUrlPatterns.map(x=>x=='' ? "**" : x.replace(/\*/,'**')))){
item.hide = true
}
}
if(!item.hide){
const addItem = properties.type == "separator" ? {type: 'separator'} : item
let parent
if(properties.parentId && (parent = menuList.find(m=>m.menuItemId == properties.parentId))){
if(properties.icons && extensionInfos[extensionId] && extensionInfos[extensionId].base_path) addItem.icon = path.join(extensionInfos[extensionId].base_path,Object.values(properties.icons)[0].replace(/\.svg$/,'.png'))
if(parent.submenu === void 0){
parent.submenu = [addItem]
}
else{
parent.submenu.push(addItem)
}
}
else{
simpleIpcFuncCb('chrome-contentSettings-get',(details,extensionId,type,cb)=>{
if(!contentSettingsMap[extensionId] || !contentSettingsMap[extensionId][type]) return cb({})
for(let val of contentSettingsMap[extensionId][type]){
const resource = details.resourceIdentifier ? details.resourceIdentifier.id : void 0
const matchPrimary = nm.some(details.primaryUrl, [val.primaryPattern=='' ? "**" : val.primaryPattern.replace(/\*/,'**')])
const matchSecondary = !details.secondaryUrl || nm.some(details.secondaryUrl, [val.secondaryPattern=='' ? "**" : val.secondaryPattern.replace(/\*/,'**')])
const matchResource = !resource || resource == val.resourceId
if(matchPrimary && matchSecondary && matchResource){
return cb(val)
}
}
})
simpleIpcFuncCb('chrome-contentSettings-get',(details,extensionId,type,cb)=>{
if(!contentSettingsMap[extensionId] || !contentSettingsMap[extensionId][type]) return cb({})
for(let val of contentSettingsMap[extensionId][type]){
const resource = details.resourceIdentifier ? details.resourceIdentifier.id : void 0
const matchPrimary = nm.some(details.primaryUrl, [val.primaryPattern=='' ? "**" : val.primaryPattern.replace(/\*/,'**')])
const matchSecondary = !details.secondaryUrl || nm.some(details.secondaryUrl, [val.secondaryPattern=='' ? "**" : val.secondaryPattern.replace(/\*/,'**')])
const matchResource = !resource || resource == val.resourceId
if(matchPrimary && matchSecondary && matchResource){
return cb(val)
}
}
})
export const match = (filepath: string, patterns?: string[]): boolean => {
return !patterns || !patterns.length || nanomatch.some(filepath, patterns);
};
exports.match = (filepath, patterns) => {
return !patterns || !patterns.length || nanomatch.some(filepath, patterns);
};
exports.find = (filepath, patterns) => {