diff2html
Advanced tools
Comparing version 2.0.0-rc.1 to 2.0.0-rc.2
@@ -13,6 +13,8 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
/*global $, hljs*/ | ||
/*global $, hljs, Diff2Html*/ | ||
(function() { | ||
var highlightJS = require('./highlight.js-internals.js').HighlightJS; | ||
var diffJson = null; | ||
@@ -75,11 +77,46 @@ var defaultTarget = "body"; | ||
var languages = that._getLanguages($target); | ||
// collect all the diff files and execute the highlight on their lines | ||
var $files = $target.find(".d2h-file-wrapper"); | ||
$files.map(function(_i, file) { | ||
var oldLinesState; | ||
var newLinesState; | ||
var $file = $(file); | ||
var language = $file.data("lang"); | ||
// pass the languages to the highlightjs plugin | ||
hljs.configure({languages: languages}); | ||
// collect all the code lines and execute the highlight on them | ||
var $codeLines = $file.find(".d2h-code-line-ctn"); | ||
$codeLines.map(function(_j, line) { | ||
var $line = $(line); | ||
var text = line.textContent; | ||
var lineParent = line.parentNode; | ||
// collect all the code lines and execute the highlight on them | ||
var $codeLines = $target.find(".d2h-code-line-ctn"); | ||
$codeLines.map(function(i, line) { | ||
hljs.highlightBlock(line); | ||
var lineState; | ||
if (lineParent.className.indexOf("d2h-del") !== -1) { | ||
lineState = oldLinesState; | ||
} else { | ||
lineState = newLinesState; | ||
} | ||
var result = hljs.getLanguage(language) ? hljs.highlight(language, text, true, lineState) : hljs.highlightAuto(text); | ||
if (lineParent.className.indexOf("d2h-del") !== -1) { | ||
oldLinesState = result.top; | ||
} else if (lineParent.className.indexOf("d2h-ins") !== -1) { | ||
newLinesState = result.top; | ||
} else { | ||
oldLinesState = result.top; | ||
newLinesState = result.top; | ||
} | ||
var originalStream = highlightJS.nodeStream(line); | ||
if (originalStream.length) { | ||
var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div'); | ||
resultNode.innerHTML = result.value; | ||
result.value = highlightJS.mergeStreams(originalStream, highlightJS.nodeStream(resultNode), text); | ||
} | ||
$line.addClass("hljs"); | ||
$line.addClass(result.language); | ||
$line.html(result.value); | ||
}); | ||
}); | ||
@@ -104,20 +141,2 @@ }; | ||
Diff2HtmlUI.prototype._getLanguages = function($target) { | ||
var allFileLanguages = []; | ||
if (diffJson) { | ||
// collect all the file extensions in the json | ||
allFileLanguages = diffJson.map(function(line) { | ||
return line.language; | ||
}); | ||
} else { | ||
$target.find(".d2h-file-wrapper").map(function(i, file) { | ||
allFileLanguages.push($(file).data("lang")); | ||
}); | ||
} | ||
// return only distinct languages | ||
return this._distinct(allFileLanguages); | ||
}; | ||
Diff2HtmlUI.prototype._getHashTag = function() { | ||
@@ -197,2 +216,143 @@ var docUrl = document.URL; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{"./highlight.js-internals.js":2}],2:[function(require,module,exports){ | ||
/* | ||
* | ||
* highlight.js | ||
* Author: isagalaev | ||
* | ||
*/ | ||
(function() { | ||
function HighlightJS() { | ||
} | ||
/* | ||
* Copied from Highlight.js Private API | ||
* Will be removed when this part of the API is exposed | ||
*/ | ||
/* Utility functions */ | ||
function escape(value) { | ||
return value.replace(/&/gm, '&').replace(/</gm, '<').replace(/>/gm, '>'); | ||
} | ||
function tag(node) { | ||
return node.nodeName.toLowerCase(); | ||
} | ||
/* Stream merging */ | ||
HighlightJS.prototype.nodeStream = function(node) { | ||
var result = []; | ||
(function _nodeStream(node, offset) { | ||
for (var child = node.firstChild; child; child = child.nextSibling) { | ||
if (child.nodeType == 3) | ||
offset += child.nodeValue.length; | ||
else if (child.nodeType == 1) { | ||
result.push({ | ||
event: 'start', | ||
offset: offset, | ||
node: child | ||
}); | ||
offset = _nodeStream(child, offset); | ||
// Prevent void elements from having an end tag that would actually | ||
// double them in the output. There are more void elements in HTML | ||
// but we list only those realistically expected in code display. | ||
if (!tag(child).match(/br|hr|img|input/)) { | ||
result.push({ | ||
event: 'stop', | ||
offset: offset, | ||
node: child | ||
}); | ||
} | ||
} | ||
} | ||
return offset; | ||
})(node, 0); | ||
return result; | ||
}; | ||
HighlightJS.prototype.mergeStreams = function(original, highlighted, value) { | ||
var processed = 0; | ||
var result = ''; | ||
var nodeStack = []; | ||
function selectStream() { | ||
if (!original.length || !highlighted.length) { | ||
return original.length ? original : highlighted; | ||
} | ||
if (original[0].offset != highlighted[0].offset) { | ||
return (original[0].offset < highlighted[0].offset) ? original : highlighted; | ||
} | ||
/* | ||
To avoid starting the stream just before it should stop the order is | ||
ensured that original always starts first and closes last: | ||
if (event1 == 'start' && event2 == 'start') | ||
return original; | ||
if (event1 == 'start' && event2 == 'stop') | ||
return highlighted; | ||
if (event1 == 'stop' && event2 == 'start') | ||
return original; | ||
if (event1 == 'stop' && event2 == 'stop') | ||
return highlighted; | ||
... which is collapsed to: | ||
*/ | ||
return highlighted[0].event == 'start' ? original : highlighted; | ||
} | ||
function open(node) { | ||
function attrStr(a) { | ||
return ' ' + a.nodeName + '="' + escape(a.value) + '"'; | ||
} | ||
result += '<' + tag(node) + Array.prototype.map.call(node.attributes, attrStr).join('') + '>'; | ||
} | ||
function close(node) { | ||
result += '</' + tag(node) + '>'; | ||
} | ||
function render(event) { | ||
(event.event == 'start' ? open : close)(event.node); | ||
} | ||
while (original.length || highlighted.length) { | ||
var stream = selectStream(); | ||
result += escape(value.substr(processed, stream[0].offset - processed)); | ||
processed = stream[0].offset; | ||
if (stream == original) { | ||
/* | ||
On any opening or closing tag of the original markup we first close | ||
the entire highlighted node stack, then render the original tag along | ||
with all the following original tags at the same offset and then | ||
reopen all the tags on the highlighted stack. | ||
*/ | ||
nodeStack.reverse().forEach(close); | ||
do { | ||
render(stream.splice(0, 1)[0]); | ||
stream = selectStream(); | ||
} while (stream == original && stream.length && stream[0].offset == processed); | ||
nodeStack.reverse().forEach(open); | ||
} else { | ||
if (stream[0].event == 'start') { | ||
nodeStack.push(stream[0].node); | ||
} else { | ||
nodeStack.pop(); | ||
} | ||
render(stream.splice(0, 1)[0]); | ||
} | ||
} | ||
return result + escape(value.substr(processed)); | ||
}; | ||
/* **** Highlight.js Private API **** */ | ||
module.exports.HighlightJS = new HighlightJS(); | ||
})(); | ||
},{}]},{},[1]); |
@@ -1,1 +0,1 @@ | ||
!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module){(function(global){!function(){function Diff2HtmlUI(config){var cfg=config||{};cfg.diff?diffJson=Diff2Html.getJsonFromDiff(cfg.diff):cfg.json&&(diffJson=cfg.json),this._initSelection()}var diffJson=null,defaultTarget="body",currentSelectionColumnId=-1;Diff2HtmlUI.prototype.draw=function(targetId,config){var cfg=config||{},$target=this._getTarget(targetId);$target.html(Diff2Html.getPrettyHtml(diffJson,cfg))},Diff2HtmlUI.prototype.fileListCloseable=function(targetId,startVisible){function show(){$showBtn.hide(),$hideBtn.show(),$fileList.show()}function hide(){$hideBtn.hide(),$showBtn.show(),$fileList.hide()}var $target=this._getTarget(targetId),hashTag=this._getHashTag(),$showBtn=$target.find(".d2h-show"),$hideBtn=$target.find(".d2h-hide"),$fileList=$target.find(".d2h-file-list");"files-summary-show"===hashTag?show():"files-summary-hide"===hashTag?hide():startVisible?show():hide(),$showBtn.click(show),$hideBtn.click(hide)},Diff2HtmlUI.prototype.highlightCode=function(targetId){var that=this,$target=that._getTarget(targetId),languages=that._getLanguages($target);hljs.configure({languages:languages});var $codeLines=$target.find(".d2h-code-line-ctn");$codeLines.map(function(i,line){hljs.highlightBlock(line)})},Diff2HtmlUI.prototype._getTarget=function(targetId){var $target;return"object"==typeof targetId&&targetId instanceof jQuery?$target=targetId:"string"==typeof targetId?$target=$(targetId):(console.error("Wrong target provided! Falling back to default value 'body'."),console.log("Please provide a jQuery object or a valid DOM query string."),$target=$(defaultTarget)),$target},Diff2HtmlUI.prototype._getLanguages=function($target){var allFileLanguages=[];return diffJson?allFileLanguages=diffJson.map(function(line){return line.language}):$target.find(".d2h-file-wrapper").map(function(i,file){allFileLanguages.push($(file).data("lang"))}),this._distinct(allFileLanguages)},Diff2HtmlUI.prototype._getHashTag=function(){var docUrl=document.URL,hashTagIndex=docUrl.indexOf("#"),hashTag=null;return-1!==hashTagIndex&&(hashTag=docUrl.substr(hashTagIndex+1)),hashTag},Diff2HtmlUI.prototype._distinct=function(collection){return collection.filter(function(v,i){return collection.indexOf(v)===i})},Diff2HtmlUI.prototype._initSelection=function(){var body=$("body"),that=this;body.on("mousedown",".d2h-diff-table",function(event){var target=$(event.target),table=target.closest(".d2h-diff-table");target.closest(".d2h-code-line,.d2h-code-side-line").length?(table.removeClass("selecting-left"),table.addClass("selecting-right"),currentSelectionColumnId=1):target.closest(".d2h-code-linenumber,.d2h-code-side-linenumber").length&&(table.removeClass("selecting-right"),table.addClass("selecting-left"),currentSelectionColumnId=0)}),body.on("copy",".d2h-diff-table",function(event){var clipboardData=event.originalEvent.clipboardData,text=that._getSelectedText();clipboardData.setData("text",text),event.preventDefault()})},Diff2HtmlUI.prototype._getSelectedText=function(){var sel=window.getSelection(),range=sel.getRangeAt(0),doc=range.cloneContents(),nodes=doc.querySelectorAll("tr"),text="",idx=currentSelectionColumnId;return 0===nodes.length?text=doc.textContent:[].forEach.call(nodes,function(tr,i){var td=tr.cells[1===tr.cells.length?0:idx];text+=(i?"\n":"")+td.textContent.replace(/(?:\r\n|\r|\n)/g,"")}),text},module.exports.Diff2HtmlUI=Diff2HtmlUI,global.Diff2HtmlUI=Diff2HtmlUI}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); | ||
!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module){(function(global){!function(){function Diff2HtmlUI(config){var cfg=config||{};cfg.diff?diffJson=Diff2Html.getJsonFromDiff(cfg.diff):cfg.json&&(diffJson=cfg.json),this._initSelection()}var highlightJS=require("./highlight.js-internals.js").HighlightJS,diffJson=null,defaultTarget="body",currentSelectionColumnId=-1;Diff2HtmlUI.prototype.draw=function(targetId,config){var cfg=config||{},$target=this._getTarget(targetId);$target.html(Diff2Html.getPrettyHtml(diffJson,cfg))},Diff2HtmlUI.prototype.fileListCloseable=function(targetId,startVisible){function show(){$showBtn.hide(),$hideBtn.show(),$fileList.show()}function hide(){$hideBtn.hide(),$showBtn.show(),$fileList.hide()}var $target=this._getTarget(targetId),hashTag=this._getHashTag(),$showBtn=$target.find(".d2h-show"),$hideBtn=$target.find(".d2h-hide"),$fileList=$target.find(".d2h-file-list");"files-summary-show"===hashTag?show():"files-summary-hide"===hashTag?hide():startVisible?show():hide(),$showBtn.click(show),$hideBtn.click(hide)},Diff2HtmlUI.prototype.highlightCode=function(targetId){var that=this,$target=that._getTarget(targetId),$files=$target.find(".d2h-file-wrapper");$files.map(function(_i,file){var oldLinesState,newLinesState,$file=$(file),language=$file.data("lang"),$codeLines=$file.find(".d2h-code-line-ctn");$codeLines.map(function(_j,line){var lineState,$line=$(line),text=line.textContent,lineParent=line.parentNode;lineState=-1!==lineParent.className.indexOf("d2h-del")?oldLinesState:newLinesState;var result=hljs.getLanguage(language)?hljs.highlight(language,text,!0,lineState):hljs.highlightAuto(text);-1!==lineParent.className.indexOf("d2h-del")?oldLinesState=result.top:-1!==lineParent.className.indexOf("d2h-ins")?newLinesState=result.top:(oldLinesState=result.top,newLinesState=result.top);var originalStream=highlightJS.nodeStream(line);if(originalStream.length){var resultNode=document.createElementNS("http://www.w3.org/1999/xhtml","div");resultNode.innerHTML=result.value,result.value=highlightJS.mergeStreams(originalStream,highlightJS.nodeStream(resultNode),text)}$line.addClass("hljs"),$line.addClass(result.language),$line.html(result.value)})})},Diff2HtmlUI.prototype._getTarget=function(targetId){var $target;return"object"==typeof targetId&&targetId instanceof jQuery?$target=targetId:"string"==typeof targetId?$target=$(targetId):(console.error("Wrong target provided! Falling back to default value 'body'."),console.log("Please provide a jQuery object or a valid DOM query string."),$target=$(defaultTarget)),$target},Diff2HtmlUI.prototype._getHashTag=function(){var docUrl=document.URL,hashTagIndex=docUrl.indexOf("#"),hashTag=null;return-1!==hashTagIndex&&(hashTag=docUrl.substr(hashTagIndex+1)),hashTag},Diff2HtmlUI.prototype._distinct=function(collection){return collection.filter(function(v,i){return collection.indexOf(v)===i})},Diff2HtmlUI.prototype._initSelection=function(){var body=$("body"),that=this;body.on("mousedown",".d2h-diff-table",function(event){var target=$(event.target),table=target.closest(".d2h-diff-table");target.closest(".d2h-code-line,.d2h-code-side-line").length?(table.removeClass("selecting-left"),table.addClass("selecting-right"),currentSelectionColumnId=1):target.closest(".d2h-code-linenumber,.d2h-code-side-linenumber").length&&(table.removeClass("selecting-right"),table.addClass("selecting-left"),currentSelectionColumnId=0)}),body.on("copy",".d2h-diff-table",function(event){var clipboardData=event.originalEvent.clipboardData,text=that._getSelectedText();clipboardData.setData("text",text),event.preventDefault()})},Diff2HtmlUI.prototype._getSelectedText=function(){var sel=window.getSelection(),range=sel.getRangeAt(0),doc=range.cloneContents(),nodes=doc.querySelectorAll("tr"),text="",idx=currentSelectionColumnId;return 0===nodes.length?text=doc.textContent:[].forEach.call(nodes,function(tr,i){var td=tr.cells[1===tr.cells.length?0:idx];text+=(i?"\n":"")+td.textContent.replace(/(?:\r\n|\r|\n)/g,"")}),text},module.exports.Diff2HtmlUI=Diff2HtmlUI,global.Diff2HtmlUI=Diff2HtmlUI}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./highlight.js-internals.js":2}],2:[function(require,module){!function(){function HighlightJS(){}function escape(value){return value.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">")}function tag(node){return node.nodeName.toLowerCase()}HighlightJS.prototype.nodeStream=function(node){var result=[];return function _nodeStream(node,offset){for(var child=node.firstChild;child;child=child.nextSibling)3==child.nodeType?offset+=child.nodeValue.length:1==child.nodeType&&(result.push({event:"start",offset:offset,node:child}),offset=_nodeStream(child,offset),tag(child).match(/br|hr|img|input/)||result.push({event:"stop",offset:offset,node:child}));return offset}(node,0),result},HighlightJS.prototype.mergeStreams=function(original,highlighted,value){function selectStream(){return original.length&&highlighted.length?original[0].offset!=highlighted[0].offset?original[0].offset<highlighted[0].offset?original:highlighted:"start"==highlighted[0].event?original:highlighted:original.length?original:highlighted}function open(node){function attrStr(a){return" "+a.nodeName+'="'+escape(a.value)+'"'}result+="<"+tag(node)+Array.prototype.map.call(node.attributes,attrStr).join("")+">"}function close(node){result+="</"+tag(node)+">"}function render(event){("start"==event.event?open:close)(event.node)}for(var processed=0,result="",nodeStack=[];original.length||highlighted.length;){var stream=selectStream();if(result+=escape(value.substr(processed,stream[0].offset-processed)),processed=stream[0].offset,stream==original){nodeStack.reverse().forEach(close);do render(stream.splice(0,1)[0]),stream=selectStream();while(stream==original&&stream.length&&stream[0].offset==processed);nodeStack.reverse().forEach(open)}else"start"==stream[0].event?nodeStack.push(stream[0].node):nodeStack.pop(),render(stream.splice(0,1)[0])}return result+escape(value.substr(processed))},module.exports.HighlightJS=new HighlightJS}()},{}]},{},[1]); |
{ | ||
"name": "diff2html", | ||
"version": "2.0.0-rc.1", | ||
"version": "2.0.0-rc.2", | ||
"homepage": "http://rtfpessoa.github.io/diff2html/", | ||
@@ -41,5 +41,10 @@ "description": "Fast Diff to colorized HTML", | ||
"templates": "./scripts/hulk.js --wrapper node --variable 'browserTemplates' ./src/templates/*.mustache > ./src/templates/diff2html-templates.js", | ||
"test": "jscs src/*.js src/ui/js/*.js && istanbul cover _mocha -- -u exports -R spec ./test/**/* && istanbul check-coverage --statements 90 --functions 90 --branches 85 --lines 90 ./coverage/coverage.json", | ||
"style": "jscs src/*.js src/ui/js/*.js", | ||
"codacy": "istanbul cover _mocha -- -u exports -R spec ./test/**/* && cat ./coverage/lcov.info | codacy-coverage" | ||
"coverage": "istanbul cover _mocha -- -u exports -R spec ./test/**/*", | ||
"check-coverage": "istanbul check-coverage --statements 90 --functions 90 --branches 85 --lines 90 ./coverage/coverage.json", | ||
"test": "npm run style && npm run coverage && npm run check-coverage", | ||
"codacy": "npm run coverage && cat ./coverage/lcov.info | codacy-coverage", | ||
"preversion": "npm run release && npm test", | ||
"version": "git add -A src dist", | ||
"postversion": "git push && git push --tags" | ||
}, | ||
@@ -46,0 +51,0 @@ "main": "./src/diff2html.js", |
@@ -11,6 +11,8 @@ /* | ||
/*global $, hljs*/ | ||
/*global $, hljs, Diff2Html*/ | ||
(function() { | ||
var highlightJS = require('./highlight.js-internals.js').HighlightJS; | ||
var diffJson = null; | ||
@@ -73,11 +75,46 @@ var defaultTarget = "body"; | ||
var languages = that._getLanguages($target); | ||
// collect all the diff files and execute the highlight on their lines | ||
var $files = $target.find(".d2h-file-wrapper"); | ||
$files.map(function(_i, file) { | ||
var oldLinesState; | ||
var newLinesState; | ||
var $file = $(file); | ||
var language = $file.data("lang"); | ||
// pass the languages to the highlightjs plugin | ||
hljs.configure({languages: languages}); | ||
// collect all the code lines and execute the highlight on them | ||
var $codeLines = $file.find(".d2h-code-line-ctn"); | ||
$codeLines.map(function(_j, line) { | ||
var $line = $(line); | ||
var text = line.textContent; | ||
var lineParent = line.parentNode; | ||
// collect all the code lines and execute the highlight on them | ||
var $codeLines = $target.find(".d2h-code-line-ctn"); | ||
$codeLines.map(function(i, line) { | ||
hljs.highlightBlock(line); | ||
var lineState; | ||
if (lineParent.className.indexOf("d2h-del") !== -1) { | ||
lineState = oldLinesState; | ||
} else { | ||
lineState = newLinesState; | ||
} | ||
var result = hljs.getLanguage(language) ? hljs.highlight(language, text, true, lineState) : hljs.highlightAuto(text); | ||
if (lineParent.className.indexOf("d2h-del") !== -1) { | ||
oldLinesState = result.top; | ||
} else if (lineParent.className.indexOf("d2h-ins") !== -1) { | ||
newLinesState = result.top; | ||
} else { | ||
oldLinesState = result.top; | ||
newLinesState = result.top; | ||
} | ||
var originalStream = highlightJS.nodeStream(line); | ||
if (originalStream.length) { | ||
var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div'); | ||
resultNode.innerHTML = result.value; | ||
result.value = highlightJS.mergeStreams(originalStream, highlightJS.nodeStream(resultNode), text); | ||
} | ||
$line.addClass("hljs"); | ||
$line.addClass(result.language); | ||
$line.html(result.value); | ||
}); | ||
}); | ||
@@ -102,20 +139,2 @@ }; | ||
Diff2HtmlUI.prototype._getLanguages = function($target) { | ||
var allFileLanguages = []; | ||
if (diffJson) { | ||
// collect all the file extensions in the json | ||
allFileLanguages = diffJson.map(function(line) { | ||
return line.language; | ||
}); | ||
} else { | ||
$target.find(".d2h-file-wrapper").map(function(i, file) { | ||
allFileLanguages.push($(file).data("lang")); | ||
}); | ||
} | ||
// return only distinct languages | ||
return this._distinct(allFileLanguages); | ||
}; | ||
Diff2HtmlUI.prototype._getHashTag = function() { | ||
@@ -122,0 +141,0 @@ var docUrl = document.URL; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
291995
28
5602