-
Notifications
You must be signed in to change notification settings - Fork 1
feat(ui): [#3] Build registration and login forms #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
8686e81
3fff76e
bff195f
1aba74d
e43ea0d
03b36ca
833a43c
7f03a38
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,8 @@ | ||
| name: Linting Check | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: ['main'] | ||
|
|
||
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -11,6 +11,11 @@ async function bootstrap(): Promise<void> { | |||||||||||||||||||||
| transform: true, | ||||||||||||||||||||||
| }), | ||||||||||||||||||||||
| ); | ||||||||||||||||||||||
| app.enableCors({ | ||||||||||||||||||||||
| origin: 'http://localhost:4200', | ||||||||||||||||||||||
| methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', | ||||||||||||||||||||||
| credentials: true, | ||||||||||||||||||||||
| }); | ||||||||||||||||||||||
|
Comment on lines
+14
to
+18
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hardcoded origin will break production deployments. The CORS origin is hardcoded to 🔎 Recommended fix: Use environment variables app.enableCors({
- origin: 'http://localhost:4200',
+ origin: process.env.FRONTEND_URL ?? 'http://localhost:4200',
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
credentials: true,
});Add Optional: Since the PR mentions storing JWT in localStorage, the 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||
| await app.listen(process.env.PORT ?? 3000); | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
| void bootstrap(); | ||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,7 +3,7 @@ | |
| "version": "0.0.0", | ||
| "scripts": { | ||
| "ng": "ng", | ||
| "start": "ng serve", | ||
| "start": "ng serve --open", | ||
| "build": "ng build", | ||
| "watch": "ng build --watch --configuration development", | ||
| "test": "ng test", | ||
|
|
@@ -29,6 +29,8 @@ | |
| "@angular/forms": "^20.3.0", | ||
| "@angular/platform-browser": "^20.3.0", | ||
| "@angular/router": "^20.3.0", | ||
| "class-transformer": "^0.5.1", | ||
| "class-validator": "^0.14.2", | ||
|
Comment on lines
+32
to
+33
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🌐 Web query:
💡 Result: Summary (as of Dec 24, 2025)
Sources
If you want, I can: (a) show which of your projects depend on vulnerable versions, (b) provide an npm update/patch plan, or (c) fetch the exact npm package page / changelog for 0.5.1. 🌐 Web query:
💡 Result: Summary (as of Dec 24, 2025)
Recommended action
Sources
🌐 Web query:
💡 Result: Short answer: class-transformer v0.5.1 has no publicly listed CVE affecting that version. The known CVE (CVE‑2020‑7637 / prototype pollution) affects versions < 0.3.1 and was fixed in 0.3.1 — later releases including 0.5.1 are not listed as vulnerable. [1][2][3] Sources:
If you want, I can search again for any newer advisories (post‑Dec 24, 2025) or scan your project dependency tree for transitive issues. 🌐 Web query:
💡 Result: Short answer: There are no known CVEs published that affect class-validator version 0.14.2. [1] Notes and sources:
Sources: If you want, I can (a) scan your project for indirect vulnerabilities that affect class-validator via dependencies, or (b) monitor for any newly published advisories. Citations:
Consider upgrading class-validator to 0.14.3 and verify transitive dependencies.
🤖 Prompt for AI Agents |
||
| "rxjs": "~7.8.0", | ||
| "tslib": "^2.3.0", | ||
| "zone.js": "~0.15.0" | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,18 @@ | ||
| import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core'; | ||
| import { | ||
| ApplicationConfig, | ||
| provideBrowserGlobalErrorListeners, | ||
| provideZoneChangeDetection, | ||
| } from '@angular/core'; | ||
| import { provideRouter } from '@angular/router'; | ||
|
|
||
| import { routes } from './app.routes'; | ||
| import { provideHttpClient } from '@angular/common/http'; | ||
|
|
||
| export const appConfig: ApplicationConfig = { | ||
| providers: [ | ||
| provideBrowserGlobalErrorListeners(), | ||
| provideZoneChangeDetection({ eventCoalescing: true }), | ||
| provideRouter(routes) | ||
| ] | ||
| provideRouter(routes), | ||
| provideHttpClient(), | ||
| ], | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: Zafar7645/syncup
Length of output: 131
🏁 Script executed:
Repository: Zafar7645/syncup
Length of output: 1231
🌐 Web query:
bcryptjs security vulnerability maintenance status 2024 2025💡 Result:
Short summary — status (2024–2025)
bcryptjs itself: No public direct CVE for bcryptjs in 2024–2025 and security scanners (Snyk) report “no known security issues” for the latest bcryptjs package and classify its maintenance as healthy (recent commits/releases). [1][2]
Known behavior to be aware of: bcrypt (and bcryptjs) only uses the first 72 bytes of input — this is an inherent algorithm limitation (not a new bug). Several downstream advisories in 2025 surfaced because apps using bcryptjs (e.g., Strapi) did not enforce or document a max-password length, leading to a medium-severity advisory (CVE-2025-25298) about silent truncation in affected Strapi versions; the fix was to enforce/handle the 72‑byte limit in the application. [3][4][5]
What to do
Sources
🌐 Web query:
bcryptjs vs bcrypt performance comparison production use💡 Result:
Short answer: use native bcrypt in production when you can — it's noticeably faster (~20–30%+) and offloads work to libuv worker threads so it doesn't block the event loop. Use bcryptjs only when native compilation / native bindings are impossible (browser, some edge runtimes or constrained CI/builds) or you need a zero-dependency JS implementation; expect slower hashing and avoid synchronous calls (they block). [1][2][3][4]
Notes (very brief):
Sources:
[1] npm bcryptjs package readme / notes on performance.
[2] bcrypt vs bcryptjs comparison articles and package comparisons.
[3] Benchmarks / blog posts and community benchmarks showing native bcrypt speed advantage.
[4] Practical guides / tutorials advising native bcrypt and warning about sync blocking.
🏁 Script executed:
Repository: Zafar7645/syncup
Length of output: 400
🏁 Script executed:
Repository: Zafar7645/syncup
Length of output: 97
🏁 Script executed:
Repository: Zafar7645/syncup
Length of output: 3664
Remove security concern; performance trade-off is acceptable for async password hashing.
bcryptjs 3.0.3 is actively maintained and has no known security vulnerabilities. However, it is ~20–30% slower than native bcrypt. Since the service correctly uses async methods (
bcrypt.hash()andbcrypt.compare()), it avoids blocking the event loop. For password hashing operations—which are intentionally computationally expensive—this performance difference is acceptable for most applications.If production performance is a critical concern, consider evaluating native bcrypt (requires compiler toolchain) or Argon2 (better security properties) for future improvements.
🤖 Prompt for AI Agents