up builds for bluprint

This commit is contained in:
Tykayn 2025-10-08 16:07:36 +02:00 committed by tykayn
parent 13cd2001b6
commit 963adaa8c8
14 changed files with 609 additions and 475 deletions

View file

@ -6,8 +6,6 @@
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"link-sae-lib": "bash ./scripts/link-sae-lib.sh",
"postinstall": "npm run link-sae-lib",
"test": "ng test"
},
"prettier": {
@ -37,13 +35,16 @@
"@angular/cli": "^20.1.1",
"@angular/compiler-cli": "^20.1.0",
"@types/jasmine": "~5.1.0",
"sae-lib": "file:../my-workspace/projects/sae-lib",
"sae-lib": "file:../my-workspace/dist/sae-lib",
"jasmine-core": "~5.8.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"bulma": "^1.0.4",
"remixicon": "^4.6.0",
"shepherd.js": "^14.5.1",
"typescript": "~5.8.2"
}
}

View file

@ -1,10 +1,9 @@
import {Component, signal} from '@angular/core';
import {RouterOutlet} from '@angular/router';
import {MainNav} from './nav/main-nav/main-nav';
import {FeedbackButton} from 'sae-lib/buttons/feedback-button/feedback-button';
@Component({
selector: 'app-root',
imports: [RouterOutlet, MainNav, FeedbackButton],
imports: [RouterOutlet, MainNav],
templateUrl: './app.html',
styleUrl: './app.scss'
})

BIN
blueprint/static/csc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

View file

@ -0,0 +1,22 @@
<html>
<title>site statique pour docker</title>
<style>
body {
color: #f0f0f0;
background: #1b1d27;
}
img{
max-width: 100vw;
}
h1{
text-align: center;
}
</style>
<body>
<h1>
coucou l'index de static
</h1>
<img src="csc.png">
</body>
</html>

637
eqlair/package-lock.json generated
View file

