From c1432fa766ee625148244ea8b0e6a23b76d816e5 Mon Sep 17 00:00:00 2001 From: Arthur Dodin Date: Sat, 11 Jul 2026 12:17:27 +0200 Subject: [PATCH] feat(ci): pre-commit controls --- .husky/pre-commit | 2 + .prettierrc | 10 + README.md | 161 +++++++++---- frontend/.env.exemple | 17 +- node_modules/.bin/husky | 43 ++++ node_modules/.modules.yaml | 26 ++ node_modules/.package-map.json | 1 + node_modules/.pnpm-workspace-state-v1.json | 29 +++ .../husky@9.1.7/node_modules/husky/LICENSE | 21 ++ .../husky@9.1.7/node_modules/husky/README.md | 1 + .../husky@9.1.7/node_modules/husky/bin.js | 26 ++ .../husky@9.1.7/node_modules/husky/husky | 22 ++ .../husky@9.1.7/node_modules/husky/index.d.ts | 1 + .../husky@9.1.7/node_modules/husky/index.js | 25 ++ .../husky/node_modules/.bin/husky | 43 ++++ .../node_modules/husky/package.json | 25 ++ node_modules/.pnpm/lock.yaml | 24 ++ node_modules/husky | 1 + package.json | 23 ++ pnpm-lock.yaml | 223 ++++++++++++++++++ 20 files changed, 674 insertions(+), 50 deletions(-) create mode 100644 .husky/pre-commit create mode 100644 .prettierrc create mode 100755 node_modules/.bin/husky create mode 100644 node_modules/.modules.yaml create mode 100644 node_modules/.package-map.json create mode 100644 node_modules/.pnpm-workspace-state-v1.json create mode 100644 node_modules/.pnpm/husky@9.1.7/node_modules/husky/LICENSE create mode 100644 node_modules/.pnpm/husky@9.1.7/node_modules/husky/README.md create mode 100755 node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js create mode 100644 node_modules/.pnpm/husky@9.1.7/node_modules/husky/husky create mode 100644 node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.d.ts create mode 100644 node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.js create mode 100755 node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules/.bin/husky create mode 100644 node_modules/.pnpm/husky@9.1.7/node_modules/husky/package.json create mode 100644 node_modules/.pnpm/lock.yaml create mode 120000 node_modules/husky create mode 100644 package.json create mode 100644 pnpm-lock.yaml diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..74ae573 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,2 @@ +pnpm -C frontend lint +pnpm -C backend lint diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..b7db128 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": true, + "trailingComma": "all", + "singleQuote": true, + "printWidth": 120, + "tabWidth": 4, + "arrowParens": "always", + "endOfLine": "lf", + "bracketSameLine": true +} diff --git a/README.md b/README.md index 2211397..98020dc 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,13 @@ Ce projet est une plateforme pour le site d'intégration de l'Université de Tec - **Frontend** : - Vite.js - React - - Serve (pour servir le build statique) + - Nginx (pour servir le build statique) - Docker - **Backend** : - Node.js - Express.js - - Drizzle ORM + - Prisma - PostgreSQL client - Docker @@ -26,58 +26,140 @@ Ce projet est une plateforme pour le site d'intégration de l'Université de Tec --- -## 🚀 Lancer le projet en local +## Prérequis + +### Cloner le projet -### 1. Prérequis +```bash +git clone https://github.com/ungdev/Integration.git +cd Integration +``` + +### Docker & Docker-Compose Assurez-vous d'avoir installé : + - [Docker](https://www.docker.com/) - [Docker Compose](https://docs.docker.com/compose/) Vérifiez avec : + ```bash docker --version docker-compose --version ``` -### 2. Cloner le projet +### ESLint & Prettier -```bash -git clone https://github.com/ungdev/Integration.git -cd Integration +ESLint & Prettier sont utilisés pour maintenanir une cohérence et propreté de syntaxe dans le code de ce projet ainsi que la lisibilité. + +Il convient donc d'installation les deux extensions sur votre éditeur de code. + +Vérification de syntaxe via la commande + +``` +pnpm lint ``` -### 3. Démarrer les conteneurs +La syntaxe doit être controllée avant chaque commit. -Exécutez la commande suivante à la racine du projet : +### Variables d'environnement -```bash -docker-compose up --build +#### Frontend + +Dans [le dossier frontend](/frontend) + +``` +cp .env.example .env ``` -Cette commande : -- Lance PostgreSQL -- Démarre le backend avec migration automatique via Drizzle ORM -- Compile et sert le frontend +Renseigner les différents champs utiles. + +#### API + +Dans [le dossier backend](/backend) + +``` +cp .env.example .env +``` + +Renseigner les différents champs utiles. + +## 🚀 Lancer le projet en local -### 4. Accéder aux services +### Database + +#### Via Docker-Compose + +A la racine du projet + +``` +docker compose up db +``` + +#### Database externe + +Passage par exemple par `systemctl` + +``` +sudo systemctl start postgresql +``` + +### Frontend + +Dans [le dossier frontend](/frontend) + +Installation des dépendances + +``` +pnpm i +``` + +Pour lancer le serveur + +``` +pnpm run dev +``` + +### API + +Dans [le dossier backend](/backend/) + +Installation des dépendances & Migration DB + +``` +pnpm i +pnpm migrate +``` + +Pour lancer le serveur + +``` +pnpm run dev +``` + +### Accéder aux services - Frontend : [http://localhost:4000](http://localhost:4000) - Backend : [http://localhost:4001](http://localhost:4001) - Base de données PostgreSQL : `localhost:5432` (user: `admin`, password: `password`) ---- - -## 🧪 Gestion des migrations +## Test de build -Le backend utilise **Drizzle ORM** pour la gestion des migrations. +### Via Docker -La commande suivante est exécutée automatiquement au démarrage : +Exécutez la commande suivante à la racine du projet : ```bash -npm run migrate +docker-compose up --build ``` +Cette commande : + +- Lance PostgreSQL +- Démarre le backend avec migration automatique via Prisma +- Compile et sert le frontend + --- ## 📁 Structure du projet @@ -97,8 +179,7 @@ npm run migrate --- - -# 🔧 Installation du site de l'Intégration en local +# 🔧 Routage `/api` sur integration.utt.fr en local Ce guide permet de configurer le site `integration.utt.fr` en local avec Nginx, en HTTPS, pour simuler l'environnement de production. @@ -138,6 +219,7 @@ mkcert integration.utt.fr ``` Cela crée deux fichiers : + - `integration.utt.fr.pem` - `integration.utt.fr-key.pem` @@ -177,30 +259,13 @@ sudo systemctl reload nginx ### 4. Lancer les services -Dans deux terminaux différents : +[Lancer l'API](#api) puis [lancer le Frontend](#frontend) -```bash -cd frontend -npm install -npm run dev -``` - -```bash -cd backend -npm install -npm run dev -``` +Le projet de dev est maintenant accessible sur https://integration.utt.fr, en local. --- -### ✅ Accès - -Ouvrir : -👉 https://integration.utt.fr - ---- - -## 🔚 Nettoyage quand le dev est terminé +## Nettoyage ### 1. Supprimer l'entrée dans `/etc/hosts` @@ -226,10 +291,8 @@ sudo systemctl reload nginx --- -Tu peux maintenant accéder à la version en ligne de : -👉 https://integration.utt.fr - +La site de production est maintenant accessible sur https://integration.utt.fr, en ligne. ## 📜 Licence -Projet destiné à des fins d'utilisation pour l'intégration des étudiants à l'UTT. +Projet destiné à des fins d'utilisation pour l'intégration des nouveaux étudiants à l'Université de Technologie de Troyes. diff --git a/frontend/.env.exemple b/frontend/.env.exemple index 4095081..19a87e9 100644 --- a/frontend/.env.exemple +++ b/frontend/.env.exemple @@ -2,4 +2,19 @@ VITE_ROADBOOK_URL_FRENCH= VITE_ROADBOOK_URL_ENGLISH= VITE_SERVICE_URL=https://localhost:4000 VITE_API_URL =http://localhost:4001/api -VITE_CAS_LOGIN_URL=https://auth.utt.fr/cas/login \ No newline at end of file +VITE_CAS_LOGIN_URL=https://auth.utt.fr/cas/login +VITE_ASSOCIATION_ADDRESS=UNG_ADRESSE +VITE_ASSOCIATION_EMAIL=UNG_EMAIL +VITE_ASSOCIATION_NAME=UNG_LE_NOM +VITE_ASSOCIATION_PHONE=+33ung +VITE_ASSOCIATION_RNA=UNG_RNA +VITE_ASSOCIATION_RCS=UNG_RCS +VITE_BDE_ADDRESS=BDE_ADRESSE +VITE_BDE_EMAIL=BDE_EMAIL +VITE_BDE_NAME=BDE_LE_NOM +VITE_BDE_PHONE=+33bde +VITE_BDE_RNA=BDE_RNA +VITE_BDE_SIRET=BDE_SIRET +VITE_BDE_SIREN=BDE_SIREN +VITE_DPO_EMAIL=DPO_EMAIL +VITE_DPO_NAME=DPO_NOM diff --git a/node_modules/.bin/husky b/node_modules/.bin/husky new file mode 100755 index 0000000..d65de15 --- /dev/null +++ b/node_modules/.bin/husky @@ -0,0 +1,43 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") +basedir_win="$basedir" +exe="" +msys="" + +case `uname -a` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir_win=`cygpath -w "$basedir"` + fi + exe=".exe" + msys="true" + ;; + *WSL2*) + if command -v wslpath > /dev/null 2>&1; then + basedir_win="$(wslpath -w "$basedir" 2> /dev/null)" + if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then + basedir_win="$basedir" + else + exe=".exe" + fi + fi + ;; +esac + +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/node_modules" +else + export NODE_PATH="/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/node_modules:$NODE_PATH" +fi +if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then + exec "$basedir/node.exe" "$basedir_win/../.pnpm/husky@9.1.7/node_modules/husky/bin.js" "$@" +elif [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../.pnpm/husky@9.1.7/node_modules/husky/bin.js" "$@" +elif command -v node >/dev/null 2>&1; then + exec node "$basedir/../.pnpm/husky@9.1.7/node_modules/husky/bin.js" "$@" +elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then + exec node.exe "$basedir_win/../.pnpm/husky@9.1.7/node_modules/husky/bin.js" "$@" +else + exec node "$basedir/../.pnpm/husky@9.1.7/node_modules/husky/bin.js" "$@" +fi +# cmd-shim-target=/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js diff --git a/node_modules/.modules.yaml b/node_modules/.modules.yaml new file mode 100644 index 0000000..544b294 --- /dev/null +++ b/node_modules/.modules.yaml @@ -0,0 +1,26 @@ +{ + "hoistedDependencies": {}, + "hoistPattern": [ + "*" + ], + "included": { + "dependencies": true, + "devDependencies": true, + "optionalDependencies": true + }, + "injectedDeps": {}, + "layoutVersion": 5, + "nodeLinker": "isolated", + "packageManager": "pnpm@11.11.0", + "pendingBuilds": [], + "publicHoistPattern": [], + "prunedAt": "Sat, 11 Jul 2026 10:10:41 GMT", + "registries": { + "default": "https://registry.npmjs.org/", + "@jsr": "https://npm.jsr.io/" + }, + "skipped": [], + "storeDir": "/home/dodin/.local/share/pnpm/store/v11", + "virtualStoreDir": ".pnpm", + "virtualStoreDirMaxLength": 120 +} \ No newline at end of file diff --git a/node_modules/.package-map.json b/node_modules/.package-map.json new file mode 100644 index 0000000..93dc7b8 --- /dev/null +++ b/node_modules/.package-map.json @@ -0,0 +1 @@ +{"packages":{".":{"url":"..","dependencies":{"Integration":".","husky":"husky@9.1.7"}},"husky@9.1.7":{"url":"./.pnpm/husky@9.1.7/node_modules/husky","dependencies":{"husky":"husky@9.1.7"}}}} diff --git a/node_modules/.pnpm-workspace-state-v1.json b/node_modules/.pnpm-workspace-state-v1.json new file mode 100644 index 0000000..b08124e --- /dev/null +++ b/node_modules/.pnpm-workspace-state-v1.json @@ -0,0 +1,29 @@ +{ + "lastValidatedTimestamp": 1783764641456, + "projects": {}, + "pnpmfiles": [], + "settings": { + "autoInstallPeers": true, + "dedupeDirectDeps": false, + "dedupeInjectedDeps": true, + "dedupePeerDependents": true, + "dedupePeers": false, + "dev": true, + "excludeLinksFromLockfile": false, + "hoistPattern": [ + "*" + ], + "hoistWorkspacePackages": true, + "injectWorkspacePackages": false, + "linkWorkspacePackages": false, + "minimumReleaseAge": 1440, + "minimumReleaseAgeIgnoreMissingTime": true, + "nodeLinker": "isolated", + "optional": true, + "peersSuffixMaxLength": 1000, + "preferWorkspacePackages": false, + "production": true, + "publicHoistPattern": [] + }, + "filteredInstall": false +} diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/LICENSE b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/LICENSE new file mode 100644 index 0000000..049c9dc --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 typicode + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/README.md b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/README.md new file mode 100644 index 0000000..405cda7 --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/README.md @@ -0,0 +1 @@ +https://typicode.github.io/husky diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js new file mode 100755 index 0000000..244311b --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js @@ -0,0 +1,26 @@ +#!/usr/bin/env node +import f, { writeFileSync as w } from 'fs' +import i from './index.js' + +let p, a, n, s, o, d + +p = process +a = p.argv[2] + +if (a == 'init') { + n = 'package.json' + s = f.readFileSync(n) + o = JSON.parse(s) + ;(o.scripts ||= {}).prepare = 'husky' + w(n, JSON.stringify(o, 0, /\t/.test(s) ? '\t' : 2) + '\n') + p.stdout.write(i()) + try { f.mkdirSync('.husky') } catch {} + w('.husky/pre-commit', (p.env.npm_config_user_agent?.split('/')[0] ?? 'npm') + ' test\n') + p.exit() +} + +d = c => console.error(`husky - ${c} command is DEPRECATED`) +if (['add', 'set', 'uninstall'].includes(a)) { d(a); p.exit(1) } +if (a == 'install') d(a) + +p.stdout.write(i(a == 'install' ? undefined : a)) diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/husky b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/husky new file mode 100644 index 0000000..bf7c896 --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/husky @@ -0,0 +1,22 @@ +#!/usr/bin/env sh +[ "$HUSKY" = "2" ] && set -x +n=$(basename "$0") +s=$(dirname "$(dirname "$0")")/$n + +[ ! -f "$s" ] && exit 0 + +if [ -f "$HOME/.huskyrc" ]; then + echo "husky - '~/.huskyrc' is DEPRECATED, please move your code to ~/.config/husky/init.sh" +fi +i="${XDG_CONFIG_HOME:-$HOME/.config}/husky/init.sh" +[ -f "$i" ] && . "$i" + +[ "${HUSKY-}" = "0" ] && exit 0 + +export PATH="node_modules/.bin:$PATH" +sh -e "$s" "$@" +c=$? + +[ $c != 0 ] && echo "husky - $n script failed (code $c)" +[ $c = 127 ] && echo "husky - command not found in PATH=$PATH" +exit $c diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.d.ts b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.d.ts new file mode 100644 index 0000000..72a5495 --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.d.ts @@ -0,0 +1 @@ +export default function (dir?: string): string; \ No newline at end of file diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.js b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.js new file mode 100644 index 0000000..bebf0d5 --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/index.js @@ -0,0 +1,25 @@ +import c from 'child_process' +import f, { readdir, writeFileSync as w } from 'fs' +import p from 'path' + +let l = [ 'pre-commit', 'pre-merge-commit', 'prepare-commit-msg', 'commit-msg', 'post-commit', 'applypatch-msg', 'pre-applypatch', 'post-applypatch', 'pre-rebase', 'post-rewrite', 'post-checkout', 'post-merge', 'pre-push', 'pre-auto-gc' ], + msg = `echo "husky - DEPRECATED\n\nPlease remove the following two lines from $0:\n\n#!/usr/bin/env sh\n. \\"\\$(dirname -- \\"\\$0\\")/_/husky.sh\\"\n\nThey WILL FAIL in v10.0.0\n"` + +export default (d = '.husky') => { + if (process.env.HUSKY === '0') return 'HUSKY=0 skip install' + if (d.includes('..')) return '.. not allowed' + if (!f.existsSync('.git')) return `.git can't be found` + + let _ = (x = '') => p.join(d, '_', x) + let { status: s, stderr: e } = c.spawnSync('git', ['config', 'core.hooksPath', `${d}/_`]) + if (s == null) return 'git command not found' + if (s) return '' + e + + f.rmSync(_('husky.sh'), { force: true }) + f.mkdirSync(_(), { recursive: true }) + w(_('.gitignore'), '*') + f.copyFileSync(new URL('husky', import.meta.url), _('h')) + l.forEach(h => w(_(h), `#!/usr/bin/env sh\n. "\$(dirname "\$0")/h"`, { mode: 0o755 })) + w(_('husky.sh'), msg) + return '' +} diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules/.bin/husky b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules/.bin/husky new file mode 100755 index 0000000..0c238c8 --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules/.bin/husky @@ -0,0 +1,43 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") +basedir_win="$basedir" +exe="" +msys="" + +case `uname -a` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir_win=`cygpath -w "$basedir"` + fi + exe=".exe" + msys="true" + ;; + *WSL2*) + if command -v wslpath > /dev/null 2>&1; then + basedir_win="$(wslpath -w "$basedir" 2> /dev/null)" + if [ $? -ne 0 ] || [ -z "$basedir_win" ]; then + basedir_win="$basedir" + else + exe=".exe" + fi + fi + ;; +esac + +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/node_modules" +else + export NODE_PATH="/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules/husky/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules:/home/dodin/Documents/integration/Integration/node_modules/.pnpm/node_modules:$NODE_PATH" +fi +if [ -n "$exe" ] && [ -x "$basedir/node.exe" ]; then + exec "$basedir/node.exe" "$basedir_win/../../bin.js" "$@" +elif [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../../bin.js" "$@" +elif command -v node >/dev/null 2>&1; then + exec node "$basedir/../../bin.js" "$@" +elif [ -n "$exe" ] && command -v node.exe >/dev/null 2>&1; then + exec node.exe "$basedir_win/../../bin.js" "$@" +else + exec node "$basedir/../../bin.js" "$@" +fi +# cmd-shim-target=/home/dodin/Documents/integration/Integration/node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js diff --git a/node_modules/.pnpm/husky@9.1.7/node_modules/husky/package.json b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/package.json new file mode 100644 index 0000000..b9d3810 --- /dev/null +++ b/node_modules/.pnpm/husky@9.1.7/node_modules/husky/package.json @@ -0,0 +1,25 @@ +{ + "name": "husky", + "version": "9.1.7", + "type": "module", + "description": "Modern native Git hooks", + "keywords": [ + "git", + "hooks", + "pre-commit" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/typicode/husky.git" + }, + "funding": "https://github.com/sponsors/typicode", + "license": "MIT", + "author": "typicode", + "bin": { + "husky": "bin.js" + }, + "exports": "./index.js", + "engines": { + "node": ">=18" + } +} diff --git a/node_modules/.pnpm/lock.yaml b/node_modules/.pnpm/lock.yaml new file mode 100644 index 0000000..a177305 --- /dev/null +++ b/node_modules/.pnpm/lock.yaml @@ -0,0 +1,24 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + husky: + specifier: ^9.1.7 + version: 9.1.7 + +packages: + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + +snapshots: + + husky@9.1.7: {} diff --git a/node_modules/husky b/node_modules/husky new file mode 120000 index 0000000..69c483c --- /dev/null +++ b/node_modules/husky @@ -0,0 +1 @@ +.pnpm/husky@9.1.7/node_modules/husky \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..679af4e --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "name": "Integration", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "prepare": "husky" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devEngines": { + "packageManager": { + "name": "pnpm", + "version": "^11.10.0", + "onFail": "download" + } + }, + "type": "module", + "devDependencies": { + "husky": "^9.1.7" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..40d12e2 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,223 @@ +--- +lockfileVersion: '9.0' + +importers: + + .: + configDependencies: {} + packageManagerDependencies: + '@pnpm/exe': + specifier: ^11.10.0 + version: 11.11.0 + pnpm: + specifier: ^11.10.0 + version: 11.11.0 + +packages: + + '@pnpm/exe@11.11.0': + resolution: {integrity: sha512-OpTrbkAU0Ur8gBwhAT6mbWwlA1bFU8zPcFNdp/img/RqFIc7Dn0j0crW9rz5hxTWo/UBQjy6Sb9jh+N5bRSd+g==} + hasBin: true + + '@pnpm/linux-arm64@11.11.0': + resolution: {integrity: sha512-62K/kQY3jaoQ96MNUi0NLcTSSDO2QrtziOA2IK5R/m+DxpSwXbxFSQHYx8oOg0r1+MFVqwuDkFjXe6DyW3y58g==} + cpu: [arm64] + os: [linux] + + '@pnpm/linux-x64@11.11.0': + resolution: {integrity: sha512-rwMbNJR+PstRu+ymWoApei1CWrAnsnW3tm+3H8qOxbp8duiaj6u7DxlMzhKbVpFwylxcJdeGwZ5tReBFOVpsdw==} + cpu: [x64] + os: [linux] + + '@pnpm/linuxstatic-arm64@11.11.0': + resolution: {integrity: sha512-OcmrMw1hxNee7KTBpE0yToTZziH/SCmJWwjB7YN2NmsxZVPKM2vtOWFdZufW0YN5JffKMaHbPZ2ulgYBM5qAQw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@pnpm/linuxstatic-x64@11.11.0': + resolution: {integrity: sha512-pWeAYeS+PPah6mXcJbOr+nPwEpyQau4iPcsqNUhTK9G5/qpG5dU1m8oHeIH83PuUUvvdJddLE1PXUkGM+QCI6g==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@pnpm/macos-arm64@11.11.0': + resolution: {integrity: sha512-62P8Pe4yvMkdl2nxswCjM5X835i9Judk68CZvv8OnWsm7CVCEZ61SEBnNTpjJ4kXzdayFjRpPwE/jfJSvPaWww==} + cpu: [arm64] + os: [darwin] + + '@pnpm/win-arm64@11.11.0': + resolution: {integrity: sha512-yYAx+A1oT+mSgrIzysuAvdYYMYEfAa+z3/UCGY3L5VC9oabs9qi71LbTan1cDui/AadrIvD177k9mV4V38KAJg==} + cpu: [arm64] + os: [win32] + + '@pnpm/win-x64@11.11.0': + resolution: {integrity: sha512-ehTuyM5Rrp4ye0SdtAJkUS+9ykfwdDY9SPqiK3+bxXPx3LD5aeDw2EBksTh/xRTgqFdYmoFR86cABFt9yBr0GA==} + cpu: [x64] + os: [win32] + + '@reflink/reflink-darwin-arm64@0.1.19': + resolution: {integrity: sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@reflink/reflink-darwin-x64@0.1.19': + resolution: {integrity: sha512-By85MSWrMZa+c26TcnAy8SDk0sTUkYlNnwknSchkhHpGXOtjNDUOxJE9oByBnGbeuIE1PiQsxDG3Ud+IVV9yuA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@reflink/reflink-linux-arm64-gnu@0.1.19': + resolution: {integrity: sha512-7P+er8+rP9iNeN+bfmccM4hTAaLP6PQJPKWSA4iSk2bNvo6KU6RyPgYeHxXmzNKzPVRcypZQTpFgstHam6maVg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@reflink/reflink-linux-arm64-musl@0.1.19': + resolution: {integrity: sha512-37iO/Dp6m5DDaC2sf3zPtx/hl9FV3Xze4xoYidrxxS9bgP3S8ALroxRK6xBG/1TtfXKTvolvp+IjrUU6ujIGmA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@reflink/reflink-linux-x64-gnu@0.1.19': + resolution: {integrity: sha512-jbI8jvuYCaA3MVUdu8vLoLAFqC+iNMpiSuLbxlAgg7x3K5bsS8nOpTRnkLF7vISJ+rVR8W+7ThXlXlUQ93ulkw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@reflink/reflink-linux-x64-musl@0.1.19': + resolution: {integrity: sha512-e9FBWDe+lv7QKAwtKOt6A2W/fyy/aEEfr0g6j/hWzvQcrzHCsz07BNQYlNOjTfeytrtLU7k449H1PI95jA4OjQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@reflink/reflink-win32-arm64-msvc@0.1.19': + resolution: {integrity: sha512-09PxnVIQcd+UOn4WAW73WU6PXL7DwGS6wPlkMhMg2zlHHG65F3vHepOw06HFCq+N42qkaNAc8AKIabWvtk6cIQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@reflink/reflink-win32-x64-msvc@0.1.19': + resolution: {integrity: sha512-E//yT4ni2SyhwP8JRjVGWr3cbnhWDiPLgnQ66qqaanjjnMiu3O/2tjCPQXlcGc/DEYofpDc9fvhv6tALQsMV9w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@reflink/reflink@0.1.19': + resolution: {integrity: sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA==} + engines: {node: '>= 10'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + pnpm@11.11.0: + resolution: {integrity: sha512-RGP2X9gO2A1pvB1L8WPulPYFxzgPwxi7Wy6+FfjNEtScUaTVnpUbQB52TTtsp1HL9RvFDtcAGmvLSTXmhMNIgg==} + engines: {node: '>=22.13'} + hasBin: true + +snapshots: + + '@pnpm/exe@11.11.0': + dependencies: + '@reflink/reflink': 0.1.19 + detect-libc: 2.1.2 + optionalDependencies: + '@pnpm/linux-arm64': 11.11.0 + '@pnpm/linux-x64': 11.11.0 + '@pnpm/linuxstatic-arm64': 11.11.0 + '@pnpm/linuxstatic-x64': 11.11.0 + '@pnpm/macos-arm64': 11.11.0 + '@pnpm/win-arm64': 11.11.0 + '@pnpm/win-x64': 11.11.0 + + '@pnpm/linux-arm64@11.11.0': + optional: true + + '@pnpm/linux-x64@11.11.0': + optional: true + + '@pnpm/linuxstatic-arm64@11.11.0': + optional: true + + '@pnpm/linuxstatic-x64@11.11.0': + optional: true + + '@pnpm/macos-arm64@11.11.0': + optional: true + + '@pnpm/win-arm64@11.11.0': + optional: true + + '@pnpm/win-x64@11.11.0': + optional: true + + '@reflink/reflink-darwin-arm64@0.1.19': + optional: true + + '@reflink/reflink-darwin-x64@0.1.19': + optional: true + + '@reflink/reflink-linux-arm64-gnu@0.1.19': + optional: true + + '@reflink/reflink-linux-arm64-musl@0.1.19': + optional: true + + '@reflink/reflink-linux-x64-gnu@0.1.19': + optional: true + + '@reflink/reflink-linux-x64-musl@0.1.19': + optional: true + + '@reflink/reflink-win32-arm64-msvc@0.1.19': + optional: true + + '@reflink/reflink-win32-x64-msvc@0.1.19': + optional: true + + '@reflink/reflink@0.1.19': + optionalDependencies: + '@reflink/reflink-darwin-arm64': 0.1.19 + '@reflink/reflink-darwin-x64': 0.1.19 + '@reflink/reflink-linux-arm64-gnu': 0.1.19 + '@reflink/reflink-linux-arm64-musl': 0.1.19 + '@reflink/reflink-linux-x64-gnu': 0.1.19 + '@reflink/reflink-linux-x64-musl': 0.1.19 + '@reflink/reflink-win32-arm64-msvc': 0.1.19 + '@reflink/reflink-win32-x64-msvc': 0.1.19 + + detect-libc@2.1.2: {} + + pnpm@11.11.0: {} + +--- +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + husky: + specifier: ^9.1.7 + version: 9.1.7 + +packages: + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + +snapshots: + + husky@9.1.7: {}