Skip to content
Snippets Groups Projects
Commit 41412e64 authored by Abelangel's avatar Abelangel
Browse files

frontend container

parent 5eb717c7
No related branches found
No related tags found
No related merge requests found
Showing
with 13525 additions and 7262 deletions
......@@ -36,9 +36,8 @@ services:
image: service-frontend
build: ./frontend
ports:
- "8007:30992"
env_file:
- ./frontend/.env
- "4200:4200"
depends_on:
- service-helloworld
......
qq
\ No newline at end of file
########################### Server env vars
API_PORT=30992
SECRET_JWT="JECROISQUECEMESSAGEESTSECRET"
CLIENTID = 'f8b0e14f7eee1a718ad0b3f32c52fe34813d56e9052976f076e039d006e24000'
CLIENTSECRET = 'gloas-1451c5f206cb04b6b300e6dcbf19a01f1a44bff5e8562741a7efd0ec27eb0855'
DATABASE_URL="postgresql://user:super@service-database/dbqcm?schema=public"
#/!!!!!!!!!!!!!!!!!!!.env.keys!!!!!!!!!!!!!!!!!!!!!!/
#/ DOTENV_KEYs. DO NOT commit to source control /
#/ [how it works](https://dotenvx.com/env-keys) /
#/--------------------------------------------------/
DOTENV_KEY_DEVELOPMENT="dotenv://:key_0c7d3c878ca159886f78155a2682c880aac6c19bc97bac68be59851d5c0b19c9@dotenvx.com/vault/.env.vault?environment=development"
#/-------------------.env.vault---------------------/
#/ cloud-agnostic vaulting standard /
#/ [how it works](https://dotenvx.com/env-vault) /
#/--------------------------------------------------/
# development
DOTENV_VAULT_DEVELOPMENT="VOnZRpidaeiufZEY+ykm1UPI1SVJpTeMfIeQ7f2gBkH8DeAF50zqbDiJPd/JIg+lcIR0MFwtCjBEiGC8gXbi94P7BKN4t55vv/8yUJNJhCWzTv82P7uLigizHNOVfA6EDYXVSB9AGzQOP3VGMT4uW5Hqk28mztKBA35fGRyX8ioj8Kulsf8WsD/1hv5/CtTOSAl3HOF8Wi1AOw+9GjxfAmE3YPJtlTpSvDUnFKdlAR3rbVnFMtXRUVq0i7L4J004IJWA1FOqNBmBCm2/q87uCRrBMvrtNDfY27e4iNLlK3fj8qY6lG5vs1l200hcBkWfO+fC2tVVOwbdAxdkgU5WSsmU2yl5Z9SMmG1q3IP+5eL92JwWcSx5/NrYhMezq8uOJsGvnlKSNE1Ay5UW"
# See http://help.github.com/ignore-files/ for more about ignoring files.
# Compiled output
/dist
/tmp
/out-tsc
/bazel-out
# Node
/node_modules
npm-debug.log
yarn-error.log
# IDEs and editors
.idea/
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# Miscellaneous
/.angular/cache
.sass-cache/
/connect.lock
/coverage
/libpeerconnection.log
testem.log
/typings
# System files
.DS_Store
Thumbs.db
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# GitHub Copilot persisted chat sessions
/copilot/chatSessions
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
<excludeFolder url="file://$MODULE_DIR$/.idea/copilot/chatSessions" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="SonarLintModuleSettings">
<option name="uniqueId" value="67d3ddf7-0683-484f-98df-6929218e64a1" />
</component>
</module>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="AUTODETECT_INDENTS" value="false" />
<option name="RIGHT_MARGIN" value="0" />
<Angular2HtmlCodeStyleSettings>
<option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
<option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
</Angular2HtmlCodeStyleSettings>
<CssCodeStyleSettings>
<option name="HEX_COLOR_UPPER_CASE" value="true" />
<option name="HEX_COLOR_LONG_FORMAT" value="true" />
<option name="VALUE_ALIGNMENT" value="1" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="ENFORCE_QUOTES_ON_FORMAT" value="true" />
</CssCodeStyleSettings>
<HTMLCodeStyleSettings>
<option name="HTML_ATTRIBUTE_WRAP" value="0" />
<option name="HTML_TEXT_WRAP" value="0" />
<option name="HTML_KEEP_LINE_BREAKS" value="false" />
<option name="HTML_ALIGN_TEXT" value="true" />
<option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
<option name="HTML_DO_NOT_INDENT_CHILDREN_OF" value="" />
<option name="HTML_ENFORCE_QUOTES" value="true" />
</HTMLCodeStyleSettings>
<JSCodeStyleSettings version="0">
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
<option name="REFORMAT_C_STYLE_COMMENTS" value="true" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
<option name="SPACES_WITHIN_INTERPOLATION_EXPRESSIONS" value="true" />
</JSCodeStyleSettings>
<JSON>
<option name="PROPERTY_ALIGNMENT" value="2" />
</JSON>
<LessCodeStyleSettings>
<option name="HEX_COLOR_UPPER_CASE" value="true" />
<option name="HEX_COLOR_LONG_FORMAT" value="true" />
<option name="VALUE_ALIGNMENT" value="1" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="ENFORCE_QUOTES_ON_FORMAT" value="true" />
</LessCodeStyleSettings>
<Markdown>
<option name="MIN_LINES_AROUND_HEADER" value="2" />
<option name="KEEP_LINE_BREAKS_INSIDE_TEXT_BLOCKS" value="false" />
<option name="WRAP_TEXT_INSIDE_BLOCKQUOTES" value="false" />
</Markdown>
<Python>
<option name="SPACE_WITHIN_BRACES" value="true" />
<option name="SPACE_AROUND_EQ_IN_NAMED_PARAMETER" value="true" />
<option name="SPACE_AROUND_EQ_IN_KEYWORD_ARGUMENT" value="true" />
<option name="NEW_LINE_AFTER_COLON" value="true" />
<option name="DICT_WRAPPING" value="2" />
<option name="BLANK_LINES_AFTER_LOCAL_IMPORTS" value="1" />
<option name="OPTIMIZE_IMPORTS_SORT_IMPORTS" value="false" />
<option name="OPTIMIZE_IMPORTS_SORT_BY_TYPE_FIRST" value="false" />
<option name="FROM_IMPORT_WRAPPING" value="0" />
<option name="FROM_IMPORT_PARENTHESES_FORCE_IF_MULTILINE" value="true" />
</Python>
<ScssCodeStyleSettings>
<option name="HEX_COLOR_UPPER_CASE" value="true" />
<option name="HEX_COLOR_LONG_FORMAT" value="true" />
<option name="VALUE_ALIGNMENT" value="1" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="ENFORCE_QUOTES_ON_FORMAT" value="true" />
</ScssCodeStyleSettings>
<SqlCodeStyleSettings version="7">
<option name="KEYWORD_CASE" value="2" />
<option name="TYPE_CASE" value="3" />
<option name="CUSTOM_TYPE_CASE" value="3" />
<option name="BUILT_IN_CASE" value="2" />
<option name="QUOTE_IDENTIFIER" value="1" />
<option name="QUERY_EL_COMMA" value="2" />
<option name="QUERY_IN_ONE_STRING" value="3" />
<option name="INSERT_INTO_NL" value="2" />
<option name="INSERT_EL_WRAP" value="1" />
<option name="INSERT_EL_COMMA" value="2" />
<option name="INSERT_SPACE_WITHIN_PARENTHESES" value="true" />
<option name="SET_EL_WRAP" value="0" />
<option name="SET_EL_COMMA" value="2" />
<option name="SELECT_EL_LINE" value="1" />
<option name="SELECT_EL_COMMA" value="2" />
<option name="FROM_EL_COMMA" value="2" />
<option name="FROM_INDENT_JOIN" value="false" />
<option name="WHERE_EL_LINE" value="1" />
<option name="ORDER_EL_LINE" value="1" />
<option name="ORDER_EL_WRAP" value="1" />
<option name="ORDER_EL_COMMA" value="2" />
<option name="ORDER_ALIGN_ASC_DESC" value="true" />
<option name="IMP_IF_THEN_WRAP_THEN" value="true" />
<option name="CORTEGE_SPACE_WITHIN_PARENTHESES" value="true" />
<option name="EXPR_SPACE_WITHIN_PARENTHESES" value="true" />
<option name="EXPR_CALL_SPACE_INSIDE_PARENTHESES" value="true" />
</SqlCodeStyleSettings>
<TypeScriptCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="FILE_NAME_STYLE" value="CAMEL_CASE" />
<option name="ALIGN_OBJECT_PROPERTIES" value="2" />
<option name="ALIGN_VAR_STATEMENTS" value="1" />
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
<option name="USE_PUBLIC_MODIFIER" value="true" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="PREFER_EXPLICIT_TYPES_VARS_FIELDS" value="true" />
<option name="PREFER_EXPLICIT_TYPES_FUNCTION_RETURNS" value="true" />
<option name="PREFER_EXPLICIT_TYPES_FUNCTION_EXPRESSION_RETURNS" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
<option name="USE_EXPLICIT_JS_EXTENSION" value="TRUE" />
<option name="VAR_DECLARATION_WRAP" value="2" />
<option name="OBJECT_LITERAL_WRAP" value="2" />
<option name="IMPORTS_WRAP" value="0" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
<option name="ALIGN_IMPORTS" value="true" />
<option name="ALIGN_UNION_TYPES" value="true" />
<option name="SPACES_WITHIN_INTERPOLATION_EXPRESSIONS" value="true" />
<option name="BLACKLIST_IMPORTS" value="rxjs/Rx" />
</TypeScriptCodeStyleSettings>
<XML>
<option name="XML_ATTRIBUTE_WRAP" value="0" />
<option name="XML_KEEP_LINE_BREAKS" value="false" />
<option name="XML_KEEP_LINE_BREAKS_IN_TEXT" value="false" />
<option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
</XML>
<codeStyleSettings language="HTML">
<option name="RIGHT_MARGIN" value="1000" />
<option name="WRAP_ON_TYPING" value="0" />
<option name="SOFT_MARGINS" value="1000" />
</codeStyleSettings>
<codeStyleSettings language="JSON">
<option name="RIGHT_MARGIN" value="999" />
<option name="WRAP_ON_TYPING" value="0" />
<indentOptions>
<option name="INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="RIGHT_MARGIN" value="999" />
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="BLANK_LINES_AFTER_IMPORTS" value="2" />
<option name="BLANK_LINES_AROUND_CLASS" value="2" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
<option name="SPACE_BEFORE_SEMICOLON" value="true" />
<option name="SPACE_WITHIN_IF_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_WHILE_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_FOR_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_CATCH_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="5" />
<option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
<option name="KEEP_SIMPLE_BLOCKS_IN_ONE_LINE" value="true" />
<option name="KEEP_SIMPLE_METHODS_IN_ONE_LINE" value="true" />
<option name="ARRAY_INITIALIZER_WRAP" value="5" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="WRAP_ON_TYPING" value="0" />
</codeStyleSettings>
<codeStyleSettings language="LESS">
<indentOptions>
<option name="INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Markdown">
<option name="RIGHT_MARGIN" value="120" />
<option name="WRAP_ON_TYPING" value="1" />
<option name="SOFT_MARGINS" value="120" />
</codeStyleSettings>
<codeStyleSettings language="Prisma">
<indentOptions>
<option name="INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="SASS">
<indentOptions>
<option name="INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="SCSS">
<indentOptions>
<option name="INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Shell Script">
<indentOptions>
<option name="INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="RIGHT_MARGIN" value="999" />
<option name="BLOCK_COMMENT_ADD_SPACE" value="true" />
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="BLANK_LINES_AFTER_IMPORTS" value="2" />
<option name="BLANK_LINES_AROUND_CLASS" value="2" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
<option name="SPACE_BEFORE_SEMICOLON" value="true" />
<option name="SPACE_WITHIN_IF_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_WHILE_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_FOR_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_CATCH_PARENTHESES" value="true" />
<option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="5" />
<option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
<option name="KEEP_SIMPLE_BLOCKS_IN_ONE_LINE" value="true" />
<option name="KEEP_SIMPLE_METHODS_IN_ONE_LINE" value="true" />
<option name="ARRAY_INITIALIZER_WRAP" value="5" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="ENUM_CONSTANTS_WRAP" value="2" />
<option name="WRAP_ON_TYPING" value="0" />
</codeStyleSettings>
<codeStyleSettings language="XML">
<option name="WRAP_ON_TYPING" value="0" />
</codeStyleSettings>
<codeStyleSettings language="yaml">
<indentOptions>
<option name="INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/TP.iml" filepath="$PROJECT_DIR$/.idea/TP.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SaveActionSettings">
<option name="actions">
<set>
<option value="activate" />
<option value="activateOnShortcut" />
<option value="reformat" />
</set>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SonarLintProjectSettings">
<option name="bindingEnabled" value="true" />
<option name="projectKey" value="Minelli_Malandain-Arch-Web-24-TP1" />
<option name="serverId" value="HEPIA" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
{
"$schema" : "./node_modules/@angular/cli/lib/config/schema.json",
"version" : 1,
"newProjectRoot": "projects",
"projects" : {
"architecture_web_tp": {
"projectType": "application",
"schematics" : {
"@schematics/angular:component": {
"style" : "scss",
"standalone": false
},
"@schematics/angular:directive": {
"standalone": false
},
"@schematics/angular:pipe" : {
"standalone": false
}
},
"root" : "",
"sourceRoot" : "src",
"prefix" : "app",
"architect" : {
"build" : {
"builder" : "@angular-devkit/build-angular:application",
"options" : {
"outputPath" : "dist/architecture_web_tp",
"index" : "src/index.html",
"browser" : "src/main.ts",
"polyfills" : [
"zone.js"
],
"tsConfig" : "tsconfig.app.json",
"inlineStyleLanguage": "scss",
"assets" : [
"src/favicon.ico",
"src/assets"
],
"styles" : [
"@angular/material/prebuilt-themes/pink-bluegrey.css",
"src/styles.scss"
],
"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" : {
"builder" : "@angular-devkit/build-angular:dev-server",
"configurations" : {
"production" : {
"buildTarget": "architecture_web_tp:build:production"
},
"development": {
"buildTarget": "architecture_web_tp:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"buildTarget": "architecture_web_tp:build"
}
},
"test" : {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"polyfills" : [
"zone.js",
"zone.js/testing"
],
"tsConfig" : "tsconfig.spec.json",
"inlineStyleLanguage": "scss",
"assets" : [
"src/favicon.ico",
"src/assets"
],
"styles" : [
"@angular/material/prebuilt-themes/pink-bluegrey.css",
"src/styles.scss"
],
"scripts" : []
}
}
}
}
},
"cli": {
"analytics": false
}
}
# Étape 1 : Construction de l'application
# Étape 1 : Image de build
FROM node:18 AS builder
# Définir le répertoire de travail
WORKDIR /app
# Copier tout le projet depuis ta machine (y compris tsconfig.json)
COPY . .
# Copier les fichiers package.json et package-lock.json
COPY package.json package-lock.json ./
# Installer les dépendances
RUN npm install
# Compiler TypeScript
RUN npm run build
# Copier le reste des fichiers
COPY . .
# Étape 2 : Image de production
# Étape 2 : Image finale pour exécution
FROM node:18
# Définir le répertoire de travail
WORKDIR /app
# Copier les fichiers de production depuis le builder
COPY --from=builder /app .
# Copier le dossier node_modules et les sources depuis l'image builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/ ./
EXPOSE 30992
# Exposer le port Angular (par défaut 4200)
EXPOSE 4200
CMD ["npm", "run", "start:dev"]
\ No newline at end of file
# Démarrer l'application avec `ng serve`
CMD ["npx", "ng", "serve", "--host", "0.0.0.0", "--port", "4200"]
{
"watch" : [
"nodemon.json",
"node_modules",
"prisma",
"src",
".env.vault"
],
"verbose": true,
"ext" : ".ts,.js",
"ignore" : [],
"exec" : "tsc --noEmit && npx tsx src/app.ts"
}
This diff is collapsed.
{
"name": "frontend",
"description": "Template du projet d'architecture web",
"version": "1.0.0",
"license": "",
"author": "Michaël Minelli <michael-jean.minelli@hesge.ch>",
"main": "dist/src/app.js",
"name": "architecture-web-tp",
"version": "0.0.0",
"scripts": {
"env:decrypt": "npx dotenvx decrypt",
"env:update": "npx dotenvx encrypt",
"prisma:generate": "npx prisma generate",
"build:project": "npm run prisma:generate && npx tsc --project ./ && cp -R assets dist/assets",
"build": "npm run build:project",
"database:migrate:create": "npx dotenvx run -- npx prisma migrate dev --create-only",
"database:migrate:deploy": "npx dotenvx run -- npx prisma migrate deploy",
"database:seed:dev": "npm run build; npx dotenvx run -- npx prisma db seed",
"database:seed:prod": "npm run build; npx dotenvx run -- NODE_ENV=production npx prisma db seed",
"database:deploy:dev": "npm run database:migrate:deploy && npm run database:seed:dev",
"database:deploy:prod": "npm run database:migrate:deploy && npm run database:seed:prod",
"start:dev": "npm run prisma:generate && npx dotenvx run -- npx nodemon src/app.ts",
"start:prod": "npm run build && npx dotenvx run -- NODE_ENV=production npx node dist/src/app.js",
"clean": "rm -R dist/*"
},
"prisma": {
"seed": "node dist/prisma/seed"
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test"
},
"private": true,
"dependencies": {
"@dotenvx/dotenvx": "^0.34.0",
"@prisma/client": "^6.3.1",
"axios": "^1.7.2",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
"cors": "^2.8.5",
"express": "^4.19.2",
"express-validator": "^7.0.1",
"form-data": "^4.0.0",
"helmet": "^7.1.0",
"http-status-codes": "^2.3.0",
"jsonwebtoken": "^9.0.2",
"morgan": "^1.10.0",
"multer": "^1.4.5-lts.1",
"winston": "^3.13.0"
"@angular/animations": "^17.3.4",
"@angular/cdk": "^17.3.4",
"@angular/common": "^17.3.4",
"@angular/compiler": "^17.3.4",
"@angular/core": "^17.3.4",
"@angular/forms": "^17.3.4",
"@angular/material": "^17.3.4",
"@angular/platform-browser": "^17.3.4",
"@angular/platform-browser-dynamic": "^17.3.4",
"@angular/router": "^17.3.4",
"bootstrap": "^5.3.3",
"rxjs": "~7.8.1",
"tslib": "^2.6.2",
"zone.js": "~0.14.4"
},
"devDependencies": {
"@types/bcryptjs": "^2.4.6",
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/jsonwebtoken": "^9.0.6",
"@types/morgan": "^1.9.9",
"@types/multer": "^1.4.11",
"@types/node": "^20.12.7",
"node": "^20.12.2",
"nodemon": "^3.1.0",
"npm": "^10.5.2",
"prisma": "^6.3.1",
"ts-node": "^10.9.2",
"tsx": "^4.7.2",
"typescript": "^5.4.5"
"@angular-devkit/build-angular": "^17.3.5",
"@angular/cli": "^17.3.5",
"@angular/compiler-cli": "^17.3.4",
"@types/jasmine": "~5.1.4",
"jasmine-core": "~5.1.2",
"karma": "~6.4.3",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.1",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"typescript": "~5.4.5"
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment