Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
update dependencies and adapt tests by hakandilek · Pull Request #21 · scijs/cwise · GitHub
Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' update dependencies and adapt tests by hakandilek · Pull Request #21 · scijs/cwise · GitHub
Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' update dependencies and adapt tests by hakandilek · Pull Request #21 · scijs/cwise · GitHub
Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' update dependencies and adapt tests by hakandilek · Pull Request #21 · scijs/cwise · GitHub
Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' update dependencies and adapt tests by hakandilek · Pull Request #21 · scijs/cwise · GitHub
Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' update dependencies and adapt tests by hakandilek · Pull Request #21 · scijs/cwise · GitHub
Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); update dependencies and adapt tests by hakandilek · Pull Request #21 · scijs/cwise · GitHub
Skip to content

update dependencies and adapt tests - #21

Open
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies
Open

update dependencies and adapt tests#21
hakandilek wants to merge 3 commits into
scijs:masterfrom
hakandilek:update-dependencies

Conversation

@hakandilek

Copy link
Copy Markdown

trying to fix#19

@rreusser

Copy link
Copy Markdown
Member

Looks reasonable. I'll see if I can set aside some time this afternoon and give it a test run since the tests don't always cover every possibility.

Comment threadtest/fill.js
@@ -1,4 +1,4 @@
var cwise = require("cwise")
var cwise = require("..")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interesting in knowing why this line needed to be patched.

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this have been testing the npm-resolved copy rather than the local code? Seems a bit fishy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, unless it's required to get static-module to correctly locate and replace require('cwise')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, I get it. It aliases node_modules/cwise to .., probably so that static module works correctly. That means npm run pretest is required before npm run test.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating @rreusser 🔬

It aliases node_modules/cwise to .., probably so that static module works correctly.

It would be nice to have someone confirming this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That line with pretest is os dependent but is obsolete with '..'

@rreusserrreusserMay 30, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hakandilek I think you might be right.

Reasons I think it's an issue: this extra indirection is present, which suggests it may be needed. static-module is a dependency and treats require('..') differently from require('cwise'), even if they resolve to the same thing.

Reasons I question whether it's an issue: it doesn't immediately jump out to me that the tests actually hit static-module.

Seems alright to me to use require('..') if the tests pass and if linking this to and testing this with a real-world project succeeds.

@hakandilek

hakandilek commented May 30, 2018 via email

Copy link
Copy Markdown
Author

@etpinard

etpinard commented May 30, 2018

Copy link
Copy Markdown
Contributor

I would be nice to test this branch on some "real world" apps. I guess I should try building plotly.js off this branch. Does anyone know a nice way to npm link third-party deduped modules?

@hakandilek

Copy link
Copy Markdown
Author

@etpinard what about linking this repo under the sub-dependency path under node_modules dir of a real world plotly app?

@etpinard

Copy link
Copy Markdown
Contributor

My first attempt didn't go well.

For some reason

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

gives:

image

Much more granuarly using ndarray-fill

$ (cwise) npm link
$ (ndarray-fill) npm link cwise
$ (ndarray-fill) npm test

gives

image

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think the problem is how browserify is integrated in the ndarray-fill. It fails to place the necessary require("cwise") block.

I've created a pull request integrating tape-run. It runs perfectly fine.

@etpinard

Copy link
Copy Markdown
Contributor

I've created a pull request integrating tape-run. It runs perfectly fine.

Thanks for making that PR. That looks like a way more robust way to test cwise-transformed bundles 👏

But, this doesn't address this issue I noticed in plotly.js:

$ (cwise) npm link
$ (plotly.js) npm link cwise
$ (plotly.js) budo lib/index.js --open

still fails.

I understand you might not be interested in fixing this particular use case, so we certainly could merge this PR and release under a new major version signaling a possible breaking change.

@hakandilek

Copy link
Copy Markdown
Author

@etpinard I think it's a problem with browserify.

I've tried it with webpack as described here, and it works.

Check out my plotly-webpack fork:

image

@etpinard

Copy link
Copy Markdown
Contributor

Can you try a 3D graph? The scatter trace doesn't need to use cwise.

@hakandilek

Copy link
Copy Markdown
Author

Yes you're right, it's failing. 😒

image

@bung87

Copy link
Copy Markdown

I'd like to see this PR gets merged.so that 58 packages depends on this project wont receive vulnerabilities alert.

@dy

dy commented Dec 18, 2018

Copy link
Copy Markdown
Member

@rreusser shall we proceed? This PR does not seem to introduce any breaking change.

@rreusser

rreusser commented Dec 18, 2018

Copy link
Copy Markdown
Member

Hmm… @dy please do correct me if I'm mistaken, but I was under the impression that the current functioning of the cwise transform is incompatible with static-eval ^2, which is to say that cwise works fine with static-eval upgraded, but only if you're alright including esprima (~120kb, can't remember if that's minified or not) in production.

See: browserify/static-module#48 (comment)

@Sceat

Copy link
Copy Markdown

any eta ?

@kibertoad

Copy link
Copy Markdown

Can this be merged?

@mhldtna

Copy link
Copy Markdown

What is the status of this?

My application uses vue-plotly^1.1.0 which has an indirect dependency on cwise^1.0.10 through plotly.js@1.52.1, gl-plot2d@1.4.4 and glplot3d@2.4.5, and gl-select-static@2.0.6. A bunch of npm audit vulnerabilities are due to cwise@1.0.10 use of static-module^1.0.0 which itself is dependent upon static-eval~0.2.0 which has moderate vulnerabilities according to npm audit.

The current version of static-eval is 2.1.0. Please fix this dependency.

@kgryte

Copy link
Copy Markdown

@mhldtna If you want to accelerate the process, feel free to investigate and return back with your findings. Contributions are welcome.

@mhldtna

Copy link
Copy Markdown

@kgryte - see browserify/static-module#48.

It's unrealistic for me to add any value to that discussion.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

potential security vulnerability via an outdated version of static-module@1.5.0 > static-eval@0.2.4

9 participants

@hakandilek@rreusser@etpinard@bung87@dy@Sceat@kibertoad@mhldtna@kgryte