remove nx workspace

This commit is contained in:
Andreas Knuth 2025-02-21 09:46:36 -06:00
parent fbdf9581c4
commit d29260a919
43 changed files with 18905 additions and 17677 deletions

17
.editorconfig Normal file
View File

@ -0,0 +1,17 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
ij_typescript_use_double_quotes = false
[*.md]
max_line_length = off
trim_trailing_whitespace = false

5
.gitignore vendored
View File

@ -40,8 +40,3 @@ testem.log
# System files # System files
.DS_Store .DS_Store
Thumbs.db Thumbs.db
.nx/cache
.nx/workspace-data

5
.postcssrc.json Normal file
View File

@ -0,0 +1,5 @@
{
"plugins": {
"@tailwindcss/postcss": {}
}
}

View File

@ -1,5 +0,0 @@
# Add files here to ignore them from prettier formatting
/dist
/coverage
/.nx/cache
/.nx/workspace-data

View File

@ -1,3 +0,0 @@
{
"singleQuote": true
}

View File

@ -1,8 +1,4 @@
{ {
"recommendations": [ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
"angular.ng-template", "recommendations": ["angular.ng-template"]
"nrwl.angular-console",
"esbenp.prettier-vscode",
"firsttris.vscode-jest-runner"
]
} }

7
.vscode/launch.json vendored
View File

@ -8,6 +8,13 @@
"request": "launch", "request": "launch",
"preLaunchTask": "npm: start", "preLaunchTask": "npm: start",
"url": "http://localhost:4200/" "url": "http://localhost:4200/"
},
{
"name": "ng test",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: test",
"url": "http://localhost:9876/debug.html"
} }
] ]
} }

18
.vscode/tasks.json vendored
View File

@ -19,6 +19,24 @@
} }
} }
} }
},
{
"type": "npm",
"script": "test",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
} }
] ]
} }

View File