@ -7,7 +7,6 @@
"": {
"name": "eqlair",
"version": "0.0.0",
"hasInstallScript": true,
"dependencies": {
"@angular/common": "^20.1.0",
"@angular/compiler": "^20.1.0",
@ -16,6 +15,7 @@
"@angular/platform-browser": "^20.1.0",
"@angular/router": "^20.1.0",
"rxjs": "~7.8.0",
"sae-lib": "file:../my-workspace/dist/sae-lib",
"tslib": "^2.3.0",
"zone.js": "~0.15.0"
},
@ -24,22 +24,22 @@
"@angular/cli": "^20.1.1",
"@angular/compiler-cli": "^20.1.0",
"@types/jasmine": "~5.1.0",
"bulma": "^1.0.4",
"jasmine-core": "~5.8.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"sae-lib": "file:../my-workspace/projects/sae-lib",
"remixicon": "^4.6.0",
"shepherd.js": "^14.5.1",
"typescript": "~5.8.2"
}
},
"../my-workspace/projects/sae-lib": {
"../my-workspace/dist/sae-lib": {
"version": "0.0.1",
"dev": true,
"devDependencies": {
"bulma": "^1.0.4",
"remixicon": "^4.6.0"
"dependencies": {
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/common": "^20.1.0",
@ -49,8 +49,7 @@
"@ngrx/store-devtools": "^20.0.0",
"bulma": "^1.0.4",
"remixicon": "^4.6.0",
"shepherd.js": "^14.5.1",
"tslib": "^2.3.0"
"shepherd.js": "^14.5.1"
}
},
"node_modules/@algolia/abtesting": {
@ -277,13 +276,13 @@
}
},
"node_modules/@angular-devkit/architect": {
"version": "0.2003.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.3.tgz",
"integrity": "sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==",
"version": "0.2003.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.5.tgz",
"integrity": "sha512-KtA//ucTIdnKp1+vTYnqBallEbiZHLx3Gs7XgYm+p4VJfVjbMZHWY2vrbJoyCUp05goiv2XnDy0bKQ9VYHePWg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@angular-devkit/core": "20.3.3",
"@angular-devkit/core": "20.3.5",
"rxjs": "7.8.2"
},
"engines": {
@ -293,9 +292,9 @@
}
},
"node_modules/@angular-devkit/core": {
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.3.tgz",
"integrity": "sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==",
"version": "20.3.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.5.tgz",
"integrity": "sha512-NpAP5j3q/n+SC1s0yAWKDAbc7Y8xUxlmJ5iDRJBGu6qDKM7lMnYA1tn2UEy/JnXluJ2XZqqiymrtucw7yux2xQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -321,13 +320,13 @@
}
},
"node_modules/@angular-devkit/schematics": {
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.3.tgz",
"integrity": "sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==",
"version": "20.3.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.5.tgz",
"integrity": "sha512-BDizJp7QIoCyMZmuGKoryNUH3QgFPnkEIv0gRdpLhZum4+ZN/DYWaf/jSSGnSVGK88oMrgq7420VEjYPlgJ5MA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@angular-devkit/core": "20.3.3",
"@angular-devkit/core": "20.3.5",
"jsonc-parser": "3.3.1",
"magic-string": "0.30.17",
"ora": "8.2.0",
@ -340,14 +339,14 @@
}
},
"node_modules/@angular/build": {
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.3.tgz",
"integrity": "sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==",
"version": "20.3.5",
"resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.5.tgz",
"integrity": "sha512-Nwwwm8U7lolkdHt75PiPkW93689SBFUN9qEQeu02sPfq2Tqyn20PZGifXkV8A/6mlWbQUjfUnGpRTVk/WhW9Eg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "2.3.0",
"@angular-devkit/architect": "0.2003.3",
"@angular-devkit/architect": "0.2003.5",
"@babel/core": "7.28.3",
"@babel/helper-annotate-as-pure": "7.27.3",
"@babel/helper-split-export-declaration": "7.24.7",
@ -365,7 +364,7 @@
"parse5-html-rewriting-stream": "8.0.0",
"picomatch": "4.0.3",
"piscina": "5.1.3",
"rolldown": "1.0.0-beta.38",
"rollup": "4.52.3",
"sass": "1.90.0",
"semver": "7.7.2",
"source-map-support": "0.5.21",
@ -389,7 +388,7 @@
"@angular/platform-browser": "^20.0.0",
"@angular/platform-server": "^20.0.0",
"@angular/service-worker": "^20.0.0",
"@angular/ssr": "^20.3.3",
"@angular/ssr": "^20.3.5",
"karma": "^6.4.0",
"less": "^4.2.0",
"ng-packagr": "^20.0.0",
@ -439,19 +438,19 @@
}
},
"node_modules/@angular/cli": {
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.3.tgz",
"integrity": "sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==",
"version": "20.3.5",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.5.tgz",
"integrity": "sha512-UA843Mh5uHIWnrzKUotGmhJmvefyEizFS7X8xJEUJsX5pa1EKUB/145rKHoLHxRRpHGxFcXtvciJCksFz1lSBA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@angular-devkit/architect": "0.2003.3",
"@angular-devkit/core": "20.3.3",
"@angular-devkit/schematics": "20.3.3",
"@angular-devkit/architect": "0.2003.5",
"@angular-devkit/core": "20.3.5",
"@angular-devkit/schematics": "20.3.5",
"@inquirer/prompts": "7.8.2",
"@listr2/prompt-adapter-inquirer": "3.0.1",
"@modelcontextprotocol/sdk": "1.17.3",
"@schematics/angular": "20.3.3",
"@schematics/angular": "20.3.5",
"@yarnpkg/lockfile": "1.1.0",
"algoliasearch": "5.35.0",
"ini": "5.0.0",
@ -474,9 +473,9 @@
}
},
"node_modules/@angular/common": {
"version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.2.tgz",
"integrity": "sha512-5V9AzLhCA1dNhF+mvihmdHoZHbEhIb1jNYRA1/JMheR+G7NR8Mznu6RmWaKSWZ4AJeSJN8rizWN2wpVPWTKjSQ==",
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.3.tgz",
"integrity": "sha512-iArFCXvgYJCpxLZv8o6rV7Cxuqv1hbndoeUmQgL7ekXwVS6BA49VErXbTPM+pfhAJ+v1fc/DG3rzBwXk3eW2lw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@ -485,14 +484,14 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/core": "20.3.2",
"@angular/core": "20.3.3",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/compiler": {
"version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.2.tgz",
"integrity": "sha512-5fSzkPmRomZ9H43c82FJWLwdOi7MICMimP1y1oYJZcUh3jYRhXUrQvD0jifdRVkkgKNjaZYlMr0NkrYQFgFong==",
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.3.tgz",
"integrity": "sha512-7AUtF7PO8xo+jOgrhLRPXmt65M/KFuYIsVZGVLB1FTCUAPByFJEUYOSnUuHyvFQQqHesK4aYSP27slDpHH/PSA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@ -502,9 +501,9 @@
}
},
"node_modules/@angular/compiler-cli": {
"version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.2.tgz",
"integrity": "sha512-rLox2THiALVQqYGUaxZ6YD8qUoXIOGTw3s0tim9/U65GuXGRtYgG0ZQWYp3yjEBes0Ksx2/15eFPp1Ol4FdEKQ==",
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.3.tgz",
"integrity": "sha512-kSIE6hkTiZGiJLyisp5Q6NXOHiDNOItp7N2HVNPrK1bqzM8foN6H6BE1a+LYO3Lwy3PkwQFzx03BnzxkM4sWng==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -525,7 +524,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/compiler": "20.3.2",
"@angular/compiler": "20.3.3",
"typescript": ">=5.8 <6.0"
},
"peerDependenciesMeta": {
@ -535,9 +534,9 @@
}
},
"node_modules/@angular/core": {
"version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.2.tgz",
"integrity": "sha512-88uPgs5LjtnywnQaZE2ShBb1wa8IuD6jWs4nc4feo32QdBc55tjebTBFJSHbi3mUVAp0eS4wI6ITo0YIb01H4g==",
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.3.tgz",
"integrity": "sha512-AWBCixxw4N9VgKT1uwrRPr1dH3CpT/ffcCsXJQ8TjzsKYjVBkXVht5OjtxJOWOQ2KaHwsGFEmDMv9fc1BHDFhQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@ -546,7 +545,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/compiler": "20.3.2",
"@angular/compiler": "20.3.3",
"rxjs": "^6.5.3 || ^7.4.0",
"zone.js": "~0.15.0"
},
@ -560,9 +559,9 @@
}
},
"node_modules/@angular/forms": {
"version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.2.tgz",
"integrity": "sha512-ECIbtwc7n9fPbiZXZVaoZpSiOksgcNbZ27oUN9BT7EmoXRzBw6yDL2UX6Ig7pEKhQGyBkKB+TMerRwTDVkkCWg==",
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.3.tgz",
"integrity": "sha512-Rv3sO1vOAbw03IRK30CB45eucxZ1rI0Jyaa6QVmDlOzQ4bktkanbGxQtaxBdc9bKPBO1SVx27eTbStR7i3BNRg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@ -571,16 +570,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/common": "20.3.2",
"@angular/core": "20.3.2",
"@angular/platform-browser": "20.3.2",
"@angular/common": "20.3.3",
"@angular/core": "20.3.3",
"@angular/platform-browser": "20.3.3",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/platform-browser": {
"version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.2.tgz",
"integrity": "sha512-d9XcT2UuWZCc0UOtkCcPEnMcOFKNczahamT/Izg3H9jLS3IcT6l0ry23d/Xf0DRwhLYQdOZiG7l8HMZ1sWPMOg==",
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.3.tgz",
"integrity": "sha512-RUWpg49GnXdINjomRFrE/SRioxEehYqUzDVskDWddNeNhV9Z21zeC6Ao2i5q8UKq0y/oq2ShX7XFLprxqLoLnQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@ -589,9 +588,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/animations": "20.3.2",
"@angular/common": "20.3.2",
"@angular/core": "20.3.2"
"@angular/animations": "20.3.3",
"@angular/common": "20.3.3",
"@angular/core": "20.3.3"
},
"peerDependenciesMeta": {
"@angular/animations": {
@ -600,9 +599,9 @@
}
},
"node_modules/@angular/router": {
"version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.2.tgz",
"integrity": "sha512-+Crx6QpK00juoNU3A1vbVf4DQ7fduLe3DUdAob6a9Uj+IoWj2Ijd8zUWF8E0cfNNFotJ4Gost0lJORDvqKcC7A==",
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.3.tgz",
"integrity": "sha512-IrO5GY/vmaWwNdfR51xswNnBSxeEuvQAUqK3H0UNxhZlIE9gUS6pbbSidGGrQOZK+i0nd/rDz7j+RV7h2NK9aA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@ -611,9 +610,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/common": "20.3.2",
"@angular/core": "20.3.2",
"@angular/platform-browser": "20.3.2",
"@angular/common": "20.3.3",
"@angular/core": "20.3.3",
"@angular/platform-browser": "20.3.3",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
@ -920,40 +919,6 @@
"node": ">=0.1.90"
}
},
"node_modules/@emnapi/core": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz",
"integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/wasi-threads": "1.1.0",
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/runtime": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz",
"integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/wasi-threads": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
"integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz",
@ -1396,6 +1361,34 @@
"node": ">=18"
}
},
"node_modules/@floating-ui/core": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
"integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@floating-ui/utils": "^0.2.10"
}
},
"node_modules/@floating-ui/dom": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz",
"integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@floating-ui/core": "^1.7.3",
"@floating-ui/utils": "^0.2.10"
}
},
"node_modules/@floating-ui/utils": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
"integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@inquirer/ansi": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.0.tgz",
@ -2462,19 +2455,6 @@
"node": ">= 10"
}
},
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.5.tgz",
"integrity": "sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/core": "^1.5.0",
"@emnapi/runtime": "^1.5.0",
"@tybys/wasm-util": "^0.10.1"
}
},
"node_modules/@npmcli/agent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz",
@ -2771,16 +2751,6 @@
"node": "^18.17.0 || >=20.5.0"
}
},
"node_modules/@oxc-project/types": {
"version": "0.89.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.89.0.tgz",
"integrity": "sha512-yuo+ECPIW5Q9mSeNmCDC2im33bfKuwW18mwkaHMQh8KakHYDzj4ci/q7wxf2qS3dMlVVCIyrs3kFtH5LmnlYnw==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/Boshen"
}
},
"node_modules/@parcel/watcher": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
@ -3124,251 +3094,6 @@
"node": ">=14"
}
},
"node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.38.tgz",
"integrity": "sha512-AE3HFQrjWCKLFZD1Vpiy+qsqTRwwoil1oM5WsKPSmfQ5fif/A+ZtOZetF32erZdsR7qyvns6qHEteEsF6g6rsQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-darwin-arm64": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.38.tgz",
"integrity": "sha512-RaoWOKc0rrFsVmKOjQpebMY6c6/I7GR1FBc25v7L/R7NlM0166mUotwGEv7vxu7ruXH4SJcFeVrfADFUUXUmmQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-darwin-x64": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.38.tgz",
"integrity": "sha512-Ymojqc2U35iUc8NFU2XX1WQPfBRRHN6xHcrxAf9WS8BFFBn8pDrH5QPvH1tYs3lDkw6UGGbanr1RGzARqdUp1g==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-freebsd-x64": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.38.tgz",
"integrity": "sha512-0ermTQ//WzSI0nOL3z/LUWMNiE9xeM5cLGxjewPFEexqxV/0uM8/lNp9QageQ8jfc/VO1OURsGw34HYO5PaL8w==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.38.tgz",
"integrity": "sha512-GADxzVUTCTp6EWI52831A29Tt7PukFe94nhg/SUsfkI33oTiNQtPxyLIT/3oRegizGuPSZSlrdBurkjDwxyEUQ==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm64-gnu": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.38.tgz",
"integrity": "sha512-SKO7Exl5Yem/OSNoA5uLHzyrptUQ8Hg70kHDxuwEaH0+GUg+SQe9/7PWmc4hFKBMrJGdQtii8WZ0uIz9Dofg5Q==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm64-musl": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.38.tgz",
"integrity": "sha512-SOo6+WqhXPBaShLxLT0eCgH17d3Yu1lMAe4mFP0M9Bvr/kfMSOPQXuLxBcbBU9IFM9w3N6qP9xWOHO+oUJvi8Q==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-x64-gnu": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.38.tgz",
"integrity": "sha512-yvsQ3CyrodOX+lcoi+lejZGCOvJZa9xTsNB8OzpMDmHeZq3QzJfpYjXSAS6vie70fOkLVJb77UqYO193Cl8XBQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-x64-musl": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.38.tgz",
"integrity": "sha512-84qzKMwUwikfYeOuJ4Kxm/3z15rt0nFGGQArHYIQQNSTiQdxGHxOkqXtzPFqrVfBJUdxBAf+jYzR1pttFJuWyg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-openharmony-arm64": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.38.tgz",
"integrity": "sha512-QrNiWlce01DYH0rL8K3yUBu+lNzY+B0DyCbIc2Atan6/S6flxOL0ow5DLQvMamOI/oKhrJ4xG+9MkMb9dDHbLQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-wasm32-wasi": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.38.tgz",
"integrity": "sha512-fnLtHyjwEsG4/aNV3Uv3Qd1ZbdH+CopwJNoV0RgBqrcQB8V6/Qdikd5JKvnO23kb3QvIpP+dAMGZMv1c2PJMzw==",
"cpu": [
"wasm32"
],
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@napi-rs/wasm-runtime": "^1.0.5"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@rolldown/binding-win32-arm64-msvc": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.38.tgz",
"integrity": "sha512-19cTfnGedem+RY+znA9J6ARBOCEFD4YSjnx0p5jiTm9tR6pHafRfFIfKlTXhun+NL0WWM/M0eb2IfPPYUa8+wg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-win32-ia32-msvc": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.38.tgz",
"integrity": "sha512-HcICm4YzFJZV+fI0O0bFLVVlsWvRNo/AB9EfUXvNYbtAxakCnQZ15oq22deFdz6sfi9Y4/SagH2kPU723dhCFA==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-win32-x64-msvc": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.38.tgz",
"integrity": "sha512-4Qx6cgEPXLb0XsCyLoQcUgYBpfL0sjugftob+zhUH0EOk/NVCAIT+h0NJhY+jn7pFpeKxhNMqhvTNx3AesxIAQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz",
"integrity": "sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==",
"dev": true,
"license": "MIT"
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz",
@ -3677,15 +3402,23 @@
"win32"
]
},
"node_modules/@scarf/scarf": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz",
"integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==",
"dev": true,
"hasInstallScript": true,
"license": "Apache-2.0"
},
"node_modules/@schematics/angular": {
"version": "20.3.3",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.3.tgz",
"integrity": "sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==",
"version": "20.3.5",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.5.tgz",
"integrity": "sha512-mrVWO64psqah8E8HgpF30NMizVZyX6aH3k6hqf2tDgU3+giKX7xvTG9UQCaXA4MLBsQbpcWAmwPLipwLnPm8wA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@angular-devkit/core": "20.3.3",
"@angular-devkit/schematics": "20.3.3",
"@angular-devkit/core": "20.3.5",
"@angular-devkit/schematics": "20.3.5",
"jsonc-parser": "3.3.1"
},
"engines": {
@ -3831,17 +3564,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@tybys/wasm-util": {
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
"integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@types/cors": {
"version": "2.8.19",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
@ -3867,13 +3589,13 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "24.6.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.6.1.tgz",
"integrity": "sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==",
"version": "24.7.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.0.tgz",
"integrity": "sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~7.13.0"
"undici-types": "~7.14.0"
}
},
"node_modules/@vitejs/plugin-basic-ssl": {
@ -4033,16 +3755,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/ansis": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz",
"integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==",
"dev": true,
"license": "ISC",
"engines": {
"node": ">=14"
}
},
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
@ -4088,9 +3800,9 @@
}
},
"node_modules/baseline-browser-mapping": {
"version": "2.8.10",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.10.tgz",
"integrity": "sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==",
"version": "2.8.13",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.13.tgz",
"integrity": "sha512-7s16KR8io8nIBWQyCYhmFhd+ebIzb9VKTzki+wOJXHTxTnV6+mFGH3+Jwn1zoKaY9/H9T/0BcKCZnzXljPnpSQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@ -4196,9 +3908,9 @@
}
},
"node_modules/browserslist": {
"version": "4.26.2",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz",
"integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==",
"version": "4.26.3",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz",
"integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==",
"dev": true,
"funding": [
{
@ -4216,9 +3928,9 @@
],
"license": "MIT",
"dependencies": {
"baseline-browser-mapping": "^2.8.3",
"caniuse-lite": "^1.0.30001741",
"electron-to-chromium": "^1.5.218",
"baseline-browser-mapping": "^2.8.9",
"caniuse-lite": "^1.0.30001746",
"electron-to-chromium": "^1.5.227",
"node-releases": "^2.0.21",
"update-browserslist-db": "^1.1.3"
},
@ -4236,6 +3948,13 @@
"dev": true,
"license": "MIT"
},
"node_modules/bulma": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/bulma/-/bulma-1.0.4.tgz",
"integrity": "sha512-Ffb6YGXDiZYX3cqvSbHWqQ8+LkX6tVoTcZuVB3lm93sbAVXlO0D6QlOTMnV6g18gILpAXqkG2z9hf9z4hCjz2g==",
"dev": true,
"license": "MIT"
},
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@ -4393,9 +4112,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001746",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001746.tgz",
"integrity": "sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==",
"version": "1.0.30001749",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001749.tgz",
"integrity": "sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==",
"dev": true,
"funding": [
{
@ -4811,6 +4530,16 @@
}
}
},
"node_modules/deepmerge-ts": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz",
"integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@ -4833,9 +4562,9 @@
}
},
"node_modules/detect-libc": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz",
"integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
@ -4952,9 +4681,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
"version": "1.5.228",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.228.tgz",
"integrity": "sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==",
"version": "1.5.233",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.233.tgz",
"integrity": "sha512-iUdTQSf7EFXsDdQsp8MwJz5SVk4APEFqXU/S47OtQ0YLqacSwPXdZ5vRlMX3neb07Cy2vgioNuRnWUXFwuslkg==",
"dev": true,
"license": "ISC"
},
@ -5752,9 +5481,9 @@
}
},
"node_modules/hosted-git-info": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.0.tgz",
"integrity": "sha512-gEf705MZLrDPkbbhi8PnoO4ZwYgKoNL+ISZ3AjZMht2r3N5tuTwncyDi6Fv2/qDnMmZxgs0yI8WDOyR8q3G+SQ==",
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.1.tgz",
"integrity": "sha512-FLN0k/CSIHgTZr46YbK5od55jQEzWNGCNl8AufispkkTwcIpnxG1NMH52+O7lu0z3mI9bjPfGzcO7MhDesQ1kw==",
"dev": true,
"license": "ISC",
"dependencies": {
@ -7556,9 +7285,9 @@
}
},
"node_modules/node-releases": {
"version": "2.0.21",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz",
"integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==",
"version": "2.0.23",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz",
"integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==",
"dev": true,
"license": "MIT"
},
@ -8293,6 +8022,13 @@
"dev": true,
"license": "Apache-2.0"
},
"node_modules/remixicon": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/remixicon/-/remixicon-4.6.0.tgz",
"integrity": "sha512-bKM5odjqE1yzVxEZGJE7F79WHhNrJFIKHXR+GG+P1IWXn8AnJZhl8SbIRDJsNAvIqx4VPkNwjuHfc42tutMDpQ==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@ -8392,40 +8128,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/rolldown": {
"version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.38.tgz",
"integrity": "sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@oxc-project/types": "=0.89.0",
"@rolldown/pluginutils": "1.0.0-beta.38",
"ansis": "^4.0.0"
},
"bin": {
"rolldown": "bin/cli.mjs"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
"@rolldown/binding-android-arm64": "1.0.0-beta.38",
"@rolldown/binding-darwin-arm64": "1.0.0-beta.38",
"@rolldown/binding-darwin-x64": "1.0.0-beta.38",
"@rolldown/binding-freebsd-x64": "1.0.0-beta.38",
"@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.38",
"@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.38",
"@rolldown/binding-linux-arm64-musl": "1.0.0-beta.38",
"@rolldown/binding-linux-x64-gnu": "1.0.0-beta.38",
"@rolldown/binding-linux-x64-musl": "1.0.0-beta.38",
"@rolldown/binding-openharmony-arm64": "1.0.0-beta.38",
"@rolldown/binding-wasm32-wasi": "1.0.0-beta.38",
"@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.38",
"@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.38",
"@rolldown/binding-win32-x64-msvc": "1.0.0-beta.38"
}
},
"node_modules/rollup": {
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz",
@ -8495,7 +8197,7 @@
}
},
"node_modules/sae-lib": {
"resolved": "../my-workspace/projects/sae-lib",
"resolved": "../my-workspace/dist/sae-lib",
"link": true
},
"node_modules/safe-buffer": {
@ -8647,6 +8349,21 @@
"node": ">=8"
}
},
"node_modules/shepherd.js": {
"version": "14.5.1",
"resolved": "https://registry.npmjs.org/shepherd.js/-/shepherd.js-14.5.1.tgz",
"integrity": "sha512-VuvPvLG1QjNOLP7AIm2HGyfmxEIz8QdskvWOHwUcxLDibYWjLRBmCWd8LSL5FlwhBW7D/GU+3gNVC/ASxAWdxg==",
"dev": true,
"license": "AGPL-3.0",
"dependencies": {
"@floating-ui/dom": "^1.7.0",
"@scarf/scarf": "^1.4.0",
"deepmerge-ts": "^7.1.1"
},
"engines": {
"node": "18.* || >= 20"
}
},
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@ -9454,9 +9171,9 @@
}
},
"node_modules/undici-types": {
"version": "7.13.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.13.0.tgz",
"integrity": "sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==",
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz",
"integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==",
"dev": true,
"license": "MIT"
},

