vscode-leetcode
vscode-leetcode copied to clipboard
Circular Dependency
Can't log in anymore. Gives this error,
(node:14912) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created).
Same issue here :(
I'm using the cookie login but it's not working anymore.
login: (node:27208) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
cookie: - Retrieving user favorites
[WARN] Failed to retrieve user favorites: [object Object]
- Retrieving user profile
c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55
let s = args.map(x => x.toString()).join(' ');
^
TypeError: Cannot read properties of undefined (reading 'toString')
at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:31
at Array.map (<anonymous>)
at log.<computed> [as info] (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:20)
at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\commands\user.js:121:13
at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:523:14
at Request._callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:422:19)
at self.callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:185:22)
at Request.emit (node:events:514:28)
at Request.<anonymous> (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:1161:10)
at Request.emit (node:events:514:28)
Node.js v18.17.1
Update:
Also It seems other folks are facing this issue as well, https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478#issuecomment-1983281960
Same issue here :(
I'm using the cookie login but it's not working anymore.
login: (node:27208) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency (Use `node --trace-warnings ...` to show where the warning was created) cookie: - Retrieving user favorites [WARN] Failed to retrieve user favorites: [object Object] - Retrieving user profile c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55 let s = args.map(x => x.toString()).join(' '); ^ TypeError: Cannot read properties of undefined (reading 'toString') at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:31 at Array.map (<anonymous>) at log.<computed> [as info] (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:20) at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\commands\user.js:121:13 at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:523:14 at Request._callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:422:19) at self.callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:185:22) at Request.emit (node:events:514:28) at Request.<anonymous> (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:1161:10) at Request.emit (node:events:514:28) Node.js v18.17.1
Update:
Also It seems other folks are facing this issue as well, #478 (comment)
Same
Same issue here :(
I'm using the cookie login but it's not working anymore.
login: (node:27208) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency (Use `node --trace-warnings ...` to show where the warning was created) cookie: - Retrieving user favorites [WARN] Failed to retrieve user favorites: [object Object] - Retrieving user profile c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55 let s = args.map(x => x.toString()).join(' '); ^ TypeError: Cannot read properties of undefined (reading 'toString') at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:31 at Array.map (<anonymous>) at log.<computed> [as info] (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:20) at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\commands\user.js:121:13 at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:523:14 at Request._callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:422:19) at self.callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:185:22) at Request.emit (node:events:514:28) at Request.<anonymous> (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:1161:10) at Request.emit (node:events:514:28) Node.js v18.17.1
Update:
Also It seems other folks are facing this issue as well, #478 (comment)
Node.js v20.11.0
login: (node:1480417) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
cookie: - Retrieving user favorites
[WARN] Failed to retrieve user favorites: [object Object]
- Retrieving user profile
/home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/vsc-leetcode-cli/lib/log.js:55
let s = args.map(x => x.toString()).join(' ');
^
TypeError: Cannot read properties of undefined (reading 'toString')
at /home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/vsc-leetcode-cli/lib/log.js:55:31
at Array.map (<anonymous>)
at log.<computed> [as info] (/home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/vsc-leetcode-cli/lib/log.js:55:20)
at /home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/vsc-leetcode-cli/lib/commands/user.js:121:13
at /home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/vsc-leetcode-cli/lib/plugins/leetcode.js:523:14
at Request._callback (/home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/vsc-leetcode-cli/lib/plugins/leetcode.js:422:19)
at self.callback (/home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/request/request.js:185:22)
at Request.emit (node:events:518:28)
at Request.<anonymous> (/home/**user**/.vscode/extensions/leetcode.vscode-leetcode-0.18.1/node_modules/request/request.js:1161:10)
at Request.emit (node:events:518:28)
Node.js v20.11.0
- Waiting session result
(node:1505451) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] session expired, please login again [code=-1]
Same.
Ubuntu 20.04 Node v20.11.0 Vs Code 1.87.0 Extension version: 0.18.1
update 1: uploaded log
same here, looks like when we try to access /accounts/login, server will give 403, maybe they have upgraded firewall or something. Also not sure why when I try to login with third party I got password incorrect
It's cloudflare, i printed out the response that I'm getting on some of the API calls and it says this:
<p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p>
</div>
<div class="cf-column">
<h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2>
<p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p>
full html here: https://pastebin.com/cTTAf8cb
I got this a few months ago, I wasn't able to figure out a solution, it just ended up going away after a while
It's cloudflare, i printed out the response that I'm getting on some of the API calls and it says this:
<p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p> </div> <div class="cf-column"> <h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2> <p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p>
full html here: https://pastebin.com/cTTAf8cb
I got this a few months ago, I wasn't able to figure out a solution, it just ended up going away after a while
How long did it take to work again?
same here, looks like when we try to access /accounts/login, server will give 403, maybe they have upgraded firewall or something. Also not sure why when I try to login with third party I got password incorrect
This is because if you try to use third party login, it will send a verify code to your mailbox. That's why it says password incorrect.
Same issue here :(
I'm using the cookie login but it's not working anymore.
login: (node:27208) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency (Use `node --trace-warnings ...` to show where the warning was created) cookie: - Retrieving user favorites [WARN] Failed to retrieve user favorites: [object Object] - Retrieving user profile c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55 let s = args.map(x => x.toString()).join(' '); ^ TypeError: Cannot read properties of undefined (reading 'toString') at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:31 at Array.map (<anonymous>) at log.<computed> [as info] (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:20) at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\commands\user.js:121:13 at c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:523:14 at Request._callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:422:19) at self.callback (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:185:22) at Request.emit (node:events:514:28) at Request.<anonymous> (c:\Users\XXXXX\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:1161:10) at Request.emit (node:events:514:28) Node.js v18.17.1
Update:
Also It seems other folks are facing this issue as well, #478 (comment)
Have you solved this problem
It's cloudflare, i printed out the response that I'm getting on some of the API calls and it says this:
<p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p> </div> <div class="cf-column"> <h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2> <p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p>
full html here: https://pastebin.com/cTTAf8cb I got this a few months ago, I wasn't able to figure out a solution, it just ended up going away after a while
How long did it take to work again?
I'm not sure, maybe a couple of days. I tried github sign in, linkedin signin, cookie signin, and all failed. I also tried this alternative: https://github.com/clearloop/leetcode-cli and I also had the exact same issue. Somehow Cloudflare is not letting me through. I also tried behind a VPN and also by manipulating my request headers so they are more similar to my browser's also no good.
TypeError: Cannot read properties of undefined (reading 'toString')
at c:\Users\Fan Zhang\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:31
at Array.map (<anonymous>)
at log.<computed> [as info] (c:\Users\Fan Zhang\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\log.js:55:20)
at c:\Users\Fan Zhang\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\commands\user.js:121:13
at c:\Users\Fan Zhang\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:523:14
at Request._callback (c:\Users\Fan Zhang\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\vsc-leetcode-cli\lib\plugins\leetcode.js:422:19)
at self.callback (c:\Users\Fan Zhang\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:185:22)
at Request.emit (node:events:519:28)
at Request.<anonymous> (c:\Users\Fan Zhang\.vscode\extensions\leetcode.vscode-leetcode-0.18.1\node_modules\request\request.js:1161:10)
at Request.emit (node:events:519:28)
Node.js v21.7.0``
I also met the problem. is there anybody solve it? I can't sign in leetcode in vscode for ten days.
same issue in Singapore, seems some day before, leetcode has been attacked and open some toggle.
Same issue. Can it be resolved by any way?
maintainer has not been active, last commit was 2 years ago
find the root cause :) , leetcode website update http proto to allow HTTP/2, letcode-cli request still send http/1.1 request.
find the root cause :) , leetcode website update http proto to allow HTTP/2, letcode-cli request still send http/1.1 request. if change all request to http/2, it should work well again. Will try to fix that.
Please berlinway, you're our only hope. This is so disheartening, I love this extension. At least I'm not crazy and not the only one with this issue.
Even if we get a fix what do we do if the maintainer isn't around to accept a new pull request and create a new 18.2 release? Last release was almost 2 years ago. Will we have to patch locally?
find the root cause :) , leetcode website update http proto to allow HTTP/2, letcode-cli request still send http/1.1 request.
hmm I tried replacing the library with some ones that send http/2 requests, I'm still getting the same cloudflare 403 error page in response. Hopefully you get some better luck than me
I managed to get cookie login working with fetch-h2. But the cookies on their own are not enough. I had to copy my headers over from my browser request as well. Probably worth noting that this issue is ultimately with the leetcode-cli package. Which if you have been logging in via cookies, we have been using a fork this whole time anyway (this one https://github.com/leetcode-tools/leetcode-cli) also might be dead.. 😂
Ill likely create a fork of leetcode-tools/leetcode-cli and try to get it merged. If not, it could just replace it.
Im not sure if hard-coding the headers will be a long term solution (I have yet to test which are needed) but another solution might be to paste in the a curl request rather than the cookies alone. I've done 0 testing with the OAuth as i didn't trust passing my creds into a vscode prompt lol.
Ill stay posted.
I managed to get cookie login working with fetch-h2. But the cookies on their own are not enough. I had to copy my headers over from my browser request as well. Probably worth noting that this issue is ultimately with the leetcode-cli package. Which if you have been logging in via cookies, we have been using a fork this whole time anyway (this one https://github.com/leetcode-tools/leetcode-cli) also might be dead.. 😂
Ill likely create a fork of leetcode-tools/leetcode-cli and try to get it merged. If not, it could just replace it.
Im not sure if hard-coding the headers will be a long term solution (I have yet to test which are needed) but another solution might be to paste in the a curl request rather than the cookies alone. I've done 0 testing with the OAuth as i didn't trust passing my creds into a vscode prompt lol.
Ill stay posted.
ah interesting, I tried something similar with http2 and also copying my own headers, but I still hit a cloudflare page. It's heartening that someone got it working at least.
Thanks for your diligent work. Please keep up posted and post any instructions/work-arounds (eg direct curl) once you find them. Thanks again.
Leetcode has updated their cloudflare to block requests without some http headers
For example I've modified vsc-leetcode-cli
locally and changing plugin.makeOpts
function to include dummy User-Agent
and Host
headers will make signing in work again
plugin.makeOpts = function(url) {
const opts = {};
opts.url = url;
opts.headers = {};
opts.headers['Host'] = 'leetcode.com';
opts.headers['User-Agent'] = 'Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0';
if (session.isLogin())
plugin.signOpts(opts, session.getUser());
return opts;
};
In my case, my plugin had to only include new dummy User-Agent
header to start working again. https://github.com/kawre/leetcode.nvim/pull/70
This is a bundle of headers that gets sent with every request made by my plugin and everything seems to be working fine
["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0",
["Referer"] = ("https://leetcode.%s"):format(config.domain),
["Origin"] = ("https://leetcode.%s/"):format(config.domain),
["Content-Type"] = "application/json",
["Accept"] = "application/json",
["Host"] = ("leetcode.%s"):format(config.domain),
["X-Requested-With"] = "XMLHttpRequest",
I added those lines to /Users/myuser/.nvm/versions/node/v18.18.2/lib/node_modules/vsc-leetcode-cli/lib/plugins/leetcode.js but it doesn't seem to have any effect when I use the cookie login.
For those who urgently need a leetcode IDE solution, this is an alternative. ~https://plugins.jetbrains.com/plugin/12132-leetcode-editor~ https://github.com/shuzijun/leetcode-editor/releases You can use the plugin with the free JetBrain IDEs. The plugin bypasses the CloudFlare problem with the in-IDE browser. By the way, I hope the issue is solved.
Edit: Changed a link. (Plugin MarketPlace -> Github Repository)
@robpodosek I've only sent an example. Messing around with the headers I've sent I was able to login, open a question and run it.
The problem is that leetcode-cli
logs you out if one of the requests return with status code of 403 or 401. To avoid this you would need to ensure that every request sent includes the headers I've mentioned or else you will get logged out if any request fails. But not every request is using plugin.makeOpts
to create opts, so this not the only place it needs to be changed.
@woung717 I seem to be having issues with that plugin as well, even if I do the cookie login. Maybe I'm doing something wrong...
@robpodosek I forgot to say that it is not published in JetBrain Plugin Marketplace yet. You can download the updated version in the github repository. leetcode-editor-8.10.zip
I fixed it to make it work. Leetcode changed all the endpoint requires x-csrftoken header. Thanks for the tips. @kawre
I compiled and uploaded full extension binary. You can download from here. You can load locally by VSCode -> Extensions Menu -> "..." icon -> Install from VSIX...
~You can test from below. https://github.com/woung717/vscode-leetcode/tree/leetcode-cli-change https://github.com/woung717/leetcode-cli/tree/fix-cloudflare-issue~
But the problem is that leetcode-cli, where I modified, is quite old and no longer seems to be maintained. (Last pull request merge was 2022) ~Maybe we should fork the branch from leetcode-tools / leetcode-cli and merge into it?~
@jdneo Can you check the pull request?
I fixed it to make it work. Leetcode changed all the endpoint requires x-csrftoken header. Thanks for the tips. @kawre
I compiled and uploaded full extension binary. You can download from here. You can load locally by VSCode -> Extensions Menu -> "..." icon -> Install from VSIX...
~You can test from below. https://github.com/woung717/vscode-leetcode/tree/leetcode-cli-change https://github.com/woung717/leetcode-cli/tree/fix-cloudflare-issue~
But the problem is that leetcode-cli, where I modified, is quite old and no longer seems to be maintained. (Last pull request merge was 2022) ~Maybe we should fork the branch from leetcode-tools / leetcode-cli and merge into it?~
@jdneo Can you check the pull request?
Thanks for your work, but I tried your extension, it's still blocked
Active Name Version Desc
----------------------------------------------------------------------------------------------------
√ solution.discuss 2019.02.03 Plugin to fetch most voted solution in discussions.
√ company 2017.12.18 Plugin to query by company for free user.
√ cache default Plugin to provide local cache.
√ retry default Plugin to retry last failed request if autologin.enable is on.
× leetcode.cn 2018.11.25 Plugin to talk with leetcode-cn APIs.
√ leetcode default Plugin to talk with leetcode APIs.
(node:20780) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
Premium User Host
------------------------------------------------------------
× undefined https://leetcode.com
(node:20924) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
- Downloading problems
(node:21040) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] session expired, please login again [code=-1]
login: (node:17832) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
pass: [ERROR] Login failed. Please make sure the credential is correct.
@MakiseJ ID/Password login method was previously blocked. You must login using cookies. Copy from the browser csrftoken=xxx; LEETCODE_SESSION=xxx;