export enum JsWebFrameworks {
	React = "react",
	Vue = "vue",
	Angular = "@angular/core",
	AngularJS = "angular",
	Svelte = "svelte",
	Astro = "astro",
	Lit = "lit",
	Solid = "solid-js",
	Preact = "preact",
	Next = "next",
	Nuxt = "nuxt",
}

export enum JsTestFrameworks {
	Jest = "jest",
	Mocha = "mocha",
	Sinon = "sinon",
	Chai = "chai",
	Jasmine = "jasmine",
	Karma = "karma",
	Ava = "ava",
	Tape = "tape",
	Qunit = "qunit",
	Tap = "tap",
	Cypress = "cypress",
	Protractor = "protractor",
	Nightwatch = "nightwatch",
	Vitest = "vitest"
}

export enum JsApplicationFrameworks {
	VSCode = "vscode",
	Electron = "electron"
}

export enum JsAiFrameworks {
	TensorFlow = "@tensorflow/tfjs",
	LangChain = "@langchain/core",
	OpenAI = "@openai",
	Transformers = "@xenova/transformers",
}

export const TYPESCRIPT_PACKAGE = "typescript";

export const MOST_POPULAR_PACKAGES: Set<string> = new Set([
	"lodash",
	"request",
	"commander",
	"react",
	"express",
	"async",
	"moment",
	"prop-types",
	"react-dom",
	"bluebird",
	"underscore",
	"vue",
	"axios",
	"tslib",
	"glob",
	"yargs",
	"colors",
	"webpack",
	"uuid",
	"classnames",
	"minimist",
	"body-parser",
	"rxjs",
	"babel-runtime",
	"jquery",
	"babel-core",
	"core-js",
	"babel-loader",
	"cheerio",
	"rimraf",
	"eslint",
	"dotenv",
	TYPESCRIPT_PACKAGE,
	"@types/node",
	"@angular/core",
	"@angular/common",
	"redux",
	"gulp",
	"node-fetch",
	"@angular/platform-browser",
	"@babel/runtime",
	"handlebars",
	"@angular/compiler",
	"aws-sdk",
	"@angular/forms",
	"webpack-dev-server",
	"@angular/platform-browser-dynamic",
	"mocha",
	"socket.io",
	"ws",
	"node-sass",
	"@angular/router",
	"ramda",
	"react-redux",
	"@babel/core",
	"@angular/http",
	"ejs",
	"coffee-script",
	"mongodb",
	"chai",
	"mongoose",
	"xml2js",
	"bootstrap",
	"jest",
	"redis",
	"vue-router",
	"optimist",
	"promise",
	"@angular/animations",
	"postcss",
	"morgan",
	"less",
	"immutable"
]);
