Title: Lit.js migration roadmap · Issue #549 · NodeSecure/cli · GitHub
Open Graph Title: Lit.js migration roadmap · Issue #549 · NodeSecure/cli
X Title: Lit.js migration roadmap · Issue #549 · NodeSecure/cli
Description: Today: Today, the project consists of a set of pseudo-components fully managed in Vanilla JavaScript without any external libraries. Goal: Implement Lit.js to maintain a primarily Vanilla approach while structuring our components more ef...
Open Graph Description: Today: Today, the project consists of a set of pseudo-components fully managed in Vanilla JavaScript without any external libraries. Goal: Implement Lit.js to maintain a primarily Vanilla approach ...
X Description: Today: Today, the project consists of a set of pseudo-components fully managed in Vanilla JavaScript without any external libraries. Goal: Implement Lit.js to maintain a primarily Vanilla approach ...
Opengraph URL: https://github.com/NodeSecure/cli/issues/549
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Lit.js migration roadmap","articleBody":"### Today:\nToday, the project consists of a set of pseudo-components fully managed in Vanilla JavaScript without any external libraries.\n\n### Goal:\nImplement [Lit.js](https://lit.dev/) to maintain a primarily Vanilla approach while structuring our components more effectively.\n\n### (Easy) components to migrate (most of the code is html element creation):\n- [x] legend component (see https://github.com/NodeSecure/cli/pull/546)\n- [x] bundlephobia component (see https://github.com/NodeSecure/cli/issues/547)\n- [x] [expandable component](https://github.com/NodeSecure/cli/blob/master/public/components/expandable/expandable.js) (see https://github.com/NodeSecure/cli/pull/551)\n- [x] [file-box component ](https://github.com/NodeSecure/cli/blob/master/public/components/file-box/file-box.js)\n- [x] [gauge component](https://github.com/NodeSecure/cli/blob/master/public/components/gauge/gauge.js)\n- [x] [report component](https://github.com/NodeSecure/cli/blob/master/public/components/views/home/report/report.js) (easy but is blocked by the migration of the popup component)\n- [x] [files component](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/files/files.js) (blocked by expandable)\n- [x] [licenses component](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/licenses/licenses.js) (easy but blocked by fill-box)\n- [x] [vulnerabilities](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/vulnerabilities/vulnerabilities.js)\n\n### (Medium) Tougher components to migrate (because of their interaction with other components)\n- [x] [popup component](https://github.com/NodeSecure/cli/blob/master/public/components/popup/popup.js)\n- [x] [locker component](https://github.com/NodeSecure/cli/blob/master/public/components/locker/locker.js)\n- [x] [scripts component](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/scripts/scripts.js)\n\n### (Hard) hard component to migrate (because of the inherent complexity of the component itself and its interaction with other components)\n- [ ] [navigation component](https://github.com/NodeSecure/cli/blob/master/public/components/navigation/navigation.js) \n- [ ] [wiki component](https://github.com/NodeSecure/cli/blob/master/public/components/wiki/wiki.js) \n- [ ] [settings component](https://github.com/NodeSecure/cli/blob/master/public/components/views/settings/settings.js) \n- [ ] [search component](https://github.com/NodeSecure/cli/blob/master/public/components/views/search/search.js) \n- [x] [maintainer component](https://github.com/NodeSecure/cli/blob/master/public/components/views/home/maintainers/maintainers.js) \n- [ ] [package (container)](https://github.com/NodeSecure/cli/blob/master/public/components/package/package.js) \n - [ ] [header](https://github.com/NodeSecure/cli/blob/master/public/components/package/header/header.js) \n - [ ] [pannels/overview](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/overview/overview.js) \n - [ ] [pannels/scorecard](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/scorecard/scorecard.js) \n - [ ] [pannels/warnings](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/warnings/warnings.js)\n - [ ] [code-fetcher](https://github.com/NodeSecure/cli/blob/master/public/components/package/pannels/warnings/code-fetcher.js)\n\n### (Hardest)\n- [ ] [searchbar](https://github.com/NodeSecure/cli/blob/master/public/components/views/settings/settings.js) (probably more rewrite than a migration see https://github.com/NodeSecure/cli/issues/423)\n- [ ] [home](https://github.com/NodeSecure/cli/blob/master/public/components/views/home/home.js)\n\n### (Icon migration)\nsetup a new icon system (see https://github.com/NodeSecure/cli/issues/556)\n\n\u003e [!NOTE]\n\u003e The estimated migration difficulty for each component is provided as a general indication and may prove to be easier or more complex in practice than stated \n","author":{"url":"https://github.com/clemgbld","@type":"Person","name":"clemgbld"},"datePublished":"2025-08-02T12:13:52.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/549/cli/issues/549"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:8b0d31e8-bc91-aab6-474e-a913524a10f8 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 923E:B2A0:79AC3F:A445BB:698E3985 |
| html-safe-nonce | 2bd946c4ec1aaf42d385d080b884be5efd2162996d3dcba69e45ff916664616a |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MjNFOkIyQTA6NzlBQzNGOkE0NDVCQjo2OThFMzk4NSIsInZpc2l0b3JfaWQiOiI0MzEzNjUzNDU0OTM1MzA4Njc3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | e70cfb82aa81f822943479719b97d43d67e845c834f19ca0d4ca66587a4f5d40 |
| hovercard-subject-tag | issue:3285880598 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/NodeSecure/cli/549/issue_layout |
| twitter:image | https://opengraph.githubassets.com/49b4ecd6847e78ea7272398cff7bcb48d53de947f851d7c93f34bd66a14d44bf/NodeSecure/cli/issues/549 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/49b4ecd6847e78ea7272398cff7bcb48d53de947f851d7c93f34bd66a14d44bf/NodeSecure/cli/issues/549 |
| og:image:alt | Today: Today, the project consists of a set of pseudo-components fully managed in Vanilla JavaScript without any external libraries. Goal: Implement Lit.js to maintain a primarily Vanilla approach ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | clemgbld |
| hostname | github.com |
| expected-hostname | github.com |
| None | a5632af64f7fed7bff1d6a428d1aca1b94fa7a48f760de2d39d9b1effdbf0082 |
| turbo-cache-control | no-preview |
| go-import | github.com/NodeSecure/cli git https://github.com/NodeSecure/cli.git |
| octolytics-dimension-user_id | 85318671 |
| octolytics-dimension-user_login | NodeSecure |
| octolytics-dimension-repository_id | 194930898 |
| octolytics-dimension-repository_nwo | NodeSecure/cli |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 194930898 |
| octolytics-dimension-repository_network_root_nwo | NodeSecure/cli |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | aa1fa9100f85cd8b602c63c7e337f9151e70024f |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width