@ -1,27 +1,59 @@
# BayAreaAffiliates # BayAreaAffiliates
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.12. This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.1.7.
## Development server ## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. To start a local development server, run:
```bash
ng serve
```
Once the server is running, open your browser and navigate to `http://localhost:4200/`. The application will automatically reload whenever you modify any of the source files.
## Code scaffolding ## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
## Build ```bash
ng generate component component-name
```
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
```bash
ng generate --help
```
## Building
To build the project run:
```bash
ng build
```
This will compile your project and store the build artifacts in the `dist/` directory. By default, the production build optimizes your application for performance and speed.
## Running unit tests ## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
```bash
ng test
```
## Running end-to-end tests ## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. For end-to-end (e2e) testing, run:
## Further help ```bash
ng e2e
```
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
## Additional Resources
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.

129
angular.json Normal file
View File

@ -0,0 +1,129 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"bay-area-affiliates": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss",
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:interceptor": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:resolver": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:application",
"options": {
"outputPath": "dist/bay-area-affiliates",
"index": "src/index.html",
"browser": "src/main.ts",
"polyfills": [
"zone.js"
],
"tsConfig": "tsconfig.app.json",
"inlineStyleLanguage": "scss",
"assets": [
"src/assets",
{
"glob": "**/*",
"input": "public"
}
],
"styles": [
"src/styles.scss",
"node_modules/aos/dist/aos.css"
],
"scripts": []
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "500kB",
"maximumError": "1MB"
},
{
"type": "anyComponentStyle",
"maximumWarning": "4kB",
"maximumError": "8kB"
}
],
"outputHashing": "all"
},
"development": {
"optimization": false,
"extractLicenses": false,
"sourceMap": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"proxyConfig": "proxy.conf.json"
},
"configurations": {
"production": {
"buildTarget": "bay-area-affiliates:build:production"
},
"development": {
"buildTarget": "bay-area-affiliates:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"polyfills": [
"zone.js",
"zone.js/testing"
],
"tsConfig": "tsconfig.spec.json",
"inlineStyleLanguage": "scss",
"assets": [
{
"glob": "**/*",
"input": "public"
}
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
}
}
}
}
}

56
api/.gitignore vendored Normal file
View File

@ -0,0 +1,56 @@
# compiled output
/dist
/node_modules
/build
# Logs
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# OS
.DS_Store
# Tests
/coverage
/.nyc_output
# 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
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# temp directory
.temp
.tmp
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

4
api/.prettierrc Normal file
View File

@ -0,0 +1,4 @@
{
"singleQuote": true,
"trailingComma": "all"
}

99
api/README.md Normal file
View File

@ -0,0 +1,99 @@
<p align="center">
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
</p>
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
[circleci-url]: https://circleci.com/gh/nestjs/nest
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
<p align="center">
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
</p>
<!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
[![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->
## Description
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
## Project setup
```bash
$ npm install
```
## Compile and run the project
```bash
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
```
## Run tests
```bash
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
```
## Deployment
When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
```bash
$ npm install -g mau
$ mau deploy
```
With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
## Resources
Check out a few resources that may come in handy when working with NestJS:
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
## Support
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
## Stay in touch
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)
## License
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).

View File

@ -1,3 +0,0 @@
const baseConfig = require('../eslint.config.js');
module.exports = [...baseConfig];

35
api/eslint.config.mjs Normal file
View File

@ -0,0 +1,35 @@
// @ts-check
import eslint from '@eslint/js';
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import globals from 'globals';
import tseslint from 'typescript-eslint';
// export default tseslint.config(
// {
// ignores: ['eslint.config.mjs'],
// },
// eslint.configs.recommended,
// ...tseslint.configs.recommendedTypeChecked,
// eslintPluginPrettierRecommended,
// {
// languageOptions: {
// globals: {
// ...globals.node,
// ...globals.jest,
// },
// ecmaVersion: 5,
// sourceType: 'module',
// parserOptions: {
// projectService: true,
// tsconfigRootDir: import.meta.dirname,
// },
// },
// },
// {
// rules: {
// '@typescript-eslint/no-explicit-any': 'off',
// '@typescript-eslint/no-floating-promises': 'warn',
// '@typescript-eslint/no-unsafe-argument': 'warn'
// },
// },
// );

12
api/nest-cli.json Normal file
View File

@ -0,0 +1,12 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true,
"assets": [
"assets/**/*",
"**/*.hbs"
]
}
}

14239
api/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

77
api/package.json Normal file
View File

@ -0,0 +1,77 @@
{
"name": "api",
"version": "0.0.1",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"scripts": {
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@nestjs-modules/mailer": "^2.0.2",
"@nestjs/common": "^11.0.1",
"@nestjs/core": "^11.0.1",
"@nestjs/platform-express": "^11.0.1",
"handlebars": "^4.7.8",
"nodemailer": "^6.10.0",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.1",
"zod": "^3.24.2"
},
"devDependencies": {
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "^9.18.0",
"@nestjs/cli": "^11.0.0",
"@nestjs/schematics": "^11.0.0",
"@nestjs/testing": "^11.0.1",
"@swc/cli": "^0.6.0",
"@swc/core": "^1.10.7",
"@types/express": "^5.0.0",
"@types/jest": "^29.5.14",
"@types/node": "^22.10.7",
"@types/supertest": "^6.0.2",
"eslint": "^9.18.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-prettier": "^5.2.2",
"globals": "^15.14.0",
"jest": "^29.7.0",
"prettier": "^3.4.2",
"source-map-support": "^0.5.21",
"supertest": "^7.0.0",
"ts-jest": "^29.2.5",
"ts-loader": "^9.5.2",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.7.3",
"typescript-eslint": "^8.20.0"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}

View File

@ -1,26 +0,0 @@
{
"name": "api",
"$schema": "../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "api/src",
"projectType": "application",
"tags": [],
"targets": {
"serve": {
"executor": "@nx/js:node",
"defaultConfiguration": "development",
"dependsOn": ["build"],
"options": {
"buildTarget": "api:build",
"runBuildTargetDependencies": false
},
"configurations": {
"development": {
"buildTarget": "api:build:development"
},
"production": {
"buildTarget": "api:build:production"
}
}
}
}
}

View File

@ -14,15 +14,15 @@ import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handleba
secure: false, secure: false,
port: 587, port: 587,
auth: { auth: {
user: 'AKIAU6GDWVAQ2QNFLNWN',//process.env.AMAZON_USER, , user: process.env.AMAZON_USER,
pass: 'BDE9nZv/ARbpotim1mIOir52WgIbpSi9cv1oJoH8oEf7'//process.env.AMAZON_PASSWORD, pass: process.env.AMAZON_PASSWORD,
}, },
}, },
defaults: { defaults: {
from: '"No Reply" <noreply@example.com>', from: '"No Reply" <noreply@example.com>',
}, },
template: { template: {
dir: join(__dirname, 'assets'), dir: join(__dirname, '..','assets'),
adapter: new HandlebarsAdapter({ adapter: new HandlebarsAdapter({
eq: function (a, b) { eq: function (a, b) {
return a === b; return a === b;

View File

@ -1,12 +0,0 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../dist/out-tsc",
"module": "ES2015",
"types": ["node"],
"emitDecoratorMetadata": true,
"target": "es2021"
},
"exclude": [ "src/**/*.spec.ts", "src/**/*.test.ts"],
"include": ["src/**/*.ts"]
}

4
api/tsconfig.build.json Normal file
View File

@ -0,0 +1,4 @@
{
"extends": "./tsconfig.json",
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
}

View File

@ -1,13 +1,21 @@
{ {
"extends": "../tsconfig.json",
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.app.json"
}
],
"compilerOptions": { "compilerOptions": {
"esModuleInterop": true "module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "ES2021",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"skipLibCheck": true,
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
"noImplicitAny": false,
"strictBindCallApply": false,
"noFallthroughCasesInSwitch": false
} }
} }

View File

@ -1,20 +0,0 @@
const { NxAppWebpackPlugin } = require('@nx/webpack/app-plugin');
const { join } = require('path');
module.exports = {
output: {
path: join(__dirname, '../dist/api'),
},
plugins: [
new NxAppWebpackPlugin({
target: 'node',
compiler: 'tsc',
main: './src/main.ts',
tsConfig: './tsconfig.app.json',
assets: ['./src/assets'],
optimization: false,
outputHashing: 'none',
generatePackageJson: true,
}),
],
};

View File

@ -1,33 +0,0 @@
const nx = require('@nx/eslint-plugin');
module.exports = [
...nx.configs['flat/base'],
...nx.configs['flat/typescript'],
...nx.configs['flat/javascript'],
{
ignores: ['**/dist'],
},
{
files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
rules: {
'@nx/enforce-module-boundaries': [
'error',
{
enforceBuildableLibDependency: true,
allow: ['^.*/eslint(\\.base)?\\.config\\.[cm]?js$'],
depConstraints: [
{
sourceTag: '*',
onlyDependOnLibsWithTags: ['*'],
},
],
},
],
},
},
{
files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
// Override or add rules here
rules: {},
},
];

48
nx.json
View File

@ -1,48 +0,0 @@
{
"$schema": "./node_modules/nx/schemas/nx-schema.json",
"targetDefaults": {
"build": {
"cache": true,
"dependsOn": ["^build"],
"inputs": ["production", "^production"]
}
},
"defaultBase": "master",
"namedInputs": {
"sharedGlobals": [],
"default": ["{projectRoot}/**/*", "sharedGlobals"],
"production": [
"default",
"!{projectRoot}/.eslintrc.json",
"!{projectRoot}/eslint.config.js",
"!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
"!{projectRoot}/tsconfig.spec.json",
"!{projectRoot}/jest.config.[jt]s",
"!{projectRoot}/src/test-setup.[jt]s",
"!{projectRoot}/test-setup.[jt]s"
]
},
"plugins": [
{
"plugin": "@nx/webpack/plugin",
"options": {
"buildTargetName": "build",
"serveTargetName": "serve",
"previewTargetName": "preview"
}
},
{
"plugin": "@nx/eslint/plugin",
"options": {
"targetName": "lint"
}
},
{
"plugin": "@nx/jest/plugin",
"options": {
"targetName": "test"
},
"exclude": ["api-e2e/**/*"]
}
]
}

21476
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,76 +1,40 @@
{ {
"name": "bay-area-affiliates--", "name": "bay-area-affiliates",
"version": "0.0.0", "version": "0.0.0",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "nx serve", "start": "ng serve --port=4201",
"build": "nx build", "build": "ng build",
"watch": "nx build --watch --configuration development" "watch": "ng build --watch --configuration development",
"test": "ng test"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^18.2.0", "@angular/animations": "^19.1.0",
"@angular/common": "^18.2.0", "@angular/common": "^19.1.0",
"@angular/compiler": "^18.2.0", "@angular/compiler": "^19.1.0",
"@angular/core": "^18.2.0", "@angular/core": "^19.1.0",
"@angular/forms": "^18.2.0", "@angular/forms": "^19.1.0",
"@angular/platform-browser": "^18.2.0", "@angular/platform-browser": "^19.1.0",
"@angular/platform-browser-dynamic": "^18.2.0", "@angular/platform-browser-dynamic": "^19.1.0",
"@angular/router": "^18.2.0", "@angular/router": "^19.1.0",
"@nestjs-modules/mailer": "^2.0.2", "@tailwindcss/postcss": "^4.0.6",
"@nestjs/common": "^10.0.2",
"@nestjs/core": "^10.0.2",
"@nestjs/platform-express": "^10.0.2",
"aos": "^2.3.4", "aos": "^2.3.4",
"axios": "^1.6.0",
"handlebars": "^4.7.8",
"nodemailer": "^6.9.16",
"reflect-metadata": "^0.1.13",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.3.0", "tslib": "^2.3.0",
"zod": "^3.24.1", "zone.js": "~0.15.0"
"zone.js": "~0.14.10"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "^18.2.12", "@angular-devkit/build-angular": "^19.1.7",
"@angular-devkit/core": "^18.2.12", "@angular/cli": "^19.1.7",
"@angular-devkit/schematics": "^18.2.12", "@angular/compiler-cli": "^19.1.0",
"@angular/cli": "^18.2.12", "@types/jasmine": "~5.1.0",
"@angular/compiler-cli": "^18.2.0", "jasmine-core": "~5.5.0",
"@eslint/js": "^9.8.0", "karma": "~6.4.0",
"@nestjs/schematics": "^10.0.1", "karma-chrome-launcher": "~3.2.0",
"@nestjs/testing": "^10.0.2", "karma-coverage": "~2.2.0",
"@nrwl/nest": "^19.8.4", "karma-jasmine": "~5.1.0",
"@nx/angular": "20.3.0", "karma-jasmine-html-reporter": "~2.1.0",
"@nx/eslint": "19.8.4", "typescript": "~5.7.2"
"@nx/eslint-plugin": "19.8.4",
"@nx/jest": "19.8.4",
"@nx/js": "19.8.4",
"@nx/nest": "19.8.4",
"@nx/node": "19.8.4",
"@nx/web": "20.3.0",
"@nx/webpack": "20.3.0",
"@nx/workspace": "20.3.0",
"@schematics/angular": "^18.2.12",
"@swc-node/register": "~1.9.1",
"@swc/core": "~1.5.7",
"@swc/helpers": "~0.5.11",
"@types/aos": "^3.0.7",
"@types/jest": "^29.5.12",
"@types/node": "~18.16.9",
"autoprefixer": "^10.4.20",
"eslint": "^9.8.0",
"eslint-config-prettier": "^9.0.0",
"jest": "^29.7.0",
"jest-environment-node": "^29.7.0",
"nx": "20.3.0",
"postcss": "^8.4.49",
"prettier": "^2.6.2",
"tailwindcss": "^3.4.17",
"ts-jest": "^29.1.0",
"ts-node": "10.9.1",
"typescript": "~5.5.2",
"typescript-eslint": "^8.0.0",
"webpack-cli": "^5.1.4"
} }
} }

View File

@ -1,102 +0,0 @@
{
"$schema": "node_modules/nx/schemas/project-schema.json",
"name": "bay-area-affiliates__",
"projectType": "application",
"generators": {
"@schematics/angular:component": {
"inlineTemplate": true,
"inlineStyle": true,
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:interceptor": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:resolver": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"sourceRoot": "src",
"prefix": "app",
"targets": {
"build": {
"executor": "@angular-devkit/build-angular:application",
"options": {
"outputPath": "dist/bay-area-affiliates__",
"index": "src/index.html",
"browser": "src/main.ts",
"polyfills": [
"zone.js"
],
"tsConfig": "tsconfig.app.json",
"assets": [
"src/assets",
{
"glob": "**/*",
"input": "public"
}
],
"styles": [
"src/styles.css",
"node_modules/aos/dist/aos.css"
],
"scripts": []
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "500kB",
"maximumError": "1MB"
},
{
"type": "anyComponentStyle",
"maximumWarning": "2kB",
"maximumError": "4kB"
}
],
"outputHashing": "all"
},
"development": {
"optimization": false,
"extractLicenses": false,
"sourceMap": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"executor": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"buildTarget": "bay-area-affiliates__:build:production"
},
"development": {
"buildTarget": "bay-area-affiliates__:build:development"
}
},
"defaultConfiguration": "development",
"options": {
"port": 4201
}
},
"extract-i18n": {
"executor": "@angular-devkit/build-angular:extract-i18n"
}
}
}

View File

@ -2,8 +2,7 @@
"/api": { "/api": {
"target": "http://localhost:3001", "target": "http://localhost:3001",
"secure": false, "secure": false,
"changeOrigin": true, "changeOrigin": true
"pathRewrite": { "^/api": "" }
} }
} }

BIN
public/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

View File

@ -1,7 +1,7 @@
// src/app/app.component.ts // src/app/app.component.ts
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; import { RouterOutlet } from '@angular/router';
import * as AOS from 'aos'; import * as AOS from 'aos';
import { OverlayService } from './services/overlay.service'; import { OverlayService } from './services/overlay.service';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
@ -9,7 +9,7 @@ import { Observable } from 'rxjs';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
standalone: true, standalone: true,
imports: [CommonModule, RouterOutlet, RouterLink, RouterLinkActive], imports: [CommonModule, RouterOutlet],
template: ` template: `
<router-outlet></router-outlet> <router-outlet></router-outlet>

View File

@ -91,7 +91,7 @@ interface ErrorResponse {
}) })
export class ContactComponent { export class ContactComponent {
private hostname = window.location.hostname; private hostname = window.location.hostname;
private apiBaseUrl = `http://${this.hostname}:3000`; private apiBaseUrl = '';//`http://${this.hostname}:3000`;
formData = { formData = {
name: '', name: '',
email: '', email: '',

View File

@ -13,10 +13,11 @@ import { CommonModule } from '@angular/common';
© {{currentYear}} Bay Area Affiliates, Inc. All rights reserved. © {{currentYear}} Bay Area Affiliates, Inc. All rights reserved.
</div> </div>
<div class="flex space-x-4 mb-4 md:mb-0"> <div class="flex space-x-4 mb-4 md:mb-0">
<a href="#" class="hover:text-blue-400"><i class="fab fa-facebook-f"></i></a> <!-- <a href="#" class="hover:text-blue-400"><i class="fab fa-facebook-f"></i></a>
<a href="#" class="hover:text-blue-400"><i class="fab fa-twitter"></i></a> <a href="#" class="hover:text-blue-400"><i class="fab fa-twitter"></i></a>
<a href="#" class="hover:text-blue-400"><i class="fab fa-linkedin-in"></i></a> <a href="#" class="hover:text-blue-400"><i class="fab fa-linkedin-in"></i></a>
<a href="#" class="hover:text-blue-400"><i class="fab fa-instagram"></i></a> <a href="#" class="hover:text-blue-400"><i class="fab fa-instagram"></i></a> -->
<a href="tel:361-765-8400" class="hover:text-blue-400"><i class="fas fa-phone-alt mr-2"></i>361-765-8400</a>
</div> </div>
<div class="hidden md:flex space-x-4"> <div class="hidden md:flex space-x-4">
<button <button

View File

@ -12,7 +12,7 @@ import { CommonModule } from '@angular/common';
<!-- Logo und Label --> <!-- Logo und Label -->
<div class="flex items-center"> <div class="flex items-center">
<img <img
src="assets/logo.webp" src="assets/logo.svg"
alt="Bay Area Affiliates Logo" alt="Bay Area Affiliates Logo"
class="h-8 w-auto mr-3" class="h-8 w-auto mr-3"
loading="lazy" loading="lazy"

View File

@ -21,7 +21,7 @@ import { CommonModule } from '@angular/common';
</a> </a>
</div> </div>
<div class="w-full md:w-1/2 flex justify-center"> <div class="w-full md:w-1/2 flex justify-center">
<img src="assets/it-services.webp" alt="IT Services" class="rounded-lg shadow-lg h-[300px] w-[600px] object-cover"> <img src="assets/it-services.jpg" alt="IT Services" class="rounded-lg shadow-lg h-[300px] w-[600px] object-cover">
</div> </div>
</div> </div>
</section> </section>

BIN
src/assets/it-services.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

41
src/assets/logo.svg Normal file
View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="40"
height="40"
viewBox="0 0 10.583333 10.583333"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1">
<g
id="g2"
transform="translate(-59.849599,-62.962344)">
<g
id="g3"
transform="matrix(2.4622373,0,0,2.4622373,-103.30064,-98.368198)">
<path
id="rect4"
style="opacity:0.92;fill:#000080;fill-opacity:0;stroke-width:0.0110529;-inkscape-stroke:none;paint-order:markers fill stroke"
d="m 69.557843,68.36669 v -1.921262 h -1.960031 v 1.445588 c 0,0.26351 0.212068,0.475674 0.475578,0.475674 z" />
<path
id="path1"
style="opacity:0.92;fill:#000080;stroke-width:0.0110529;-inkscape-stroke:none;paint-order:markers fill stroke"
d="m 68.07339,65.851028 c -0.26351,0 -0.475578,0.212067 -0.475578,0.475579 v 0.118821 h 1.960031 v 1.921262 h 0.10113 c 0.26351,0 0.475578,-0.212164 0.475578,-0.475674 v -1.564409 c 0,-0.263512 -0.212068,-0.475579 -0.475578,-0.475579 z" />
<path
id="rect14"
style="opacity:0.92;fill:#0000ff;fill-opacity:0;stroke-width:0.0110529;-inkscape-stroke:none;paint-order:markers fill stroke"
d="m 68.587351,69.424584 v -1.960128 h -1.99822 v 1.484453 c 0,0.26351 0.212067,0.475675 0.475577,0.475675 z" />
<path
id="path2"
style="opacity:0.92;fill:#0000ff;stroke-width:0.0110529;-inkscape-stroke:none;paint-order:markers fill stroke"
d="m 67.064708,66.908921 c -0.26351,0 -0.475577,0.212068 -0.475577,0.475578 v 0.07996 h 1.99822 v 1.960128 h 0.06294 c 0.263512,0 0.475579,-0.212165 0.475579,-0.475675 v -1.56441 c 0,-0.26351 -0.212067,-0.475578 -0.475579,-0.475578 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -5,7 +5,7 @@
<title>Bay Area Affiliates, Inc. | IT Services for Coastal Bend</title> <title>Bay Area Affiliates, Inc. | IT Services for Coastal Bend</title>
<base href="/"> <base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico"> <link rel="icon" type="image/x-icon" href="favicon.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
</head> </head>
<body class="font-sans antialiased text-gray-800"> <body class="font-sans antialiased text-gray-800">

View File

@ -1,7 +1,7 @@
/* You can add global styles to this file, and also import other style files */ @use 'tailwindcss' as *;
@tailwind base; button {
@tailwind components; cursor: pointer;
@tailwind utilities; }
/* src/styles.css */ /* src/styles.css */

View File

@ -1,41 +0,0 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{html,ts}",
"./src/app/services/blog.service.ts", // Include the BlogService explicitly
],
safelist: [
'mb-4',
'text-gray-700',
'text-blue-600',
'hover:underline',
'text-2xl',
'font-semibold',
'list-disc',
'list-inside',
'rounded-lg',
'shadow-lg',
'w-full',
'h-auto',
'object-cover',
'py-20',
'bg-white',
'container',
'mx-auto',
'px-6',
'text-3xl',
'font-bold',
'text-center',
'mb-6',
'text-gray-500',
'text-sm',
'hidden',
'bg-gray-700',
'flex',
// Include any other classes used in dynamic content
],
theme: {
extend: {},
},
plugins: [],
}

View File

@ -12,17 +12,11 @@
"skipLibCheck": true, "skipLibCheck": true,
"isolatedModules": true, "isolatedModules": true,
"esModuleInterop": true, "esModuleInterop": true,
"sourceMap": true,
"declaration": false,
"experimentalDecorators": true, "experimentalDecorators": true,
"moduleResolution": "bundler", "moduleResolution": "bundler",
"importHelpers": true, "importHelpers": true,
"target": "ES2022", "target": "ES2022",
"module": "ES2022", "module": "ES2022"
"lib": [
"ES2022",
"dom"
]
}, },
"angularCompilerOptions": { "angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false, "enableI18nLegacyMessageIdFormat": false,

15
tsconfig.spec.json Normal file
View File

@ -0,0 +1,15 @@
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"jasmine"
]
},
"include": [
"src/**/*.spec.ts",
"src/**/*.d.ts"
]
}