View file

@ -6,8 +6,6 @@
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"link-sae-lib": "bash ./scripts/link-sae-lib.sh",
"postinstall": "npm run link-sae-lib",
"test": "ng test"
},
"prettier": {
@ -30,20 +28,23 @@
"@angular/router": "^20.1.0",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.15.0"
"zone.js": "~0.15.0",
"sae-lib": "file:../my-workspace/dist/sae-lib"
},
"devDependencies": {
"@angular/build": "^20.1.1",
"@angular/cli": "^20.1.1",
"@angular/compiler-cli": "^20.1.0",
"@types/jasmine": "~5.1.0",
"sae-lib": "file:../my-workspace/projects/sae-lib",
"bulma": "^1.0.4",
"jasmine-core": "~5.8.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"remixicon": "^4.6.0",
"shepherd.js": "^14.5.1",
"typescript": "~5.8.2"
}
}

View file

@ -1,12 +1,16 @@
import {Routes} from '@angular/router';
import {Home} from './pages/home/home';
import {Results} from './pages/results/results';
import {TestingApi} from './pages/testing-api/testing-api';
export const routes: Routes = [
{
path: 'home',
component: Home
}, {
path: 'api',
component: TestingApi
},
{
path: 'answer',

View file

@ -1,19 +1,23 @@
import {CommonModule} from '@angular/common';
import {Component} from '@angular/core';
import {MainButton} from 'sae-lib/buttons/main-button/main-button';
import {FeedbackButton} from 'sae-lib/buttons/feedback-button/feedback-button';
import {WipBlock} from 'sae-lib/layouts/wip-block/wip-block';
import {FormsModule} from '@angular/forms';
@Component({
selector: 'app-home',
imports: [
MainButton,
FeedbackButton
WipBlock,
CommonModule,
FormsModule
],
templateUrl: './home.html',
styleUrl: './home.scss'
})
export class Home {
fromText: string='';
fromText: string = '';
disableSearch: boolean = true;
keywords: string='';
keywords: string = '';
}

View file

@ -1,8 +1,9 @@
import { Component } from '@angular/core';
import {Component} from '@angular/core';
import {WipBlock} from 'sae-lib/layouts/wip-block/wip-block';
@Component({
selector: 'app-results',
imports: [],
imports: [WipBlock],
templateUrl: './results.html',
styleUrl: './results.scss'
})

View file

@ -0,0 +1,155 @@
<div id="testingApiLand">
<h1>Test d'api CSC</h1>
<div class="columns">
<div class="column">
<!-- /app/summarize_questions
/app/get_keyword_from_email
/app/search_engine
/app/query_simple
/app/dica_detect
/app/esm_detect
/app/hardware_detect
/app/esm_content_analyse
/app/ai_filter -->
backend:
<input [(ngModel)]="backend" type="text">
<sae-m-button [kind]="'primary'" class="button" label='summarize_questions' (click)="summarizeQuestions()">
</sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='get_keyword_from_email' (click)="getKeywordFromEmail()"></sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='search_engine' (click)="searchEngine()">
</sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='query_simple' (click)="querySimple()">
</sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='dica_detect' (click)="dicaDetect()">
</sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='esm_detect' (click)="esmDetect()">
</sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='hardware_detect' (click)="hardwareDetect()">
</sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='esm_content_analyse' (click)="esmContentAnalyse()">
</sae-m-button>
<sae-m-button [kind]="'primary'" class="button" label='ai_filter' (click)="aiFilter()">
</sae-m-button>
</div>
</div>
<hr >
<h1>Test d'api airwatch</h1>
<div class="columns">
<div class="column">
Tester les actions de l'api
<section>
<h2>
Login
</h2>
<sae-m-button
(click)="login()"
[kind]="'primary'" class="button" label='appel de login'>
</sae-m-button>
</section>
<section>
<h2>
Post /api/v1/messages
</h2>
entrez votre message:
<input [(ngModel)]="input" type="text">
<sae-m-button
(click)="sendMessage()"
[kind]="'primary'"
[label]="'Envoyer un message'" class="button" label='envoi de message'>
</sae-m-button>
<sae-bot-talks [message]="message">
</sae-bot-talks>
</section>
</div>
<div class="column">
<h2>Réponse</h2>
<pre>
{{ response }}
</pre>
<hr>
<section>
<h2>
Feedback
</h2>
conversationID:
<input [(ngModel)]="conversationID" type="text">
<sae-m-button
(click)="sendFeedback()"
[kind]="'secondary'" class="button"
label='envoi de feedback'>
</sae-m-button>
</section>
<section>
<h2>Envoi de fichier</h2>
<!-- -->
<sae-m-button
(click)="sendFile()"
class="button" kind="secondary"
label='envoi de fichier'>
</sae-m-button>
</section>
<section>
<h2>Suppression</h2>
Delete /api/v1/conversations/$conversationID
<sae-m-button
(click)="deleteConversation()"
class="button" kind="secondary"
label='suppression de conversation'>
</sae-m-button>
</section>
<section>
<h2>Get last answer </h2>
Get /api/v1/conversations/$conversationID/last-answer
<sae-m-button
(click)="getLastAnswer()"
class="button" kind="secondary"
label='get last answer'>
</sae-m-button>
</section>
<section>
<h2>Get history</h2>
<sae-m-button
(click)="getHistory()"
class="button" kind="secondary"
label='get history'>
</sae-m-button>
</section>
<section>
<h2>Get user conversations</h2>
<sae-m-button
(click)="getUserConversations()"
class="button" kind="secondary"
label='get user conversations'>
</sae-m-button>
</section>
</div>
</div>
</div>

View file

@ -0,0 +1,32 @@
:host {
#testingApiLand {
padding: 4rem;
background: #f3fbff;
min-height: 100vh;
}
h2 {
margin-bottom: 2rem;
}
input {
padding: 1.5rem;
border: solid 1px grey;
border-radius: 0.5rem;
display: block;
margin: 0.5rem;
}
pre {
background: #cad5dd;
}
section {
border: 1px solid #ccc;
padding: 1rem;
}
sae-m-button {
margin-top: 1rem;
margin-right: 1rem;
}
}

View file

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { TestingApi } from './testing-api';
describe('TestingApi', () => {
let component: TestingApi;
let fixture: ComponentFixture<TestingApi>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [TestingApi]
})
.compileComponents();
fixture = TestBed.createComponent(TestingApi);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,175 @@
import {Component} from '@angular/core';
import {MainButton} from 'sae-lib/buttons/main-button/main-button';
import {FormsModule} from '@angular/forms';
import {BotTalks} from 'sae-lib/chatbot/bot-talks/bot-talks';
let defaultHeaders = {
'Access-Control-Allow-Headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',
'Access-Control-Allow-Methods': 'OPTIONS,POST',
'Access-Control-Allow-Origin': '*'
};
@Component({
selector: 'app-testing-api',
imports: [
MainButton,
FormsModule,
BotTalks
],
templateUrl: './testing-api.html',
styleUrl: './testing-api.scss'
})
export class TestingApi {
protected response: string = "(pas de réponse pour le moment)";
protected backend: string = "localhost";
protected input: string = "bonjour le backend";
protected message: string = "salut, ici le backend";
protected conversationID: string = "1234";
constructor() {
}
login() {
fetch(`http://${this.backend}/login`, {})
.then(response => response.json())
.then(data => {
console.log(data);
this.response = JSON.stringify(data);
}
)
.catch(error => console.error('Error:', error));
}
sendMessage() {
const dataBody = JSON.stringify({
question: "What are the main causes of engine failures in Boeing 737?",
conversationId: "uuid-optional",
databases: [
"Incident Reports", "Academic Papers",
"General Reports", "Patent Files",
"Press Articles", "Safety Directives"
],
search_engines: [
"Google Search", "Google Patents", "Google Scholar"
],
qualification_tag: "auto"
// / "specific_question" / "structured_list" / "conv_continuation"
})
fetch(`http://${this.backend}/api/v1/messages`, {
method: "POST",
mode: "cors",
body: dataBody,
headers: defaultHeaders
})
.then(response => response.json())
.then(data => {
console.log(data);
this.response = JSON.stringify(data);
}
)
.catch(error => console.error('Error:', error));
}
sendFeedback() {
const dataBody = JSON.stringify({
feedback: "This response was very helpful and accurate"
})
fetch(`http://${this.backend}/api/v1/${this.conversationID}/feedback`, {
method: "POST",
mode: "cors",
body: dataBody
})
.then(response => response.json())
.then(data => {
console.log(data);
this.response = JSON.stringify(data);
}
)
.catch(error => console.error('Error:', error));
}
sendFile() {
console.log('sendFile TODO')
}
deleteConversation() {
console.log('sendFile TODO')
}
getLastAnswer() {
console.log('getLastAnswer TODO')
}
getHistory() {
console.log('getHistory TODO')
}
getUserConversations() {
console.log('getUserConversations TODO')
}
summarizeQuestions() {
console.log('summarizeQuestions TODO')
fetch(`http://${this.backend}/app/summarize_questions`, {
method: "POST",
mode: "cors",
body: JSON.stringify({
question: "What are the main causes of engine failures in Boeing 737?"
}),
headers: defaultHeaders
})
.then(response => response.json())
.then(data => {
console.log(data);
this.response = JSON.stringify(data);
}
)
.catch(error => console.error('Error:', error));
}
getKeywordFromEmail() {
console.log('getKeywordFromEmail TODO')
fetch(`http://${this.backend}/app/get_keyword_from_email`, {
method: "POST",
mode: "cors",
body: JSON.stringify({
email: "test@test.com"
}),
headers: defaultHeaders
})
.then(response => response.json())
.then(data => {
console.log(data);
this.response = JSON.stringify(data);
}
)
.catch(error => console.error('Error:', error));
}
esmDetect() {
console.log('esmDetect TODO')
}
hardwareDetect() {
console.log('hardwareDetect TODO')
}
esmContentAnalyse() {
console.log('esmContentAnalyse TODO')
}
aiFilter() {
console.log('aiFilter TODO')
}
searchEngine() {
console.log('searchEngine TODO')
}
querySimple() {
console.log('querySimple TODO')
}
dicaDetect() {
console.log('dicaDetect TODO')
}
}