From 259485d1ca93f4b1d60ec674c3342b355a29cc7a Mon Sep 17 00:00:00 2001 From: nati Date: Sat, 10 May 2025 16:02:23 +0000 Subject: [PATCH] Initial commit --- .editorconfig | 13 + .gitignore | 46 + .prettierignore | 5 + .prettierrc | 3 + .vscode/extensions.json | 7 + README.md | 101 + apps/menntalind-e2e/cypress.config.ts | 18 + apps/menntalind-e2e/eslint.config.mjs | 11 + apps/menntalind-e2e/package.json | 10 + apps/menntalind-e2e/src/e2e/app.cy.ts | 13 + apps/menntalind-e2e/src/fixtures/example.json | 5 + apps/menntalind-e2e/src/support/app.po.ts | 1 + apps/menntalind-e2e/src/support/commands.ts | 37 + apps/menntalind-e2e/src/support/e2e.ts | 17 + apps/menntalind-e2e/tsconfig.json | 26 + apps/menntalind/eslint.config.mjs | 12 + apps/menntalind/index.html | 16 + apps/menntalind/package.json | 8 + apps/menntalind/public/favicon.ico | Bin 0 -> 15086 bytes apps/menntalind/src/app/app.module.scss | 1 + apps/menntalind/src/app/app.spec.tsx | 26 + apps/menntalind/src/app/app.tsx | 52 + apps/menntalind/src/app/nx-welcome.tsx | 856 + apps/menntalind/src/assets/.gitkeep | 0 apps/menntalind/src/main.tsx | 16 + apps/menntalind/src/styles.scss | 1 + apps/menntalind/tsconfig.app.json | 36 + apps/menntalind/tsconfig.json | 13 + apps/menntalind/tsconfig.spec.json | 36 + apps/menntalind/vite.config.ts | 40 + eslint.config.mjs | 46 + nx.json | 96 + package-lock.json | 19164 ++++++++++++++++ package.json | 56 + tsconfig.base.json | 21 + tsconfig.json | 13 + vitest.workspace.ts | 4 + 37 files changed, 20826 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 apps/menntalind-e2e/cypress.config.ts create mode 100644 apps/menntalind-e2e/eslint.config.mjs create mode 100644 apps/menntalind-e2e/package.json create mode 100644 apps/menntalind-e2e/src/e2e/app.cy.ts create mode 100644 apps/menntalind-e2e/src/fixtures/example.json create mode 100644 apps/menntalind-e2e/src/support/app.po.ts create mode 100644 apps/menntalind-e2e/src/support/commands.ts create mode 100644 apps/menntalind-e2e/src/support/e2e.ts create mode 100644 apps/menntalind-e2e/tsconfig.json create mode 100644 apps/menntalind/eslint.config.mjs create mode 100644 apps/menntalind/index.html create mode 100644 apps/menntalind/package.json create mode 100644 apps/menntalind/public/favicon.ico create mode 100644 apps/menntalind/src/app/app.module.scss create mode 100644 apps/menntalind/src/app/app.spec.tsx create mode 100644 apps/menntalind/src/app/app.tsx create mode 100644 apps/menntalind/src/app/nx-welcome.tsx create mode 100644 apps/menntalind/src/assets/.gitkeep create mode 100644 apps/menntalind/src/main.tsx create mode 100644 apps/menntalind/src/styles.scss create mode 100644 apps/menntalind/tsconfig.app.json create mode 100644 apps/menntalind/tsconfig.json create mode 100644 apps/menntalind/tsconfig.spec.json create mode 100644 apps/menntalind/vite.config.ts create mode 100644 eslint.config.mjs create mode 100644 nx.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 tsconfig.base.json create mode 100644 tsconfig.json create mode 100644 vitest.workspace.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6e87a00 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0560e4b --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# See https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files for more about ignoring files. + +# compiled output +dist +tmp +out-tsc + +# dependencies +node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db + +.nx/cache +.nx/workspace-data + +vite.config.*.timestamp* +vitest.config.*.timestamp* +test-output diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..e26f0b3 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +# Add files here to ignore them from prettier formatting +/dist +/coverage +/.nx/cache +/.nx/workspace-data \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..544138b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..462e29b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "nrwl.angular-console", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint" + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..d9d3fc4 --- /dev/null +++ b/README.md @@ -0,0 +1,101 @@ +# MenntalindFramendi + + + +✨ Your new, shiny [Nx workspace](https://nx.dev) is ready ✨. + +[Learn more about this workspace setup and its capabilities](https://nx.dev/tutorials/2-react-monorepo/1r-introduction/1-welcome?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or run `npx nx graph` to visually explore what was created. Now, let's get you up to speed! + +## Run tasks + +To run the dev server for your app, use: + +```sh +npx nx serve menntalind +``` + +To create a production bundle: + +```sh +npx nx build menntalind +``` + +To see all available targets to run for a project, run: + +```sh +npx nx show project menntalind +``` + +These targets are either [inferred automatically](https://nx.dev/concepts/inferred-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or defined in the `project.json` or `package.json` files. + +[More about running tasks in the docs »](https://nx.dev/features/run-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) + +## Add new projects + +While you could add new projects to your workspace manually, you might want to leverage [Nx plugins](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) and their [code generation](https://nx.dev/features/generate-code?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) feature. + +Use the plugin's generator to create new projects. + +To generate a new application, use: + +```sh +npx nx g @nx/react:app demo +``` + +To generate a new library, use: + +```sh +npx nx g @nx/react:lib mylib +``` + +You can use `npx nx list` to get a list of installed plugins. Then, run `npx nx list ` to learn about more specific capabilities of a particular plugin. Alternatively, [install Nx Console](https://nx.dev/getting-started/editor-setup?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) to browse plugins and generators in your IDE. + +[Learn more about Nx plugins »](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) | [Browse the plugin registry »](https://nx.dev/plugin-registry?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) + +## Set up CI! + +### Step 1 + +To connect to Nx Cloud, run the following command: + +```sh +npx nx connect +``` + +Connecting to Nx Cloud ensures a [fast and scalable CI](https://nx.dev/ci/intro/why-nx-cloud?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) pipeline. It includes features such as: + +- [Remote caching](https://nx.dev/ci/features/remote-cache?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +- [Task distribution across multiple machines](https://nx.dev/ci/features/distribute-task-execution?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +- [Automated e2e test splitting](https://nx.dev/ci/features/split-e2e-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +- [Task flakiness detection and rerunning](https://nx.dev/ci/features/flaky-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) + +### Step 2 + +Use the following command to configure a CI workflow for your workspace: + +```sh +npx nx g ci-workflow +``` + +[Learn more about Nx on CI](https://nx.dev/ci/intro/ci-with-nx#ready-get-started-with-your-provider?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) + +## Install Nx Console + +Nx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ. + +[Install Nx Console »](https://nx.dev/getting-started/editor-setup?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) + +## Useful links + +Learn more: + +- [Learn more about this workspace setup](https://nx.dev/tutorials/2-react-monorepo/1r-introduction/1-welcome?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +- [Learn about Nx on CI](https://nx.dev/ci/intro/ci-with-nx?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +- [Releasing Packages with Nx release](https://nx.dev/features/manage-releases?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +- [What are Nx plugins?](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) + +And join the Nx community: +- [Discord](https://go.nx.dev/community) +- [Follow us on X](https://twitter.com/nxdevtools) or [LinkedIn](https://www.linkedin.com/company/nrwl) +- [Our Youtube channel](https://www.youtube.com/@nxdevtools) +- [Our blog](https://nx.dev/blog?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) diff --git a/apps/menntalind-e2e/cypress.config.ts b/apps/menntalind-e2e/cypress.config.ts new file mode 100644 index 0000000..0095605 --- /dev/null +++ b/apps/menntalind-e2e/cypress.config.ts @@ -0,0 +1,18 @@ +import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: { + ...nxE2EPreset(__filename, { + cypressDir: 'src', + bundler: 'vite', + webServerCommands: { + default: 'npx nx run menntalind:dev', + production: 'npx nx run menntalind:preview', + }, + ciWebServerCommand: 'npx nx run menntalind:preview', + ciBaseUrl: 'http://localhost:4300', + }), + baseUrl: 'http://localhost:4200', + }, +}); diff --git a/apps/menntalind-e2e/eslint.config.mjs b/apps/menntalind-e2e/eslint.config.mjs new file mode 100644 index 0000000..7c923f4 --- /dev/null +++ b/apps/menntalind-e2e/eslint.config.mjs @@ -0,0 +1,11 @@ +import cypress from 'eslint-plugin-cypress/flat'; +import baseConfig from '../../eslint.config.mjs'; + +export default [ + cypress.configs['recommended'], + ...baseConfig, + { + // Override or add rules here + rules: {}, + }, +]; diff --git a/apps/menntalind-e2e/package.json b/apps/menntalind-e2e/package.json new file mode 100644 index 0000000..bfa9e06 --- /dev/null +++ b/apps/menntalind-e2e/package.json @@ -0,0 +1,10 @@ +{ + "name": "menntalind-e2e", + "version": "0.0.1", + "private": true, + "nx": { + "implicitDependencies": [ + "menntalind" + ] + } +} diff --git a/apps/menntalind-e2e/src/e2e/app.cy.ts b/apps/menntalind-e2e/src/e2e/app.cy.ts new file mode 100644 index 0000000..b856c49 --- /dev/null +++ b/apps/menntalind-e2e/src/e2e/app.cy.ts @@ -0,0 +1,13 @@ +import { getGreeting } from '../support/app.po'; + +describe('menntalind-e2e', () => { + beforeEach(() => cy.visit('/')); + + it('should display welcome message', () => { + // Custom command example, see `../support/commands.ts` file + cy.login('my-email@something.com', 'myPassword'); + + // Function helper example, see `../support/app.po.ts` file + getGreeting().contains(/Welcome/); + }); +}); diff --git a/apps/menntalind-e2e/src/fixtures/example.json b/apps/menntalind-e2e/src/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/apps/menntalind-e2e/src/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/apps/menntalind-e2e/src/support/app.po.ts b/apps/menntalind-e2e/src/support/app.po.ts new file mode 100644 index 0000000..3293424 --- /dev/null +++ b/apps/menntalind-e2e/src/support/app.po.ts @@ -0,0 +1 @@ +export const getGreeting = () => cy.get('h1'); diff --git a/apps/menntalind-e2e/src/support/commands.ts b/apps/menntalind-e2e/src/support/commands.ts new file mode 100644 index 0000000..140b21b --- /dev/null +++ b/apps/menntalind-e2e/src/support/commands.ts @@ -0,0 +1,37 @@ +/// + +// *********************************************** +// This example commands.ts shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** + +declare global { + // eslint-disable-next-line @typescript-eslint/no-namespace + namespace Cypress { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + interface Chainable { + login(email: string, password: string): void; + } + } +} + +// -- This is a parent command -- +Cypress.Commands.add('login', (email, password) => { + console.log('Custom command example: Login', email, password); +}); +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/menntalind-e2e/src/support/e2e.ts b/apps/menntalind-e2e/src/support/e2e.ts new file mode 100644 index 0000000..1c1a9e7 --- /dev/null +++ b/apps/menntalind-e2e/src/support/e2e.ts @@ -0,0 +1,17 @@ +// *********************************************************** +// This example support/e2e.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.ts using ES2015 syntax: +import './commands'; diff --git a/apps/menntalind-e2e/tsconfig.json b/apps/menntalind-e2e/tsconfig.json new file mode 100644 index 0000000..cde1f32 --- /dev/null +++ b/apps/menntalind-e2e/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "out-tsc/cypress", + "allowJs": true, + "types": ["cypress", "node"], + "sourceMap": false + }, + "include": [ + "**/*.ts", + "**/*.js", + "cypress.config.ts", + "**/*.cy.ts", + "**/*.cy.tsx", + "**/*.cy.js", + "**/*.cy.jsx", + "**/*.d.ts" + ], + "exclude": [ + "out-tsc", + "test-output", + "eslint.config.js", + "eslint.config.cjs", + "eslint.config.mjs" + ] +} diff --git a/apps/menntalind/eslint.config.mjs b/apps/menntalind/eslint.config.mjs new file mode 100644 index 0000000..e8e4590 --- /dev/null +++ b/apps/menntalind/eslint.config.mjs @@ -0,0 +1,12 @@ +import nx from '@nx/eslint-plugin'; +import baseConfig from '../../eslint.config.mjs'; + +export default [ + ...baseConfig, + ...nx.configs['flat/react'], + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {}, + }, +]; diff --git a/apps/menntalind/index.html b/apps/menntalind/index.html new file mode 100644 index 0000000..65078f4 --- /dev/null +++ b/apps/menntalind/index.html @@ -0,0 +1,16 @@ + + + + + Menntalind + + + + + + + +
+ + + diff --git a/apps/menntalind/package.json b/apps/menntalind/package.json new file mode 100644 index 0000000..dde0322 --- /dev/null +++ b/apps/menntalind/package.json @@ -0,0 +1,8 @@ +{ + "name": "@menntalind-framendi/menntalind", + "version": "0.0.1", + "private": true, + "nx": { + "name": "menntalind" + } +} diff --git a/apps/menntalind/public/favicon.ico b/apps/menntalind/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..317ebcb2336e0833a22dddf0ab287849f26fda57 GIT binary patch literal 15086 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 { + it('should render successfully', () => { + const { baseElement } = render( + + + + ); + expect(baseElement).toBeTruthy(); + }); + + it('should have a greeting as the title', () => { + const { getAllByText } = render( + + + + ); + expect( + getAllByText(new RegExp('Welcome menntalind', 'gi')).length > 0 + ).toBeTruthy(); + }); +}); diff --git a/apps/menntalind/src/app/app.tsx b/apps/menntalind/src/app/app.tsx new file mode 100644 index 0000000..65db5fd --- /dev/null +++ b/apps/menntalind/src/app/app.tsx @@ -0,0 +1,52 @@ +// Uncomment this line to use CSS modules +// import styles from './app.module.scss'; +import NxWelcome from './nx-welcome'; + +import { Route, Routes, Link } from 'react-router-dom'; + +export function App() { + return ( +
+ + + {/* START: routes */} + {/* These routes and navigation have been generated for you */} + {/* Feel free to move and update them to fit your needs */} +
+
+
+
+
    +
  • + Home +
  • +
  • + Page 2 +
  • +
+
+ + + This is the generated root route.{' '} + Click here for page 2. +
+ } + /> + + Click here to go back to root page. + + } + /> + + {/* END: routes */} + + ); +} + +export default App; diff --git a/apps/menntalind/src/app/nx-welcome.tsx b/apps/menntalind/src/app/nx-welcome.tsx new file mode 100644 index 0000000..f3c5c7a --- /dev/null +++ b/apps/menntalind/src/app/nx-welcome.tsx @@ -0,0 +1,856 @@ +/* + * * * * * * * * * * * * * * * * * * * * * * * * * * * * + This is a starter component and can be deleted. + * * * * * * * * * * * * * * * * * * * * * * * * * * * * + Delete this file and get started with your project! + * * * * * * * * * * * * * * * * * * * * * * * * * * * * + */ +export function NxWelcome({ title }: { title: string }) { + return ( + <> +