From 0f8bd3df6a483a9e3e08eb8d019760d899748264 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 23 Feb 2025 13:56:40 +0100 Subject: [PATCH 01/80] chore: Basic logging met loki --- backend/src/app.ts | 29 ++++++++++++++++++++- config/loki-config.yml | 30 ++++++++++++++++++++++ docker-compose.yml | 36 ++++++++++++++++---------- package-lock.json | 58 +++++++++++++++++++++++++++++++++++------- package.json | 3 +++ 5 files changed, 133 insertions(+), 23 deletions(-) create mode 100644 config/loki-config.yml diff --git a/backend/src/app.ts b/backend/src/app.ts index 65dd8a7a..756cf409 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -19,4 +19,31 @@ async function startServer() { }); } -startServer(); + +import { LokiClient, LogError, LokiLabels, LogInfo } from 'loki-logger-ts'; + +const HostData = { + url: "http://localhost:3100/loki/api/v1/push", +}; + +const labels: LokiLabels = { + source: "Test", + job: "TestJob", + host: "localhost", +}; + +async function main() { + const client = new LokiClient(HostData.url); + + const msg = 'Hello World'; + await LogError(client, msg, labels); + await LogInfo(client, 'Dit is een goed bericht', labels); + + console.log(client.showMetrics()); + + console.log(client.getMetrics()); +} + +main(); + +// startServer(); diff --git a/config/loki-config.yml b/config/loki-config.yml new file mode 100644 index 00000000..bedf3c80 --- /dev/null +++ b/config/loki-config.yml @@ -0,0 +1,30 @@ + +# This is a complete configuration to deploy Loki backed by the filesystem. +# The index will be shipped to the storage via tsdb-shipper. + +auth_enabled: false + +server: + http_listen_port: 3100 + +common: + ring: + instance_addr: 127.0.0.1 + kvstore: + store: inmemory + replication_factor: 1 + path_prefix: /tmp/loki + +schema_config: + configs: + - from: 2020-05-15 + store: tsdb + object_store: filesystem + schema: v13 + index: + prefix: index_ + period: 24h + +storage_config: + filesystem: + directory: /tmp/loki/chunks diff --git a/docker-compose.yml b/docker-compose.yml index e8efb530..b29b1470 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,16 +1,26 @@ services: - db: - image: postgres:latest - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: postgres - ports: - - "5432:5432" - network_mode: "host" - volumes: - - postgres_data:/var/lib/postgresql/data - - ./backend/config/db/init.sql:/docker-entrypoint-initdb.d/init.sql + db: + image: postgres:latest + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - '5432:5432' + network_mode: 'host' + volumes: + - dwengo_postgres_data:/var/lib/postgresql/data + - ./backend/config/db/init.sql:/docker-entrypoint-initdb.d/init.sql + + logging: + image: grafana/loki:latest + ports: + - '3100:3100' + - '9095:9095' + network_mode: 'host' + volumes: + - ./config/loki-config.yml:/etc/loki/config.yaml + command: -config.file=/etc/loki/config.yaml volumes: - postgres_data: + dwengo_postgres_data: diff --git a/package-lock.json b/package-lock.json index a00e4f54..394ee797 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,10 +7,14 @@ "": { "name": "dwengo-1-monorepo", "version": "0.0.1", + "license": "MIT", "workspaces": [ "backend", "frontend" ], + "dependencies": { + "loki-logger-ts": "^1.0.2" + }, "devDependencies": { "@eslint/compat": "^1.2.6", "@eslint/js": "^9.20.0", @@ -26,7 +30,6 @@ "backend": { "name": "dwengo-1-backend", "version": "0.0.1", - "license": "MIT", "dependencies": { "@mikro-orm/core": "^6.4.6", "@mikro-orm/postgresql": "^6.4.6", @@ -3142,9 +3145,19 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, "license": "MIT" }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -3510,7 +3523,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -3778,7 +3790,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -3993,7 +4004,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -4735,6 +4745,26 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -4756,7 +4786,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -4772,7 +4801,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -4782,7 +4810,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -5067,7 +5094,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -5786,6 +5812,14 @@ "dev": true, "license": "MIT" }, + "node_modules/loki-logger-ts": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/loki-logger-ts/-/loki-logger-ts-1.0.2.tgz", + "integrity": "sha512-SV/B5o+9jaxiThcU5N3LUxCNTx20IgR9xjCjx/ED/pVc/097mqKSRpmvSjvx9ezFcjJlUF7GBkrBBpR6veNp7Q==", + "dependencies": { + "axios": "^1.4.0" + } + }, "node_modules/loupe": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", @@ -6763,6 +6797,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", diff --git a/package.json b/package.json index 59a2e01d..ff3ceb88 100644 --- a/package.json +++ b/package.json @@ -34,5 +34,8 @@ "eslint-config-prettier": "^10.0.1", "jiti": "^2.4.2", "typescript-eslint": "^8.24.1" + }, + "dependencies": { + "loki-logger-ts": "^1.0.2" } } From 7fd6305fd9f039ce956872a5cf2d84dd9a7562f8 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 23 Feb 2025 17:29:11 +0100 Subject: [PATCH 02/80] chore(backend): Loki configureren De meeste console statements vervangen door Loki --- backend/package.json | 6 +- backend/src/app.ts | 41 +- backend/src/logging/initalize.ts | 47 ++ backend/src/logging/responseTimeLogger.ts | 23 + backend/src/orm.ts | 7 + config/{loki-config.yml => loki/config.yml} | 2 +- docker-compose.yml | 18 +- package-lock.json | 663 +++++++++++++++++++- 8 files changed, 767 insertions(+), 40 deletions(-) create mode 100644 backend/src/logging/initalize.ts create mode 100644 backend/src/logging/responseTimeLogger.ts rename config/{loki-config.yml => loki/config.yml} (95%) diff --git a/backend/package.json b/backend/package.json index 85a4d255..84a4e23e 100644 --- a/backend/package.json +++ b/backend/package.json @@ -18,12 +18,16 @@ "@mikro-orm/postgresql": "^6.4.6", "@mikro-orm/reflection": "^6.4.6", "dotenv": "^16.4.7", - "express": "^5.0.1" + "express": "^5.0.1", + "response-time": "^2.3.3", + "winston": "^3.17.0", + "winston-loki": "^6.1.3" }, "devDependencies": { "@mikro-orm/cli": "^6.4.6", "@types/express": "^5.0.0", "@types/node": "^22.13.4", + "@types/response-time": "^2.3.8", "globals": "^15.15.0", "ts-node": "^10.9.2", "tsx": "^4.19.3", diff --git a/backend/src/app.ts b/backend/src/app.ts index 756cf409..29807f6b 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -1,11 +1,21 @@ import express, { Express, Response } from 'express'; import initORM from './orm.js'; +import { getLogger } from './logging/initalize.js'; +import { responseTimeLogger } from './logging/responseTimeLogger.js'; +import responseTime from 'response-time'; +import { Logger } from 'winston'; + +const logger: Logger = getLogger(); const app: Express = express(); const port: string | number = process.env.PORT || 3000; +app.use(express.json()); +app.use(responseTime(responseTimeLogger)); + // TODO Replace with Express routes app.get('/', (_, res: Response) => { + logger.debug('GET /'); res.json({ message: 'Hello Dwengo!', }); @@ -15,35 +25,8 @@ async function startServer() { await initORM(); app.listen(port, () => { - console.log(`Server is running at http://localhost:${port}`); + logger.info(`Server is running at http://localhost:${port}`); }); } - -import { LokiClient, LogError, LokiLabels, LogInfo } from 'loki-logger-ts'; - -const HostData = { - url: "http://localhost:3100/loki/api/v1/push", -}; - -const labels: LokiLabels = { - source: "Test", - job: "TestJob", - host: "localhost", -}; - -async function main() { - const client = new LokiClient(HostData.url); - - const msg = 'Hello World'; - await LogError(client, msg, labels); - await LogInfo(client, 'Dit is een goed bericht', labels); - - console.log(client.showMetrics()); - - console.log(client.getMetrics()); -} - -main(); - -// startServer(); +startServer(); diff --git a/backend/src/logging/initalize.ts b/backend/src/logging/initalize.ts new file mode 100644 index 00000000..6a4d52c5 --- /dev/null +++ b/backend/src/logging/initalize.ts @@ -0,0 +1,47 @@ +import { createLogger, format, Logger, transports } from 'winston'; +import LokiTransport from 'winston-loki'; +import { LokiLabels } from 'loki-logger-ts'; + +const LoggingLevel = 'development' === process.env.NODE_ENV ? 'debug' : 'info'; +const Host = 'http://localhost:3102'; +const Labels: LokiLabels = { + source: 'Dwengo-Backend', + job: 'Dwengo-Backend', + host: 'localhost', +}; + +let logger: Logger; + +function initializeLogger() { + if (logger !== undefined) { + return logger; + } + + const lokiTransport: LokiTransport = new LokiTransport({ + host: Host, + labels: Labels, + level: LoggingLevel, + json: true, + format: format.combine(format.timestamp(), format.json()), + onConnectionError: (err) => { + console.error(`Connection error: ${err}`); + }, + }); + + const consoleTransport = new transports.Console({ + level: LoggingLevel, + format: format.combine(format.simple(), format.colorize()), + }); + + logger = createLogger({ + transports: [lokiTransport, consoleTransport], + }); + + logger.debug('Logger initialized'); + return logger; +} + +export function getLogger(): Logger { + logger ||= initializeLogger(); + return logger; +} diff --git a/backend/src/logging/responseTimeLogger.ts b/backend/src/logging/responseTimeLogger.ts new file mode 100644 index 00000000..5baf63f4 --- /dev/null +++ b/backend/src/logging/responseTimeLogger.ts @@ -0,0 +1,23 @@ +import { getLogger } from './initalize.js'; +import { Logger } from 'winston'; +import { Request, Response } from 'express'; + +export function responseTimeLogger(req: Request, res: Response, time: number) { + const logger: Logger = getLogger(); + + const method = req.method; + const url = req.url; + const status = res.statusCode; + + logger.info({ + message: 'Request completed', + method: method, + url: url, + status: status, + responseTime: Number(time), + labels: { + origin: 'api', + type: 'responseTime', + }, + }); +} diff --git a/backend/src/orm.ts b/backend/src/orm.ts index d9de328f..f4dbf0e9 100644 --- a/backend/src/orm.ts +++ b/backend/src/orm.ts @@ -1,6 +1,13 @@ import { MikroORM } from '@mikro-orm/core'; import config from './mikro-orm.config.js'; +import { getLogger } from './logging/initalize.js'; +import { Logger } from 'winston'; export default async function initORM() { + const logger: Logger = getLogger(); + + logger.info('Initializing ORM'); + logger.debug('MikroORM config is', config); + await MikroORM.init(config); } diff --git a/config/loki-config.yml b/config/loki/config.yml similarity index 95% rename from config/loki-config.yml rename to config/loki/config.yml index bedf3c80..f5ba3799 100644 --- a/config/loki-config.yml +++ b/config/loki/config.yml @@ -5,7 +5,7 @@ auth_enabled: false server: - http_listen_port: 3100 + http_listen_port: 3102 common: ring: diff --git a/docker-compose.yml b/docker-compose.yml index b29b1470..1f8a4c98 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,6 @@ services: POSTGRES_DB: postgres ports: - '5432:5432' - network_mode: 'host' volumes: - dwengo_postgres_data:/var/lib/postgresql/data - ./backend/config/db/init.sql:/docker-entrypoint-initdb.d/init.sql @@ -15,12 +14,23 @@ services: logging: image: grafana/loki:latest ports: - - '3100:3100' + - '3102:3102' - '9095:9095' - network_mode: 'host' volumes: - - ./config/loki-config.yml:/etc/loki/config.yaml + - ./config/loki/config.yml:/etc/loki/config.yaml + - dwengo_loki_data:/loki command: -config.file=/etc/loki/config.yaml + restart: unless-stopped + + dashboards: + image: grafana/grafana:latest + ports: + - '3000:3000' + volumes: + - dwengo_grafana_data:/var/lib/grafana + restart: unless-stopped volumes: dwengo_postgres_data: + dwengo_loki_data: + dwengo_grafana_data: diff --git a/package-lock.json b/package-lock.json index 394ee797..f9d4faf4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,12 +35,16 @@ "@mikro-orm/postgresql": "^6.4.6", "@mikro-orm/reflection": "^6.4.6", "dotenv": "^16.4.7", - "express": "^5.0.1" + "express": "^5.0.1", + "response-time": "^2.3.3", + "winston": "^3.17.0", + "winston-loki": "^6.1.3" }, "devDependencies": { "@mikro-orm/cli": "^6.4.6", "@types/express": "^5.0.0", "@types/node": "^22.13.4", + "@types/response-time": "^2.3.8", "globals": "^15.15.0", "ts-node": "^10.9.2", "tsx": "^4.19.3", @@ -647,6 +651,15 @@ "node": ">=6.9.0" } }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -775,6 +788,17 @@ "node": ">=18" } }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", @@ -1674,6 +1698,214 @@ "@mikro-orm/core": "^6.0.0" } }, + "node_modules/@napi-rs/snappy-android-arm-eabi": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-android-arm-eabi/-/snappy-android-arm-eabi-7.2.2.tgz", + "integrity": "sha512-H7DuVkPCK5BlAr1NfSU8bDEN7gYs+R78pSHhDng83QxRnCLmVIZk33ymmIwurmoA1HrdTxbkbuNl+lMvNqnytw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-android-arm64": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-android-arm64/-/snappy-android-arm64-7.2.2.tgz", + "integrity": "sha512-2R/A3qok+nGtpVK8oUMcrIi5OMDckGYNoBLFyli3zp8w6IArPRfg1yOfVUcHvpUDTo9T7LOS1fXgMOoC796eQw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-darwin-arm64": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-darwin-arm64/-/snappy-darwin-arm64-7.2.2.tgz", + "integrity": "sha512-USgArHbfrmdbuq33bD5ssbkPIoT7YCXCRLmZpDS6dMDrx+iM7eD2BecNbOOo7/v1eu6TRmQ0xOzeQ6I/9FIi5g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-darwin-x64": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-darwin-x64/-/snappy-darwin-x64-7.2.2.tgz", + "integrity": "sha512-0APDu8iO5iT0IJKblk2lH0VpWSl9zOZndZKnBYIc+ei1npw2L5QvuErFOTeTdHBtzvUHASB+9bvgaWnQo4PvTQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-freebsd-x64": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-freebsd-x64/-/snappy-freebsd-x64-7.2.2.tgz", + "integrity": "sha512-mRTCJsuzy0o/B0Hnp9CwNB5V6cOJ4wedDTWEthsdKHSsQlO7WU9W1yP7H3Qv3Ccp/ZfMyrmG98Ad7u7lG58WXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-linux-arm-gnueabihf": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-arm-gnueabihf/-/snappy-linux-arm-gnueabihf-7.2.2.tgz", + "integrity": "sha512-v1uzm8+6uYjasBPcFkv90VLZ+WhLzr/tnfkZ/iD9mHYiULqkqpRuC8zvc3FZaJy5wLQE9zTDkTJN1IvUcZ+Vcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-linux-arm64-gnu": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-arm64-gnu/-/snappy-linux-arm64-gnu-7.2.2.tgz", + "integrity": "sha512-LrEMa5pBScs4GXWOn6ZYXfQ72IzoolZw5txqUHVGs8eK4g1HR9HTHhb2oY5ySNaKakG5sOgMsb1rwaEnjhChmQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-linux-arm64-musl": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-arm64-musl/-/snappy-linux-arm64-musl-7.2.2.tgz", + "integrity": "sha512-3orWZo9hUpGQcB+3aTLW7UFDqNCQfbr0+MvV67x8nMNYj5eAeUtMmUE/HxLznHO4eZ1qSqiTwLbVx05/Socdlw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-linux-x64-gnu": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-x64-gnu/-/snappy-linux-x64-gnu-7.2.2.tgz", + "integrity": "sha512-jZt8Jit/HHDcavt80zxEkDpH+R1Ic0ssiVCoueASzMXa7vwPJeF4ZxZyqUw4qeSy7n8UUExomu8G8ZbP6VKhgw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-linux-x64-musl": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-linux-x64-musl/-/snappy-linux-x64-musl-7.2.2.tgz", + "integrity": "sha512-Dh96IXgcZrV39a+Tej/owcd9vr5ihiZ3KRix11rr1v0MWtVb61+H1GXXlz6+Zcx9y8jM1NmOuiIuJwkV4vZ4WA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-win32-arm64-msvc": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-win32-arm64-msvc/-/snappy-win32-arm64-msvc-7.2.2.tgz", + "integrity": "sha512-9No0b3xGbHSWv2wtLEn3MO76Yopn1U2TdemZpCaEgOGccz1V+a/1d16Piz3ofSmnA13HGFz3h9NwZH9EOaIgYA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-win32-ia32-msvc": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-win32-ia32-msvc/-/snappy-win32-ia32-msvc-7.2.2.tgz", + "integrity": "sha512-QiGe+0G86J74Qz1JcHtBwM3OYdTni1hX1PFyLRo3HhQUSpmi13Bzc1En7APn+6Pvo7gkrcy81dObGLDSxFAkQQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/snappy-win32-x64-msvc": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/snappy-win32-x64-msvc/-/snappy-win32-x64-msvc-7.2.2.tgz", + "integrity": "sha512-a43cyx1nK0daw6BZxVcvDEXxKMFLSBSDTAhsFD0VqSKcC7MGUBMaqyoWUcMiI7LBSz4bxUmxDWKfCYzpEmeb3w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1763,6 +1995,70 @@ "dev": true, "license": "MIT" }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, "node_modules/@rollup/pluginutils": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", @@ -2229,7 +2525,6 @@ "version": "22.13.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", - "dev": true, "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -2249,6 +2544,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/response-time": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/response-time/-/response-time-2.3.8.tgz", + "integrity": "sha512-7qGaNYvdxc0zRab8oHpYx7AW17qj+G0xuag1eCrw3M2VWPJQ/HyKaaghWygiaOUl0y9x7QGQwppDpqLJ5V9pzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/node": "*" + } + }, "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", @@ -2279,6 +2585,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.24.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", @@ -3141,6 +3453,21 @@ "node": ">=12" } }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3270,6 +3597,18 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -3493,6 +3832,16 @@ "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", "license": "MIT" }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3510,7 +3859,31 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "license": "MIT" }, "node_modules/colorette": { @@ -3519,6 +3892,16 @@ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "license": "MIT" }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -3932,6 +4315,12 @@ "dev": true, "license": "MIT" }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -4611,6 +5000,12 @@ "reusify": "^1.0.4" } }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, "node_modules/figlet": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", @@ -4745,6 +5140,12 @@ "dev": true, "license": "ISC" }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", @@ -5293,6 +5694,12 @@ "node": ">= 0.10" } }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -5769,6 +6176,12 @@ "dev": true, "license": "MIT" }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -5812,6 +6225,23 @@ "dev": true, "license": "MIT" }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/loki-logger-ts": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/loki-logger-ts/-/loki-logger-ts-1.0.2.tgz", @@ -5820,6 +6250,12 @@ "axios": "^1.4.0" } }, + "node_modules/long": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==", + "license": "Apache-2.0" + }, "node_modules/loupe": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", @@ -6222,6 +6658,15 @@ "node": ">= 0.8" } }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -6231,6 +6676,15 @@ "wrappy": "1" } }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, "node_modules/open": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", @@ -6784,6 +7238,30 @@ "dev": true, "license": "ISC" }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -6898,6 +7376,20 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/rechoir": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", @@ -6966,6 +7458,19 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/response-time": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.3.tgz", + "integrity": "sha512-SsjjOPHl/FfrTQNgmc5oen8Hr1Jxpn6LlHNXxCIFdYMHuK1kMeYMobb9XN3mvxaGQm3dbegqYFMX4+GDORfbWg==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7099,6 +7604,15 @@ ], "license": "MIT" }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -7333,6 +7847,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, "node_modules/sirv": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", @@ -7357,6 +7880,35 @@ "node": ">=8" } }, + "node_modules/snappy": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/snappy/-/snappy-7.2.2.tgz", + "integrity": "sha512-iADMq1kY0v3vJmGTuKcFWSXt15qYUz7wFkArOrsSg0IFfI3nJqIJvK2/ZbEIndg7erIJLtAVX2nSOqPz7DcwbA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/snappy-android-arm-eabi": "7.2.2", + "@napi-rs/snappy-android-arm64": "7.2.2", + "@napi-rs/snappy-darwin-arm64": "7.2.2", + "@napi-rs/snappy-darwin-x64": "7.2.2", + "@napi-rs/snappy-freebsd-x64": "7.2.2", + "@napi-rs/snappy-linux-arm-gnueabihf": "7.2.2", + "@napi-rs/snappy-linux-arm64-gnu": "7.2.2", + "@napi-rs/snappy-linux-arm64-musl": "7.2.2", + "@napi-rs/snappy-linux-x64-gnu": "7.2.2", + "@napi-rs/snappy-linux-x64-musl": "7.2.2", + "@napi-rs/snappy-win32-arm64-msvc": "7.2.2", + "@napi-rs/snappy-win32-ia32-msvc": "7.2.2", + "@napi-rs/snappy-win32-x64-msvc": "7.2.2" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -7394,6 +7946,15 @@ "node": ">= 0.6" } }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -7417,6 +7978,15 @@ "dev": true, "license": "MIT" }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -7634,6 +8204,12 @@ "node": ">=8.0.0" } }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, "node_modules/tildify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", @@ -7764,6 +8340,15 @@ "node": ">=18" } }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/ts-api-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", @@ -7970,7 +8555,6 @@ "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, "license": "MIT" }, "node_modules/unicorn-magic": { @@ -8045,11 +8629,16 @@ "punycode": "^2.1.0" } }, + "node_modules/url-polyfill": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.13.tgz", + "integrity": "sha512-tXzkojrv2SujumYthZ/WjF7jaSfNhSXlYMpE5AYdL2I3D7DCeo+mch8KtW2rUuKjDg+3VXODXHVgipt8yGY/eQ==", + "license": "MIT" + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, "license": "MIT" }, "node_modules/utils-merge": { @@ -9084,6 +9673,70 @@ "node": ">=8" } }, + "node_modules/winston": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-loki": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/winston-loki/-/winston-loki-6.1.3.tgz", + "integrity": "sha512-DjWtJ230xHyYQWr9mZJa93yhwHttn3JEtSYWP8vXZWJOahiQheUhf+88dSIidbGXB3u0oLweV6G1vkL/ouT62Q==", + "license": "MIT", + "dependencies": { + "async-exit-hook": "2.0.1", + "btoa": "^1.2.1", + "protobufjs": "^7.2.4", + "url-polyfill": "^1.1.12", + "winston-transport": "^4.3.0" + }, + "optionalDependencies": { + "snappy": "^7.2.2" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", From 9a96e480cd972b497d00c5cee79cc729e0e525f9 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 23 Feb 2025 17:30:16 +0100 Subject: [PATCH 03/80] chore: Environments in npm commandos --- backend/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/package.json b/backend/package.json index 84a4e23e..008afecf 100644 --- a/backend/package.json +++ b/backend/package.json @@ -5,9 +5,9 @@ "private": true, "type": "module", "scripts": { - "build": "tsc --project tsconfig.json", - "dev": "tsx watch --env-file=.env.development.local src/app.ts", - "start": "node --env-file=.env dist/app.js", + "build": "NODE_ENV=production tsc --project tsconfig.json", + "dev": "NODE_ENV=development tsx watch --env-file=.env.development.local src/app.ts", + "start": "NODE_ENV=production node --env-file=.env dist/app.js", "format": "prettier --write src/", "format-check": "prettier --check src/", "lint": "eslint . --fix", From e8e1d94e5b97cb1b30c83777eff6bf210a7f74a4 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Wed, 26 Feb 2025 23:31:50 +0100 Subject: [PATCH 04/80] feat: added learningPaths.ts --- backend/package.json | 1 + backend/src/app.ts | 2 + backend/src/controllers/learningPaths.ts | 134 +++++++++++++++++++++++ backend/src/routes/learningPaths.ts | 18 +++ package-lock.json | 46 ++++++-- 5 files changed, 193 insertions(+), 8 deletions(-) create mode 100644 backend/src/controllers/learningPaths.ts create mode 100644 backend/src/routes/learningPaths.ts diff --git a/backend/package.json b/backend/package.json index 7b03d8f6..8a05b694 100644 --- a/backend/package.json +++ b/backend/package.json @@ -18,6 +18,7 @@ "@mikro-orm/postgresql": "^6.4.6", "@mikro-orm/reflection": "^6.4.6", "@types/js-yaml": "^4.0.9", + "axios": "^1.8.1", "dotenv": "^16.4.7", "express": "^5.0.1", "js-yaml": "^4.1.0" diff --git a/backend/src/app.ts b/backend/src/app.ts index 90a6f45b..2debf166 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -1,6 +1,7 @@ import express, { Express, Response } from 'express'; import initORM from './orm.js'; import themeRoutes from './routes/themes.js'; +import learningPathRoutes from './routes/learningPaths.js' const app: Express = express(); const port: string | number = process.env.PORT || 3000; @@ -13,6 +14,7 @@ app.get('/', (_, res: Response) => { }); app.use('/theme', themeRoutes); +app.use('/learningPath', learningPathRoutes); async function startServer() { await initORM(); diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts new file mode 100644 index 00000000..308fe9b2 --- /dev/null +++ b/backend/src/controllers/learningPaths.ts @@ -0,0 +1,134 @@ +import { Request, Response } from "express"; +import axios from "axios"; +import { themes } from "../data/themes.js"; +import dotenv from "dotenv"; + +// Load environment variables +dotenv.config(); + +// Get API base URL from environment variables +const DWENGO_API_BASE = process.env.DWENGO_API_BASE as string; +if (!DWENGO_API_BASE) { + throw new Error("DWENGO_API_BASE is not defined in the .env file"); +} + +/** + * Fetch learning paths for a given list of HRUIDs. + * This function sends a request to the Dwengo API with the provided HRUIDs. + */ +export async function getLearningPathsFromIds(req: Request, res: Response): Promise { + try { + const { hruids } = req.query; + const language = (req.query.language as string) || "nl"; // Default to Dutch + + if (!hruids) { + res.status(400).json({ error: "Missing required parameter: hruids" }); + return; + } + + // Convert the input to an array if it's a string + const hruidList = Array.isArray(hruids) ? hruids : [hruids]; + + // Request learning paths from Dwengo API + const response = await axios.get(`${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, { + params: { + pathIdList: JSON.stringify({ hruids: hruidList }), + language + } + }); + + res.json(response.data); + } catch (error) { + console.error("Error fetching learning paths:", error); + res.status(500).json({ error: "Internal server error" }); + } +} + +/** + * Fetch all learning paths for a specific theme. + * First retrieves the HRUIDs associated with the theme, + * then fetches the corresponding learning paths from the Dwengo API. + */ +export async function getLearningPathsByTheme(req: Request, res: Response): Promise { + try { + const themeKey = req.params.theme; + const language = (req.query.language as string) || "nl"; // Default to Dutch + + // Find the theme by its title + const theme = themes.find((t) => t.title === themeKey); + + if (!theme) { + res.status(404).json({ error: "Theme not found" }); + return; + } + + // Extract HRUIDs from the theme + const hruidList = theme.hruids; + + // Request learning paths from Dwengo API using the extracted HRUIDs + const response = await axios.get(`${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, { + params: { + pathIdList: JSON.stringify({ hruids: hruidList }), + language + } + }); + + res.json({ + theme: themeKey, + hruids: hruidList, + learningPaths: response.data + }); + + } catch (error) { + console.error("Error fetching learning paths for theme:", error); + res.status(500).json({ error: "Internal server error" }); + } +} + +export async function searchLearningPaths(req: Request, res: Response): Promise { + try { + const query = req.query.query as string; + const language = (req.query.language as string) || "nl"; + + if (!query) { + res.status(400).json({ error: "Missing search query" }); + return; + } + + const response = await axios.get(`${DWENGO_API_BASE}/learningPath/search`, { + params: { all: query, language } + }); + + res.json(response.data); + } catch (error) { + console.error("Error searching learning paths:", error); + res.status(500).json({ error: "Internal server error" }); + } +} + +export async function getAllLearningPaths(req: Request, res: Response): Promise { + try { + const language = (req.query.language as string) || "nl"; // Default to Dutch + + // Collect all HRUIDs from all themes + const allHruids: string[] = themes.flatMap(theme => theme.hruids); + + if (allHruids.length === 0) { + res.status(404).json({ error: "No HRUIDs found in themes" }); + return; + } + + // Call the Dwengo API with all HRUIDs combined + const response = await axios.get(`${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, { + params: { + pathIdList: JSON.stringify({ hruids: allHruids }), + language + } + }); + + res.json(response.data); + } catch (error) { + console.error("Error fetching all learning paths:", error); + res.status(500).json({ error: "Internal server error" }); + } +} diff --git a/backend/src/routes/learningPaths.ts b/backend/src/routes/learningPaths.ts new file mode 100644 index 00000000..84e5367e --- /dev/null +++ b/backend/src/routes/learningPaths.ts @@ -0,0 +1,18 @@ +import express from "express"; +import { getLearningPathsFromIds, getLearningPathsByTheme, getAllLearningPaths, searchLearningPaths } from "../controllers/learningPaths.js"; + +const router = express.Router(); + +// Route to fetch learning paths based on a list of HRUIDs +router.get("/", getLearningPathsFromIds); + +// Route to fetch all possible learning paths +router.get("/all", getAllLearningPaths); + +// Route to fetch learning paths based on a searchterm +router.get("/search", searchLearningPaths); + +// Route to fetch learning paths based on a theme +router.get("/theme/:theme", getLearningPathsByTheme); + +export default router; diff --git a/package-lock.json b/package-lock.json index 6aa75b60..ba4b6ae4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "@mikro-orm/postgresql": "^6.4.6", "@mikro-orm/reflection": "^6.4.6", "@types/js-yaml": "^4.0.9", + "axios": "^1.8.1", "dotenv": "^16.4.7", "express": "^5.0.1", "js-yaml": "^4.1.0" @@ -3152,9 +3153,19 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, "license": "MIT" }, + "node_modules/axios": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", + "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -3520,7 +3531,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -3788,7 +3798,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -4003,7 +4012,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -4745,6 +4753,26 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -4766,7 +4794,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -4782,7 +4809,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -4792,7 +4818,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -5077,7 +5102,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -6772,6 +6796,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", From d401136d3ad4bd970a859342bb9db8d2e9bde7a8 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 17:04:52 +0100 Subject: [PATCH 05/80] feat: added route for learningObjects --- backend/src/app.ts | 3 + backend/src/config/config.ts | 9 +++ backend/src/controllers/learningObjects.ts | 20 +++++++ backend/src/controllers/learningPaths.ts | 11 +--- backend/src/routes/learningObjects.ts | 11 ++++ backend/src/routes/learningPaths.ts | 5 ++ backend/src/services/learningObjects.ts | 67 ++++++++++++++++++++++ 7 files changed, 116 insertions(+), 10 deletions(-) create mode 100644 backend/src/config/config.ts create mode 100644 backend/src/controllers/learningObjects.ts create mode 100644 backend/src/routes/learningObjects.ts create mode 100644 backend/src/services/learningObjects.ts diff --git a/backend/src/app.ts b/backend/src/app.ts index 2debf166..5282468d 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -2,6 +2,8 @@ import express, { Express, Response } from 'express'; import initORM from './orm.js'; import themeRoutes from './routes/themes.js'; import learningPathRoutes from './routes/learningPaths.js' +import learningObjectRoutes from './routes/learningObjects.js' + const app: Express = express(); const port: string | number = process.env.PORT || 3000; @@ -15,6 +17,7 @@ app.get('/', (_, res: Response) => { app.use('/theme', themeRoutes); app.use('/learningPath', learningPathRoutes); +app.use('/learningObject', learningObjectRoutes); async function startServer() { await initORM(); diff --git a/backend/src/config/config.ts b/backend/src/config/config.ts new file mode 100644 index 00000000..414d10a6 --- /dev/null +++ b/backend/src/config/config.ts @@ -0,0 +1,9 @@ +// Can be placed in dotenv but found it redundant + +// import dotenv from "dotenv"; + +// Load .env file +// dotenv.config(); + +export const DWENGO_API_BASE = "https://dwengo.org/backend/api"; + diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts new file mode 100644 index 00000000..fc020b7e --- /dev/null +++ b/backend/src/controllers/learningObjects.ts @@ -0,0 +1,20 @@ +import { Request, Response } from "express"; +import { getLearningObjectsFromPath } from "../services/learningObjects.js"; + +export async function getAllLearningObjects(req: Request, res: Response): Promise { + try { + const { hruid } = req.params; + const language = req.query.language as string || "nl"; // Default to Dutch; + + if (!language) { + res.status(400).json({ error: "Language query parameter is required." }); + return; + } + + const learningObjects = await getLearningObjectsFromPath(hruid, language); + res.json(learningObjects); + } catch (error) { + console.error("Error fetching learning objects:", error); + res.status(500).json({ error: "Internal server error" }); + } +} diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 308fe9b2..c8cadd16 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,16 +1,7 @@ import { Request, Response } from "express"; import axios from "axios"; import { themes } from "../data/themes.js"; -import dotenv from "dotenv"; - -// Load environment variables -dotenv.config(); - -// Get API base URL from environment variables -const DWENGO_API_BASE = process.env.DWENGO_API_BASE as string; -if (!DWENGO_API_BASE) { - throw new Error("DWENGO_API_BASE is not defined in the .env file"); -} +import { DWENGO_API_BASE } from "../config/config.js"; /** * Fetch learning paths for a given list of HRUIDs. diff --git a/backend/src/routes/learningObjects.ts b/backend/src/routes/learningObjects.ts new file mode 100644 index 00000000..886b42f3 --- /dev/null +++ b/backend/src/routes/learningObjects.ts @@ -0,0 +1,11 @@ +import express from "express"; +import { getAllLearningObjects } from "../controllers/learningObjects.js"; + +const router = express.Router(); + +// arg: hruid learningPath +// query: language +// Route to fetch list of learning objects based on hruid of learning path +router.get("/:hruid", getAllLearningObjects); + +export default router; diff --git a/backend/src/routes/learningPaths.ts b/backend/src/routes/learningPaths.ts index 84e5367e..5b49937d 100644 --- a/backend/src/routes/learningPaths.ts +++ b/backend/src/routes/learningPaths.ts @@ -3,15 +3,20 @@ import { getLearningPathsFromIds, getLearningPathsByTheme, getAllLearningPaths, const router = express.Router(); +// query: language // Route to fetch learning paths based on a list of HRUIDs router.get("/", getLearningPathsFromIds); +// query: language // Route to fetch all possible learning paths router.get("/all", getAllLearningPaths); +// query: language // Route to fetch learning paths based on a searchterm router.get("/search", searchLearningPaths); +// arg: theme id +// query: language // Route to fetch learning paths based on a theme router.get("/theme/:theme", getLearningPathsByTheme); diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts new file mode 100644 index 00000000..6e58defb --- /dev/null +++ b/backend/src/services/learningObjects.ts @@ -0,0 +1,67 @@ +import axios from "axios"; +import { DWENGO_API_BASE } from "../config/config.js"; + +interface LearningObjectNode { + _id: string; + learningobject_hruid: string; + version: number; + language: string; +} + + +export async function getLearningObjectsFromPath(hruid: string, language: string) { + try { + const learningPathUrl = `${DWENGO_API_BASE}/learningPath/${hruid}/${language}`; + const learningPathResponse = await axios.get(learningPathUrl); + const nodes = learningPathResponse.data.nodes; + + if (!nodes || nodes.length === 0) { + throw new Error("No learning objects found in this learning path."); + } + + return await Promise.all( + nodes.map(async (node: LearningObjectNode) => { + const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; + const metadataResponse = await axios.get(metadataUrl); + + const html_url = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; + + return filterLearningObjectMetadata(metadataResponse.data, html_url); + }) + ); + + } catch (error) { + console.error("Error fetching learning objects:", error); + throw new Error("Failed to fetch learning objects."); + } +} + +function filterLearningObjectMetadata(data: any, html_url: String) { + return { + key: data.hruid, + // hruid learningObject (not path) + _id: data._id, + uuid: data.uuid, + version: data.version, + + title: data.title, + html_url, + // html content object + language: data.language, + difficulty: data.difficulty, + estimated_time: data.estimated_time, + available: data.available, + teacher_exclusive: data.teacher_exclusive, + educational_goals: data.educational_goals, + // list with learningObjects + keywords: data.keywords, + // for search + description: data.description, + // for search (not an actual description) + target_ages: data.target_ages, + + // skos concepts needed ?? + // content type needed ?? + // content location ?? + }; +} From ac778981e23ef530d3865bfc35a91f5bd4735acb Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 17:12:21 +0100 Subject: [PATCH 06/80] fix: beter commentaar en van nl naar eng vertaald --- backend/src/controllers/themes.ts | 15 ++++----------- backend/src/routes/themes.ts | 5 +++++ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 442eb982..73091dd7 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -10,9 +10,6 @@ interface Translations { }; } -/** - * Laadt de vertalingen uit een YAML-bestand - */ function loadTranslations(language: string): Translations { try { const filePath = path.join(process.cwd(), '_i18n', `${language}.yml`); @@ -20,7 +17,7 @@ function loadTranslations(language: string): Translations { return yaml.load(yamlFile) as Translations; } catch (error) { console.error( - `Kan vertaling niet laden voor ${language}, fallback naar Nederlands` + `Cant load for language: ${language}, fallen back on dutch` ); console.error(error); const fallbackPath = path.join(process.cwd(), '_i18n', 'nl.yml'); @@ -28,9 +25,7 @@ function loadTranslations(language: string): Translations { } } -/** - * GET /themes → Haalt de lijst met thema's op inclusief vertalingen - */ + export function getThemes(req: Request, res: Response) { const language = (req.query.language as string)?.toLowerCase() || 'nl'; const translations = loadTranslations(language); @@ -48,9 +43,7 @@ export function getThemes(req: Request, res: Response) { res.json(themeList); } -/** - * GET /themes/:theme → Geeft de HRUIDs terug voor een specifiek thema - */ + export function getThemeByTitle(req: Request, res: Response) { const themeKey = req.params.theme; const theme = themes.find((t) => { @@ -60,6 +53,6 @@ export function getThemeByTitle(req: Request, res: Response) { if (theme) { res.json(theme.hruids); } else { - res.status(404).json({ error: 'Thema niet gevonden' }); + res.status(404).json({ error: 'Theme not found' }); } } diff --git a/backend/src/routes/themes.ts b/backend/src/routes/themes.ts index 3185640e..434ee687 100644 --- a/backend/src/routes/themes.ts +++ b/backend/src/routes/themes.ts @@ -3,7 +3,12 @@ import { getThemes, getThemeByTitle } from '../controllers/themes.js'; const router = express.Router(); +// query: language +// Route to fetch list of {key, title, description, image} themes in their respective language router.get('/', getThemes); + +// arg: theme (key) +// Route to fetch list of hruids based on theme router.get('/:theme', getThemeByTitle); export default router; From acfffda82d9984ddd9cda7a33441e2b528220799 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 17:21:03 +0100 Subject: [PATCH 07/80] fix: lint + format --- backend/src/app.ts | 5 +- backend/src/config/config.ts | 7 +- backend/src/controllers/learningObjects.ts | 24 ++-- backend/src/controllers/learningPaths.ts | 121 +++++++++++++-------- backend/src/routes/learningObjects.ts | 10 +- backend/src/routes/learningPaths.ts | 27 +++-- backend/src/routes/themes.ts | 4 +- backend/src/services/learningObjects.ts | 82 +++++++------- 8 files changed, 162 insertions(+), 118 deletions(-) diff --git a/backend/src/app.ts b/backend/src/app.ts index 5282468d..1701e12c 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -1,9 +1,8 @@ import express, { Express, Response } from 'express'; import initORM from './orm.js'; import themeRoutes from './routes/themes.js'; -import learningPathRoutes from './routes/learningPaths.js' -import learningObjectRoutes from './routes/learningObjects.js' - +import learningPathRoutes from './routes/learningPaths.js'; +import learningObjectRoutes from './routes/learningObjects.js'; const app: Express = express(); const port: string | number = process.env.PORT || 3000; diff --git a/backend/src/config/config.ts b/backend/src/config/config.ts index 414d10a6..84181070 100644 --- a/backend/src/config/config.ts +++ b/backend/src/config/config.ts @@ -1,9 +1,8 @@ // Can be placed in dotenv but found it redundant -// import dotenv from "dotenv"; +// Import dotenv from "dotenv"; // Load .env file -// dotenv.config(); - -export const DWENGO_API_BASE = "https://dwengo.org/backend/api"; +// Dotenv.config(); +export const DWENGO_API_BASE = 'https://dwengo.org/backend/api'; diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index fc020b7e..f7640891 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -1,20 +1,28 @@ -import { Request, Response } from "express"; -import { getLearningObjectsFromPath } from "../services/learningObjects.js"; +import { Request, Response } from 'express'; +import { getLearningObjectsFromPath } from '../services/learningObjects.js'; -export async function getAllLearningObjects(req: Request, res: Response): Promise { +export async function getAllLearningObjects( + req: Request, + res: Response +): Promise { try { const { hruid } = req.params; - const language = req.query.language as string || "nl"; // Default to Dutch; + const language = (req.query.language as string) || 'nl'; // Default to Dutch; if (!language) { - res.status(400).json({ error: "Language query parameter is required." }); + res.status(400).json({ + error: 'Language query parameter is required.', + }); return; } - const learningObjects = await getLearningObjectsFromPath(hruid, language); + const learningObjects = await getLearningObjectsFromPath( + hruid, + language + ); res.json(learningObjects); } catch (error) { - console.error("Error fetching learning objects:", error); - res.status(500).json({ error: "Internal server error" }); + console.error('Error fetching learning objects:', error); + res.status(500).json({ error: 'Internal server error' }); } } diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index c8cadd16..e588bbe3 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,19 +1,24 @@ -import { Request, Response } from "express"; -import axios from "axios"; -import { themes } from "../data/themes.js"; -import { DWENGO_API_BASE } from "../config/config.js"; +import { Request, Response } from 'express'; +import axios from 'axios'; +import { themes } from '../data/themes.js'; +import { DWENGO_API_BASE } from '../config/config.js'; /** * Fetch learning paths for a given list of HRUIDs. * This function sends a request to the Dwengo API with the provided HRUIDs. */ -export async function getLearningPathsFromIds(req: Request, res: Response): Promise { +export async function getLearningPathsFromIds( + req: Request, + res: Response +): Promise { try { const { hruids } = req.query; - const language = (req.query.language as string) || "nl"; // Default to Dutch + const language = (req.query.language as string) || 'nl'; // Default to Dutch if (!hruids) { - res.status(400).json({ error: "Missing required parameter: hruids" }); + res.status(400).json({ + error: 'Missing required parameter: hruids', + }); return; } @@ -21,17 +26,20 @@ export async function getLearningPathsFromIds(req: Request, res: Response): Prom const hruidList = Array.isArray(hruids) ? hruids : [hruids]; // Request learning paths from Dwengo API - const response = await axios.get(`${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, { - params: { - pathIdList: JSON.stringify({ hruids: hruidList }), - language + const response = await axios.get( + `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, + { + params: { + pathIdList: JSON.stringify({ hruids: hruidList }), + language, + }, } - }); + ); res.json(response.data); } catch (error) { - console.error("Error fetching learning paths:", error); - res.status(500).json({ error: "Internal server error" }); + console.error('Error fetching learning paths:', error); + res.status(500).json({ error: 'Internal server error' }); } } @@ -40,16 +48,21 @@ export async function getLearningPathsFromIds(req: Request, res: Response): Prom * First retrieves the HRUIDs associated with the theme, * then fetches the corresponding learning paths from the Dwengo API. */ -export async function getLearningPathsByTheme(req: Request, res: Response): Promise { +export async function getLearningPathsByTheme( + req: Request, + res: Response +): Promise { try { const themeKey = req.params.theme; - const language = (req.query.language as string) || "nl"; // Default to Dutch + const language = (req.query.language as string) || 'nl'; // Default to Dutch // Find the theme by its title - const theme = themes.find((t) => t.title === themeKey); + const theme = themes.find((t) => { + return t.title === themeKey; + }); if (!theme) { - res.status(404).json({ error: "Theme not found" }); + res.status(404).json({ error: 'Theme not found' }); return; } @@ -57,69 +70,85 @@ export async function getLearningPathsByTheme(req: Request, res: Response): Prom const hruidList = theme.hruids; // Request learning paths from Dwengo API using the extracted HRUIDs - const response = await axios.get(`${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, { - params: { - pathIdList: JSON.stringify({ hruids: hruidList }), - language + const response = await axios.get( + `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, + { + params: { + pathIdList: JSON.stringify({ hruids: hruidList }), + language, + }, } - }); + ); res.json({ theme: themeKey, hruids: hruidList, - learningPaths: response.data + learningPaths: response.data, }); - } catch (error) { - console.error("Error fetching learning paths for theme:", error); - res.status(500).json({ error: "Internal server error" }); + console.error('Error fetching learning paths for theme:', error); + res.status(500).json({ error: 'Internal server error' }); } } -export async function searchLearningPaths(req: Request, res: Response): Promise { +export async function searchLearningPaths( + req: Request, + res: Response +): Promise { try { const query = req.query.query as string; - const language = (req.query.language as string) || "nl"; + const language = (req.query.language as string) || 'nl'; if (!query) { - res.status(400).json({ error: "Missing search query" }); + res.status(400).json({ error: 'Missing search query' }); return; } - const response = await axios.get(`${DWENGO_API_BASE}/learningPath/search`, { - params: { all: query, language } - }); + const response = await axios.get( + `${DWENGO_API_BASE}/learningPath/search`, + { + params: { all: query, language }, + } + ); res.json(response.data); } catch (error) { - console.error("Error searching learning paths:", error); - res.status(500).json({ error: "Internal server error" }); + console.error('Error searching learning paths:', error); + res.status(500).json({ error: 'Internal server error' }); } } -export async function getAllLearningPaths(req: Request, res: Response): Promise { +export async function getAllLearningPaths( + req: Request, + res: Response +): Promise { try { - const language = (req.query.language as string) || "nl"; // Default to Dutch + const language = (req.query.language as string) || 'nl'; // Default to Dutch // Collect all HRUIDs from all themes - const allHruids: string[] = themes.flatMap(theme => theme.hruids); + const allHruids: string[] = themes.flatMap((theme) => { + return theme.hruids; + }); if (allHruids.length === 0) { - res.status(404).json({ error: "No HRUIDs found in themes" }); + res.status(404).json({ error: 'No HRUIDs found in themes' }); return; } // Call the Dwengo API with all HRUIDs combined - const response = await axios.get(`${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, { - params: { - pathIdList: JSON.stringify({ hruids: allHruids }), - language + const response = await axios.get( + `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, + { + params: { + pathIdList: JSON.stringify({ hruids: allHruids }), + language, + }, } - }); + ); res.json(response.data); } catch (error) { - console.error("Error fetching all learning paths:", error); - res.status(500).json({ error: "Internal server error" }); + console.error('Error fetching all learning paths:', error); + res.status(500).json({ error: 'Internal server error' }); } } diff --git a/backend/src/routes/learningObjects.ts b/backend/src/routes/learningObjects.ts index 886b42f3..907ec1d7 100644 --- a/backend/src/routes/learningObjects.ts +++ b/backend/src/routes/learningObjects.ts @@ -1,11 +1,11 @@ -import express from "express"; -import { getAllLearningObjects } from "../controllers/learningObjects.js"; +import express from 'express'; +import { getAllLearningObjects } from '../controllers/learningObjects.js'; const router = express.Router(); -// arg: hruid learningPath -// query: language +// Arg: hruid learningPath +// Query: language // Route to fetch list of learning objects based on hruid of learning path -router.get("/:hruid", getAllLearningObjects); +router.get('/:hruid', getAllLearningObjects); export default router; diff --git a/backend/src/routes/learningPaths.ts b/backend/src/routes/learningPaths.ts index 5b49937d..ead506cd 100644 --- a/backend/src/routes/learningPaths.ts +++ b/backend/src/routes/learningPaths.ts @@ -1,23 +1,28 @@ -import express from "express"; -import { getLearningPathsFromIds, getLearningPathsByTheme, getAllLearningPaths, searchLearningPaths } from "../controllers/learningPaths.js"; +import express from 'express'; +import { + getLearningPathsFromIds, + getLearningPathsByTheme, + getAllLearningPaths, + searchLearningPaths, +} from '../controllers/learningPaths.js'; const router = express.Router(); -// query: language +// Query: language // Route to fetch learning paths based on a list of HRUIDs -router.get("/", getLearningPathsFromIds); +router.get('/', getLearningPathsFromIds); -// query: language +// Query: language // Route to fetch all possible learning paths -router.get("/all", getAllLearningPaths); +router.get('/all', getAllLearningPaths); -// query: language +// Query: language // Route to fetch learning paths based on a searchterm -router.get("/search", searchLearningPaths); +router.get('/search', searchLearningPaths); -// arg: theme id -// query: language +// Arg: theme id +// Query: language // Route to fetch learning paths based on a theme -router.get("/theme/:theme", getLearningPathsByTheme); +router.get('/theme/:theme', getLearningPathsByTheme); export default router; diff --git a/backend/src/routes/themes.ts b/backend/src/routes/themes.ts index 434ee687..388b3e38 100644 --- a/backend/src/routes/themes.ts +++ b/backend/src/routes/themes.ts @@ -3,11 +3,11 @@ import { getThemes, getThemeByTitle } from '../controllers/themes.js'; const router = express.Router(); -// query: language +// Query: language // Route to fetch list of {key, title, description, image} themes in their respective language router.get('/', getThemes); -// arg: theme (key) +// Arg: theme (key) // Route to fetch list of hruids based on theme router.get('/:theme', getThemeByTitle); diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 6e58defb..bbec3d3a 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -1,5 +1,5 @@ -import axios from "axios"; -import { DWENGO_API_BASE } from "../config/config.js"; +import axios from 'axios'; +import { DWENGO_API_BASE } from '../config/config.js'; interface LearningObjectNode { _id: string; @@ -8,15 +8,47 @@ interface LearningObjectNode { language: string; } +function filterLearningObjectMetadata(data: any, htmlUrl: string) { + return { + key: data.hruid, + // Hruid learningObject (not path) + _id: data._id, + uuid: data.uuid, + version: data.version, -export async function getLearningObjectsFromPath(hruid: string, language: string) { + title: data.title, + html_url: htmlUrl, + // Html content object + language: data.language, + difficulty: data.difficulty, + estimated_time: data.estimated_time, + available: data.available, + teacher_exclusive: data.teacher_exclusive, + educational_goals: data.educational_goals, + // List with learningObjects + keywords: data.keywords, + // For search + description: data.description, + // For search (not an actual description) + target_ages: data.target_ages, + + // Skos concepts needed ?? + // Content type needed ?? + // Content location ?? + }; +} + +export async function getLearningObjectsFromPath( + hruid: string, + language: string +) { try { const learningPathUrl = `${DWENGO_API_BASE}/learningPath/${hruid}/${language}`; const learningPathResponse = await axios.get(learningPathUrl); const nodes = learningPathResponse.data.nodes; if (!nodes || nodes.length === 0) { - throw new Error("No learning objects found in this learning path."); + throw new Error('No learning objects found in this learning path.'); } return await Promise.all( @@ -24,44 +56,16 @@ export async function getLearningObjectsFromPath(hruid: string, language: string const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; const metadataResponse = await axios.get(metadataUrl); - const html_url = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; + const htmlUrl = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; - return filterLearningObjectMetadata(metadataResponse.data, html_url); + return filterLearningObjectMetadata( + metadataResponse.data, + htmlUrl + ); }) ); - } catch (error) { - console.error("Error fetching learning objects:", error); - throw new Error("Failed to fetch learning objects."); + console.error('Error fetching learning objects:', error); + throw new Error('Failed to fetch learning objects.'); } } - -function filterLearningObjectMetadata(data: any, html_url: String) { - return { - key: data.hruid, - // hruid learningObject (not path) - _id: data._id, - uuid: data.uuid, - version: data.version, - - title: data.title, - html_url, - // html content object - language: data.language, - difficulty: data.difficulty, - estimated_time: data.estimated_time, - available: data.available, - teacher_exclusive: data.teacher_exclusive, - educational_goals: data.educational_goals, - // list with learningObjects - keywords: data.keywords, - // for search - description: data.description, - // for search (not an actual description) - target_ages: data.target_ages, - - // skos concepts needed ?? - // content type needed ?? - // content location ?? - }; -} From 594aa540dda6112b474f0e2051d37cdb2efd8019 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 18:52:48 +0100 Subject: [PATCH 08/80] fix: example urls bij learningPaths.ts --- backend/src/controllers/themes.ts | 2 - backend/src/routes/learningPaths.ts | 5 +- package-lock.json | 114 ++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+), 3 deletions(-) diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 73091dd7..d81cf054 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -25,7 +25,6 @@ function loadTranslations(language: string): Translations { } } - export function getThemes(req: Request, res: Response) { const language = (req.query.language as string)?.toLowerCase() || 'nl'; const translations = loadTranslations(language); @@ -43,7 +42,6 @@ export function getThemes(req: Request, res: Response) { res.json(themeList); } - export function getThemeByTitle(req: Request, res: Response) { const themeKey = req.params.theme; const theme = themes.find((t) => { diff --git a/backend/src/routes/learningPaths.ts b/backend/src/routes/learningPaths.ts index ead506cd..7e821350 100644 --- a/backend/src/routes/learningPaths.ts +++ b/backend/src/routes/learningPaths.ts @@ -8,8 +8,9 @@ import { const router = express.Router(); -// Query: language +// Query: hruids(list), language // Route to fetch learning paths based on a list of HRUIDs +// Example: http://localhost:3000/learningPath?hruids=pn_werking&hruids=art1 router.get('/', getLearningPathsFromIds); // Query: language @@ -18,11 +19,13 @@ router.get('/all', getAllLearningPaths); // Query: language // Route to fetch learning paths based on a searchterm +// Example: http://localhost:3000/learningPath/search?query=robot router.get('/search', searchLearningPaths); // Arg: theme id // Query: language // Route to fetch learning paths based on a theme +// Example: http://localhost:3000/learningPath/theme/kiks router.get('/theme/:theme', getLearningPathsByTheme); export default router; diff --git a/package-lock.json b/package-lock.json index ba4b6ae4..daab699e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3182,6 +3182,12 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==", + "license": "MIT" + }, "node_modules/body-parser": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.1.0.tgz", @@ -5234,6 +5240,12 @@ "node": ">=0.10.0" } }, + "node_modules/idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", + "license": "Apache-2.0" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -5443,6 +5455,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "license": "MIT" + }, "node_modules/is-what": { "version": "4.1.16", "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", @@ -6048,6 +6066,48 @@ "node": ">= 0.6" } }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -6249,6 +6309,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "license": "MIT", + "bin": { + "opencollective-postinstall": "index.js" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -6915,6 +6984,12 @@ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "license": "Apache-2.0" }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7633,6 +7708,30 @@ "node": ">=8.0.0" } }, + "node_modules/tesseract.js": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-6.0.0.tgz", + "integrity": "sha512-tqYCod1HwJzkeZw1l6XWx+ly2hhisGcBtak9MArhYwDAxL0NgeVhLJcUjqPxZMQtpgtVUzWcpZPryi+hnaQGVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "bmp-js": "^0.1.0", + "idb-keyval": "^6.2.0", + "is-url": "^1.2.4", + "node-fetch": "^2.6.9", + "opencollective-postinstall": "^2.0.3", + "regenerator-runtime": "^0.13.3", + "tesseract.js-core": "^6.0.0", + "wasm-feature-detect": "^1.2.11", + "zlibjs": "^0.3.1" + } + }, + "node_modules/tesseract.js-core": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tesseract.js-core/-/tesseract.js-core-6.0.0.tgz", + "integrity": "sha512-1Qncm/9oKM7xgrQXZXNB+NRh19qiXGhxlrR8EwFbK5SaUbPZnS5OMtP/ghtqfd23hsr1ZvZbZjeuAGcMxd/ooA==", + "license": "Apache-2.0" + }, "node_modules/tildify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", @@ -8990,6 +9089,12 @@ "node": ">=18" } }, + "node_modules/wasm-feature-detect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.8.0.tgz", + "integrity": "sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==", + "license": "Apache-2.0" + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -9368,6 +9473,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zlibjs": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz", + "integrity": "sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==", + "license": "MIT", + "engines": { + "node": "*" + } } } } From 5ca1bebe381dfd737a167bd780174467631443fd Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 18:53:36 +0100 Subject: [PATCH 09/80] fix: van snake_case naar camelCase --- backend/src/services/learningObjects.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index bbec3d3a..0168981c 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -17,24 +17,30 @@ function filterLearningObjectMetadata(data: any, htmlUrl: string) { version: data.version, title: data.title, - html_url: htmlUrl, + htmlUrl, // Html content object language: data.language, difficulty: data.difficulty, - estimated_time: data.estimated_time, + estimatedTime: data.estimated_time, available: data.available, - teacher_exclusive: data.teacher_exclusive, - educational_goals: data.educational_goals, + teacherExclusive: data.teacher_exclusive, + educationalGoals: data.educational_goals, // List with learningObjects keywords: data.keywords, // For search description: data.description, // For search (not an actual description) - target_ages: data.target_ages, + targetAges: data.target_ages, + contentType: data.content_type, + // Text/plain, text/md, image/image-block, + // Image/image/, audio/mpeg or extern + contentLocation: data.content_location, + // If content type extern // Skos concepts needed ?? - // Content type needed ?? - // Content location ?? + // Return value needed ?? + // Callback_url to send response + // Callback_scheme }; } From 0fc5a992696400e2be22b1fbd9434adeef5cfef4 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 20:23:46 +0100 Subject: [PATCH 10/80] chore: lint-action workflow toegevoegd --- .github/workflows/lint-action.yml | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/lint-action.yml diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml new file mode 100644 index 00000000..145e820b --- /dev/null +++ b/.github/workflows/lint-action.yml @@ -0,0 +1,40 @@ +name: Lint + +on: + # Trigger the workflow on push or pull request, + # but only for the main branch + push: + # Replace pull_request with pull_request_target if you + # plan to use this action with forks, see the Limitations section + pull_request: + branches: + - dev + +# Down scope as necessary via https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token +permissions: + checks: write + contents: write + +jobs: + run-linters: + name: Run linters + runs-on: [self-hosted, Linux, X64] + + steps: + - name: Check out Git repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + + # ESLint and Prettier must be in `package.json` + - name: Install Node.js dependencies + run: npm ci + + - name: Run linters + uses: wearerequired/lint-action@v2 + with: + eslint: true + prettier: true \ No newline at end of file From f8ba6ad4883b8051a4482e84f0a827f21955344b Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 20:32:48 +0100 Subject: [PATCH 11/80] chore: eslint config (ignore .github, include .ts files, gebruik config bestand) --- .github/workflows/lint-action.yml | 1 + eslint.config.ts | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 145e820b..77cc9568 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -37,4 +37,5 @@ jobs: uses: wearerequired/lint-action@v2 with: eslint: true + eslint_args: "--config eslint.config.ts" prettier: true \ No newline at end of file diff --git a/eslint.config.ts b/eslint.config.ts index 7d657c67..52813c36 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -16,7 +16,13 @@ export default [ prettierConfig, includeIgnoreFile(gitignorePath), { - ignores: ['**/dist/**', '**/.node_modules/**', '**/coverage/**'], + ignores: ['**/dist/**', '**/.node_modules/**', '**/coverage/**', '/.github/**'], + files: [ + "**/*.ts", + "**/*.cts", + "**.*.mts", + "**/*.ts" + ] }, { languageOptions: { From 0a02ee9eb0925472b92ade176d36261b16e1cf20 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 20:44:12 +0100 Subject: [PATCH 12/80] chore: test lint-action --- package-lock.json | 504 +--------------------------------------------- 1 file changed, 6 insertions(+), 498 deletions(-) diff --git a/package-lock.json b/package-lock.json index a00e4f54..aaef6b03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "dwengo-1-monorepo", "version": "0.0.1", + "license": "MIT", "workspaces": [ "backend", "frontend" @@ -26,7 +27,6 @@ "backend": { "name": "dwengo-1-backend", "version": "0.0.1", - "license": "MIT", "dependencies": { "@mikro-orm/core": "^6.4.6", "@mikro-orm/postgresql": "^6.4.6", @@ -785,7 +785,6 @@ "os": [ "aix" ], - "peer": true, "engines": { "node": ">=18" } @@ -803,7 +802,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -821,7 +819,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -839,7 +836,6 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } @@ -857,7 +853,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -875,7 +870,6 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } @@ -893,7 +887,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -911,7 +904,6 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -929,7 +921,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -947,7 +938,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -965,7 +955,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -983,7 +972,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1001,7 +989,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1019,7 +1006,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1037,7 +1023,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1055,7 +1040,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1073,7 +1057,6 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } @@ -1091,7 +1074,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1109,7 +1091,6 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1127,7 +1108,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1145,7 +1125,6 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } @@ -1163,7 +1142,6 @@ "os": [ "sunos" ], - "peer": true, "engines": { "node": ">=18" } @@ -1181,7 +1159,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -1199,7 +1176,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -1217,7 +1193,6 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } @@ -8038,14 +8013,13 @@ } }, "node_modules/vite": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.1.tgz", - "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz", + "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==", "dev": true, - "license": "MIT", "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.5.2", + "esbuild": "^0.25.0", + "postcss": "^8.5.3", "rollup": "^4.30.1" }, "bin": { @@ -8220,472 +8194,6 @@ "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0" } }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", From 24b064e53ac122e45ebd36415f03d9ab1006a384 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 20:48:06 +0100 Subject: [PATCH 13/80] chore: map toegevoegd aan eslint args --- .github/workflows/lint-action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 77cc9568..aef8f090 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -37,5 +37,5 @@ jobs: uses: wearerequired/lint-action@v2 with: eslint: true - eslint_args: "--config eslint.config.ts" + eslint_args: "--config eslint.config.ts ./" prettier: true \ No newline at end of file From 4c5799ec0ed9ea78c3798d533ac697a1f7a90bca Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 20:50:07 +0100 Subject: [PATCH 14/80] debug: debug flag meegegeven aan eslint args --- .github/workflows/lint-action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index aef8f090..2f5df3a1 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -37,5 +37,5 @@ jobs: uses: wearerequired/lint-action@v2 with: eslint: true - eslint_args: "--config eslint.config.ts ./" + eslint_args: "--debug --config eslint.config.ts ./" prettier: true \ No newline at end of file From 7d78cd1440b661eaedc4153a5f686f6fdf4fed00 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 20:57:35 +0100 Subject: [PATCH 15/80] feat: base64ToImage.ts --- frontend/utils/base64ToImage.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 frontend/utils/base64ToImage.ts diff --git a/frontend/utils/base64ToImage.ts b/frontend/utils/base64ToImage.ts new file mode 100644 index 00000000..9ec9ac34 --- /dev/null +++ b/frontend/utils/base64ToImage.ts @@ -0,0 +1,20 @@ +/** + * Converts a Base64 string to a valid image source URL. + * + * @param base64String - The "image" field from the learning path JSON response. + * @returns A properly formatted data URL for use in an tag. + * + * @example + * // Fetch the learning path data and extract the image + * const response = await fetch( learning path route ); + * const data = await response.json(); + * const base64String = data.image; + * + * // Use in an element + * Learning Path Image + */ +export function convertBase64ToImageSrc(base64String: string): string { + return base64String.startsWith("data:image") + ? base64String + : `data:image/png;base64,${base64String}`; +} From 3287539419e4f81cc7c1ff83236e9abe0bf480e5 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 20:58:07 +0100 Subject: [PATCH 16/80] chore: lint-action gebruik forked action Gebruik de fork van rkuykendall om eslint v9 te ondersteunen --- .github/workflows/lint-action.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 2f5df3a1..8ca45244 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -34,8 +34,9 @@ jobs: run: npm ci - name: Run linters - uses: wearerequired/lint-action@v2 + uses: rkuykendall/lint-action@master with: + auto_fix: true eslint: true - eslint_args: "--debug --config eslint.config.ts ./" + eslint_args: "--debug --config eslint.config.ts" prettier: true \ No newline at end of file From f5348c6848ff917e12e75b14846d9e0a9aa30b43 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 20:59:30 +0100 Subject: [PATCH 17/80] chore: update eslint config ignore path voor .github veranderd --- eslint.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint.config.ts b/eslint.config.ts index 52813c36..7e0ec525 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -16,7 +16,7 @@ export default [ prettierConfig, includeIgnoreFile(gitignorePath), { - ignores: ['**/dist/**', '**/.node_modules/**', '**/coverage/**', '/.github/**'], + ignores: ['**/dist/**', '**/.node_modules/**', '**/coverage/**', '**/.github/**'], files: [ "**/*.ts", "**/*.cts", From 3df8bfe3a7e90c0d39baaebd566ee96fd2099cf6 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 21:03:21 +0100 Subject: [PATCH 18/80] chore: prettierignore toegevoegd --- .prettierignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .prettierignore diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..37425f5e --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +#Ignore .github files +**/.github/** \ No newline at end of file From 7746d6b41252ab5c7dbc6c73f91995f6c6841bad Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 21:09:36 +0100 Subject: [PATCH 19/80] chore: .prettierignore met alles uit .gitignore --- .prettierignore | 742 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 741 insertions(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index 37425f5e..72394bfe 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,742 @@ #Ignore .github files -**/.github/** \ No newline at end of file +**/.github/** + +# ---> Node +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# package-lock.json +backend/package-lock.json + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# ---> Vue +# gitignore template for Vue.js projects +# +# Recommended template: Node.gitignore + +# TODO: where does this rule come from? +docs/_book + +# TODO: where does this rule come from? +test/ + +# ---> JetBrains +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# ---> VisualStudio +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +# ---> VisualStudioCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +# ---> macOS +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# ---> Vim +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +# ---> Emacs +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ +dist/ + +# Flycheck +flycheck_*.el + +# server auth directory +/server/ + +# projectiles files +.projectile + +# directory configuration +.dir-locals.el + +# network security +/network-security.data + From 9f88737c488d2c6339f6b4e816fc6e154e878db0 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 21:11:20 +0100 Subject: [PATCH 20/80] chore: commit message voor lint-action veranderd --- .github/workflows/lint-action.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 8ca45244..98bfa848 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -38,5 +38,6 @@ jobs: with: auto_fix: true eslint: true - eslint_args: "--debug --config eslint.config.ts" - prettier: true \ No newline at end of file + eslint_args: "--config eslint.config.ts" + prettier: true + commit_message: "style: fix linting issues met lint-action" \ No newline at end of file From aeab6aee61a25a0dca4ac929b091fbe88b37088d Mon Sep 17 00:00:00 2001 From: Lint Action Date: Fri, 28 Feb 2025 20:11:48 +0000 Subject: [PATCH 21/80] style: fix linting issues met lint-action --- .vscode/extensions.json | 16 +++++++-------- .vscode/settings.json | 22 ++++++++++---------- backend/tests/example.test.ts | 8 ++++---- backend/tsconfig.json | 4 +--- docker-compose.yml | 24 +++++++++++----------- eslint.config.ts | 14 ++++++------- frontend/e2e/vue.spec.ts | 8 ++++---- frontend/eslint.config.ts | 38 +++++++++++++++-------------------- frontend/index.html | 15 +++++++++++--- frontend/playwright.config.ts | 28 ++++++++++++-------------- frontend/prettier.config.js | 4 ++-- frontend/vite.config.ts | 10 ++++----- frontend/vitest.config.ts | 12 +++++------ prettier.config.js | 2 +- 14 files changed, 102 insertions(+), 103 deletions(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 0777b2e8..bf5fb037 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,10 +1,10 @@ { - "recommendations": [ - "Vue.volar", - "vitest.explorer", - "ms-playwright.playwright", - "dbaeumer.vscode-eslint", - "EditorConfig.EditorConfig", - "esbenp.prettier-vscode" - ] + "recommendations": [ + "Vue.volar", + "vitest.explorer", + "ms-playwright.playwright", + "dbaeumer.vscode-eslint", + "EditorConfig.EditorConfig", + "esbenp.prettier-vscode" + ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 4ae19c08..21550adc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,13 +1,13 @@ { - "explorer.fileNesting.enabled": true, - "explorer.fileNesting.patterns": { - "tsconfig.json": "tsconfig.*.json, env.d.ts", - "vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*", - "package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .prettier*, prettier*, .editorconfig" - }, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": "explicit" - }, - "editor.formatOnSave": false, - "editor.defaultFormatter": "esbenp.prettier-vscode" + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "tsconfig.json": "tsconfig.*.json, env.d.ts", + "vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*", + "package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .prettier*, prettier*, .editorconfig" + }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "editor.formatOnSave": false, + "editor.defaultFormatter": "esbenp.prettier-vscode" } diff --git a/backend/tests/example.test.ts b/backend/tests/example.test.ts index 638d03b1..9904b6d2 100644 --- a/backend/tests/example.test.ts +++ b/backend/tests/example.test.ts @@ -1,9 +1,9 @@ -import { describe, it, expect } from "vitest"; +import { describe, it, expect } from 'vitest'; -describe("Sample test", () => { - it("should sum to 2", () => { +describe('Sample test', () => { + it('should sum to 2', () => { const expected = 2; const result = 1 + 1; expect(result).toBe(expected); }); -}) +}); diff --git a/backend/tsconfig.json b/backend/tsconfig.json index 6cdb459b..86267d25 100644 --- a/backend/tsconfig.json +++ b/backend/tsconfig.json @@ -1,8 +1,6 @@ { "extends": "../tsconfig.json", - "include": [ - "src/**/*.ts" - ], + "include": ["src/**/*.ts"], "compilerOptions": { "rootDir": "./src", "outDir": "./dist" diff --git a/docker-compose.yml b/docker-compose.yml index e8efb530..f579b470 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,16 +1,16 @@ services: - db: - image: postgres:latest - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: postgres - ports: - - "5432:5432" - network_mode: "host" - volumes: - - postgres_data:/var/lib/postgresql/data - - ./backend/config/db/init.sql:/docker-entrypoint-initdb.d/init.sql + db: + image: postgres:latest + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - '5432:5432' + network_mode: 'host' + volumes: + - postgres_data:/var/lib/postgresql/data + - ./backend/config/db/init.sql:/docker-entrypoint-initdb.d/init.sql volumes: postgres_data: diff --git a/eslint.config.ts b/eslint.config.ts index 7e0ec525..b838d8c5 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -16,13 +16,13 @@ export default [ prettierConfig, includeIgnoreFile(gitignorePath), { - ignores: ['**/dist/**', '**/.node_modules/**', '**/coverage/**', '**/.github/**'], - files: [ - "**/*.ts", - "**/*.cts", - "**.*.mts", - "**/*.ts" - ] + ignores: [ + '**/dist/**', + '**/.node_modules/**', + '**/coverage/**', + '**/.github/**', + ], + files: ['**/*.ts', '**/*.cts', '**.*.mts', '**/*.ts'], }, { languageOptions: { diff --git a/frontend/e2e/vue.spec.ts b/frontend/e2e/vue.spec.ts index 9471698e..fd4797b7 100644 --- a/frontend/e2e/vue.spec.ts +++ b/frontend/e2e/vue.spec.ts @@ -1,8 +1,8 @@ -import { test, expect } from '@playwright/test'; +import { test, expect } from "@playwright/test"; // See here how to get started: // https://playwright.dev/docs/intro -test('visits the app root url', async ({ page }) => { - await page.goto('/'); - await expect(page.locator('h1')).toHaveText('You did it!'); +test("visits the app root url", async ({ page }) => { + await page.goto("/"); + await expect(page.locator("h1")).toHaveText("You did it!"); }); diff --git a/frontend/eslint.config.ts b/frontend/eslint.config.ts index 216bb5c1..9e68e9c0 100644 --- a/frontend/eslint.config.ts +++ b/frontend/eslint.config.ts @@ -1,12 +1,9 @@ -import pluginVue from 'eslint-plugin-vue'; -import { - defineConfigWithVueTs, - vueTsConfigs, -} from '@vue/eslint-config-typescript'; -import pluginVitest from '@vitest/eslint-plugin'; -import pluginPlaywright from 'eslint-plugin-playwright'; -import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'; -import rootConfig from '../eslint.config'; +import pluginVue from "eslint-plugin-vue"; +import { defineConfigWithVueTs, vueTsConfigs } from "@vue/eslint-config-typescript"; +import pluginVitest from "@vitest/eslint-plugin"; +import pluginPlaywright from "eslint-plugin-playwright"; +import skipFormatting from "@vue/eslint-config-prettier/skip-formatting"; +import rootConfig from "../eslint.config"; // To allow more languages other than `ts` in `.vue` files, uncomment the following lines: // Import { configureVueProject } from '@vue/eslint-config-typescript' @@ -15,31 +12,28 @@ import rootConfig from '../eslint.config'; const vueConfig = defineConfigWithVueTs( { - name: 'app/files-to-lint', - files: ['**/*.{ts,mts,tsx,vue}'], + name: "app/files-to-lint", + files: ["**/*.{ts,mts,tsx,vue}"], }, { - name: 'app/files-to-ignore', - ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], + name: "app/files-to-ignore", + ignores: ["**/dist/**", "**/dist-ssr/**", "**/coverage/**"], }, - pluginVue.configs['flat/essential'], + pluginVue.configs["flat/essential"], vueTsConfigs.recommended, { ...pluginVitest.configs.recommended, - files: ['src/**/__tests__/*'], + files: ["src/**/__tests__/*"], }, { - ...pluginPlaywright.configs['flat/recommended'], - files: ['e2e/**/*.{test,spec}.{js,ts,jsx,tsx}'], + ...pluginPlaywright.configs["flat/recommended"], + files: ["e2e/**/*.{test,spec}.{js,ts,jsx,tsx}"], }, - skipFormatting + skipFormatting, ); -export default [ - ...rootConfig, - ...vueConfig -] +export default [...rootConfig, ...vueConfig]; diff --git a/frontend/index.html b/frontend/index.html index a678cb53..3c1f2f07 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2,12 +2,21 @@ - - + + Vite App
- + diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index a6cfb499..06d60d89 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -1,5 +1,5 @@ -import process from 'node:process'; -import { defineConfig, devices } from '@playwright/test'; +import process from "node:process"; +import { defineConfig, devices } from "@playwright/test"; /** * Read environment variables from file. @@ -11,7 +11,7 @@ import { defineConfig, devices } from '@playwright/test'; * See https://playwright.dev/docs/test-configuration. */ export default defineConfig({ - testDir: './e2e', + testDir: "./e2e", /* Maximum time one test can run for. */ timeout: 30 * 1000, expect: { @@ -28,18 +28,16 @@ export default defineConfig({ /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', + reporter: "html", /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ actionTimeout: 0, /* Base URL to use in actions like `await page.goto('/')`. */ - baseURL: process.env.CI - ? 'http://localhost:4173' - : 'http://localhost:5173', + baseURL: process.env.CI ? "http://localhost:4173" : "http://localhost:5173", /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', + trace: "on-first-retry", /* Only on CI systems run the tests headless */ headless: Boolean(process.env.CI), @@ -48,21 +46,21 @@ export default defineConfig({ /* Configure projects for major browsers */ projects: [ { - name: 'chromium', + name: "chromium", use: { - ...devices['Desktop Chrome'], + ...devices["Desktop Chrome"], }, }, { - name: 'firefox', + name: "firefox", use: { - ...devices['Desktop Firefox'], + ...devices["Desktop Firefox"], }, }, { - name: 'webkit', + name: "webkit", use: { - ...devices['Desktop Safari'], + ...devices["Desktop Safari"], }, }, @@ -105,7 +103,7 @@ export default defineConfig({ * Use the preview server on CI for more realistic testing. * Playwright will re-use the local server if there is already a dev-server running. */ - command: process.env.CI ? 'npm run preview' : 'npm run dev', + command: process.env.CI ? "npm run preview" : "npm run dev", port: process.env.CI ? 4173 : 5173, reuseExistingServer: !process.env.CI, }, diff --git a/frontend/prettier.config.js b/frontend/prettier.config.js index 00145504..4bc9699b 100644 --- a/frontend/prettier.config.js +++ b/frontend/prettier.config.js @@ -2,10 +2,10 @@ * @type {import("prettier").Options} */ -const rootConfig = import ('../prettier.config.js'); +const rootConfig = import("../prettier.config.js"); export default { ...rootConfig, vueIndentScriptAndStyle: true, - singleAttributePerLine: true + singleAttributePerLine: true, }; diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index a558039c..7bb3e1c6 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -1,15 +1,15 @@ -import { fileURLToPath, URL } from 'node:url'; +import { fileURLToPath, URL } from "node:url"; -import { defineConfig } from 'vite'; -import vue from '@vitejs/plugin-vue'; -import vueDevTools from 'vite-plugin-vue-devtools'; +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import vueDevTools from "vite-plugin-vue-devtools"; // https://vite.dev/config/ export default defineConfig({ plugins: [vue(), vueDevTools()], resolve: { alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)), + "@": fileURLToPath(new URL("./src", import.meta.url)), }, }, }); diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts index 176ad62e..ba2d72b6 100644 --- a/frontend/vitest.config.ts +++ b/frontend/vitest.config.ts @@ -1,14 +1,14 @@ -import { fileURLToPath } from 'node:url'; -import { mergeConfig, defineConfig, configDefaults } from 'vitest/config'; -import viteConfig from './vite.config'; +import { fileURLToPath } from "node:url"; +import { mergeConfig, defineConfig, configDefaults } from "vitest/config"; +import viteConfig from "./vite.config"; export default mergeConfig( viteConfig, defineConfig({ test: { - environment: 'jsdom', - exclude: [...configDefaults.exclude, 'e2e/**'], - root: fileURLToPath(new URL('./', import.meta.url)), + environment: "jsdom", + exclude: [...configDefaults.exclude, "e2e/**"], + root: fileURLToPath(new URL("./", import.meta.url)), }, }), ); diff --git a/prettier.config.js b/prettier.config.js index f78ee017..8be1cdc4 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -10,4 +10,4 @@ export default { objectWrap: 'preserve', bracketSameLine: false, arrowParens: 'always', -} +}; From 50ccf00777583a92f60b3e61b74251d6f5a5f4ec Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 21:13:26 +0100 Subject: [PATCH 22/80] test: test lint-action (wordt gerevert) --- test.ts | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 test.ts diff --git a/test.ts b/test.ts new file mode 100644 index 00000000..c9da7bdd --- /dev/null +++ b/test.ts @@ -0,0 +1,9 @@ +async function test_Function() { + return 1+1; +} + +for (let index = 0; index < 100; index++) { + await test_Function(); + let a = "test"; +} + From 5ffaf090d0a2ac92444d8e80235806622cc07570 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Fri, 28 Feb 2025 20:14:38 +0000 Subject: [PATCH 23/80] style: fix linting issues met lint-action --- test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test.ts b/test.ts index c9da7bdd..5b6d755b 100644 --- a/test.ts +++ b/test.ts @@ -4,6 +4,6 @@ async function test_Function() { for (let index = 0; index < 100; index++) { await test_Function(); - let a = "test"; + const a = "test"; } From 6e0f527b1f9df07a8a57bbb314a4e2edaf4c8028 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Fri, 28 Feb 2025 20:14:41 +0000 Subject: [PATCH 24/80] style: fix linting issues met lint-action --- test.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test.ts b/test.ts index 5b6d755b..00b168ab 100644 --- a/test.ts +++ b/test.ts @@ -1,9 +1,8 @@ async function test_Function() { - return 1+1; + return 1 + 1; } for (let index = 0; index < 100; index++) { - await test_Function(); - const a = "test"; + await test_Function(); + const a = 'test'; } - From ccbdd9bce4ec4ab310e62d109256beeb8debfbbb Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 21:18:29 +0100 Subject: [PATCH 25/80] Revert "test: test lint-action (wordt gerevert)" This reverts commit 50ccf00777583a92f60b3e61b74251d6f5a5f4ec. --- test.ts | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 test.ts diff --git a/test.ts b/test.ts deleted file mode 100644 index 00b168ab..00000000 --- a/test.ts +++ /dev/null @@ -1,8 +0,0 @@ -async function test_Function() { - return 1 + 1; -} - -for (let index = 0; index < 100; index++) { - await test_Function(); - const a = 'test'; -} From e5e39e5cea07d6434ba0c3344aa6b0a45d9a9563 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Fri, 28 Feb 2025 21:26:58 +0100 Subject: [PATCH 26/80] chore: wordt enkel uitgevoerd in de dev branch --- .github/workflows/lint-action.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 98bfa848..5540fbad 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -4,6 +4,8 @@ on: # Trigger the workflow on push or pull request, # but only for the main branch push: + branches: + - dev # Replace pull_request with pull_request_target if you # plan to use this action with forks, see the Limitations section pull_request: From 66587a36bf5c6631874caf2d317052cbd7fd534b Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 23:22:35 +0100 Subject: [PATCH 27/80] fix: microorm: metedataerror & err module not found --- .../classes/class-join-request.entity.ts | 4 +-- .../src/entities/questions/answer.entity.ts | 4 +-- backend/src/mikro-orm.config.ts | 34 ++++++++++++++++--- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/backend/src/entities/classes/class-join-request.entity.ts b/backend/src/entities/classes/class-join-request.entity.ts index 00cb5185..9a883688 100644 --- a/backend/src/entities/classes/class-join-request.entity.ts +++ b/backend/src/entities/classes/class-join-request.entity.ts @@ -1,6 +1,6 @@ import { Entity, Enum, ManyToOne } from '@mikro-orm/core'; -import { Student } from '../users/student.entity'; -import { Class } from './class.entity'; +import { Student } from '../users/student.entity.js'; +import { Class } from './class.entity.js'; @Entity() export class ClassJoinRequest { diff --git a/backend/src/entities/questions/answer.entity.ts b/backend/src/entities/questions/answer.entity.ts index b15dce71..d07a78ca 100644 --- a/backend/src/entities/questions/answer.entity.ts +++ b/backend/src/entities/questions/answer.entity.ts @@ -1,6 +1,6 @@ import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'; -import { Question } from './question.entity'; -import { Teacher } from '../users/teacher.entity'; +import { Question } from './question.entity.js'; +import { Teacher } from '../users/teacher.entity.js'; @Entity() export class Answer { diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index da118827..6af867e9 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -3,15 +3,41 @@ import { PostgreSqlDriver } from '@mikro-orm/postgresql'; import { EnvVars, getEnvVar, getNumericEnvVar } from './util/envvars.js'; import { SqliteDriver } from '@mikro-orm/sqlite'; -const entities = ['dist/**/*.entity.js']; -const entitiesTs = ['src/**/*.entity.ts']; +// Import alle entity-bestanden handmatig +import { User } from './entities/users/user.entity.js'; +import { Student } from './entities/users/student.entity.js'; +import { Teacher } from './entities/users/teacher.entity.js'; + +import { Assignment } from './entities/assignments/assignment.entity.js'; +import { Group } from './entities/assignments/group.entity.js'; +import { Submission } from './entities/assignments/submission.entity.js'; + +import { Class } from './entities/classes/class.entity.js'; +import { ClassJoinRequest } from './entities/classes/class-join-request.entity.js'; +import { TeacherInvitation } from './entities/classes/teacher-invitation.entity.js'; + +import { Attachment } from './entities/content/attachment.entity.js'; +import { LearningObject } from './entities/content/learning-object.entity.js'; +import { LearningPath } from './entities/content/learning-path.entity.js'; + +import { Answer } from './entities/questions/answer.entity.js'; +import { Question } from './entities/questions/question.entity.js'; + +const entities = [ + User, Student, Teacher, + Assignment, Group, Submission, + Class, ClassJoinRequest, TeacherInvitation, + Attachment, LearningObject, LearningPath, + Answer, Question +]; + function config(testingMode: boolean = false): Options { if (testingMode) { return { driver: SqliteDriver, dbName: getEnvVar(EnvVars.DbName), entities: entities, - entitiesTs: entitiesTs, + // entitiesTs: entitiesTs, // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) @@ -26,7 +52,7 @@ function config(testingMode: boolean = false): Options { user: getEnvVar(EnvVars.DbUsername), password: getEnvVar(EnvVars.DbPassword), entities: entities, - entitiesTs: entitiesTs, + //entitiesTs: entitiesTs, debug: true, }; } From 80fa6b9f944857edcd4e1e8c304cba48f352cf11 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 23:41:09 +0100 Subject: [PATCH 28/80] feat: added home route --- backend/_i18n/de.yml | 17 ++++++++++++++ backend/_i18n/en.yml | 18 +++++++++++++++ backend/_i18n/fr.yml | 17 ++++++++++++++ backend/_i18n/nl.yml | 17 ++++++++++++++ backend/src/controllers/home.ts | 41 +++++++++++++++++++++++++++++++++ backend/src/routes/home.ts | 13 +++++++++++ 6 files changed, 123 insertions(+) create mode 100644 backend/src/controllers/home.ts create mode 100644 backend/src/routes/home.ts diff --git a/backend/_i18n/de.yml b/backend/_i18n/de.yml index 3356a9aa..54fe2206 100644 --- a/backend/_i18n/de.yml +++ b/backend/_i18n/de.yml @@ -1,5 +1,22 @@ # translate theme pages +strengths: + title: Unsere Stärken + innovative: Innovativ + research_based: Forschungsbasiert + inclusive: Inclusiv + socially_relevant: Gesellschaftlich relevant + innovative_text: Wir fügen ständig neue Projekte hinzu und gebrauchen neue Methoden für alle unsere Projekte. + research_based_text: Alle Lernpakete basieren auf fundierter wissenschaftlicher Forschung. + inclusive_text: Wir konzentrieren uns darauf, alle Kinder zu erreichen, mit besonderem Augenmerk auf die Geschlechterinklusion und die soziale Inklusion. + socially_relevant_text: Wir suchen Projekte, die zu aktuellen Ereignissen und gesellschaftlichen Themen passen. + summary: We develop innovative workshops and educational resources, and we provide them to students around the globe in collaboration with teachers and volunteers. Our train-the-trainer sessions enable them to bring our hands-on workshops to the students. + main: Wir fügen kontinuierlich neue Projekte und Methoden zu all unseren Projekten hinzu. Für diese Projekte suchen wir immer nach einem gesellschaftlich relevanten Thema. Darüber hinaus stellen wir sicher, dass unser didaktisches Material auf wissenschaftlicher Forschung basiert, und wir achten immer auf Inklusivität. + quote: + text: Du machst etwas Praktisches, du lernst mit Hardware zu arbeiten und du kannst etwas Neues schaffen. + name: Matthias und Bruno + affiliation: 4. Jahr der weiterführenden Schule + curricula_page: title: Unsere Unterrichtsthemen read_more: Lees meer diff --git a/backend/_i18n/en.yml b/backend/_i18n/en.yml index 60164f92..e9a8a48b 100644 --- a/backend/_i18n/en.yml +++ b/backend/_i18n/en.yml @@ -1,5 +1,23 @@ # translate theme pages +strengths: + title: Our strengths + innovative: Innovative + research_based: Research-based + inclusive: Inclusive + socially_relevant: Socially relevant + innovative_text: We continuously add new projects and apply new methodologies in our projects. + research_based_text: All learning materials of Dwengo are based on profound scientific research. + inclusive_text: We target all children, making gender inclusion and accessibility for disadvantaged children a priority. + socially_relevant_text: We look for projects that fit current events and are socially relevant. + summary: We develop innovative workshops and educational resources, and we provide them to students around the globe in collaboration with teachers and volunteers. Our train-the-trainer sessions enable them to bring our hands-on workshops to the students. + main: We continuously add new projects and methodologies to all our projects. For these projects, we always look for a socially relevant theme. Additionally, we ensure that our didactic material is based on scientific research and always keep an eye on inclusivity. + quote: + text: You make something practical, learn how to use the hardware and create something new. + name: Matthias and Bruno + affiliation: Grade 10 + + curricula_page: title: Our teaching topics read_more: Read more diff --git a/backend/_i18n/fr.yml b/backend/_i18n/fr.yml index 577388fc..dd8f74cf 100644 --- a/backend/_i18n/fr.yml +++ b/backend/_i18n/fr.yml @@ -1,5 +1,22 @@ # translate theme pages +strengths: + title: Nos atouts + innovative: Innovatif + research_based: Fondé sur la recherche + inclusive: Inclusif + socially_relevant: Socialement pertinent + innovative_text: On ajoute fréquemment de nouveaux projets et utilise de nouvelles méthodologies dans les projets. + research_based_text: Tout le matériel de cours de Dwengo ASBL est fondé sur la recherche scientifique profonde. + inclusive_text: On se concentre à atteindre tous les enfants avec une attention particulière pour l'égalite de genre et l'inclusion sociale. + socially_relevant_text: Nous recherchons des projects qui s'inscrivent dans l'actualité et les thèmes sociaux. + summary: Nous développons des ateliers innovants et des ressources éducatives, et nous les fournissons aux étudiants du monde entier en collaboration avec les enseignants et les bénévoles.Nos séances de train-Trainer leur permettent d'amener nos ateliers pratiques aux étudiants. + main: Nous ajoutons toujours de nouveaux projets et méthodologies à tous nos projets.Nous recherchons toujours un thème socialement pertinent pour ces projets.De plus, nous nous assurons toujours que notre matériel didactique est basé sur la recherche scientifique et nous gardons également un œil sur l'inclusivité. + quote: + text: Vous faites quelque chose de pratique, vous apprenez à travailler avec du matériel et vous pouvez exécuter quelque chose de nouveau Cre & Euml; + name: Matthias en Bruno + affiliation: 4e milieu + curricula_page: title: Notre sujets d'enseignement read_more: "Lees meer" diff --git a/backend/_i18n/nl.yml b/backend/_i18n/nl.yml index 98fc0beb..c72b0372 100644 --- a/backend/_i18n/nl.yml +++ b/backend/_i18n/nl.yml @@ -1,5 +1,22 @@ # translate theme pages +strengths: + title: Verrijk je lessen met AI en robotica! + innovative: Innovatief + research_based: Onderzoeksgedreven + inclusive: Inclusief + socially_relevant: Maatschappelijk relevant + innovative_text: We voegen steeds nieuwe projecten en methodieken toe aan onze projecten. + research_based_text: Alle lespakketten van Dwengo vzw zijn gebaseerd op gedegen wetenschappelijk onderzoek. + inclusive_text: We richten ons op alle kinderen en jongeren met een specifieke aandacht voor het evenwicht tussen meisjes en jongens en leerlingen uit kansengroepen. + socially_relevant_text: We zoeken projecten uit die passen binnen de actualiteit en maatschappelijke thema's. + summary: "" + main: Al onze pakketten zijn gebruiksvriendelijk, maatschappelijk relevant, wetenschappelijk onderbouwd, én inclusief. Leerkrachten over de hele wereld gingen hiermee reeds aan de slag. Jij ook? Verken de lesthema's op onze website! + quote: + text: Je maakt iets praktisch, je leert werken met hardware en je kan zelf iets nieuws creëren. + name: Matthias en Bruno + affiliation: 4e middelbaar + curricula_page: title: Onze lesthema's read_more: Lees meer diff --git a/backend/src/controllers/home.ts b/backend/src/controllers/home.ts new file mode 100644 index 00000000..6324b854 --- /dev/null +++ b/backend/src/controllers/home.ts @@ -0,0 +1,41 @@ +import { Request, Response } from 'express'; +import { loadTranslations } from '../util/translationHelper.js'; + +const BASE_IMAGE_URL = "https://www.dwengo.org/images/strengths/"; + +interface Translation { + strengths: { + title: string; + innovative: string; + research_based: string; + inclusive: string; + socially_relevant: string; + main: string; + }; +} + +export function getHomeScreenData(req: Request, res: Response): void { + try { + const language = (req.query.language as string) || 'nl'; + const translations = loadTranslations(language); + + const strengths = [ + { key: "innovative", image: "value-innovation.png" }, + { key: "research_based", image: "value-research.png" }, + { key: "inclusive", image: "value-inclusion.png" }, + { key: "socially_relevant", image: "value-society.png" }, + ].map(({ key, image }) => ({ + title: translations.strengths[key as keyof Translation["strengths"]], + image: `${BASE_IMAGE_URL}${image}` + })); + + res.json({ + title: translations.strengths.title, + description: translations.strengths.main, + strengths + }); + } catch (error) { + console.error("❌ Error getting data for homescreen:", error); + res.status(500).json({ error: "Internal server error" }); + } +} diff --git a/backend/src/routes/home.ts b/backend/src/routes/home.ts new file mode 100644 index 00000000..89e5c8bc --- /dev/null +++ b/backend/src/routes/home.ts @@ -0,0 +1,13 @@ +import express from 'express'; +import { getHomeScreenData } from '../controllers/home.js'; + +const router = express.Router(); + +/** + * @route GET /api/home + * @query {string} language - Taalcode (bijv. 'nl' of 'fr') + * @returns JSON object with homepage data (strengths) + */ +router.get('/', getHomeScreenData); + +export default router; From a8f6f5f7769a6340576388eeb611e34bd4ed225a Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Fri, 28 Feb 2025 23:59:04 +0100 Subject: [PATCH 29/80] fix: util translation helper --- backend/src/app.ts | 4 ++++ backend/src/controllers/themes.ts | 26 +++----------------------- backend/src/routes/home.ts | 2 ++ backend/src/util/translationHelper.ts | 18 ++++++++++++++++++ 4 files changed, 27 insertions(+), 23 deletions(-) create mode 100644 backend/src/util/translationHelper.ts diff --git a/backend/src/app.ts b/backend/src/app.ts index b0f7afa2..b0a889a6 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -12,6 +12,8 @@ import classRouter from './routes/class'; import questionRouter from './routes/question'; import loginRouter from './routes/login'; +import homeRouter from './routes/home.js'; + const app: Express = express(); const port: string | number = getNumericEnvVar(EnvVars.Port); @@ -33,6 +35,8 @@ app.use('/login', loginRouter); app.use('/theme', themeRoutes); +app.use('/home', homeRouter); + async function startServer() { await initORM(); diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 442eb982..99fed54d 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -1,39 +1,19 @@ -import fs from 'fs'; -import path from 'path'; -import yaml from 'js-yaml'; import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; +import { loadTranslations } from "../util/translationHelper.js"; interface Translations { curricula_page: { - [key: string]: { title: string; description?: string }; // Optioneel veld description + [key: string]: { title: string; description?: string }; }; } -/** - * Laadt de vertalingen uit een YAML-bestand - */ -function loadTranslations(language: string): Translations { - try { - const filePath = path.join(process.cwd(), '_i18n', `${language}.yml`); - const yamlFile = fs.readFileSync(filePath, 'utf8'); - return yaml.load(yamlFile) as Translations; - } catch (error) { - console.error( - `Kan vertaling niet laden voor ${language}, fallback naar Nederlands` - ); - console.error(error); - const fallbackPath = path.join(process.cwd(), '_i18n', 'nl.yml'); - return yaml.load(fs.readFileSync(fallbackPath, 'utf8')) as Translations; - } -} - /** * GET /themes → Haalt de lijst met thema's op inclusief vertalingen */ export function getThemes(req: Request, res: Response) { const language = (req.query.language as string)?.toLowerCase() || 'nl'; - const translations = loadTranslations(language); + const translations = loadTranslations(language); const themeList = themes.map((theme) => { return { diff --git a/backend/src/routes/home.ts b/backend/src/routes/home.ts index 89e5c8bc..19dc8b38 100644 --- a/backend/src/routes/home.ts +++ b/backend/src/routes/home.ts @@ -7,6 +7,8 @@ const router = express.Router(); * @route GET /api/home * @query {string} language - Taalcode (bijv. 'nl' of 'fr') * @returns JSON object with homepage data (strengths) + * @example http://localhost:3000/home + * {title, description, strengths: {title, image}} */ router.get('/', getHomeScreenData); diff --git a/backend/src/util/translationHelper.ts b/backend/src/util/translationHelper.ts new file mode 100644 index 00000000..8bc4d7ca --- /dev/null +++ b/backend/src/util/translationHelper.ts @@ -0,0 +1,18 @@ +import fs from 'fs'; +import path from 'path'; +import yaml from 'js-yaml'; + +export function loadTranslations(language: string): T { + try { + const filePath = path.join(process.cwd(), '_i18n', `${language}.yml`); + const yamlFile = fs.readFileSync(filePath, 'utf8'); + return yaml.load(yamlFile) as T; + } catch (error) { + console.error( + `Cannot load translation for ${language}, fallen back to dutch` + ); + console.error(error); + const fallbackPath = path.join(process.cwd(), '_i18n', 'nl.yml'); + return yaml.load(fs.readFileSync(fallbackPath, 'utf8')) as T; + } +} From 9aa0b25c73c84593127311b4e1d84071dfe32f41 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Sat, 1 Mar 2025 11:07:07 +0100 Subject: [PATCH 30/80] chore: update commit message van lint-action lint-action commits zeggen nu welke linter de aanpassingen heeft gemaakt --- .github/workflows/lint-action.yml | 66 +++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 5540fbad..e0f24ba9 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -1,45 +1,45 @@ name: Lint on: - # Trigger the workflow on push or pull request, - # but only for the main branch - push: - branches: - - dev - # Replace pull_request with pull_request_target if you - # plan to use this action with forks, see the Limitations section - pull_request: - branches: - - dev + # Trigger the workflow on push or pull request, + # but only for the main branch + push: + branches: + - dev + # Replace pull_request with pull_request_target if you + # plan to use this action with forks, see the Limitations section + pull_request: + branches: + - dev # Down scope as necessary via https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token permissions: - checks: write - contents: write + checks: write + contents: write jobs: - run-linters: - name: Run linters - runs-on: [self-hosted, Linux, X64] + run-linters: + name: Run linters + runs-on: [self-hosted, Linux, X64] - steps: - - name: Check out Git repository - uses: actions/checkout@v4 + steps: + - name: Check out Git repository + uses: actions/checkout@v4 - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 - # ESLint and Prettier must be in `package.json` - - name: Install Node.js dependencies - run: npm ci + # ESLint and Prettier must be in `package.json` + - name: Install Node.js dependencies + run: npm ci - - name: Run linters - uses: rkuykendall/lint-action@master - with: - auto_fix: true - eslint: true - eslint_args: "--config eslint.config.ts" - prettier: true - commit_message: "style: fix linting issues met lint-action" \ No newline at end of file + - name: Run linters + uses: rkuykendall/lint-action@master + with: + auto_fix: true + eslint: true + eslint_args: '--config eslint.config.ts' + prettier: true + commit_message: 'style: fix linting issues met ${linter}' From 81bbe84dfd3802b9c95e3b13a7ac47204d40f512 Mon Sep 17 00:00:00 2001 From: Timo De Meyst Date: Sat, 1 Mar 2025 11:32:58 +0100 Subject: [PATCH 31/80] fix: update package-lock.json --- package-lock.json | 4002 ++++++++++++++++----------------------------- 1 file changed, 1388 insertions(+), 2614 deletions(-) diff --git a/package-lock.json b/package-lock.json index 65b94c8d..2cbd1995 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,11 +36,11 @@ "@mikro-orm/postgresql": "6.4.6", "@mikro-orm/reflection": "6.4.6", "@mikro-orm/sqlite": "6.4.6", + "@types/js-yaml": "^4.0.9", "dotenv": "^16.4.7", "express": "^5.0.1", - "uuid": "^11.1.0", "js-yaml": "^4.1.0", - "@types/js-yaml": "^4.0.9", + "uuid": "^11.1.0" }, "devDependencies": { "@mikro-orm/cli": "^6.4.6", @@ -53,27 +53,210 @@ "vitest": "^3.0.6" } }, - "backend/node_modules/@mikro-orm/sqlite": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@mikro-orm/sqlite/-/sqlite-6.4.6.tgz", - "integrity": "sha512-BvoLd6qge2N4P2w9yjPP8+Ya5dxxnZrS6W3B2xm0m8BUesWnaCg2pmGXQpzFjrpYMg40mZ+RJWRTPq4M2Nl4lw==", + "backend/node_modules/accepts": { + "version": "2.0.0", + "license": "MIT", "dependencies": { - "@mikro-orm/knex": "6.4.6", - "fs-extra": "11.3.0", - "sqlite3": "5.1.7", - "sqlstring-sqlite": "0.1.1" + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 0.6" + } + }, + "backend/node_modules/body-parser": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.5.2", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" }, - "peerDependencies": { - "@mikro-orm/core": "^6.0.0" + "engines": { + "node": ">=18" + } + }, + "backend/node_modules/body-parser/node_modules/qs": { + "version": "6.14.0", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "backend/node_modules/bytes": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "backend/node_modules/content-disposition": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "backend/node_modules/content-type": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "backend/node_modules/cookie": { + "version": "0.7.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "backend/node_modules/cookie-signature": { + "version": "1.2.2", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "backend/node_modules/depd": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "backend/node_modules/encodeurl": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "backend/node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "backend/node_modules/etag": { + "version": "1.8.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "backend/node_modules/express": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.0.1", + "content-disposition": "^1.0.0", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "^1.2.1", + "debug": "4.3.6", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "^2.0.0", + "fresh": "2.0.0", + "http-errors": "2.0.0", + "merge-descriptors": "^2.0.0", + "methods": "~1.1.2", + "mime-types": "^3.0.0", + "on-finished": "2.4.1", + "once": "1.4.0", + "parseurl": "~1.3.3", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "router": "^2.0.0", + "safe-buffer": "5.2.1", + "send": "^1.1.0", + "serve-static": "^2.1.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "^2.0.0", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "backend/node_modules/express/node_modules/debug": { + "version": "4.3.6", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "backend/node_modules/finalhandler": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "backend/node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "backend/node_modules/finalhandler/node_modules/encodeurl": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "backend/node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "backend/node_modules/fresh": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, "backend/node_modules/globals": { "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", "dev": true, "license": "MIT", "engines": { @@ -83,6 +266,75 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "backend/node_modules/http-errors": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "backend/node_modules/iconv-lite": { + "version": "0.5.2", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "backend/node_modules/merge-descriptors": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "backend/node_modules/methods": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "backend/node_modules/mime-db": { + "version": "1.53.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "backend/node_modules/mime-types": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "mime-db": "^1.53.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "backend/node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "backend/node_modules/negotiator": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "frontend": { "name": "dwengo-1-frontend", "version": "0.0.1", @@ -114,12 +366,368 @@ "vue-tsc": "^2.2.2" } }, + "frontend/node_modules/agent-base": { + "version": "7.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "frontend/node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "frontend/node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "frontend/node_modules/cssstyle": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^2.8.2", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "frontend/node_modules/data-urls": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "frontend/node_modules/decimal.js": { + "version": "10.5.0", + "dev": true, + "license": "MIT" + }, + "frontend/node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "frontend/node_modules/dunder-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/es-define-property": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/es-errors": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/es-object-atoms": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/es-set-tostringtag": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/eslint-plugin-playwright": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "workspaces": [ + "examples" + ], + "dependencies": { + "globals": "^13.23.0" + }, + "engines": { + "node": ">=16.6.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } + }, + "frontend/node_modules/form-data": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "frontend/node_modules/get-intrinsic": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "frontend/node_modules/get-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/globals": { + "version": "13.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "frontend/node_modules/gopd": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "frontend/node_modules/has-symbols": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "frontend/node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "frontend/node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "frontend/node_modules/http-proxy-agent": { + "version": "7.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "frontend/node_modules/https-proxy-agent": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "frontend/node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "frontend/node_modules/jsdom": { + "version": "26.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.1", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "frontend/node_modules/jsdom/node_modules/xml-name-validator": { + "version": "5.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "frontend/node_modules/math-intrinsics": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "frontend/node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "frontend/node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -133,7 +741,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -144,31 +751,15 @@ "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@asamuzakjp/css-color": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz", - "integrity": "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "lru-cache": "^10.4.3" - } - }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", @@ -183,7 +774,6 @@ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -193,7 +783,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", @@ -224,7 +813,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -234,7 +822,6 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.26.9", "@babel/types": "^7.26.9", @@ -251,7 +838,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -262,7 +848,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.25.9" }, @@ -275,7 +860,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", @@ -292,7 +876,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -302,17 +885,21 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-member-expression-to-functions": "^7.25.9", @@ -334,7 +921,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -344,7 +930,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -358,7 +943,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -372,7 +956,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", @@ -390,7 +973,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.25.9" }, @@ -403,7 +985,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -413,7 +994,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", @@ -431,7 +1011,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -444,7 +1023,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -453,7 +1031,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -463,7 +1040,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -473,7 +1049,6 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.26.9", "@babel/types": "^7.26.9" @@ -486,7 +1061,6 @@ "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "license": "MIT", "dependencies": { "@babel/types": "^7.26.9" }, @@ -502,7 +1076,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9", @@ -520,7 +1093,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -536,7 +1108,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -552,7 +1123,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -565,7 +1135,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -581,7 +1150,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -597,7 +1165,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz", "integrity": "sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-create-class-features-plugin": "^7.25.9", @@ -617,7 +1184,6 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/parser": "^7.26.9", @@ -632,7 +1198,6 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.9", @@ -651,7 +1216,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -660,7 +1224,6 @@ "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -674,7 +1237,6 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -682,121 +1244,6 @@ "node": ">=12" } }, - "node_modules/@csstools/color-helpers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", - "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.1.tgz", - "integrity": "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz", - "integrity": "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", @@ -805,7 +1252,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "aix" @@ -822,7 +1268,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -839,7 +1284,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -856,7 +1300,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -873,7 +1316,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -890,7 +1332,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -907,7 +1348,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -924,7 +1364,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -941,7 +1380,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -958,7 +1396,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -975,7 +1412,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -992,7 +1428,6 @@ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1009,7 +1444,6 @@ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1026,7 +1460,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1043,7 +1476,6 @@ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1060,7 +1492,6 @@ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1077,7 +1508,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1094,7 +1524,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -1111,7 +1540,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -1128,7 +1556,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -1145,7 +1572,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -1162,7 +1588,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" @@ -1179,7 +1604,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -1196,7 +1620,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -1213,7 +1636,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -1227,7 +1649,6 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -1246,17 +1667,15 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/compat": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.6.tgz", - "integrity": "sha512-k7HNCqApoDHM6XzT30zGoETj+D+uUcZUb+IVAJmar3u6bvHf7hhHJcWx09QHj4/a2qrKZMWU0E16tvkiAdv06Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.7.tgz", + "integrity": "sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1274,7 +1693,6 @@ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", @@ -1289,7 +1707,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1300,7 +1717,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1309,11 +1725,10 @@ } }, "node_modules/@eslint/core": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", - "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -1322,11 +1737,10 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1350,7 +1764,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1361,7 +1774,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1370,11 +1782,10 @@ } }, "node_modules/@eslint/js": { - "version": "9.20.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", - "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", + "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -1384,19 +1795,17 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.6.tgz", - "integrity": "sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.11.0", + "@eslint/core": "^0.12.0", "levn": "^0.4.1" }, "engines": { @@ -1414,7 +1823,6 @@ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -1424,7 +1832,6 @@ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" @@ -1438,7 +1845,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -1452,7 +1858,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -1466,7 +1871,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -1479,7 +1883,6 @@ "version": "10.0.5", "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.5.tgz", "integrity": "sha512-F3snDTQs0MdvnnyzTDTVkOYVAZOE/MHwRvF7mn7Jw1yuih4NrFYLNYIymGlLmq4HU2iIdzYsZ7f47bOcwY73XQ==", - "license": "MIT", "dependencies": { "@intlify/message-compiler": "10.0.5", "@intlify/shared": "10.0.5" @@ -1495,7 +1898,6 @@ "version": "10.0.5", "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.5.tgz", "integrity": "sha512-6GT1BJ852gZ0gItNZN2krX5QAmea+cmdjMvsWohArAZ3GmHdnNANEcF9JjPXAMRtQ6Ux5E269ymamg/+WU6tQA==", - "license": "MIT", "dependencies": { "@intlify/shared": "10.0.5", "source-map-js": "^1.0.2" @@ -1511,7 +1913,6 @@ "version": "10.0.5", "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.5.tgz", "integrity": "sha512-bmsP4L2HqBF6i6uaMqJMcFBONVjKt+siGluRq4Ca4C0q7W2eMaVZr8iCgF9dKbcVXutftkC7D6z2SaSMmLiDyA==", - "license": "MIT", "engines": { "node": ">= 16" }, @@ -1524,7 +1925,6 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -1537,97 +1937,11 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@jercle/yargonaut": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@jercle/yargonaut/-/yargonaut-1.1.5.tgz", "integrity": "sha512-zBp2myVvBHp1UaJsNTyS6q4UDKT7eRiqTS4oNTS6VQMd6mpxYOdbeK4pY279cDCdakGy6hG0J3ejoXZVsPwHqw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.2", "figlet": "^1.5.2", @@ -1639,7 +1953,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1654,7 +1967,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1665,7 +1977,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -1675,7 +1986,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -1683,30 +1993,27 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "node_modules/@mikro-orm/cli": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-6.4.6.tgz", - "integrity": "sha512-sTMoDSJrnHZBT+ZAG40OeZwR9zRTYHtaaub9OoMM2CrxfI1KeiNqL/XFB4LaM5SVRAbnoEFpMJwQ8KS+5NcN9w==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-6.4.7.tgz", + "integrity": "sha512-jaEm8olUP7h/kz4AZyu21TJ8P1qAGgdyvFYG+J5eGAtPsdMN8ZMQJJy2m6DZcHNbuyllCVdzp3XT6MAzG+uwMw==", "dev": true, - "license": "MIT", "dependencies": { "@jercle/yargonaut": "1.1.5", - "@mikro-orm/core": "6.4.6", - "@mikro-orm/knex": "6.4.6", + "@mikro-orm/core": "6.4.7", + "@mikro-orm/knex": "6.4.7", "fs-extra": "11.3.0", "tsconfig-paths": "4.2.0", "yargs": "17.7.2" @@ -1719,11 +2026,40 @@ "node": ">= 18.12.0" } }, + "node_modules/@mikro-orm/cli/node_modules/@mikro-orm/core": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.7.tgz", + "integrity": "sha512-ZePm7IRpW6/tGC6axCezI1/5YA3+MiDsbEj5KHgXDIxzHnftVfL3nbYlPlr0pW/UQSL5QcRqXxHIQz4P2OlFhg==", + "dev": true, + "dependencies": { + "dataloader": "2.2.3", + "dotenv": "16.4.7", + "esprima": "4.0.1", + "fs-extra": "11.3.0", + "globby": "11.1.0", + "mikro-orm": "6.4.7", + "reflect-metadata": "0.2.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/b4nan" + } + }, + "node_modules/@mikro-orm/cli/node_modules/mikro-orm": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.7.tgz", + "integrity": "sha512-lRB92yekDcdQEHloNY9LWfNLyKd3WajxPSe3jBvyVR9gMIO7YsjhqxL0mYvoQi8MQzXcUTi1EkWG05IM3gidIw==", + "dev": true, + "engines": { + "node": ">= 18.12.0" + } + }, "node_modules/@mikro-orm/core": { "version": "6.4.6", "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.6.tgz", "integrity": "sha512-xVm/ALG/3vTMgh6SrvojJ6jjMa0s2hNzWN0triDB16BaNdLwWE4aAaAe+3CuoMFqJAArSOUISTEjExbzELB1ZA==", - "license": "MIT", "dependencies": { "dataloader": "2.2.3", "dotenv": "16.4.7", @@ -1741,10 +2077,10 @@ } }, "node_modules/@mikro-orm/knex": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.6.tgz", - "integrity": "sha512-o6t67tFH/GuPZCCEtKbTTL8HDXNgB2ITjButCTZLwteL0qI9yE/f7K6K+dEUKW+hAL3KRvc2BQeumvCVWFeISg==", - "license": "MIT", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.7.tgz", + "integrity": "sha512-IH2imlCzEzPyjMGmAn/9yEP4wRxKHczCiPfI7GWAVI2dRToox1MFpQzBW1x/m+3Dvwz8jXVakHVANN7KPZBi5w==", + "dev": true, "dependencies": { "fs-extra": "11.3.0", "knex": "3.1.0", @@ -1775,7 +2111,6 @@ "version": "6.4.6", "resolved": "https://registry.npmjs.org/@mikro-orm/postgresql/-/postgresql-6.4.6.tgz", "integrity": "sha512-ZcuGp6n/SPzkHPANksjdLPyeu6jT7WCg3ueNViVrxdsguCi+/grz4I+hbOQDXV8uNHCAUOw6+WP2ndcVEYkZZQ==", - "license": "MIT", "dependencies": { "@mikro-orm/knex": "6.4.6", "pg": "8.13.2", @@ -1790,11 +2125,40 @@ "@mikro-orm/core": "^6.0.0" } }, + "node_modules/@mikro-orm/postgresql/node_modules/@mikro-orm/knex": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.6.tgz", + "integrity": "sha512-o6t67tFH/GuPZCCEtKbTTL8HDXNgB2ITjButCTZLwteL0qI9yE/f7K6K+dEUKW+hAL3KRvc2BQeumvCVWFeISg==", + "dependencies": { + "fs-extra": "11.3.0", + "knex": "3.1.0", + "sqlstring": "2.3.3" + }, + "engines": { + "node": ">= 18.12.0" + }, + "peerDependencies": { + "@mikro-orm/core": "^6.0.0", + "better-sqlite3": "*", + "libsql": "*", + "mariadb": "*" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "libsql": { + "optional": true + }, + "mariadb": { + "optional": true + } + } + }, "node_modules/@mikro-orm/reflection": { "version": "6.4.6", "resolved": "https://registry.npmjs.org/@mikro-orm/reflection/-/reflection-6.4.6.tgz", "integrity": "sha512-7mL7HFVnaOOhDNgLjjndWyeJUtOl2wKn0spSqB8uRjS4XtwNEGVZNkW5YD1t/x7TJ99wUhe+oRDiySciiJSeBQ==", - "license": "MIT", "dependencies": { "globby": "11.1.0", "ts-morph": "25.0.1" @@ -1806,11 +2170,57 @@ "@mikro-orm/core": "^6.0.0" } }, + "node_modules/@mikro-orm/sqlite": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mikro-orm/sqlite/-/sqlite-6.4.6.tgz", + "integrity": "sha512-BvoLd6qge2N4P2w9yjPP8+Ya5dxxnZrS6W3B2xm0m8BUesWnaCg2pmGXQpzFjrpYMg40mZ+RJWRTPq4M2Nl4lw==", + "dependencies": { + "@mikro-orm/knex": "6.4.6", + "fs-extra": "11.3.0", + "sqlite3": "5.1.7", + "sqlstring-sqlite": "0.1.1" + }, + "engines": { + "node": ">= 18.12.0" + }, + "peerDependencies": { + "@mikro-orm/core": "^6.0.0" + } + }, + "node_modules/@mikro-orm/sqlite/node_modules/@mikro-orm/knex": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.6.tgz", + "integrity": "sha512-o6t67tFH/GuPZCCEtKbTTL8HDXNgB2ITjButCTZLwteL0qI9yE/f7K6K+dEUKW+hAL3KRvc2BQeumvCVWFeISg==", + "dependencies": { + "fs-extra": "11.3.0", + "knex": "3.1.0", + "sqlstring": "2.3.3" + }, + "engines": { + "node": ">= 18.12.0" + }, + "peerDependencies": { + "@mikro-orm/core": "^6.0.0", + "better-sqlite3": "*", + "libsql": "*", + "mariadb": "*" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "libsql": { + "optional": true + }, + "mariadb": { + "optional": true + } + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1823,7 +2233,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", "engines": { "node": ">= 8" } @@ -1832,7 +2241,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1869,15 +2277,13 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -1888,7 +2294,6 @@ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -1901,7 +2306,6 @@ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.50.1.tgz", "integrity": "sha512-Jii3aBg+CEDpgnuDxEp/h7BimHcUTDlpEtce89xEumlJ5ef2hqepZ+PWp1DDpYC/VO9fmWVI1IlEaoI5fK9FXQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "playwright": "1.50.1" }, @@ -1916,15 +2320,13 @@ "version": "1.0.0-next.28", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@rollup/pluginutils": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -1942,19 +2344,11 @@ } } }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, "node_modules/@rollup/pluginutils/node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -1963,266 +2357,247 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", - "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz", + "integrity": "sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", - "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz", + "integrity": "sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", - "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", + "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", - "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", + "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", - "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz", + "integrity": "sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", - "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz", + "integrity": "sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", - "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz", + "integrity": "sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", - "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz", + "integrity": "sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", - "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", + "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", - "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", + "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", - "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz", + "integrity": "sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", - "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz", + "integrity": "sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", - "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz", + "integrity": "sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", - "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz", + "integrity": "sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", - "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", + "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", - "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", + "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", - "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", + "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", - "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz", + "integrity": "sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", - "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", + "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -2232,15 +2607,13 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@sindresorhus/merge-streams": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -2261,7 +2634,6 @@ "version": "0.26.1", "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.26.1.tgz", "integrity": "sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==", - "license": "MIT", "dependencies": { "fast-glob": "^3.3.2", "minimatch": "^9.0.4", @@ -2272,43 +2644,37 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@tsconfig/node22": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.0.tgz", "integrity": "sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, - "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -2319,7 +2685,6 @@ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2328,22 +2693,19 @@ "version": "6.11.3", "resolved": "https://registry.npmjs.org/@types/eslint-config-prettier/-/eslint-config-prettier-6.11.3.tgz", "integrity": "sha512-3wXCiM8croUnhg9LdtZUJQwNcQYGWxxdOWDjPe1ykCqJFPVpzAKfs/2dgSoCtAvdPeaponcWPI7mPcGGp9dkKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/express": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^5.0.0", @@ -2356,7 +2718,6 @@ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -2368,21 +2729,18 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/js-yaml": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", - "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", - "license": "MIT" + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==" }, "node_modules/@types/jsdom": { "version": "21.1.7", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", @@ -2393,22 +2751,19 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/node": { - "version": "22.13.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", - "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", + "version": "22.13.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.8.tgz", + "integrity": "sha512-G3EfaZS+iOGYWLLRCEAXdWK9my08oHNZ+FHluRiggIYJPOXzhOiDgpVCUHaUvyIC5/fj7C/p637jdzC666AOKQ==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~6.20.0" } @@ -2417,22 +2772,19 @@ "version": "6.9.18", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, - "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -2443,7 +2795,6 @@ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, - "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", @@ -2454,21 +2805,19 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", - "integrity": "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz", + "integrity": "sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/type-utils": "8.24.1", - "@typescript-eslint/utils": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/type-utils": "8.25.0", + "@typescript-eslint/utils": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2488,16 +2837,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz", - "integrity": "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.25.0.tgz", + "integrity": "sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/typescript-estree": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/typescript-estree": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "debug": "^4.3.4" }, "engines": { @@ -2513,14 +2861,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", - "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", + "integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1" + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2531,14 +2878,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz", - "integrity": "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz", + "integrity": "sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.24.1", - "@typescript-eslint/utils": "8.24.1", + "@typescript-eslint/typescript-estree": "8.25.0", + "@typescript-eslint/utils": "8.25.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -2555,11 +2901,10 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", - "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", + "integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -2569,14 +2914,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", - "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", + "integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/visitor-keys": "8.24.1", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2596,16 +2940,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz", - "integrity": "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz", + "integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.24.1", - "@typescript-eslint/types": "8.24.1", - "@typescript-eslint/typescript-estree": "8.24.1" + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/typescript-estree": "8.25.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2620,13 +2963,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", - "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", + "integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/types": "8.25.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2642,7 +2984,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -2655,7 +2996,6 @@ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", "dev": true, - "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" }, @@ -2669,7 +3009,6 @@ "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.1.31.tgz", "integrity": "sha512-xlsLr+e+AXZ/00eVZCtNmMeCJoJaRCoLDiAgLcxgQjSS1EertieB2MUHf8xIqPKs9lECc/UpL+y1xDcpvi02hw==", "dev": true, - "license": "MIT", "peerDependencies": { "@typescript-eslint/utils": ">= 8.0", "eslint": ">= 8.57.0", @@ -2686,14 +3025,13 @@ } }, "node_modules/@vitest/expect": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.6.tgz", - "integrity": "sha512-zBduHf/ja7/QRX4HdP1DSq5XrPgdN+jzLOwaTq/0qZjYfgETNFCKf9nOAp2j3hmom3oTbczuUzrzg9Hafh7hNg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.7.tgz", + "integrity": "sha512-QP25f+YJhzPfHrHfYHtvRn+uvkCFCqFtW9CktfBxmB+25QqWsx7VB2As6f4GmwllHLDhXNHvqedwhvMmSnNmjw==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/spy": "3.0.6", - "@vitest/utils": "3.0.6", + "@vitest/spy": "3.0.7", + "@vitest/utils": "3.0.7", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" }, @@ -2702,13 +3040,12 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.6.tgz", - "integrity": "sha512-KPztr4/tn7qDGZfqlSPQoF2VgJcKxnDNhmfR3VgZ6Fy1bO8T9Fc1stUiTXtqz0yG24VpD00pZP5f8EOFknjNuQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.7.tgz", + "integrity": "sha512-qui+3BLz9Eonx4EAuR/i+QlCX6AUZ35taDQgwGkK/Tw6/WgwodSrjN1X2xf69IA/643ZX5zNKIn2svvtZDrs4w==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/spy": "3.0.6", + "@vitest/spy": "3.0.7", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, @@ -2728,12 +3065,20 @@ } } }, - "node_modules/@vitest/pretty-format": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.6.tgz", - "integrity": "sha512-Zyctv3dbNL+67qtHfRnUE/k8qxduOamRfAL1BurEIQSyOEFffoMvx2pnDSSbKAAVxY0Ej2J/GH2dQKI0W2JyVg==", + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.7.tgz", + "integrity": "sha512-CiRY0BViD/V8uwuEzz9Yapyao+M9M008/9oMOSQydwbwb+CMokEq3XVaF3XK/VWaOK0Jm9z7ENhybg70Gtxsmg==", "dev": true, - "license": "MIT", "dependencies": { "tinyrainbow": "^2.0.0" }, @@ -2742,13 +3087,12 @@ } }, "node_modules/@vitest/runner": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.6.tgz", - "integrity": "sha512-JopP4m/jGoaG1+CBqubV/5VMbi7L+NQCJTu1J1Pf6YaUbk7bZtaq5CX7p+8sY64Sjn1UQ1XJparHfcvTTdu9cA==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.7.tgz", + "integrity": "sha512-WeEl38Z0S2ZcuRTeyYqaZtm4e26tq6ZFqh5y8YD9YxfWuu0OFiGFUbnxNynwLjNRHPsXyee2M9tV7YxOTPZl2g==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/utils": "3.0.6", + "@vitest/utils": "3.0.7", "pathe": "^2.0.3" }, "funding": { @@ -2756,13 +3100,12 @@ } }, "node_modules/@vitest/snapshot": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.6.tgz", - "integrity": "sha512-qKSmxNQwT60kNwwJHMVwavvZsMGXWmngD023OHSgn873pV0lylK7dwBTfYP7e4URy5NiBCHHiQGA9DHkYkqRqg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.7.tgz", + "integrity": "sha512-eqTUryJWQN0Rtf5yqCGTQWsCFOQe4eNz5Twsu21xYEcnFJtMU5XvmG0vgebhdLlrHQTSq5p8vWHJIeJQV8ovsA==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.0.6", + "@vitest/pretty-format": "3.0.7", "magic-string": "^0.30.17", "pathe": "^2.0.3" }, @@ -2771,11 +3114,10 @@ } }, "node_modules/@vitest/spy": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.6.tgz", - "integrity": "sha512-HfOGx/bXtjy24fDlTOpgiAEJbRfFxoX3zIGagCqACkFKKZ/TTOE6gYMKXlqecvxEndKFuNHcHqP081ggZ2yM0Q==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.7.tgz", + "integrity": "sha512-4T4WcsibB0B6hrKdAZTM37ekuyFZt2cGbEGd2+L0P8ov15J1/HUsUaqkXEQPNAWr4BtPPe1gI+FYfMHhEKfR8w==", "dev": true, - "license": "MIT", "dependencies": { "tinyspy": "^3.0.2" }, @@ -2784,13 +3126,12 @@ } }, "node_modules/@vitest/utils": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.6.tgz", - "integrity": "sha512-18ktZpf4GQFTbf9jK543uspU03Q2qya7ZGya5yiZ0Gx0nnnalBvd5ZBislbl2EhLjM8A8rt4OilqKG7QwcGkvQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.7.tgz", + "integrity": "sha512-xePVpCRfooFX3rANQjwoditoXgWb1MaFbzmGuPP59MK6i13mrnDw/yEIyJudLeW6/38mCNcwCiJIGmpDPibAIg==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.0.6", + "@vitest/pretty-format": "3.0.7", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -2803,7 +3144,6 @@ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.11.tgz", "integrity": "sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==", "dev": true, - "license": "MIT", "dependencies": { "@volar/source-map": "2.4.11" } @@ -2812,15 +3152,13 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.11.tgz", "integrity": "sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@volar/typescript": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.11.tgz", "integrity": "sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==", "dev": true, - "license": "MIT", "dependencies": { "@volar/language-core": "2.4.11", "path-browserify": "^1.0.1", @@ -2831,15 +3169,13 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.5.tgz", "integrity": "sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@vue/babel-plugin-jsx": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.5.tgz", "integrity": "sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.8", @@ -2866,7 +3202,6 @@ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.5.tgz", "integrity": "sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", @@ -2882,7 +3217,6 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", - "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", "@vue/shared": "3.5.13", @@ -2891,17 +3225,10 @@ "source-map-js": "^1.2.0" } }, - "node_modules/@vue/compiler-core/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, "node_modules/@vue/compiler-dom": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", - "license": "MIT", "dependencies": { "@vue/compiler-core": "3.5.13", "@vue/shared": "3.5.13" @@ -2911,7 +3238,6 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", - "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", "@vue/compiler-core": "3.5.13", @@ -2924,17 +3250,10 @@ "source-map-js": "^1.2.0" } }, - "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, "node_modules/@vue/compiler-ssr": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", - "license": "MIT", "dependencies": { "@vue/compiler-dom": "3.5.13", "@vue/shared": "3.5.13" @@ -2945,7 +3264,6 @@ "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", "dev": true, - "license": "MIT", "dependencies": { "de-indent": "^1.0.2", "he": "^1.2.0" @@ -2954,15 +3272,13 @@ "node_modules/@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "license": "MIT" + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/devtools-core": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.7.2.tgz", "integrity": "sha512-lexREWj1lKi91Tblr38ntSsy6CvI8ba7u+jmwh2yruib/ltLUcsIzEjCnrkh1yYGGIKXbAuYV2tOG10fGDB9OQ==", "dev": true, - "license": "MIT", "dependencies": { "@vue/devtools-kit": "^7.7.2", "@vue/devtools-shared": "^7.7.2", @@ -2976,9 +3292,9 @@ } }, "node_modules/@vue/devtools-core/node_modules/nanoid": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.0.tgz", - "integrity": "sha512-zDAl/llz8Ue/EblwSYwdxGBYfj46IM1dhjVi8dyp9LQffoIGxJEAHj2oeZ4uNcgycSRcQ83CnfcZqEJzVDLcDw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.2.tgz", + "integrity": "sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==", "dev": true, "funding": [ { @@ -2986,7 +3302,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -2999,7 +3314,6 @@ "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.2.tgz", "integrity": "sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==", "dev": true, - "license": "MIT", "dependencies": { "@vue/devtools-shared": "^7.7.2", "birpc": "^0.2.19", @@ -3015,7 +3329,6 @@ "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.2.tgz", "integrity": "sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==", "dev": true, - "license": "MIT", "dependencies": { "rfdc": "^1.4.1" } @@ -3025,7 +3338,6 @@ "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.2.0.tgz", "integrity": "sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==", "dev": true, - "license": "MIT", "dependencies": { "eslint-config-prettier": "^10.0.1", "eslint-plugin-prettier": "^5.2.2" @@ -3040,7 +3352,6 @@ "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.4.0.tgz", "integrity": "sha512-daU+eAekEeVz3CReE4PRW25fe+OJDKwE28jHN6LimDEnuFMbJ6H4WGogEpNof276wVP6UvzOeJQfLFjB5mW29A==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/utils": "^8.23.0", "fast-glob": "^3.3.3", @@ -3062,11 +3373,10 @@ } }, "node_modules/@vue/language-core": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.2.tgz", - "integrity": "sha512-QotO41kurE5PLf3vrNgGTk3QswO2PdUFjBwNiOi7zMmGhwb25PSTh9hD1MCgKC06AVv+8sZQvlL3Do4TTVHSiQ==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.6.tgz", + "integrity": "sha512-7IQTvwVOvhYSzcizZ2hAdqJjI+SaJS2GO7EnDlSlQ77drwl5UzNa2IZm9pO9MdMxrlw24CGI/Lo3xpCjM26veg==", "dev": true, - "license": "MIT", "dependencies": { "@volar/language-core": "~2.4.11", "@vue/compiler-dom": "^3.5.0", @@ -3090,7 +3400,6 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", - "license": "MIT", "dependencies": { "@vue/shared": "3.5.13" } @@ -3099,7 +3408,6 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", - "license": "MIT", "dependencies": { "@vue/reactivity": "3.5.13", "@vue/shared": "3.5.13" @@ -3109,7 +3417,6 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", - "license": "MIT", "dependencies": { "@vue/reactivity": "3.5.13", "@vue/runtime-core": "3.5.13", @@ -3121,7 +3428,6 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", - "license": "MIT", "dependencies": { "@vue/compiler-ssr": "3.5.13", "@vue/shared": "3.5.13" @@ -3133,15 +3439,13 @@ "node_modules/@vue/shared": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", - "license": "MIT" + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" }, "node_modules/@vue/test-utils": { "version": "2.4.6", "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz", "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==", "dev": true, - "license": "MIT", "dependencies": { "js-beautify": "^1.14.9", "vue-component-type-helpers": "^2.0.0" @@ -3152,7 +3456,6 @@ "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.7.0.tgz", "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", "dev": true, - "license": "MIT", "peerDependencies": { "typescript": "5.x", "vue": "^3.4.0" @@ -3167,26 +3470,12 @@ } }, "node_modules/abbrev": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.0.tgz", - "integrity": "sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/accepts": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/acorn": { @@ -3194,7 +3483,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3207,7 +3495,6 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -3217,7 +3504,6 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, - "license": "MIT", "dependencies": { "acorn": "^8.11.0" }, @@ -3226,13 +3512,15 @@ } }, "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "dev": true, - "license": "MIT", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, + "dependencies": { + "debug": "4" + }, "engines": { - "node": ">= 14" + "node": ">= 6.0.0" } }, "node_modules/agentkeepalive": { @@ -3265,7 +3553,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3281,17 +3568,18 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.4.tgz", "integrity": "sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -3299,7 +3587,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3334,20 +3621,17 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", "engines": { "node": ">=8" } @@ -3357,23 +3641,14 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -3407,7 +3682,6 @@ "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } @@ -3422,53 +3696,16 @@ "readable-stream": "^3.4.0" } }, - "node_modules/body-parser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.1.0.tgz", - "integrity": "sha512-/hPxh61E+ll0Ujp24Ilm64cykicul1ypfwjVttduAiEdtnJFvLePSrIPk+HMImtNv5270wOGCb1Tns2rybMkoQ==", - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.0", - "http-errors": "^2.0.0", - "iconv-lite": "^0.5.2", - "on-finished": "^2.4.1", - "qs": "^6.14.0", - "raw-body": "^3.0.0", - "type-is": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -3477,7 +3714,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -3504,7 +3740,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -3546,7 +3781,6 @@ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, - "license": "MIT", "dependencies": { "run-applescript": "^7.0.0" }, @@ -3557,21 +3791,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -3672,55 +3896,19 @@ "node": ">=8" } }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001700", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", - "integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==", + "version": "1.0.30001701", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz", + "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==", "dev": true, "funding": [ { @@ -3735,15 +3923,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chai": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", "dev": true, - "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", @@ -3760,7 +3946,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3777,7 +3962,6 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 16" } @@ -3804,7 +3988,6 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3814,18 +3997,74 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/code-block-writer": { "version": "13.0.3", "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", - "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", - "license": "MIT" + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==" }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3837,8 +4076,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/color-support": { "version": "1.1.3", @@ -3852,27 +4090,12 @@ "node_modules/colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, "node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", "engines": { "node": ">=14" } @@ -3881,15 +4104,13 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "devOptional": true, - "license": "MIT" + "devOptional": true }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, - "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -3901,58 +4122,17 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "optional": true }, - "node_modules/content-disposition": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", - "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } + "dev": true }, "node_modules/copy-anything": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", "dev": true, - "license": "MIT", "dependencies": { "is-what": "^4.1.8" }, @@ -3967,15 +4147,13 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3990,7 +4168,6 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, - "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -3998,58 +4175,26 @@ "node": ">=4" } }, - "node_modules/cssstyle": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", - "integrity": "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^2.8.2", - "rrweb-cssom": "^0.8.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - }, - "engines": { - "node": ">=18" - } + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/dataloader": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.3.tgz", - "integrity": "sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==", - "license": "MIT" + "integrity": "sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==" }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -4062,13 +4207,6 @@ } } }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "dev": true, - "license": "MIT" - }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -4088,7 +4226,6 @@ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -4105,15 +4242,13 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/default-browser": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", "dev": true, - "license": "MIT", "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" @@ -4130,7 +4265,6 @@ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -4143,7 +4277,6 @@ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -4151,41 +4284,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "optional": true }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -4199,7 +4303,6 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -4208,7 +4311,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -4220,7 +4322,6 @@ "version": "16.4.7", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", - "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -4228,20 +4329,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/dwengo-1-backend": { "resolved": "backend", "link": true @@ -4254,15 +4341,13 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/editorconfig": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", "dev": true, - "license": "MIT", "dependencies": { "@one-ini/wasm": "0.1.1", "commander": "^10.0.0", @@ -4281,7 +4366,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4292,34 +4376,17 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, "node_modules/electron-to-chromium": { - "version": "1.5.102", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz", - "integrity": "sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==", - "dev": true, - "license": "ISC" + "version": "1.5.109", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz", + "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==", + "dev": true }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, "node_modules/encoding": { "version": "0.1.13", @@ -4330,18 +4397,6 @@ "iconv-lite": "^0.6.2" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -4354,7 +4409,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -4382,63 +4436,15 @@ "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz", "integrity": "sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-module-lexer": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } + "dev": true }, "node_modules/esbuild": { "version": "0.25.0", @@ -4446,7 +4452,6 @@ "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -4485,23 +4490,15 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -4510,22 +4507,21 @@ } }, "node_modules/eslint": { - "version": "9.20.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz", - "integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==", + "version": "9.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", + "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.11.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.20.0", - "@eslint/plugin-kit": "^0.2.5", + "@eslint/config-array": "^0.19.2", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.21.0", + "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -4570,11 +4566,10 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", - "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.2.tgz", + "integrity": "sha512-1105/17ZIMjmCOJOPNfVdbXafLCLj3hPmkmB7dLgt7XsQ/zkxSuDerE/xgO3RxoHysR1N1whmquY0lSn2O0VLg==", "dev": true, - "license": "MIT", "bin": { "eslint-config-prettier": "build/bin/cli.js" }, @@ -4582,47 +4577,11 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-playwright": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-2.2.0.tgz", - "integrity": "sha512-qSQpAw7RcSzE3zPp8FMGkthaCWovHZ/BsXtpmnGax9vQLIovlh1bsZHEa2+j2lv9DWhnyeLM/qZmp7ffQZfQvg==", - "dev": true, - "license": "MIT", - "workspaces": [ - "examples" - ], - "dependencies": { - "globals": "^13.23.0" - }, - "engines": { - "node": ">=16.6.0" - }, - "peerDependencies": { - "eslint": ">=8.40.0" - } - }, - "node_modules/eslint-plugin-playwright/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-prettier": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", "dev": true, - "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.9.1" @@ -4653,7 +4612,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", "integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "globals": "^13.24.0", @@ -4676,7 +4634,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -4692,7 +4649,6 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4709,7 +4665,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4722,7 +4677,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4733,7 +4687,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -4746,7 +4699,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4758,7 +4710,6 @@ "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "license": "MIT", "engines": { "node": ">=6" } @@ -4768,7 +4719,6 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", @@ -4786,7 +4736,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -4798,7 +4747,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4812,7 +4760,6 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -4825,7 +4772,6 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -4838,46 +4784,29 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/execa": { "version": "9.5.2", "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", "dev": true, - "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", @@ -4908,100 +4837,30 @@ } }, "node_modules/expect-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.0.tgz", + "integrity": "sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12.0.0" } }, - "node_modules/express": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.0.1.tgz", - "integrity": "sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==", - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.0.1", - "content-disposition": "^1.0.0", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "^1.2.1", - "debug": "4.3.6", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "^2.0.0", - "fresh": "2.0.0", - "http-errors": "2.0.0", - "merge-descriptors": "^2.0.0", - "methods": "~1.1.2", - "mime-types": "^3.0.0", - "on-finished": "2.4.1", - "once": "1.4.0", - "parseurl": "~1.3.3", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "router": "^2.0.0", - "safe-buffer": "5.2.1", - "send": "^1.1.0", - "serve-static": "^2.1.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "^2.0.0", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/express/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -5017,7 +4876,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -5029,21 +4887,18 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "license": "ISC", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dependencies": { "reusify": "^1.0.4" } @@ -5053,7 +4908,6 @@ "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", "integrity": "sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==", "dev": true, - "license": "MIT", "bin": { "figlet": "bin/index.js" }, @@ -5066,7 +4920,6 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, - "license": "MIT", "dependencies": { "is-unicode-supported": "^2.0.0" }, @@ -5082,7 +4935,6 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, - "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -5099,7 +4951,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -5107,54 +4958,11 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.0.0.tgz", - "integrity": "sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -5171,7 +4979,6 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, - "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -5184,17 +4991,15 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, - "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -5204,63 +5009,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/form-data/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -5270,7 +5018,6 @@ "version": "11.3.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -5302,11 +5049,6 @@ "node": ">=8" } }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5314,12 +5056,11 @@ "optional": true }, "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -5332,7 +5073,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5409,7 +5149,6 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -5419,63 +5158,23 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "get-proto": "^1.0.0", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "license": "MIT", "engines": { "node": ">=8.0.0" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/get-stream": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, - "license": "MIT", "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" @@ -5492,7 +5191,6 @@ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, - "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -5503,8 +5201,7 @@ "node_modules/getopts": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", - "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==", - "license": "MIT" + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" }, "node_modules/github-from-package": { "version": "0.0.0", @@ -5516,7 +5213,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -5537,7 +5233,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -5550,7 +5245,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -5562,7 +5256,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -5578,69 +5271,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -5651,7 +5301,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5664,7 +5313,6 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "license": "MIT", "bin": { "he": "bin/he" } @@ -5673,28 +5321,13 @@ "version": "5.5.3", "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" - } + "dev": true }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -5708,48 +5341,31 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "optional": true }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "optional": true, "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", + "@tootallnate/once": "1", + "agent-base": "6", "debug": "4" }, "engines": { - "node": ">= 14" + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, "node_modules/human-signals": { @@ -5757,7 +5373,6 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -5772,12 +5387,12 @@ } }, "node_modules/iconv-lite": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", - "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", - "license": "MIT", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -5806,7 +5421,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", "engines": { "node": ">= 4" } @@ -5816,7 +5430,6 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5833,7 +5446,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "devOptional": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -5867,20 +5479,17 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/interpret": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "license": "MIT", "engines": { "node": ">= 0.10" } @@ -5898,20 +5507,10 @@ "node": ">= 12" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -5927,7 +5526,6 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, - "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -5942,7 +5540,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5952,7 +5549,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "devOptional": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -5961,7 +5557,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -5974,7 +5569,6 @@ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, - "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -5998,7 +5592,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -6008,7 +5601,6 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -6016,25 +5608,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "license": "MIT" - }, "node_modules/is-stream": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -6047,7 +5625,6 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -6060,7 +5637,6 @@ "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.13" }, @@ -6073,7 +5649,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, - "license": "MIT", "dependencies": { "is-inside-container": "^1.0.0" }, @@ -6088,15 +5663,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "devOptional": true, - "license": "ISC" + "devOptional": true }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -6112,23 +5685,21 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", "dev": true, - "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" } }, "node_modules/js-beautify": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.3.tgz", - "integrity": "sha512-rKKGuyTxGNlyN4EQKWzNndzXpi0bOl8Gl8YQAW1as/oMz0XhD6sHJO1hTvoBDOSzKuJb9WkwoAb34FfdkKMv2A==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", + "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", "dev": true, - "license": "MIT", "dependencies": { "config-chain": "^1.1.13", "editorconfig": "^1.0.4", "glob": "^10.4.2", "js-cookie": "^3.0.5", - "nopt": "^8.0.0" + "nopt": "^7.2.1" }, "bin": { "css-beautify": "js/bin/css-beautify.js", @@ -6144,7 +5715,6 @@ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", "dev": true, - "license": "MIT", "engines": { "node": ">=14" } @@ -6153,14 +5723,12 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -6174,63 +5742,11 @@ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "optional": true }, - "node_modules/jsdom": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz", - "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssstyle": "^4.2.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.1", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.16", - "parse5": "^7.2.1", - "rrweb-cssom": "^0.8.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^5.0.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.1.0", - "ws": "^8.18.0", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -6242,15 +5758,13 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-parse-even-better-errors": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "dev": true, - "license": "MIT", "engines": { "node": "^18.17.0 || >=20.5.0" } @@ -6259,22 +5773,19 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -6286,7 +5797,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6299,7 +5809,6 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -6308,7 +5817,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz", "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==", - "license": "MIT", "dependencies": { "colorette": "2.0.19", "commander": "^10.0.0", @@ -6359,7 +5867,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -6375,14 +5882,12 @@ "node_modules/knex/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/knex/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", "engines": { "node": ">=8" } @@ -6391,15 +5896,13 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -6413,7 +5916,6 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -6427,35 +5929,30 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/loupe": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -6464,8 +5961,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/make-fetch-happen": { "version": "9.1.0", @@ -6494,45 +5990,6 @@ "node": ">= 10" } }, - "node_modules/make-fetch-happen/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/make-fetch-happen/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6557,39 +6014,6 @@ "node": ">=8" } }, - "node_modules/make-fetch-happen/node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -6599,41 +6023,18 @@ "node": ">= 0.10.0" } }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", "engines": { "node": ">= 8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -6646,32 +6047,10 @@ "version": "6.4.6", "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.6.tgz", "integrity": "sha512-Lr3uFK06O/4F/AtQAsuYD6QH7DgmUooSVFVGf1y02IuiKVFKOMJ4iKimkRMyoA+ykKhgYIp8WiaEqbWJVuz4Vw==", - "license": "MIT", "engines": { "node": ">= 18.12.0" } }, - "node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.0.tgz", - "integrity": "sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.53.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-response": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", @@ -6687,7 +6066,6 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6702,7 +6080,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6712,7 +6089,6 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -6741,12 +6117,6 @@ "node": ">=8" } }, - "node_modules/minipass-collect/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/minipass-fetch": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", @@ -6776,12 +6146,6 @@ "node": ">=8" } }, - "node_modules/minipass-fetch/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -6806,12 +6170,6 @@ "node": ">=8" } }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", @@ -6836,12 +6194,6 @@ "node": ">=8" } }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", @@ -6866,12 +6218,6 @@ "node": ">=8" } }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -6895,17 +6241,11 @@ "node": ">=8" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/mkdirp": { "version": "1.0.4", @@ -6928,7 +6268,6 @@ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -6936,15 +6275,13 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/nanoid": { "version": "3.3.8", @@ -6956,7 +6293,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -6973,14 +6309,13 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "optional": true, "engines": { "node": ">= 0.6" } @@ -7093,23 +6428,21 @@ "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/nopt": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", - "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, - "license": "ISC", "dependencies": { - "abbrev": "^3.0.0" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-normalize-package-bin": { @@ -7117,7 +6450,6 @@ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, - "license": "ISC", "engines": { "node": "^18.17.0 || >=20.5.0" } @@ -7127,7 +6459,6 @@ "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.2.tgz", "integrity": "sha512-7tXR+r9hzRNOPNTvXegM+QzCuMjzUIIq66VDunL6j60O4RrExx32XUhlrS7UK4VcdGw5/Wxzb3kfNcFix9JKDA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "cross-spawn": "^7.0.6", @@ -7154,7 +6485,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -7167,7 +6497,6 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, - "license": "ISC", "engines": { "node": ">=16" } @@ -7177,7 +6506,6 @@ "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^3.1.1" }, @@ -7193,7 +6521,6 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" @@ -7210,7 +6537,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -7239,7 +6565,6 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -7247,42 +6572,10 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/nwsapi": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", - "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", "dependencies": { "wrappy": "1" } @@ -7292,7 +6585,6 @@ "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dev": true, - "license": "MIT", "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", @@ -7311,7 +6603,6 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -7329,7 +6620,6 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7345,7 +6635,6 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -7375,15 +6664,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" + "dev": true }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -7405,7 +6692,6 @@ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -7418,7 +6704,6 @@ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dev": true, - "license": "MIT", "dependencies": { "entities": "^4.5.0" }, @@ -7426,27 +6711,16 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "license": "MIT" + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -7465,7 +6739,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -7473,15 +6746,13 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -7493,20 +6764,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-to-regexp": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", - "license": "MIT", - "engines": { - "node": ">=16" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", "engines": { "node": ">=8" } @@ -7515,15 +6776,13 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/pathval": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14.16" } @@ -7532,14 +6791,12 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/pg": { "version": "8.13.2", "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.2.tgz", "integrity": "sha512-L5QkPvTjVWWHbLaFjCkOSplpb2uCiRYbg0IJ2okCy5ClYfWlSgDDnvdR6dyw3EWAH2AfS4j8E61QFI7gLfTtlw==", - "license": "MIT", "dependencies": { "pg-connection-string": "^2.7.0", "pg-pool": "^3.7.1", @@ -7566,20 +6823,17 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "license": "MIT", "optional": true }, "node_modules/pg-connection-string": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", - "license": "MIT" + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "license": "ISC", "engines": { "node": ">=4.0.0" } @@ -7588,7 +6842,6 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.1.tgz", "integrity": "sha512-xIOsFoh7Vdhojas6q3596mXFsR8nwBQBXX5JiV7p9buEVAGqYL4yFzclON5P9vFrpu1u7Zwl2oriyDa89n0wbw==", - "license": "MIT", "peerDependencies": { "pg": ">=8.0" } @@ -7596,14 +6849,12 @@ "node_modules/pg-protocol": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.1.tgz", - "integrity": "sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==", - "license": "MIT" + "integrity": "sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==" }, "node_modules/pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "license": "MIT", "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -7619,7 +6870,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "license": "MIT", "engines": { "node": ">=4" } @@ -7628,7 +6878,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7637,7 +6886,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -7648,14 +6896,12 @@ "node_modules/pg/node_modules/pg-connection-string": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", - "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", - "license": "MIT" + "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==" }, "node_modules/pgpass": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "license": "MIT", "dependencies": { "split2": "^4.1.0" } @@ -7663,14 +6909,12 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -7683,7 +6927,6 @@ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true, - "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -7696,7 +6939,6 @@ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.50.1.tgz", "integrity": "sha512-G8rwsOQJ63XG6BbKj2w5rHeavFjy5zynBA9zsJMMtBoe/Uf757oG12NXz6e6OirF7RCrTVAKFXbLmn1RbL7Qaw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "playwright-core": "1.50.1" }, @@ -7715,7 +6957,6 @@ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.50.1.tgz", "integrity": "sha512-ra9fsNWayuYumt+NiM069M6OkcRb1FZSK8bgi66AtpFoWkg2+y0bJSNmkFrWhMbEBbVKC/EruAHH3g0zmtwGmQ==", "dev": true, - "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, @@ -7723,21 +6964,6 @@ "node": ">=18" } }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/postcss": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", @@ -7756,7 +6982,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -7771,7 +6996,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, - "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -7784,7 +7008,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", - "license": "MIT", "engines": { "node": ">=12" } @@ -7793,7 +7016,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7802,7 +7024,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", - "license": "MIT", "engines": { "node": ">=12" } @@ -7811,7 +7032,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-4.0.2.tgz", "integrity": "sha512-EMsphSQ1YkQqKZL2cuG0zHkmjCCzQqQ71l2GXITqRwjhRleCdv00bDk/ktaSi0LnlaPzAc3535KTrjXsTdtx7A==", - "license": "MIT", "engines": { "node": ">=12" } @@ -7846,17 +7066,15 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz", - "integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", + "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", "dev": true, - "license": "MIT", "peer": true, "bin": { "prettier": "bin/prettier.cjs" @@ -7873,7 +7091,6 @@ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -7886,7 +7103,6 @@ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", "dev": true, - "license": "MIT", "dependencies": { "parse-ms": "^4.0.0" }, @@ -7920,21 +7136,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true, - "license": "ISC" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } + "dev": true }, "node_modules/pump": { "version": "3.0.2", @@ -7950,26 +7152,10 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7987,44 +7173,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", - "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.6.3", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + ] }, "node_modules/rc": { "version": "1.2.8", @@ -8053,7 +7202,6 @@ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", "dev": true, - "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^4.0.0", "npm-normalize-package-bin": "^4.0.0" @@ -8079,7 +7227,6 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -8090,15 +7237,13 @@ "node_modules/reflect-metadata": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "license": "Apache-2.0" + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8107,7 +7252,6 @@ "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -8128,7 +7272,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -8138,7 +7281,6 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -8153,10 +7295,9 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -8166,8 +7307,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/rimraf": { "version": "3.0.2", @@ -8229,11 +7369,10 @@ } }, "node_modules/rollup": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.9.tgz", + "integrity": "sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.6" }, @@ -8245,55 +7384,33 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.8", - "@rollup/rollup-android-arm64": "4.34.8", - "@rollup/rollup-darwin-arm64": "4.34.8", - "@rollup/rollup-darwin-x64": "4.34.8", - "@rollup/rollup-freebsd-arm64": "4.34.8", - "@rollup/rollup-freebsd-x64": "4.34.8", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", - "@rollup/rollup-linux-arm64-gnu": "4.34.8", - "@rollup/rollup-linux-arm64-musl": "4.34.8", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", - "@rollup/rollup-linux-s390x-gnu": "4.34.8", - "@rollup/rollup-linux-x64-gnu": "4.34.8", - "@rollup/rollup-linux-x64-musl": "4.34.8", - "@rollup/rollup-win32-arm64-msvc": "4.34.8", - "@rollup/rollup-win32-ia32-msvc": "4.34.8", - "@rollup/rollup-win32-x64-msvc": "4.34.8", + "@rollup/rollup-android-arm-eabi": "4.34.9", + "@rollup/rollup-android-arm64": "4.34.9", + "@rollup/rollup-darwin-arm64": "4.34.9", + "@rollup/rollup-darwin-x64": "4.34.9", + "@rollup/rollup-freebsd-arm64": "4.34.9", + "@rollup/rollup-freebsd-x64": "4.34.9", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.9", + "@rollup/rollup-linux-arm-musleabihf": "4.34.9", + "@rollup/rollup-linux-arm64-gnu": "4.34.9", + "@rollup/rollup-linux-arm64-musl": "4.34.9", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.9", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.9", + "@rollup/rollup-linux-riscv64-gnu": "4.34.9", + "@rollup/rollup-linux-s390x-gnu": "4.34.9", + "@rollup/rollup-linux-x64-gnu": "4.34.9", + "@rollup/rollup-linux-x64-musl": "4.34.9", + "@rollup/rollup-win32-arm64-msvc": "4.34.9", + "@rollup/rollup-win32-ia32-msvc": "4.34.9", + "@rollup/rollup-win32-x64-msvc": "4.34.9", "fsevents": "~2.3.2" } }, - "node_modules/router": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.1.0.tgz", - "integrity": "sha512-/m/NSLxeYEgWNtyC+WtNHCF7jbGxOibVWKnn+1Psff4dJGOfoXP+MuC/f2CwSmyiHdOIzYnYFp4W6GxWfekaLA==", - "license": "MIT", - "dependencies": { - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/rrweb-cssom": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", - "dev": true, - "license": "MIT" - }, "node_modules/run-applescript": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -8319,7 +7436,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -8341,33 +7457,17 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -8375,92 +7475,17 @@ "node": ">=10" } }, - "node_modules/send": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.1.0.tgz", - "integrity": "sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.5", - "destroy": "^1.2.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "http-errors": "^2.0.0", - "mime-types": "^2.1.35", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/send/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.1.0.tgz", - "integrity": "sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==", - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.0.0" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "optional": true }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -8473,7 +7498,6 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8483,79 +7507,6 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, "engines": { "node": ">= 0.4" }, @@ -8567,15 +7518,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "ISC", "engines": { "node": ">=14" }, @@ -8631,7 +7580,6 @@ "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", "dev": true, - "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -8645,7 +7593,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", "engines": { "node": ">=8" } @@ -8688,23 +7635,10 @@ "node": ">= 10" } }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -8714,7 +7648,6 @@ "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -8723,7 +7656,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "license": "ISC", "engines": { "node": ">= 10.x" } @@ -8761,7 +7693,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8798,34 +7729,17 @@ "node": ">=8" } }, - "node_modules/ssri/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "dev": true }, "node_modules/std-env": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/string_decoder": { "version": "1.3.0", @@ -8836,18 +7750,20 @@ } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -8856,7 +7772,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8866,12 +7781,26 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8879,13 +7808,27 @@ "node": ">=8" } }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8893,12 +7836,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -8908,7 +7859,6 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -8921,7 +7871,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -8934,7 +7883,6 @@ "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", "dev": true, - "license": "MIT", "dependencies": { "copy-anything": "^3.0.2" }, @@ -8947,7 +7895,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8959,7 +7906,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8973,19 +7919,11 @@ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, "node_modules/synckit": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, - "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" @@ -9052,16 +7990,10 @@ "node": ">=8" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/tarn": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", - "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -9070,7 +8002,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", - "license": "MIT", "engines": { "node": ">=8" } @@ -9079,22 +8010,19 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/tinyexec": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/tinypool": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", "dev": true, - "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" } @@ -9104,7 +8032,6 @@ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -9114,36 +8041,14 @@ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } }, - "node_modules/tldts": { - "version": "6.1.78", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.78.tgz", - "integrity": "sha512-fSgYrW0ITH0SR/CqKMXIruYIPpNu5aDgUp22UhYoSrnUQwc7SBqifEBFNce7AAcygUPBo6a/gbtcguWdmko4RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^6.1.78" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "6.1.78", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.78.tgz", - "integrity": "sha512-jS0svNsB99jR6AJBmfmEWuKIgz91Haya91Z43PATaeHJ24BkMoNRb/jlaD37VYjb0mYf6gRL/HOnvS1zEnYBiw==", - "dev": true, - "license": "MIT" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -9151,57 +8056,20 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/tough-cookie": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.1.tgz", - "integrity": "sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^6.1.32" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/ts-api-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.12" }, @@ -9213,7 +8081,6 @@ "version": "25.0.1", "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-25.0.1.tgz", "integrity": "sha512-QJEiTdnz1YjrB3JFhd626gX4rKHDLSjSVMvGGG4v7ONc3RBwa0Eei98G9AT9uNFDMtV54JyuXsFeC+OH0n6bXQ==", - "license": "MIT", "dependencies": { "@ts-morph/common": "~0.26.0", "code-block-writer": "^13.0.3" @@ -9224,7 +8091,6 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, - "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -9268,7 +8134,6 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, - "license": "MIT", "dependencies": { "json5": "^2.2.2", "minimist": "^1.2.6", @@ -9282,15 +8147,13 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/tsx": { "version": "4.19.3", "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.3.tgz", "integrity": "sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" @@ -9311,7 +8174,6 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -9337,7 +8199,6 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -9350,7 +8211,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -9358,26 +8218,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.0.tgz", - "integrity": "sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw==", - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "devOptional": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9387,15 +8232,14 @@ } }, "node_modules/typescript-eslint": { - "version": "8.24.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.24.1.tgz", - "integrity": "sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.25.0.tgz", + "integrity": "sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.24.1", - "@typescript-eslint/parser": "8.24.1", - "@typescript-eslint/utils": "8.24.1" + "@typescript-eslint/eslint-plugin": "8.25.0", + "@typescript-eslint/parser": "8.25.0", + "@typescript-eslint/utils": "8.25.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9413,15 +8257,13 @@ "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/unicorn-magic": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -9451,24 +8293,14 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", "engines": { "node": ">= 10.0.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -9484,7 +8316,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -9501,7 +8332,6 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -9509,17 +8339,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { "version": "11.1.0", @@ -9537,17 +8357,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "dev": true }, "node_modules/vite": { "version": "6.2.0", @@ -9625,7 +8435,6 @@ "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-0.2.4.tgz", "integrity": "sha512-a1nzURqO7DDmnXqabFOliz908FRmIppkBKsJthS8rbe8hBEXwEwe4C3Pp33Z1JoFCYfVL4kTOMLKk0ZZxREIeA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" }, @@ -9634,11 +8443,10 @@ } }, "node_modules/vite-node": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.6.tgz", - "integrity": "sha512-s51RzrTkXKJrhNbUzQRsarjmAae7VmMPAsRT7lppVpIg6mK3zGthP9Hgz0YQQKuNcF+Ii7DfYk3Fxz40jRmePw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.7.tgz", + "integrity": "sha512-2fX0QwX4GkkkpULXdT1Pf4q0tC1i1lFOyseKoonavXUNlQ77KpW2XqBGGNIm/J4Ows4KxgGJzDguYVPKwG/n5A==", "dev": true, - "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.4.0", @@ -9661,7 +8469,6 @@ "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.9.tgz", "integrity": "sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==", "dev": true, - "license": "MIT", "dependencies": { "@antfu/utils": "^0.7.10", "@rollup/pluginutils": "^5.1.3", @@ -9693,7 +8500,6 @@ "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.7.2.tgz", "integrity": "sha512-5V0UijQWiSBj32blkyPEqIbzc6HO9c1bwnBhx+ay2dzU0FakH+qMdNUT8nF9BvDE+i6I1U8CqCuJiO20vKEdQw==", "dev": true, - "license": "MIT", "dependencies": { "@vue/devtools-core": "^7.7.2", "@vue/devtools-kit": "^7.7.2", @@ -9715,7 +8521,6 @@ "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.3.1.tgz", "integrity": "sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.23.0", "@babel/plugin-proposal-decorators": "^7.23.0", @@ -9731,20 +8536,33 @@ "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0" } }, - "node_modules/vitest": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.6.tgz", - "integrity": "sha512-/iL1Sc5VeDZKPDe58oGK4HUFLhw6b5XdY1MYawjuSaDA4sEfYlY9HnS6aCEG26fX+MgUi7MwlduTBHHAI/OvMA==", + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitest": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.7.tgz", + "integrity": "sha512-IP7gPK3LS3Fvn44x30X1dM9vtawm0aesAa2yBIZ9vQf+qB69NXC5776+Qmcr7ohUXIQuLhk7xQR0aSUIDPqavg==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/expect": "3.0.6", - "@vitest/mocker": "3.0.6", - "@vitest/pretty-format": "^3.0.6", - "@vitest/runner": "3.0.6", - "@vitest/snapshot": "3.0.6", - "@vitest/spy": "3.0.6", - "@vitest/utils": "3.0.6", + "@vitest/expect": "3.0.7", + "@vitest/mocker": "3.0.7", + "@vitest/pretty-format": "^3.0.7", + "@vitest/runner": "3.0.7", + "@vitest/snapshot": "3.0.7", + "@vitest/spy": "3.0.7", + "@vitest/utils": "3.0.7", "chai": "^5.2.0", "debug": "^4.4.0", "expect-type": "^1.1.0", @@ -9756,7 +8574,7 @@ "tinypool": "^1.0.2", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", - "vite-node": "3.0.6", + "vite-node": "3.0.7", "why-is-node-running": "^2.3.0" }, "bin": { @@ -9772,8 +8590,8 @@ "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.0.6", - "@vitest/ui": "3.0.6", + "@vitest/browser": "3.0.7", + "@vitest/ui": "3.0.7", "happy-dom": "*", "jsdom": "*" }, @@ -9805,14 +8623,12 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/vue": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", - "license": "MIT", "dependencies": { "@vue/compiler-dom": "3.5.13", "@vue/compiler-sfc": "3.5.13", @@ -9830,18 +8646,16 @@ } }, "node_modules/vue-component-type-helpers": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.2.2.tgz", - "integrity": "sha512-6lLY+n2xz2kCYshl59mL6gy8OUUTmkscmDFMO8i7Lj+QKwgnIFUZmM1i/iTYObtrczZVdw7UakPqDTGwVSGaRg==", - "dev": true, - "license": "MIT" + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.2.6.tgz", + "integrity": "sha512-kFdh3gw9DN+h6d/JEQfW8GbNG4XHwiJSJO1T3Akx1QtLT0tS/4njk4JpAzQ6i9PvOwALg3ESMnS31xr2wXluXA==", + "dev": true }, "node_modules/vue-eslint-parser": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", @@ -9866,7 +8680,6 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9883,7 +8696,6 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -9900,7 +8712,6 @@ "version": "10.0.5", "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.5.tgz", "integrity": "sha512-9/gmDlCblz3i8ypu/afiIc/SUIfTTE1mr0mZhb9pk70xo2csHAM9mp2gdQ3KD2O0AM3Hz/5ypb+FycTj/lHlPQ==", - "license": "MIT", "dependencies": { "@intlify/core-base": "10.0.5", "@intlify/shared": "10.0.5", @@ -9920,7 +8731,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", - "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.4" }, @@ -9932,14 +8742,13 @@ } }, "node_modules/vue-tsc": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.2.tgz", - "integrity": "sha512-1icPKkxAA5KTAaSwg0wVWdE48EdsH8fgvcbAiqojP4jXKl6LEM3soiW1aG/zrWrFt8Mw1ncG2vG1PvpZpVfehA==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.6.tgz", + "integrity": "sha512-TI6eAnWPatONEpVAZt1etbSrh8tDpHOLSlRqKGudOK5WKVnBGzHXUi0KR4UCsf2o5P+5285w4HF+5avhfH7IMA==", "dev": true, - "license": "MIT", "dependencies": { "@volar/typescript": "~2.4.11", - "@vue/language-core": "2.2.2" + "@vue/language-core": "2.2.6" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -9949,10 +8758,9 @@ } }, "node_modules/vuetify": { - "version": "3.7.13", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.7.13.tgz", - "integrity": "sha512-4+RuQU+zLtXhlN2eZUpKXums9ftzUzhMeiNEJvvJY4XdOzVwUCth2dTnEZkSF6EKdLHk3WhtRk0cIWXZxpBvcw==", - "license": "MIT", + "version": "3.7.14", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.7.14.tgz", + "integrity": "sha512-L5oD0x3Wrp49Khp+16dRykAFUZq6WXqX7OHLTwXnyEliJ48ERC9WfEtN0YOuEIhor/b2IOZXl+11fs/m452/Lw==", "engines": { "node": "^12.20 || >=14.13" }, @@ -9978,95 +8786,11 @@ } } }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-url": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.1.tgz", - "integrity": "sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "devOptional": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -10082,7 +8806,6 @@ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, - "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -10149,24 +8872,22 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -10178,7 +8899,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -10191,56 +8911,77 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12" } }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", "engines": { "node": ">=0.4" } @@ -10250,24 +8991,20 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -10286,17 +9023,56 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -10306,7 +9082,6 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -10319,7 +9094,6 @@ "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, From 74765577d5cbb149dcd26403b425965199056d95 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Sat, 1 Mar 2025 10:33:27 +0000 Subject: [PATCH 32/80] style: fix linting issues met ESLint --- backend/src/data/dwengo-entity-repository.ts | 6 +++--- backend/src/data/questions/answer-repository.ts | 2 +- backend/src/data/questions/question-repository.ts | 2 +- .../src/entities/assignments/assignment.entity.ts | 6 +++--- backend/src/entities/assignments/group.entity.ts | 4 ++-- .../src/entities/assignments/submission.entity.ts | 6 +++--- .../entities/classes/class-join-request.entity.ts | 6 +++--- backend/src/entities/classes/class.entity.ts | 4 ++-- .../entities/classes/teacher-invitation.entity.ts | 6 +++--- backend/src/entities/content/attachment.entity.ts | 2 +- .../src/entities/content/learning-object.entity.ts | 10 +++++----- backend/src/entities/content/learning-path.entity.ts | 12 ++++++------ backend/src/entities/questions/answer.entity.ts | 4 ++-- backend/src/entities/questions/question.entity.ts | 4 ++-- backend/src/entities/users/student.entity.ts | 6 +++--- backend/src/entities/users/teacher.entity.ts | 2 +- backend/src/mikro-orm.config.ts | 6 +++--- backend/src/routes/assignment.ts | 4 ++-- backend/src/routes/class.ts | 4 ++-- backend/src/routes/group.ts | 10 +++++----- backend/src/routes/login.ts | 6 +++--- backend/src/routes/question.ts | 4 ++-- backend/src/routes/student.ts | 12 ++++++------ backend/src/routes/submission.ts | 4 ++-- backend/src/routes/teacher.ts | 10 +++++----- backend/tests/data/users.test.ts | 4 ++-- 26 files changed, 73 insertions(+), 73 deletions(-) diff --git a/backend/src/data/dwengo-entity-repository.ts b/backend/src/data/dwengo-entity-repository.ts index 368f3a2c..e29d9ede 100644 --- a/backend/src/data/dwengo-entity-repository.ts +++ b/backend/src/data/dwengo-entity-repository.ts @@ -4,13 +4,13 @@ export abstract class DwengoEntityRepository< T extends object, > extends EntityRepository { public async save(entity: T) { - let em = this.getEntityManager(); + const em = this.getEntityManager(); em.persist(entity); await em.flush(); } public async deleteWhere(query: FilterQuery) { - let toDelete = await this.findOne(query); - let em = this.getEntityManager(); + const toDelete = await this.findOne(query); + const em = this.getEntityManager(); if (toDelete) { em.remove(toDelete); await em.flush(); diff --git a/backend/src/data/questions/answer-repository.ts b/backend/src/data/questions/answer-repository.ts index 6a2629f4..6c45211c 100644 --- a/backend/src/data/questions/answer-repository.ts +++ b/backend/src/data/questions/answer-repository.ts @@ -9,7 +9,7 @@ export class AnswerRepository extends DwengoEntityRepository { author: Teacher; content: string; }): Promise { - let answerEntity = new Answer(); + const answerEntity = new Answer(); answerEntity.toQuestion = answer.toQuestion; answerEntity.author = answer.author; answerEntity.content = answer.content; diff --git a/backend/src/data/questions/question-repository.ts b/backend/src/data/questions/question-repository.ts index 517305f1..8852a9ba 100644 --- a/backend/src/data/questions/question-repository.ts +++ b/backend/src/data/questions/question-repository.ts @@ -9,7 +9,7 @@ export class QuestionRepository extends DwengoEntityRepository { author: Student; content: string; }): Promise { - let questionEntity = new Question(); + const questionEntity = new Question(); questionEntity.learningObjectHruid = question.loId.hruid; questionEntity.learningObjectLanguage = question.loId.language; questionEntity.learningObjectVersion = question.loId.version; diff --git a/backend/src/entities/assignments/assignment.entity.ts b/backend/src/entities/assignments/assignment.entity.ts index e883632b..7909b107 100644 --- a/backend/src/entities/assignments/assignment.entity.ts +++ b/backend/src/entities/assignments/assignment.entity.ts @@ -12,7 +12,7 @@ import { Language } from '../content/language.js'; @Entity() export class Assignment { - @ManyToOne({ entity: () => Class, primary: true }) + @ManyToOne({ entity: () => {return Class}, primary: true }) within!: Class; @PrimaryKey({ type: 'number' }) @@ -27,9 +27,9 @@ export class Assignment { @Property({ type: 'string' }) learningPathHruid!: string; - @Enum({ items: () => Language }) + @Enum({ items: () => {return Language} }) learningPathLanguage!: Language; - @OneToMany({ entity: () => Group, mappedBy: 'assignment' }) + @OneToMany({ entity: () => {return Group}, mappedBy: 'assignment' }) groups!: Group[]; } diff --git a/backend/src/entities/assignments/group.entity.ts b/backend/src/entities/assignments/group.entity.ts index 80da7d8b..a68eb5a0 100644 --- a/backend/src/entities/assignments/group.entity.ts +++ b/backend/src/entities/assignments/group.entity.ts @@ -4,12 +4,12 @@ import { Student } from '../users/student.entity.js'; @Entity() export class Group { - @ManyToOne({ entity: () => Assignment, primary: true }) + @ManyToOne({ entity: () => {return Assignment}, primary: true }) assignment!: Assignment; @PrimaryKey({ type: 'integer' }) groupNumber!: number; - @ManyToMany({ entity: () => Student }) + @ManyToMany({ entity: () => {return Student} }) members!: Student[]; } diff --git a/backend/src/entities/assignments/submission.entity.ts b/backend/src/entities/assignments/submission.entity.ts index 02cbeeae..bd0936a1 100644 --- a/backend/src/entities/assignments/submission.entity.ts +++ b/backend/src/entities/assignments/submission.entity.ts @@ -8,7 +8,7 @@ export class Submission { @PrimaryKey({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => Language, primary: true }) + @Enum({ items: () => {return Language}, primary: true }) learningObjectLanguage!: Language; @PrimaryKey({ type: 'string' }) @@ -17,13 +17,13 @@ export class Submission { @PrimaryKey({ type: 'integer' }) submissionNumber!: number; - @ManyToOne({ entity: () => Student }) + @ManyToOne({ entity: () => {return Student} }) submitter!: Student; @Property({ type: 'datetime' }) submissionTime!: Date; - @ManyToOne({ entity: () => Group, nullable: true }) + @ManyToOne({ entity: () => {return Group}, nullable: true }) onBehalfOf?: Group; @Property({ type: 'json' }) diff --git a/backend/src/entities/classes/class-join-request.entity.ts b/backend/src/entities/classes/class-join-request.entity.ts index 00cb5185..8e88999c 100644 --- a/backend/src/entities/classes/class-join-request.entity.ts +++ b/backend/src/entities/classes/class-join-request.entity.ts @@ -4,13 +4,13 @@ import { Class } from './class.entity'; @Entity() export class ClassJoinRequest { - @ManyToOne({ entity: () => Student, primary: true }) + @ManyToOne({ entity: () => {return Student}, primary: true }) requester!: Student; - @ManyToOne({ entity: () => Class, primary: true }) + @ManyToOne({ entity: () => {return Class}, primary: true }) class!: Class; - @Enum(() => ClassJoinRequestStatus) + @Enum(() => {return ClassJoinRequestStatus}) status!: ClassJoinRequestStatus; } diff --git a/backend/src/entities/classes/class.entity.ts b/backend/src/entities/classes/class.entity.ts index 1f5835d2..2ad98c84 100644 --- a/backend/src/entities/classes/class.entity.ts +++ b/backend/src/entities/classes/class.entity.ts @@ -17,9 +17,9 @@ export class Class { @Property({ type: 'string' }) displayName!: string; - @ManyToMany(() => Teacher) + @ManyToMany(() => {return Teacher}) teachers!: Collection; - @ManyToMany(() => Student) + @ManyToMany(() => {return Student}) students!: Collection; } diff --git a/backend/src/entities/classes/teacher-invitation.entity.ts b/backend/src/entities/classes/teacher-invitation.entity.ts index 375bf719..feba8fc3 100644 --- a/backend/src/entities/classes/teacher-invitation.entity.ts +++ b/backend/src/entities/classes/teacher-invitation.entity.ts @@ -7,12 +7,12 @@ import { Class } from './class.entity.js'; */ @Entity() export class TeacherInvitation { - @ManyToOne({ entity: () => Teacher, primary: true }) + @ManyToOne({ entity: () => {return Teacher}, primary: true }) sender!: Teacher; - @ManyToOne({ entity: () => Teacher, primary: true }) + @ManyToOne({ entity: () => {return Teacher}, primary: true }) receiver!: Teacher; - @ManyToOne({ entity: () => Class, primary: true }) + @ManyToOne({ entity: () => {return Class}, primary: true }) class!: Class; } diff --git a/backend/src/entities/content/attachment.entity.ts b/backend/src/entities/content/attachment.entity.ts index 5a77d4b7..2ead7262 100644 --- a/backend/src/entities/content/attachment.entity.ts +++ b/backend/src/entities/content/attachment.entity.ts @@ -3,7 +3,7 @@ import { LearningObject } from './learning-object.entity.js'; @Entity() export class Attachment { - @ManyToOne({ entity: () => LearningObject, primary: true }) + @ManyToOne({ entity: () => {return LearningObject}, primary: true }) learningObject!: LearningObject; @PrimaryKey({ type: 'integer' }) diff --git a/backend/src/entities/content/learning-object.entity.ts b/backend/src/entities/content/learning-object.entity.ts index aeee268d..c5bfe08f 100644 --- a/backend/src/entities/content/learning-object.entity.ts +++ b/backend/src/entities/content/learning-object.entity.ts @@ -17,13 +17,13 @@ export class LearningObject { @PrimaryKey({ type: 'string' }) hruid!: string; - @Enum({ items: () => Language, primary: true }) + @Enum({ items: () => {return Language}, primary: true }) language!: Language; @PrimaryKey({ type: 'string' }) version: string = '1'; - @ManyToMany({ entity: () => Teacher }) + @ManyToMany({ entity: () => {return Teacher} }) admins!: Teacher[]; @Property({ type: 'string' }) @@ -47,7 +47,7 @@ export class LearningObject { @Property({ type: 'array' }) skosConcepts!: string[]; - @Embedded({ entity: () => EducationalGoal, array: true }) + @Embedded({ entity: () => {return EducationalGoal}, array: true }) educationalGoals: EducationalGoal[] = []; @Property({ type: 'string' }) @@ -62,7 +62,7 @@ export class LearningObject { @Property({ type: 'integer' }) estimatedTime!: number; - @Embedded({ entity: () => ReturnValue }) + @Embedded({ entity: () => {return ReturnValue} }) returnValue!: ReturnValue; @Property({ type: 'bool' }) @@ -71,7 +71,7 @@ export class LearningObject { @Property({ type: 'string', nullable: true }) contentLocation?: string; - @OneToMany({ entity: () => Attachment, mappedBy: 'learningObject' }) + @OneToMany({ entity: () => {return Attachment}, mappedBy: 'learningObject' }) attachments: Attachment[] = []; @Property({ type: 'blob' }) diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index f426cdfe..f758dace 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -16,10 +16,10 @@ export class LearningPath { @PrimaryKey({ type: 'string' }) hruid!: string; - @Enum({ items: () => Language, primary: true }) + @Enum({ items: () => {return Language}, primary: true }) language!: Language; - @ManyToMany({ entity: () => Teacher }) + @ManyToMany({ entity: () => {return Teacher} }) admins!: Teacher[]; @Property({ type: 'string' }) @@ -31,7 +31,7 @@ export class LearningPath { @Property({ type: 'blob' }) image!: string; - @Embedded({ entity: () => LearningPathNode, array: true }) + @Embedded({ entity: () => {return LearningPathNode}, array: true }) nodes: LearningPathNode[] = []; } @@ -40,7 +40,7 @@ export class LearningPathNode { @Property({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => Language }) + @Enum({ items: () => {return Language} }) language!: Language; @Property({ type: 'string' }) @@ -52,7 +52,7 @@ export class LearningPathNode { @Property({ type: 'bool' }) startNode!: boolean; - @Embedded({ entity: () => LearningPathTransition, array: true }) + @Embedded({ entity: () => {return LearningPathTransition}, array: true }) transitions!: LearningPathTransition[]; } @@ -61,6 +61,6 @@ export class LearningPathTransition { @Property({ type: 'string' }) condition!: string; - @OneToOne({ entity: () => LearningPathNode }) + @OneToOne({ entity: () => {return LearningPathNode} }) next!: LearningPathNode; } diff --git a/backend/src/entities/questions/answer.entity.ts b/backend/src/entities/questions/answer.entity.ts index b15dce71..2690d50d 100644 --- a/backend/src/entities/questions/answer.entity.ts +++ b/backend/src/entities/questions/answer.entity.ts @@ -4,10 +4,10 @@ import { Teacher } from '../users/teacher.entity'; @Entity() export class Answer { - @ManyToOne({ entity: () => Teacher, primary: true }) + @ManyToOne({ entity: () => {return Teacher}, primary: true }) author!: Teacher; - @ManyToOne({ entity: () => Question, primary: true }) + @ManyToOne({ entity: () => {return Question}, primary: true }) toQuestion!: Question; @PrimaryKey({ type: 'integer' }) diff --git a/backend/src/entities/questions/question.entity.ts b/backend/src/entities/questions/question.entity.ts index 6c0d07e5..5830c816 100644 --- a/backend/src/entities/questions/question.entity.ts +++ b/backend/src/entities/questions/question.entity.ts @@ -7,7 +7,7 @@ export class Question { @PrimaryKey({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => Language, primary: true }) + @Enum({ items: () => {return Language}, primary: true }) learningObjectLanguage!: Language; @PrimaryKey({ type: 'string' }) @@ -16,7 +16,7 @@ export class Question { @PrimaryKey({ type: 'integer' }) sequenceNumber!: number; - @ManyToOne({ entity: () => Student }) + @ManyToOne({ entity: () => {return Student} }) author!: Student; @Property({ type: 'datetime' }) diff --git a/backend/src/entities/users/student.entity.ts b/backend/src/entities/users/student.entity.ts index dc791adc..ccfa7dfc 100644 --- a/backend/src/entities/users/student.entity.ts +++ b/backend/src/entities/users/student.entity.ts @@ -4,12 +4,12 @@ import { Class } from '../classes/class.entity.js'; import { Group } from '../assignments/group.entity.js'; import { StudentRepository } from '../../data/users/student-repository.js'; -@Entity({ repository: () => StudentRepository }) +@Entity({ repository: () => {return StudentRepository} }) export class Student extends User { - @ManyToMany(() => Class) + @ManyToMany(() => {return Class}) classes!: Collection; - @ManyToMany(() => Group) + @ManyToMany(() => {return Group}) groups!: Collection; constructor( diff --git a/backend/src/entities/users/teacher.entity.ts b/backend/src/entities/users/teacher.entity.ts index 2327527c..eaaa8327 100644 --- a/backend/src/entities/users/teacher.entity.ts +++ b/backend/src/entities/users/teacher.entity.ts @@ -4,6 +4,6 @@ import { Class } from '../classes/class.entity.js'; @Entity() export class Teacher extends User { - @ManyToMany(() => Class) + @ManyToMany(() => {return Class}) classes!: Collection; } diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index da118827..88996cf9 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -15,9 +15,9 @@ function config(testingMode: boolean = false): Options { // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) - dynamicImportProvider: (id) => import(id), + dynamicImportProvider: (id) => {return import(id)}, }; - } else { + } return { driver: PostgreSqlDriver, host: getEnvVar(EnvVars.DbHost), @@ -29,7 +29,7 @@ function config(testingMode: boolean = false): Options { entitiesTs: entitiesTs, debug: true, }; - } + } export default config; diff --git a/backend/src/routes/assignment.ts b/backend/src/routes/assignment.ts index fcb6e9da..eb49144f 100644 --- a/backend/src/routes/assignment.ts +++ b/backend/src/routes/assignment.ts @@ -1,7 +1,7 @@ import express from 'express' const router = express.Router(); -// root endpoint used to search objects +// Root endpoint used to search objects router.get('/', (req, res) => { res.json({ assignments: [ @@ -11,7 +11,7 @@ router.get('/', (req, res) => { }); }); -// information about an assignment with id 'id' +// Information about an assignment with id 'id' router.get('/:id', (req, res) => { res.json({ id: req.params.id, diff --git a/backend/src/routes/class.ts b/backend/src/routes/class.ts index e554a7f2..fa7a2310 100644 --- a/backend/src/routes/class.ts +++ b/backend/src/routes/class.ts @@ -1,7 +1,7 @@ import express from 'express' const router = express.Router(); -// root endpoint used to search objects +// Root endpoint used to search objects router.get('/', (req, res) => { res.json({ classes: [ @@ -11,7 +11,7 @@ router.get('/', (req, res) => { }); }); -// information about an class with id 'id' +// Information about an class with id 'id' router.get('/:id', (req, res) => { res.json({ id: req.params.id, diff --git a/backend/src/routes/group.ts b/backend/src/routes/group.ts index e55dddd1..e951a8a7 100644 --- a/backend/src/routes/group.ts +++ b/backend/src/routes/group.ts @@ -1,7 +1,7 @@ import express from 'express' const router = express.Router(); -// root endpoint used to search objects +// Root endpoint used to search objects router.get('/', (req, res) => { res.json({ groups: [ @@ -11,20 +11,20 @@ router.get('/', (req, res) => { }); }); -// information about a group (members, ... [TODO DOC]) +// Information about a group (members, ... [TODO DOC]) router.get('/:id', (req, res) => { res.json({ id: req.params.id, assignment: '0', students: [ '0' ], submissions: [ '0' ], - // reference to other endpoint - // should be less hardcoded + // Reference to other endpoint + // Should be less hardcoded questions: `/group/${req.params.id}/question`, }); }) -// the list of questions a group has made +// The list of questions a group has made router.get('/:id/question', (req, res) => { res.json({ questions: [ '0' ], diff --git a/backend/src/routes/login.ts b/backend/src/routes/login.ts index 550e6d93..bc2ed3d8 100644 --- a/backend/src/routes/login.ts +++ b/backend/src/routes/login.ts @@ -1,11 +1,11 @@ import express from 'express' const router = express.Router(); -// returns login paths for IDP +// Returns login paths for IDP router.get('/', (req, res) => { res.json({ - // dummy variables, needs to be changed - // with IDP endpoints + // Dummy variables, needs to be changed + // With IDP endpoints leerkracht: '/login-leerkracht', leerling: '/login-leerling', }); diff --git a/backend/src/routes/question.ts b/backend/src/routes/question.ts index 25d168b7..040f742d 100644 --- a/backend/src/routes/question.ts +++ b/backend/src/routes/question.ts @@ -1,7 +1,7 @@ import express from 'express' const router = express.Router(); -// root endpoint used to search objects +// Root endpoint used to search objects router.get('/', (req, res) => { res.json({ questions: [ @@ -11,7 +11,7 @@ router.get('/', (req, res) => { }); }); -// information about an question with id 'id' +// Information about an question with id 'id' router.get('/:id', (req, res) => { res.json({ id: req.params.id, diff --git a/backend/src/routes/student.ts b/backend/src/routes/student.ts index a11c1fbc..bc3f588b 100644 --- a/backend/src/routes/student.ts +++ b/backend/src/routes/student.ts @@ -1,7 +1,7 @@ import express from 'express' const router = express.Router(); -// root endpoint used to search objects +// Root endpoint used to search objects router.get('/', (req, res) => { res.json({ students: [ @@ -11,7 +11,7 @@ router.get('/', (req, res) => { }); }); -// information about a student's profile +// Information about a student's profile router.get('/:id', (req, res) => { res.json({ id: req.params.id, @@ -27,14 +27,14 @@ router.get('/:id', (req, res) => { }); }); -// the list of classes a student is in +// The list of classes a student is in router.get('/:id/classes', (req, res) => { res.json({ classes: [ '0' ], }); }) -// the list of submissions a student has made +// The list of submissions a student has made router.get('/:id/submissions', (req, res) => { res.json({ submissions: [ '0' ], @@ -42,14 +42,14 @@ router.get('/:id/submissions', (req, res) => { }) -// the list of assignments a student has +// The list of assignments a student has router.get('/:id/assignments', (req, res) => { res.json({ assignments: [ '0' ], }); }) -// the list of groups a student is in +// The list of groups a student is in router.get('/:id/groups', (req, res) => { res.json({ groups: [ '0' ], diff --git a/backend/src/routes/submission.ts b/backend/src/routes/submission.ts index 8d09cf8e..98acc842 100644 --- a/backend/src/routes/submission.ts +++ b/backend/src/routes/submission.ts @@ -1,7 +1,7 @@ import express from 'express' const router = express.Router(); -// root endpoint used to search objects +// Root endpoint used to search objects router.get('/', (req, res) => { res.json({ submissions: [ @@ -11,7 +11,7 @@ router.get('/', (req, res) => { }); }); -// information about an submission with id 'id' +// Information about an submission with id 'id' router.get('/:id', (req, res) => { res.json({ id: req.params.id, diff --git a/backend/src/routes/teacher.ts b/backend/src/routes/teacher.ts index 37b3b04b..f9de3aa5 100644 --- a/backend/src/routes/teacher.ts +++ b/backend/src/routes/teacher.ts @@ -1,7 +1,7 @@ import express from 'express' const router = express.Router(); -// root endpoint used to search objects +// Root endpoint used to search objects router.get('/', (req, res) => { res.json({ teachers: [ @@ -11,7 +11,7 @@ router.get('/', (req, res) => { }); }); -// information about a teacher +// Information about a teacher router.get('/:id', (req, res) => { res.json({ id: req.params.id, @@ -27,7 +27,7 @@ router.get('/:id', (req, res) => { }); }) -// the questions students asked a teacher +// The questions students asked a teacher router.get('/:id/questions', (req, res) => { res.json({ questions: [ @@ -36,7 +36,7 @@ router.get('/:id/questions', (req, res) => { }); }); -// invitations to other classes a teacher received +// Invitations to other classes a teacher received router.get('/:id/invitations', (req, res) => { res.json({ invitations: [ @@ -45,7 +45,7 @@ router.get('/:id/invitations', (req, res) => { }); }); -// a list with ids of classes a teacher is in +// A list with ids of classes a teacher is in router.get('/:id/classes', (req, res) => { res.json({ classes: [ diff --git a/backend/tests/data/users.test.ts b/backend/tests/data/users.test.ts index c7cc875d..a982151e 100644 --- a/backend/tests/data/users.test.ts +++ b/backend/tests/data/users.test.ts @@ -18,7 +18,7 @@ describe("StudentRepository", () => { it("should return the queried student after he was added", async () => { await studentRepository.insert(new Student(username, firstName, lastName)); - let retrievedStudent = await studentRepository.findByUsername(username); + const retrievedStudent = await studentRepository.findByUsername(username); expect(retrievedStudent).toBeTruthy(); expect(retrievedStudent?.firstName).toBe(firstName); expect(retrievedStudent?.lastName).toBe(lastName); @@ -27,7 +27,7 @@ describe("StudentRepository", () => { it("should no longer return the queried student after he was removed again", async () => { await studentRepository.deleteByUsername(username); - let retrievedStudent = await studentRepository.findByUsername(username); + const retrievedStudent = await studentRepository.findByUsername(username); expect(retrievedStudent).toBeNull(); }); }); From 17893a6990c1ea1e7dd2306e45d65f54ac1a884e Mon Sep 17 00:00:00 2001 From: Lint Action Date: Sat, 1 Mar 2025 10:33:30 +0000 Subject: [PATCH 33/80] style: fix linting issues met Prettier --- backend/_i18n/de.yml | 478 ++++++++-------- backend/_i18n/en.yml | 466 ++++++++-------- backend/_i18n/fr.yml | 494 ++++++++--------- backend/_i18n/nl.yml | 522 +++++++++--------- backend/src/app.ts | 1 - .../entities/assignments/assignment.entity.ts | 20 +- .../src/entities/assignments/group.entity.ts | 13 +- .../entities/assignments/submission.entity.ts | 20 +- .../classes/class-join-request.entity.ts | 18 +- backend/src/entities/classes/class.entity.ts | 8 +- .../classes/teacher-invitation.entity.ts | 21 +- .../src/entities/content/attachment.entity.ts | 7 +- .../content/learning-object.entity.ts | 33 +- .../entities/content/learning-path.entity.ts | 39 +- .../src/entities/questions/answer.entity.ts | 14 +- .../src/entities/questions/question.entity.ts | 13 +- backend/src/entities/users/student.entity.ts | 14 +- backend/src/entities/users/teacher.entity.ts | 4 +- backend/src/mikro-orm.config.ts | 29 +- backend/src/routes/assignment.ts | 25 +- backend/src/routes/class.ts | 37 +- backend/src/routes/group.ts | 21 +- backend/src/routes/login.ts | 6 +- backend/src/routes/question.ts | 24 +- backend/src/routes/student.ts | 28 +- backend/src/routes/submission.ts | 11 +- backend/src/routes/teacher.ts | 24 +- backend/tests/data/users.test.ts | 32 +- backend/tests/setup-tests.ts | 6 +- backend/vitest.config.ts | 4 +- docker-compose.yml | 20 +- frontend/src/App.vue | 9 +- frontend/src/components/BrowseThemes.vue | 6 +- frontend/src/components/LearningPath.vue | 8 +- frontend/src/components/MenuBar.vue | 10 +- frontend/src/components/errors/NotFound.vue | 8 +- frontend/src/router/index.ts | 44 +- frontend/src/views/HomePage.vue | 8 +- frontend/src/views/LoginPage.vue | 7 +- frontend/src/views/StudentHomepage.vue | 8 +- frontend/src/views/TeacherHomepage.vue | 8 +- .../views/assignments/CreateAssignment.vue | 8 +- .../views/assignments/SingleAssignment.vue | 8 +- .../views/assignments/StudentAssignments.vue | 8 +- .../views/assignments/TeacherAssignments.vue | 8 +- frontend/src/views/classes/CreateClass.vue | 8 +- frontend/src/views/classes/SingleClass.vue | 8 +- frontend/src/views/classes/StudentClasses.vue | 8 +- frontend/src/views/classes/TeacherClasses.vue | 8 +- .../views/discussions/CreateDiscussion.vue | 8 +- .../views/discussions/SingleDiscussion.vue | 8 +- .../views/discussions/StudentDiscussions.vue | 8 +- .../views/discussions/TeacherDiscussions.vue | 8 +- 53 files changed, 1350 insertions(+), 1314 deletions(-) diff --git a/backend/_i18n/de.yml b/backend/_i18n/de.yml index 3356a9aa..08d48473 100644 --- a/backend/_i18n/de.yml +++ b/backend/_i18n/de.yml @@ -7,320 +7,320 @@ curricula_page: algorithms: title: Algorithmen sub_title: Algorithmen - description: "Schüler der zweiten und dritten Klasse (Sekundarstufe) lernen, wie sie Algorithmen verwenden können, um Probleme zu lösen. Sie lernen, wie sie Algorithmen entwerfen und die Effizienz von Algorithmen analysieren können. Sie lernen auch, wie sie Algorithmen zur Problemlösung einsetzen können." - contact: "" + description: 'Schüler der zweiten und dritten Klasse (Sekundarstufe) lernen, wie sie Algorithmen verwenden können, um Probleme zu lösen. Sie lernen, wie sie Algorithmen entwerfen und die Effizienz von Algorithmen analysieren können. Sie lernen auch, wie sie Algorithmen zur Problemlösung einsetzen können.' + contact: '' teaser: https://www.youtube.com/embed/2B6gZ9HdQ1Y basics_ai: title: Basisprincipes van AI sub_title: Basisprincipes van AI - description: "Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen." - contact: "" + description: 'Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen.' + contact: '' kiks: title: KI und Klima sub_title: KIKS - description: "Schülerinnen und Schüler der dritten Klasse (SO) erforschen, wie Pflanzen sich über ihre Spaltöffnungen an den Klimawandel anpassen. Dazu zählen sie diese Spaltöffnungen mit künstlicher Intelligenz und Bilderkennung." - contact: "" + description: 'Schülerinnen und Schüler der dritten Klasse (SO) erforschen, wie Pflanzen sich über ihre Spaltöffnungen an den Klimawandel anpassen. Dazu zählen sie diese Spaltöffnungen mit künstlicher Intelligenz und Bilderkennung.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co curricula_files: - - file_title: "Projektblatt KIKS" - file_info: "Dies ist ein kurzer Überblick über das KIKS-Projekt mit Projektstruktur und -merkmalen." - file_location: "/assets/files/kiks/projectfiche_kiks.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Die Anleitung - auch in gedruckter Version erhältlich" - file_info: "Wir möchten den Lehrern Hintergrundwissen über den Inhalt dieses Projekts vermitteln: den Klimawandel, die Biologie der Spaltöffnungen und die Art und Weise, wie Pflanzen sich über die Spaltöffnungen an den Klimawandel anpassen, die wissenschaftliche Forschung der UGent und des Plantentuin Meise, die Bürgerwissenschaft, was künstliche Intelligenz (KI) ist, die Geschichte von KI, ihre Anwendung und Ethik, die Prinzipien digitaler Bilder, die Mathematik hinter den Algorithmen und die Grundlagen der derzeit am häufigsten verwendeten KI-Techniken. Wir zeigen auch, wie wir mit KIKS im Unterricht gearbeitet haben." - file_location: "/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Ein Schülerkurs" - file_info: "Mit dem Schülerkurs geben wir ein Beispiel für einen möglichen, umfassenden Weg, den ein Lehrer mit den Schülern gehen kann. Der Weg umfasst den Klimawandel, die Biologie der Spaltöffnungen mit einer Mikroskopie-Aufgabe, die Art und Weise, wie Pflanzen sich über die Spaltöffnungen an den Klimawandel anpassen, die wissenschaftliche Forschung der UGent und des Plantentuin Meise, das Sammeln von Daten zur Schulung eines neuronalen Netzwerks, was künstliche Intelligenz (KI) ist, die Geschichte von KI, ihre Anwendung und Ethik, die Prinzipien digitaler Bilder, das Arbeiten mit Convolutional Neural Networks, die Mathematik hinter dem Perceptron-Algorithmus, das lineare und nicht-lineare Klassifizieren von Daten und die Grundlagen des maschinellen Lernens." - file_location: "/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Die Lehrziele" - file_info: "Im Rahmen des KIKS-Projekts können viele Lehrziele erreicht werden. Der Lehrer entscheidet selbst, welche Lehrziele mit dem Projekt in Verbindung gebracht werden. Darüber hinaus bietet das Projekt viele Möglichkeiten, die Schüler aktiv und selbstständig lernen zu lassen und ICT-Kenntnisse zu vermitteln. KIKS kann auch verwendet werden, um eine Forschungsaufgabe zu entwickeln. In den Endzielen und Lehrplänen der verschiedenen Verbände finden sich viele Lehrziele, die KIKS mit Biologie, Geografie und Mathematik verknüpfen." - file_location: "/assets/files/kiks/Leerdoelen-KIKS.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Das Erstellen eines Nagellaktabdrucks eines Blattteils" - file_info: "Um die Anzahl der Spaltöffnungen auf einem Teil eines Blattes einer Pflanze zu kennen, betrachten wir die Blattoberfläche unter dem Mikroskop. Wir können dazu einen Teil der dünnen Cuticula des Blattes entfernen, aber bei einigen Pflanzen gelingt das nicht so gut, zum Beispiel aufgrund der Steifheit des Blattes. Dies kann jedoch aufgefangen werden, indem die gleiche Methode verwendet wird wie die Forscher des Plantentuin Meise, nämlich einen Abdruck eines Teils der Blattoberfläche mit transparentem Nagellack zu machen. Das mikroskopische Bild kann mit einem Smartphone fotografiert werden." - file_location: "https://vimeo.com/467062270" - file_icon_name: "play_arrow" - link_name: "Ansehen" + - file_title: 'Projektblatt KIKS' + file_info: 'Dies ist ein kurzer Überblick über das KIKS-Projekt mit Projektstruktur und -merkmalen.' + file_location: '/assets/files/kiks/projectfiche_kiks.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Die Anleitung - auch in gedruckter Version erhältlich' + file_info: 'Wir möchten den Lehrern Hintergrundwissen über den Inhalt dieses Projekts vermitteln: den Klimawandel, die Biologie der Spaltöffnungen und die Art und Weise, wie Pflanzen sich über die Spaltöffnungen an den Klimawandel anpassen, die wissenschaftliche Forschung der UGent und des Plantentuin Meise, die Bürgerwissenschaft, was künstliche Intelligenz (KI) ist, die Geschichte von KI, ihre Anwendung und Ethik, die Prinzipien digitaler Bilder, die Mathematik hinter den Algorithmen und die Grundlagen der derzeit am häufigsten verwendeten KI-Techniken. Wir zeigen auch, wie wir mit KIKS im Unterricht gearbeitet haben.' + file_location: '/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Ein Schülerkurs' + file_info: 'Mit dem Schülerkurs geben wir ein Beispiel für einen möglichen, umfassenden Weg, den ein Lehrer mit den Schülern gehen kann. Der Weg umfasst den Klimawandel, die Biologie der Spaltöffnungen mit einer Mikroskopie-Aufgabe, die Art und Weise, wie Pflanzen sich über die Spaltöffnungen an den Klimawandel anpassen, die wissenschaftliche Forschung der UGent und des Plantentuin Meise, das Sammeln von Daten zur Schulung eines neuronalen Netzwerks, was künstliche Intelligenz (KI) ist, die Geschichte von KI, ihre Anwendung und Ethik, die Prinzipien digitaler Bilder, das Arbeiten mit Convolutional Neural Networks, die Mathematik hinter dem Perceptron-Algorithmus, das lineare und nicht-lineare Klassifizieren von Daten und die Grundlagen des maschinellen Lernens.' + file_location: '/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Die Lehrziele' + file_info: 'Im Rahmen des KIKS-Projekts können viele Lehrziele erreicht werden. Der Lehrer entscheidet selbst, welche Lehrziele mit dem Projekt in Verbindung gebracht werden. Darüber hinaus bietet das Projekt viele Möglichkeiten, die Schüler aktiv und selbstständig lernen zu lassen und ICT-Kenntnisse zu vermitteln. KIKS kann auch verwendet werden, um eine Forschungsaufgabe zu entwickeln. In den Endzielen und Lehrplänen der verschiedenen Verbände finden sich viele Lehrziele, die KIKS mit Biologie, Geografie und Mathematik verknüpfen.' + file_location: '/assets/files/kiks/Leerdoelen-KIKS.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Das Erstellen eines Nagellaktabdrucks eines Blattteils' + file_info: 'Um die Anzahl der Spaltöffnungen auf einem Teil eines Blattes einer Pflanze zu kennen, betrachten wir die Blattoberfläche unter dem Mikroskop. Wir können dazu einen Teil der dünnen Cuticula des Blattes entfernen, aber bei einigen Pflanzen gelingt das nicht so gut, zum Beispiel aufgrund der Steifheit des Blattes. Dies kann jedoch aufgefangen werden, indem die gleiche Methode verwendet wird wie die Forscher des Plantentuin Meise, nämlich einen Abdruck eines Teils der Blattoberfläche mit transparentem Nagellack zu machen. Das mikroskopische Bild kann mit einem Smartphone fotografiert werden.' + file_location: 'https://vimeo.com/467062270' + file_icon_name: 'play_arrow' + link_name: 'Ansehen' socialrobot: title: Sozialer Roboter sub_title: Robotik im Klassenzimmer - description: "Während Schülerinnen und Schüler der ersten Klasse (SO) einen sozialen Roboter basteln und programmieren, lernen sie komplexe Probleme durch computational thinking zu lösen. Auf spielerische Weise arbeiten sie an den neuen Endzielen für digitale Kompetenzen." + description: 'Während Schülerinnen und Schüler der ersten Klasse (SO) einen sozialen Roboter basteln und programmieren, lernen sie komplexe Probleme durch computational thinking zu lösen. Auf spielerische Weise arbeiten sie an den neuen Endzielen für digitale Kompetenzen.' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels wenden unter Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Projektblatt Sozialer Roboter" + - file_title: 'Projektblatt Sozialer Roboter' file_info: "Dies ist ein kurzer Überblick über das Projekt 'Sozialer Roboter' mit Projektstruktur und -merkmalen." - file_location: "/assets/files/socialrobot/projectfiche_socialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Collage sozialer Roboter" - file_info: "Die Roboter auf diesem Foto sind Arbeiten von Schülern der ersten Klasse der Sekundarstufe oder Prototypen." - file_location: "/assets/files/socialrobot/collage.png" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/socialrobot/projectfiche_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Collage sozialer Roboter' + file_info: 'Die Roboter auf diesem Foto sind Arbeiten von Schülern der ersten Klasse der Sekundarstufe oder Prototypen.' + file_location: '/assets/files/socialrobot/collage.png' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Bausatz für das 'Sozialer Roboter'-Projekt" - file_info: "Möchten Sie, dass Ihre Schülerinnen und Schüler auch einen sozialen Roboter entwerfen und bauen? Das geht mit dem Bausatz von Dwengo vzw. Auf der Abbildung sehen Sie die aktuelle Zusammensetzung des Bausatzes. Interessiert? Kontaktieren Sie uns per E-Mail oder finden Sie weitere Informationen auf dieser Projektseite." - file_location: "/assets/files/socialrobot/constructiekit_socialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Vom Projekt zu den Endzielen" + file_info: 'Möchten Sie, dass Ihre Schülerinnen und Schüler auch einen sozialen Roboter entwerfen und bauen? Das geht mit dem Bausatz von Dwengo vzw. Auf der Abbildung sehen Sie die aktuelle Zusammensetzung des Bausatzes. Interessiert? Kontaktieren Sie uns per E-Mail oder finden Sie weitere Informationen auf dieser Projektseite.' + file_location: '/assets/files/socialrobot/constructiekit_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Vom Projekt zu den Endzielen' file_info: "Die Endziele, an denen gearbeitet werden kann, werden mit den verschiedenen Phasen des Projekts 'Sozialer Roboter' verknüpft." - file_location: "/assets/files/socialrobot/EindtermenAStroomSsocialeRobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotionsmaschine (unvollständig) - Computational Thinking (unplugged Aktivität)" - file_info: "Unplugged Aktivität" - file_location: "/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotionsmaschine (Aufgabe) - Computational Thinking (unplugged Aktivität)" - file_info: "Unplugged Aktivität" - file_location: "/assets/files/socialrobot/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotionsmaschine (vollständig) - Computational Thinking (unplugged Aktivität)" - file_info: "Unplugged Aktivität" - file_location: "/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotionsmaschine mit LED-Matrix - Computational Thinking (unplugged Aktivität)" - file_info: "Unplugged Aktivität" - file_location: "/assets/files/socialrobot/emotiemachine_matrices_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Lehrerhandbuch" - file_info: "Die gebündelten Handbücher, in denen die Verwendung des Dwenguino und der Sensoren und Aktuatoren erklärt wird." - file_location: "/assets/files/socialrobot/ficheboekje_lkn.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Handbücher für Schülerinnen und Schüler" - file_info: "In diesen Handbüchern wird die Verwendung des Dwenguino und der Sensoren und Aktuatoren erklärt." - file_location: "/assets/files/socialrobot/fichesSocialeRobot_lln.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Erstelle ein Gesicht - Computational Thinking (unplugged Aktivität)" - file_info: "Unplugged Aktivität" - file_location: "/assets/files/socialrobot/maakeengezicht_activiteit.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Aufgaben der Übungen im MOOC" - file_info: "Eine Übersicht über die Programmieraufgaben im MOOC." - file_location: "/assets/files/socialrobot/Opgaven_MOOC.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/socialrobot/EindtermenAStroomSsocialeRobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotionsmaschine (unvollständig) - Computational Thinking (unplugged Aktivität)' + file_info: 'Unplugged Aktivität' + file_location: '/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotionsmaschine (Aufgabe) - Computational Thinking (unplugged Aktivität)' + file_info: 'Unplugged Aktivität' + file_location: '/assets/files/socialrobot/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotionsmaschine (vollständig) - Computational Thinking (unplugged Aktivität)' + file_info: 'Unplugged Aktivität' + file_location: '/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotionsmaschine mit LED-Matrix - Computational Thinking (unplugged Aktivität)' + file_info: 'Unplugged Aktivität' + file_location: '/assets/files/socialrobot/emotiemachine_matrices_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Lehrerhandbuch' + file_info: 'Die gebündelten Handbücher, in denen die Verwendung des Dwenguino und der Sensoren und Aktuatoren erklärt wird.' + file_location: '/assets/files/socialrobot/ficheboekje_lkn.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Handbücher für Schülerinnen und Schüler' + file_info: 'In diesen Handbüchern wird die Verwendung des Dwenguino und der Sensoren und Aktuatoren erklärt.' + file_location: '/assets/files/socialrobot/fichesSocialeRobot_lln.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Erstelle ein Gesicht - Computational Thinking (unplugged Aktivität)' + file_info: 'Unplugged Aktivität' + file_location: '/assets/files/socialrobot/maakeengezicht_activiteit.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Aufgaben der Übungen im MOOC' + file_info: 'Eine Übersicht über die Programmieraufgaben im MOOC.' + file_location: '/assets/files/socialrobot/Opgaven_MOOC.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Poster 'Sozialer Roboter'-Projekt" - file_info: "Das Poster zeigt die verschiedenen Aspekte des Projekts." - file_location: "/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'Das Poster zeigt die verschiedenen Aspekte des Projekts.' + file_location: '/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Handbuch 'Hallo Roboter!'" - file_info: "Mit diesem Lehrbuch bringen Sie Ihren eigenen sozialen Roboter zum Leben." - file_location: "/assets/files/socialrobot/handleiding_hallo_robot.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'Mit diesem Lehrbuch bringen Sie Ihren eigenen sozialen Roboter zum Leben.' + file_location: '/assets/files/socialrobot/handleiding_hallo_robot.pdf' + file_icon_name: 'description' + link_name: 'Download' chatbot: title: Sprachtechnologie in der Schule sub_title: Mit einem Chatbot arbeiten - description: "Wo Sprache und Technologie aufeinandertreffen, entsteht das Gebiet des Natural Language Processing. Kann ein Computer Texte verstehen, übersetzen oder sogar schreiben? Kann ein Computer Emotionen erkennen? Schülerinnen und Schüler der zweiten und dritten Klasse (SO) lernen in diesem Paket alles darüber." + description: 'Wo Sprache und Technologie aufeinandertreffen, entsteht das Gebiet des Natural Language Processing. Kann ein Computer Texte verstehen, übersetzen oder sogar schreiben? Kann ein Computer Emotionen erkennen? Schülerinnen und Schüler der zweiten und dritten Klasse (SO) lernen in diesem Paket alles darüber.' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels wenden unter Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Projektblatt Chatbot" - file_info: "Dies ist ein kurzer Überblick über das Chatbot-Projekt mit Projektstruktur und -merkmalen." - file_location: "/assets/files/chatbot/projectfiche_chatbot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "BrAInfood Chatbots" - file_info: "In diesem brAInfood - für Jugendliche konzipiert - gibt das Zentrum für Daten & Gesellschaft weitere Informationen zu Chatbots. Das brAInfood enthält eine fiktive Geschichte über Lotte, die mit einem Chatbot spricht und vermutlich Informationen über sie an Unternehmen weitergibt. Es werden auch einige Punkte zu Chatbots erläutert sowie einige Tipps für Jugendliche, um ihre (personenbezogenen) Daten besser zu schützen. Auf diese Weise möchten wir Jugendliche für die Funktionsweise von Chatbots sensibilisieren und sie dazu anregen, über die gesammelten Daten nachzudenken." - file_location: "/assets/files/chatbot/Brainfood13_Chatbots_NL.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "BrAInfood Personalisierte Nachrichten" - file_info: "In diesem brAInfood des Zentrums für Daten & Gesellschaft werden Tipps gegeben, wie Sie die Kontrolle über Ihren Nachrichten-Feed behalten können." - file_location: "/assets/files/chatbot/brainfoodaanbevelingnieuws.jpg" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Projektblatt Chatbot' + file_info: 'Dies ist ein kurzer Überblick über das Chatbot-Projekt mit Projektstruktur und -merkmalen.' + file_location: '/assets/files/chatbot/projectfiche_chatbot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'BrAInfood Chatbots' + file_info: 'In diesem brAInfood - für Jugendliche konzipiert - gibt das Zentrum für Daten & Gesellschaft weitere Informationen zu Chatbots. Das brAInfood enthält eine fiktive Geschichte über Lotte, die mit einem Chatbot spricht und vermutlich Informationen über sie an Unternehmen weitergibt. Es werden auch einige Punkte zu Chatbots erläutert sowie einige Tipps für Jugendliche, um ihre (personenbezogenen) Daten besser zu schützen. Auf diese Weise möchten wir Jugendliche für die Funktionsweise von Chatbots sensibilisieren und sie dazu anregen, über die gesammelten Daten nachzudenken.' + file_location: '/assets/files/chatbot/Brainfood13_Chatbots_NL.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'BrAInfood Personalisierte Nachrichten' + file_info: 'In diesem brAInfood des Zentrums für Daten & Gesellschaft werden Tipps gegeben, wie Sie die Kontrolle über Ihren Nachrichten-Feed behalten können.' + file_location: '/assets/files/chatbot/brainfoodaanbevelingnieuws.jpg' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Handbuch 'Chatbot' - Auch in gedruckter Form erhältlich" file_info: "Lehrkräfte erhalten über dieses Handbuch ausreichend Hintergrundinformationen, um mit (einem Teil des) Projekts 'Chatbot' im Klassenzimmer zu arbeiten. Das Buch behandelt verschiedene Aspekte der Sprachtechnologie, wie die Geschichte der künstlichen Intelligenz, ethische Aspekte, Sentimentanalyse und Cybermobbingerkennung, Chatbots, sprechende digitale Assistenten und Autorenerkennung. Es wird auch auf die STEM-Endziele sowie die Endziele zu digitaler Kompetenz und Medienkompetenz eingegangen." - file_location: "/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Improbotics - Lehrermappe - Lehrerfassung" - file_info: "In der Theateraufführung Improbotics improvisiert ein sozialer Roboter in den Szenen mit. In der Mappe für Lehrkräfte finden Sie Informationen zu den verwendeten Technologien." - file_location: "/assets/files/chatbot/Improbotics_lesmap_Leerkracht.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Improbotics - Lehrermappe - Schülerinnen und Schüler" - file_info: "In der Theateraufführung Improbotics improvisiert ein sozialer Roboter in den Szenen mit. In der Mappe finden Sie Informationen zu den verwendeten Technologien." - file_location: "/assets/files/chatbot/Improbotics_lesmap_Leerling.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Improbotics - Lehrermappe - Lehrerfassung' + file_info: 'In der Theateraufführung Improbotics improvisiert ein sozialer Roboter in den Szenen mit. In der Mappe für Lehrkräfte finden Sie Informationen zu den verwendeten Technologien.' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Leerkracht.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Improbotics - Lehrermappe - Schülerinnen und Schüler' + file_info: 'In der Theateraufführung Improbotics improvisiert ein sozialer Roboter in den Szenen mit. In der Mappe finden Sie Informationen zu den verwendeten Technologien.' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Leerling.pdf' + file_icon_name: 'description' + link_name: 'Download' care: title: KI im Gesundheitswesen sub_title: KI-Systeme, die im Gesundheitswesen helfen - description: "Krankenhäuser machen bereits heute Gebrauch von künstlicher Intelligenz. Schülerinnen und Schüler der zweiten und dritten Klasse (SO) entdecken, welche Systeme existieren und wie sie Ärzte bei Entscheidungen unterstützen. Auf diese Weise lernen die Schülerinnen und Schüler die Prinzipien des Entscheidungsbaums, einer weit verbreiteten Technik im maschinellen Lernen." - contact: "" + description: 'Krankenhäuser machen bereits heute Gebrauch von künstlicher Intelligenz. Schülerinnen und Schüler der zweiten und dritten Klasse (SO) entdecken, welche Systeme existieren und wie sie Ärzte bei Entscheidungen unterstützen. Auf diese Weise lernen die Schülerinnen und Schüler die Prinzipien des Entscheidungsbaums, einer weit verbreiteten Technik im maschinellen Lernen.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co curricula_files: - - file_title: "Projektblatt KI im Gesundheitswesen" - file_info: "Dies ist ein kurzer Überblick über das Projekt KI im Gesundheitswesen mit Projektstruktur und -merkmalen." - file_location: "/assets/files/care/projectfiche_aiindezorg.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Sprouts" + - file_title: 'Projektblatt KI im Gesundheitswesen' + file_info: 'Dies ist ein kurzer Überblick über das Projekt KI im Gesundheitswesen mit Projektstruktur und -merkmalen.' + file_location: '/assets/files/care/projectfiche_aiindezorg.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Sprouts' file_info: "Ein Spiel zur Einführung in 'Graphen'." - file_location: "/assets/files/care/Sprouts.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Erklärung zu Übungen mit Graphen aus dem Schülerkurs" - file_info: "Welche Figuren repräsentieren denselben Graphen? Eine formalere Methode." - file_location: "/assets/files/care/dezelfdegraafFormeel.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Erklärung zu Übungen mit Graphen aus dem Schülerkurs" - file_info: "Welche Figuren repräsentieren denselben Graphen? Eine Methode mit Farben." - file_location: "/assets/files/care/dezelfdeGraaf.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Der Schülerkurs - Ziel Durchfluss" - file_info: "Schülerkurs" - file_location: "/assets/files/care/AIindeZorg_doorstroom_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Kartenset - Auch in gedruckter Form erhältlich" - file_info: "Mit diesem Kartenset können Lehrer die Schüler über ethische Aspekte neuer Technologien nachdenken lassen. Wie steht es um die Privatsphäre? Werden soziale Kontakte beeinträchtigt? Welche Technologien werden begeistert aufgenommen? Was ist nicht wünschenswert? Sind die neuen Technologien für alle erschwinglich?" - file_location: "/assets/files/care/Kaartset_AIIndeZorg_AIOpSchool_Dwengo.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Anleitung für das Kartenset" - file_info: "Diese Anleitung bietet zusätzliche Erläuterungen zum Kartenset." - file_location: "/assets/files/care/AIIndeZorgKaartenset_UitlegVoorLeerkracht.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/care/Sprouts.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Erklärung zu Übungen mit Graphen aus dem Schülerkurs' + file_info: 'Welche Figuren repräsentieren denselben Graphen? Eine formalere Methode.' + file_location: '/assets/files/care/dezelfdegraafFormeel.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Erklärung zu Übungen mit Graphen aus dem Schülerkurs' + file_info: 'Welche Figuren repräsentieren denselben Graphen? Eine Methode mit Farben.' + file_location: '/assets/files/care/dezelfdeGraaf.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Der Schülerkurs - Ziel Durchfluss' + file_info: 'Schülerkurs' + file_location: '/assets/files/care/AIindeZorg_doorstroom_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Kartenset - Auch in gedruckter Form erhältlich' + file_info: 'Mit diesem Kartenset können Lehrer die Schüler über ethische Aspekte neuer Technologien nachdenken lassen. Wie steht es um die Privatsphäre? Werden soziale Kontakte beeinträchtigt? Welche Technologien werden begeistert aufgenommen? Was ist nicht wünschenswert? Sind die neuen Technologien für alle erschwinglich?' + file_location: '/assets/files/care/Kaartset_AIIndeZorg_AIOpSchool_Dwengo.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Anleitung für das Kartenset' + file_info: 'Diese Anleitung bietet zusätzliche Erläuterungen zum Kartenset.' + file_location: '/assets/files/care/AIIndeZorgKaartenset_UitlegVoorLeerkracht.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Entscheidungsbaum 'mBrAIn'-Projekt in nicht kompakter Form" file_info: "Im Forschungsprojekt 'mBrain', das die Entwicklung einer App zum Vorhersagen eines Migräneanfalls zum Ziel hat, wurde ein Entscheidungsbaum erstellt. Mit diesem Entscheidungsbaum wird ein Problem der binären Klassifikation angegangen: Es gibt nur zwei Klassen: 'Migräne' und 'Keine Migräne'. (Quellen: Femke Ongenae. (2021), UGent; Van Hoecke, S., Ongenae, F., Paemeleire, K., & Vandenbussche, N. (2020). App muss Kopfschmerzen vorhersagen. EOS Wissenschaftsspezial, Technologie und Gesundheit, 25.) Wir haben die Form dieses Entscheidungsbaums in einen binären Entscheidungsbaum umgewandelt, um zu zeigen, dass diese Form nicht immer benutzerfreundlich ist. Weitere Informationen finden Sie im vierten Kapitel des Schülerkurses dieses Projekts." - file_location: "/assets/files/care/MBrainBeslissingsboom.png" - file_icon_name: "description" - link_name: "Download" - - file_title: "Suche nach Sprache - Computerdenken (unplugged Aktivität)" - file_info: "Das Locked-In-Syndrom ist eine der schlimmsten medizinischen Erkrankungen. Man ist vollständig gelähmt, außer dass man vielleicht noch mit einem Auge blinzeln kann. Der intelligente Geist ist in einem nutzlosen Körper eingesperrt: Man kann alles fühlen, aber nicht kommunizieren. Es kann jedem passieren, aus dem Nichts, als Folge eines Schlaganfalls. Wenn Sie Menschen mit dem Locked-In-Syndrom helfen möchten, ist es besser, Arzt oder Krankenschwester zu werden? Oder kann man als Informatiker auch helfen?" - file_location: "/assets/files/care/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/care/MBrainBeslissingsboom.png' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Suche nach Sprache - Computerdenken (unplugged Aktivität)' + file_info: 'Das Locked-In-Syndrom ist eine der schlimmsten medizinischen Erkrankungen. Man ist vollständig gelähmt, außer dass man vielleicht noch mit einem Auge blinzeln kann. Der intelligente Geist ist in einem nutzlosen Körper eingesperrt: Man kann alles fühlen, aber nicht kommunizieren. Es kann jedem passieren, aus dem Nichts, als Folge eines Schlaganfalls. Wenn Sie Menschen mit dem Locked-In-Syndrom helfen möchten, ist es besser, Arzt oder Krankenschwester zu werden? Oder kann man als Informatiker auch helfen?' + file_location: '/assets/files/care/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Download' stem: title: Python in MINT sub_title: Datavisualisierungen mit Python - description: "In diesem Paket lernen Sie, komplexe Probleme einfacher und schneller mit der Programmiersprache Python zu lösen. Programmieren kann nämlich eine verbindende Rolle zwischen Wissenschaft, Technik, Design und angewandter Mathematik spielen. Kurz gesagt, dank Python holen wir das Beste aus MINT heraus." + description: 'In diesem Paket lernen Sie, komplexe Probleme einfacher und schneller mit der Programmiersprache Python zu lösen. Programmieren kann nämlich eine verbindende Rolle zwischen Wissenschaft, Technik, Design und angewandter Mathematik spielen. Kurz gesagt, dank Python holen wir das Beste aus MINT heraus.' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels unter Francis@dwengo.org wenden. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 agriculture: title: KI in der Landwirtschaft sub_title: KI in der Landwirtschaft - description: "Verfaulte Tomaten während der Ernte entfernen? Künstliche Intelligenz kann dabei helfen. Aber wie? Schülerinnen und Schüler der zweiten und dritten Klasse (SO) setzen KI ein. Vielleicht kann ein vibrierendes Laufband das System noch verbessern?" + description: 'Verfaulte Tomaten während der Ernte entfernen? Künstliche Intelligenz kann dabei helfen. Aber wie? Schülerinnen und Schüler der zweiten und dritten Klasse (SO) setzen KI ein. Vielleicht kann ein vibrierendes Laufband das System noch verbessern?' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels unter Francis@dwengo.org wenden. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Design" - file_info: "Design des Laufbands" - file_location: "/assets/files/art/Transportband_InnoVET_RCH.zip" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Design' + file_info: 'Design des Laufbands' + file_location: '/assets/files/art/Transportband_InnoVET_RCH.zip' + file_icon_name: 'description' + link_name: 'Download' art: title: KI in der Kunst sub_title: Zeichenroboter im Unterricht - description: "Können wir Kunst mit künstlicher Intelligenz schaffen? Schülerinnen und Schüler der zweiten und dritten Klasse (SO) setzen sich kreativ mit KI auseinander und reflektieren über das Ergebnis. Ist das Kunst? Sie entdecken auch, wie KI unser kulturelles Erbe schützen kann." - contact: "" + description: 'Können wir Kunst mit künstlicher Intelligenz schaffen? Schülerinnen und Schüler der zweiten und dritten Klasse (SO) setzen sich kreativ mit KI auseinander und reflektieren über das Ergebnis. Ist das Kunst? Sie entdecken auch, wie KI unser kulturelles Erbe schützen kann.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co wegostem: title: WeGoSTEM sub_title: Zeichenroboter im Unterricht - description: "Wir fordern Kinder der dritten Klasse (GS) heraus, einen zeichnenden Kunstroboter zu programmieren. Spielerisch lernen die Kinder viele MINT-Fähigkeiten, von Technik bis zum algorithmischen Denken." + description: 'Wir fordern Kinder der dritten Klasse (GS) heraus, einen zeichnenden Kunstroboter zu programmieren. Spielerisch lernen die Kinder viele MINT-Fähigkeiten, von Technik bis zum algorithmischen Denken.' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels unter Francis@dwengo.org wenden. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 computational_thinking: title: Algorithmisches Denken sub_title: Algorithmisches Denken im Unterricht - description: "Wie können wir komplexe Probleme mithilfe eines Computers lösen? Dank algorithmischem Denken! Das können Sie durch verschiedene Aktivitäten mit oder ohne Computer lernen. Wir helfen Ihnen gerne auf dem Weg." + description: 'Wie können wir komplexe Probleme mithilfe eines Computers lösen? Dank algorithmischem Denken! Das können Sie durch verschiedene Aktivitäten mit oder ohne Computer lernen. Wir helfen Ihnen gerne auf dem Weg.' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels unter Francis@dwengo.org wenden. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Konzepte und Ansätze des algorithmischen Denkens" - file_info: "Poster​" - file_location: "/assets/files/computational_thinking/CDposterDwengo2.png" - file_icon_name: "description" - link_name: "Download" - - file_title: "Erklärung der vier Konzepte des algorithmischen Denkens" - file_info: "Präsentation über die vier Konzepte des algorithmischen Denkens: Dekomposition, Mustererkennung, Abstraktion und Algorithmus. Sie können die PDF herunterladen > öffnen > präsentieren über CTRL-L und mit den Pfeiltasten navigieren." - file_location: "/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Konzepte und Prinzipien" - file_info: "Übersicht​" - file_location: "/assets/files/computational_thinking/Icoontjes.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged-Aktivität - Emotionsmaschine (Aufgabe)" - file_info: "Wie können Sie Emotionen bei einem Roboter fördern?​" - file_location: "/assets/files/computational_thinking/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged-Aktivität - Emotionsmaschine" - file_info: "Wie können Sie Emotionen bei einem Roboter fördern?​" - file_location: "/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged-Aktivität - Farben nach Zahlen" + - file_title: 'Konzepte und Ansätze des algorithmischen Denkens' + file_info: 'Poster​' + file_location: '/assets/files/computational_thinking/CDposterDwengo2.png' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Erklärung der vier Konzepte des algorithmischen Denkens' + file_info: 'Präsentation über die vier Konzepte des algorithmischen Denkens: Dekomposition, Mustererkennung, Abstraktion und Algorithmus. Sie können die PDF herunterladen > öffnen > präsentieren über CTRL-L und mit den Pfeiltasten navigieren.' + file_location: '/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Konzepte und Prinzipien' + file_info: 'Übersicht​' + file_location: '/assets/files/computational_thinking/Icoontjes.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged-Aktivität - Emotionsmaschine (Aufgabe)' + file_info: 'Wie können Sie Emotionen bei einem Roboter fördern?​' + file_location: '/assets/files/computational_thinking/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged-Aktivität - Emotionsmaschine' + file_info: 'Wie können Sie Emotionen bei einem Roboter fördern?​' + file_location: '/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged-Aktivität - Farben nach Zahlen' file_info: "​Bilder können auf verschiedene Weisen dargestellt werden. Bei diesem Farben-nach-Zahlen-Rätsel müssen Sie ein Bild rekonstruieren, indem Sie die gegebene Liste von Zahlen verwenden. Diese Liste sagt Ihnen, welche Farbe Sie jedem Quadrat ('Pixel') zuordnen." - file_location: "/assets/files/computational_thinking/kleurenopnummer1.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged-Aktivität - Ein menschliches Computernetzwerk" - file_info: "In dieser Aktivität lernen die Schülerinnen und Schüler, wie die Datenübertragung im Internet funktioniert. Computer, Smartphones und andere Geräte, die über das Internet miteinander verbunden sind, können kommunizieren. Um sich gegenseitig zu verstehen, muss diese Kommunikation nach bestimmten Regeln erfolgen. Diese Regeln nennen wir Protokoll.​" - file_location: "/assets/files/computational_thinking/menselijkComputernetwerk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged-Aktivität - Komprimierung" - file_info: "Um Bilder über Netzwerke zu senden, möchten wir die Informationen mit möglichst wenig Daten darstellen. Hier kommt die Komprimierung ins Spiel. Mit Hilfe von Algorithmen werden Bilder mit möglichst wenigen Zahlen dargestellt, aber so, dass Sie das ursprüngliche Bild immer noch wiederherstellen können. Andere Algorithmen stellen das ursprüngliche Bild wieder her, wenn die Informationen ihr Ziel erreicht haben.​" - file_location: "/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged-Aktivität - Programmieren Sie einmal einen Menschen" - file_info: "Computer können nicht interpretieren und führen daher buchstäblich jede Anweisung aus, die Sie ihnen geben. Die Herausforderung für den Programmierer besteht darin, Probleme in kleine, vom Computer ausführbare Schritte zu zerlegen und dem Computer die Anweisungen auf die richtige Weise zu geben.​" - file_location: "/assets/files/computational_thinking/programmeerEensEenMens.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged-Aktivität - Suche nach Sprache" - file_info: "Das Locked-In-Syndrom ist eine der schlimmsten medizinischen Erkrankungen. Sie sind vollständig gelähmt, außer dass Sie vielleicht noch mit einem Auge blinzeln können. Ihr intelligenter Geist ist in einem nutzlosen Körper gefangen: Sie können alles fühlen, aber nicht kommunizieren. Es kann jedem passieren, aus dem Nichts, als Folge eines Schlaganfalls. Wenn Sie Menschen mit dem Locked-In-Syndrom helfen möchten, werden Sie am besten Arzt oder Krankenschwester? Oder kann Ihnen auch ein Informatiker helfen?​" - file_location: "/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/computational_thinking/kleurenopnummer1.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged-Aktivität - Ein menschliches Computernetzwerk' + file_info: 'In dieser Aktivität lernen die Schülerinnen und Schüler, wie die Datenübertragung im Internet funktioniert. Computer, Smartphones und andere Geräte, die über das Internet miteinander verbunden sind, können kommunizieren. Um sich gegenseitig zu verstehen, muss diese Kommunikation nach bestimmten Regeln erfolgen. Diese Regeln nennen wir Protokoll.​' + file_location: '/assets/files/computational_thinking/menselijkComputernetwerk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged-Aktivität - Komprimierung' + file_info: 'Um Bilder über Netzwerke zu senden, möchten wir die Informationen mit möglichst wenig Daten darstellen. Hier kommt die Komprimierung ins Spiel. Mit Hilfe von Algorithmen werden Bilder mit möglichst wenigen Zahlen dargestellt, aber so, dass Sie das ursprüngliche Bild immer noch wiederherstellen können. Andere Algorithmen stellen das ursprüngliche Bild wieder her, wenn die Informationen ihr Ziel erreicht haben.​' + file_location: '/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged-Aktivität - Programmieren Sie einmal einen Menschen' + file_info: 'Computer können nicht interpretieren und führen daher buchstäblich jede Anweisung aus, die Sie ihnen geben. Die Herausforderung für den Programmierer besteht darin, Probleme in kleine, vom Computer ausführbare Schritte zu zerlegen und dem Computer die Anweisungen auf die richtige Weise zu geben.​' + file_location: '/assets/files/computational_thinking/programmeerEensEenMens.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged-Aktivität - Suche nach Sprache' + file_info: 'Das Locked-In-Syndrom ist eine der schlimmsten medizinischen Erkrankungen. Sie sind vollständig gelähmt, außer dass Sie vielleicht noch mit einem Auge blinzeln können. Ihr intelligenter Geist ist in einem nutzlosen Körper gefangen: Sie können alles fühlen, aber nicht kommunizieren. Es kann jedem passieren, aus dem Nichts, als Folge eines Schlaganfalls. Wenn Sie Menschen mit dem Locked-In-Syndrom helfen möchten, werden Sie am besten Arzt oder Krankenschwester? Oder kann Ihnen auch ein Informatiker helfen?​' + file_location: '/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Download' math_with_python: title: Python im Mathematikunterricht sub_title: Python in der Mathematik - description: "Die Programmiersprache Python bietet interessante Möglichkeiten, den Mathematikunterricht zu bereichern. Von der Pythagoras-Theorie bis zur Erstellung eigener Grafiken, digitalen Bildverarbeitung und linearer Regression wird alles mit Python klarer." - contact: "" + description: 'Die Programmiersprache Python bietet interessante Möglichkeiten, den Mathematikunterricht zu bereichern. Von der Pythagoras-Theorie bis zur Erstellung eigener Grafiken, digitalen Bildverarbeitung und linearer Regression wird alles mit Python klarer.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co python_programming: title: Programmieren mit Python sub_title: Grundlagen des Programmierens in Python - description: "Die Grundprinzipien des Programmierens erlernen? Das ist perfekt möglich mit diesem Paket. Wir verwenden Python und lernen alles über Sequenzen, Wiederholungsstrukturen und Auswahlstrukturen. Genau das steht in den Endzielen. Und noch mehr!" + description: 'Die Grundprinzipien des Programmierens erlernen? Das ist perfekt möglich mit diesem Paket. Wir verwenden Python und lernen alles über Sequenzen, Wiederholungsstrukturen und Auswahlstrukturen. Genau das steht in den Endzielen. Und noch mehr!' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels unter Francis@dwengo.org wenden. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 physical_computing: title: Physical Computing sub_title: Programmieren von Robotern im Unterricht - description: "Ein Musikinstrument, Auto oder Wetterstation bauen? Das geht mit Dwenguino, einer Mikrocontroller-Plattform mit einer eigenen Programmierumgebung. Schülerinnen und Schüler der Grundschule und der Sekundarstufe können sofort damit arbeiten. Echt oder in unserem Simulator, blockbasiert oder textuell." + description: 'Ein Musikinstrument, Auto oder Wetterstation bauen? Das geht mit Dwenguino, einer Mikrocontroller-Plattform mit einer eigenen Programmierumgebung. Schülerinnen und Schüler der Grundschule und der Sekundarstufe können sofort damit arbeiten. Echt oder in unserem Simulator, blockbasiert oder textuell.' contact: Fragen? Kontaktieren Sie uns unter team@aiopschool.be. Die Presse kann sich an Francis Wyffels unter Francis@dwengo.org wenden. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Bouw jouw eigen robot" - file_info: "Baue deinen eigenen fahrenden Roboter." - file_location: "/assets/files/physical_computing/bouwjouweigenrobot.pdf" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Bouw jouw eigen robot' + file_info: 'Baue deinen eigenen fahrenden Roboter.' + file_location: '/assets/files/physical_computing/bouwjouweigenrobot.pdf' + file_icon_name: 'description' + link_name: 'Download' diff --git a/backend/_i18n/en.yml b/backend/_i18n/en.yml index 60164f92..f7778448 100644 --- a/backend/_i18n/en.yml +++ b/backend/_i18n/en.yml @@ -7,212 +7,212 @@ curricula_page: algorithms: title: Algorithms sub_title: Algorithms - description: "Students in the second and third grade (secondary education) learn how to use algorithms to solve problems. They learn how to design algorithms and analyze the efficiency of algorithms. They also learn how to use algorithms to solve problems." - contact: "" + description: 'Students in the second and third grade (secondary education) learn how to use algorithms to solve problems. They learn how to design algorithms and analyze the efficiency of algorithms. They also learn how to use algorithms to solve problems.' + contact: '' teaser: https://www.youtube.com/embed/2B6gZ9HdQ1Y basics_ai: title: Basisprincipes van AI sub_title: Basisprincipes van AI - description: "Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen." - contact: "" + description: 'Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen.' + contact: '' kiks: title: AI and Climate sub_title: KIKS - description: "Students in the third grade (SO) investigate how plants adapt to climate change through their stomata. They use artificial intelligence and image recognition to count these stomata." - contact: "" + description: 'Students in the third grade (SO) investigate how plants adapt to climate change through their stomata. They use artificial intelligence and image recognition to count these stomata.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co curricula_files: - - file_title: "Project Sheet KIKS" - file_info: "This is a brief overview of the KIKS project with project structure and characteristics." - file_location: "/assets/files/kiks/projectfiche_kiks.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "The manual - also available in print" - file_info: "We want to provide teachers with background knowledge about the content of this project: climate change, the biology of stomata, how plants adapt to climate change through stomata, the scientific research of UGent and Plantentuin Meise underlying this project, citizen science, what artificial intelligence (AI) is, the history of AI, its use and ethics, principles of digital images, mathematics behind algorithms, and foundations of currently most-used AI techniques. We also explain how we implemented KIKS in the classroom." - file_location: "/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Student Course" - file_info: "With the student course, we provide an example of a possible, comprehensive trajectory that a teacher can go through with students. The trajectory includes climate change, the biology of stomata with a microscopy assignment, how plants adapt to climate change through stomata, the scientific research of UGent and Plantentuin Meise, collecting data to train a neural network, what artificial intelligence (AI) is, the history of AI, its use and ethics, principles of digital images, working with convolutions, mathematics behind the Perceptron algorithm, linear and non-linear classification of data, and foundations of machine learning." - file_location: "/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Curriculum Goals" - file_info: "Within the KIKS project, many curriculum goals can be addressed. The teacher determines which goals are related to the project. Moreover, the project offers many opportunities to actively engage and let students learn independently, as well as teach ICT skills. KIKS can also be used for a research assignment. In the final objectives and curricula of various educational bodies, many goals can be found linking KIKS with biology, geography, and mathematics." - file_location: "/assets/files/kiks/Leerdoelen-KIKS.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Making a Nail Polish Impression of a Leaf Part" - file_info: "To know the number of stomata on a part of a plant leaf, we examine the leaf surface under the microscope. We can remove a piece of the thin cuticle of the leaf for this, but for some plants, it is not so successful, for example, due to the stiffness of the leaf. However, this can be compensated by using the same method as the researchers at Plantentuin Meise, namely, taking an impression of a part of the leaf surface with transparent nail polish. The microscopic image can be photographed with a smartphone." - file_location: "https://vimeo.com/467062270" - file_icon_name: "play_arrow" - link_name: "Watch" + - file_title: 'Project Sheet KIKS' + file_info: 'This is a brief overview of the KIKS project with project structure and characteristics.' + file_location: '/assets/files/kiks/projectfiche_kiks.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'The manual - also available in print' + file_info: 'We want to provide teachers with background knowledge about the content of this project: climate change, the biology of stomata, how plants adapt to climate change through stomata, the scientific research of UGent and Plantentuin Meise underlying this project, citizen science, what artificial intelligence (AI) is, the history of AI, its use and ethics, principles of digital images, mathematics behind algorithms, and foundations of currently most-used AI techniques. We also explain how we implemented KIKS in the classroom.' + file_location: '/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Student Course' + file_info: 'With the student course, we provide an example of a possible, comprehensive trajectory that a teacher can go through with students. The trajectory includes climate change, the biology of stomata with a microscopy assignment, how plants adapt to climate change through stomata, the scientific research of UGent and Plantentuin Meise, collecting data to train a neural network, what artificial intelligence (AI) is, the history of AI, its use and ethics, principles of digital images, working with convolutions, mathematics behind the Perceptron algorithm, linear and non-linear classification of data, and foundations of machine learning.' + file_location: '/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Curriculum Goals' + file_info: 'Within the KIKS project, many curriculum goals can be addressed. The teacher determines which goals are related to the project. Moreover, the project offers many opportunities to actively engage and let students learn independently, as well as teach ICT skills. KIKS can also be used for a research assignment. In the final objectives and curricula of various educational bodies, many goals can be found linking KIKS with biology, geography, and mathematics.' + file_location: '/assets/files/kiks/Leerdoelen-KIKS.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Making a Nail Polish Impression of a Leaf Part' + file_info: 'To know the number of stomata on a part of a plant leaf, we examine the leaf surface under the microscope. We can remove a piece of the thin cuticle of the leaf for this, but for some plants, it is not so successful, for example, due to the stiffness of the leaf. However, this can be compensated by using the same method as the researchers at Plantentuin Meise, namely, taking an impression of a part of the leaf surface with transparent nail polish. The microscopic image can be photographed with a smartphone.' + file_location: 'https://vimeo.com/467062270' + file_icon_name: 'play_arrow' + link_name: 'Watch' socialrobot: title: Social Robot sub_title: Robotics in the classroom - description: "While first-year students (secondary education) build and program a social robot, they learn to solve complex problems through computational thinking. They playfully work on the new end terms for digital competencies." + description: 'While first-year students (secondary education) build and program a social robot, they learn to solve complex problems through computational thinking. They playfully work on the new end terms for digital competencies.' contact: Questions? Contact us at team@aiopschool.be. The press can contact Francis Wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Project Sheet Social Robot" + - file_title: 'Project Sheet Social Robot' file_info: "This is a brief overview of the 'Social Robot' project with project structure and characteristics." - file_location: "/assets/files/socialrobot/projectfiche_socialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Collage of Social Robots" - file_info: "The robots in this photo are creations of first-year secondary education students or prototypes." - file_location: "/assets/files/socialrobot/collage.png" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/socialrobot/projectfiche_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Collage of Social Robots' + file_info: 'The robots in this photo are creations of first-year secondary education students or prototypes.' + file_location: '/assets/files/socialrobot/collage.png' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Construction Kit for 'Social Robot' Project" - file_info: "Do you want your students to design and build a social robot too? This is possible via the construction kit of Dwengovzw. The figure shows the current composition of the construction kit. Interested? Contact us by email or find more information on this project page." - file_location: "/assets/files/socialrobot/constructiekit_socialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "From Project to End Terms" + file_info: 'Do you want your students to design and build a social robot too? This is possible via the construction kit of Dwengovzw. The figure shows the current composition of the construction kit. Interested? Contact us by email or find more information on this project page.' + file_location: '/assets/files/socialrobot/constructiekit_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'From Project to End Terms' file_info: "The end terms that can be worked on are linked to the different phases of the 'Social Robot' project." - file_location: "/assets/files/socialrobot/EindtermenAStroomSsocialeRobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotion Machine (Incomplete) - Computational Thinking (Unplugged Activity)" - file_info: "Unplugged activity" - file_location: "/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotion Machine (Task) - Computational Thinking (Unplugged Activity)" - file_info: "Unplugged activity" - file_location: "/assets/files/socialrobot/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotion Machine (Complete) - Computational Thinking (Unplugged Activity)" - file_info: "Unplugged activity" - file_location: "/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotion Machine with LED Matrix - Computational Thinking (Unplugged Activity)" - file_info: "Unplugged activity" - file_location: "/assets/files/socialrobot/emotiemachine_matrices_nl.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/socialrobot/EindtermenAStroomSsocialeRobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotion Machine (Incomplete) - Computational Thinking (Unplugged Activity)' + file_info: 'Unplugged activity' + file_location: '/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotion Machine (Task) - Computational Thinking (Unplugged Activity)' + file_info: 'Unplugged activity' + file_location: '/assets/files/socialrobot/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotion Machine (Complete) - Computational Thinking (Unplugged Activity)' + file_info: 'Unplugged activity' + file_location: '/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotion Machine with LED Matrix - Computational Thinking (Unplugged Activity)' + file_info: 'Unplugged activity' + file_location: '/assets/files/socialrobot/emotiemachine_matrices_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Teacher's Guide" - file_info: "The bundled sheets explain the use of the Dwenguino and the sensors and actuators." - file_location: "/assets/files/socialrobot/ficheboekje_lkn.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Information Sheets for Students" - file_info: "These information sheets explain the use of the Dwenguino and sensors and actuators." - file_location: "/assets/files/socialrobot/fichesSocialeRobot_lln.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Create a Face - Computational Thinking (Unplugged Activity)" - file_info: "Unplugged activity" - file_location: "/assets/files/socialrobot/maakeengezicht_activiteit.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Tasks for Exercises in the MOOC" - file_info: "An overview of programming exercises in the MOOC" - file_location: "/assets/files/socialrobot/Opgaven_MOOC.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'The bundled sheets explain the use of the Dwenguino and the sensors and actuators.' + file_location: '/assets/files/socialrobot/ficheboekje_lkn.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Information Sheets for Students' + file_info: 'These information sheets explain the use of the Dwenguino and sensors and actuators.' + file_location: '/assets/files/socialrobot/fichesSocialeRobot_lln.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Create a Face - Computational Thinking (Unplugged Activity)' + file_info: 'Unplugged activity' + file_location: '/assets/files/socialrobot/maakeengezicht_activiteit.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Tasks for Exercises in the MOOC' + file_info: 'An overview of programming exercises in the MOOC' + file_location: '/assets/files/socialrobot/Opgaven_MOOC.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Poster 'Social Robot' Project" - file_info: "The poster displays the different aspects of the project." - file_location: "/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'The poster displays the different aspects of the project.' + file_location: '/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Manual 'Hello Robot!'" - file_info: "With this lesson booklet, you bring your own social robot to life." - file_location: "/assets/files/socialrobot/handleiding_hallo_robot.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'With this lesson booklet, you bring your own social robot to life.' + file_location: '/assets/files/socialrobot/handleiding_hallo_robot.pdf' + file_icon_name: 'description' + link_name: 'Download' chatbot: title: Language Technology at School sub_title: Getting Started with a Chatbot - description: "Where language and technology come together, the domain of Natural Language Processing emerges. Can a computer understand, translate, or even write texts? Can a computer recognize emotions? Students in the second and third grades (SO) learn all about it in this package." + description: 'Where language and technology come together, the domain of Natural Language Processing emerges. Can a computer understand, translate, or even write texts? Can a computer recognize emotions? Students in the second and third grades (SO) learn all about it in this package.' contact: Questions? Contact us at team@aiopschool.be. The press can contact Francis Wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Project Sheet Chatbot" - file_info: "This is a brief overview of the Chatbot project with project structure and characteristics." - file_location: "/assets/files/chatbot/projectfiche_chatbot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "BrAInfood Chatbots" - file_info: "In this BrAInfood - aimed at young people - the Knowledge Center Data & Society provides more information about chatbots. The BrAInfood includes a fictional story about Lotte talking to a chatbot and presumably providing information about her to companies. Further, some points related to chatbots are explained, along with some tips for young people to better protect their (personal) data. In this way, we aim to make young people more aware of how chatbots work and encourage them to reflect on the data collected about them." - file_location: "/assets/files/chatbot/Brainfood13_Chatbots_NL.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "BrAInfood Personalized Newsfeeds" - file_info: "In this BrAInfood from the Knowledge Center Data & Society, tips are given on how to keep control over your newsfeed." - file_location: "/assets/files/chatbot/brainfoodaanbevelingnieuws.jpg" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Project Sheet Chatbot' + file_info: 'This is a brief overview of the Chatbot project with project structure and characteristics.' + file_location: '/assets/files/chatbot/projectfiche_chatbot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'BrAInfood Chatbots' + file_info: 'In this BrAInfood - aimed at young people - the Knowledge Center Data & Society provides more information about chatbots. The BrAInfood includes a fictional story about Lotte talking to a chatbot and presumably providing information about her to companies. Further, some points related to chatbots are explained, along with some tips for young people to better protect their (personal) data. In this way, we aim to make young people more aware of how chatbots work and encourage them to reflect on the data collected about them.' + file_location: '/assets/files/chatbot/Brainfood13_Chatbots_NL.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'BrAInfood Personalized Newsfeeds' + file_info: 'In this BrAInfood from the Knowledge Center Data & Society, tips are given on how to keep control over your newsfeed.' + file_location: '/assets/files/chatbot/brainfoodaanbevelingnieuws.jpg' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Manual 'Chatbot' - Also available in print" file_info: "Teachers acquire sufficient background information through this manual to work with (a part of) the 'Chatbot' project in the classroom. The book covers various aspects of language technology, such as the history of artificial intelligence, its ethical aspects, sentiment analysis, and cyberbullying detection, chatbots, speaking digital assistants, and author recognition. It also addresses the STEM objectives and the objectives related to digital competence and media literacy." - file_location: "/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Improbotics - Lesson Plan - Teacher's Version" - file_info: "In the theater performance Improbotics, a social robot improvises in the scenes. The lesson plan provides information about the technologies used." - file_location: "/assets/files/chatbot/Improbotics_lesmap_Leerkracht.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Improbotics - Lesson Plan - Students" - file_info: "In the theater performance Improbotics, a social robot improvises in the scenes. The lesson plan provides information about the technologies used." - file_location: "/assets/files/chatbot/Improbotics_lesmap_Leerling.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'In the theater performance Improbotics, a social robot improvises in the scenes. The lesson plan provides information about the technologies used.' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Leerkracht.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Improbotics - Lesson Plan - Students' + file_info: 'In the theater performance Improbotics, a social robot improvises in the scenes. The lesson plan provides information about the technologies used.' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Leerling.pdf' + file_icon_name: 'description' + link_name: 'Download' care: title: AI in Healthcare sub_title: AI Systems Assisting in Healthcare - description: "Hospitals are already using artificial intelligence today. Students in the second and third grades (SO) discover the existing systems and how they help doctors make decisions. This way, students learn the principles of the decision tree, a commonly used technique in machine learning." - contact: "" + description: 'Hospitals are already using artificial intelligence today. Students in the second and third grades (SO) discover the existing systems and how they help doctors make decisions. This way, students learn the principles of the decision tree, a commonly used technique in machine learning.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co curricula_files: - - file_title: "Project Sheet AI in Healthcare" - file_info: "This is a brief overview of the AI in Healthcare project with project structure and characteristics." - file_location: "/assets/files/care/projectfiche_aiindezorg.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Sprouts" + - file_title: 'Project Sheet AI in Healthcare' + file_info: 'This is a brief overview of the AI in Healthcare project with project structure and characteristics.' + file_location: '/assets/files/care/projectfiche_aiindezorg.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Sprouts' file_info: "A game as an introduction to 'Graphs'." - file_location: "/assets/files/care/Sprouts.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Explanation of Exercises on Graphs from the Student Course" - file_info: "Which figures represent the same graph? A more formal approach." - file_location: "/assets/files/care/dezelfdegraafFormeel.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Explanation of Exercises on Graphs from the Student Course" - file_info: "Which figures represent the same graph? An approach with colors." - file_location: "/assets/files/care/dezelfdeGraaf.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Student Course - Finality Throughflow" - file_info: "Student course." - file_location: "/assets/files/care/AIinHealthcare_throughflow_firstedition.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Card Set - Also available in print" - file_info: "With this card set, you can make students reflect on the ethical aspects of new technologies. What about privacy? Are social contacts not at risk? Which technologies are welcomed? What is undesirable? Are the new technologies affordable for everyone?" - file_location: "/assets/files/care/Cardset_AIinHealthcare_AIOpSchool_Dwengo.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Manual for Card Set" - file_info: "This manual provides additional explanation for the card set." - file_location: "/assets/files/care/AIinHealthcareCardset_InstructionForTeacher.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/care/Sprouts.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Explanation of Exercises on Graphs from the Student Course' + file_info: 'Which figures represent the same graph? A more formal approach.' + file_location: '/assets/files/care/dezelfdegraafFormeel.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Explanation of Exercises on Graphs from the Student Course' + file_info: 'Which figures represent the same graph? An approach with colors.' + file_location: '/assets/files/care/dezelfdeGraaf.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Student Course - Finality Throughflow' + file_info: 'Student course.' + file_location: '/assets/files/care/AIinHealthcare_throughflow_firstedition.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Card Set - Also available in print' + file_info: 'With this card set, you can make students reflect on the ethical aspects of new technologies. What about privacy? Are social contacts not at risk? Which technologies are welcomed? What is undesirable? Are the new technologies affordable for everyone?' + file_location: '/assets/files/care/Cardset_AIinHealthcare_AIOpSchool_Dwengo.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Manual for Card Set' + file_info: 'This manual provides additional explanation for the card set.' + file_location: '/assets/files/care/AIinHealthcareCardset_InstructionForTeacher.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Decision Tree 'mBrAIn' Project in Non-compact Form" file_info: "In the research project 'mBrain,' which aims to develop an app predicting a migraine attack, a decision tree was constructed. This decision tree addresses a binary classification problem: there are only two classes, 'Migraine' and 'No Migraine.' (Sources: Femke Ongenae. (2021), UGent; Van Hoecke, S., Ongenae, F., Paemeleire, K., & Vandenbussche, N. (2020). App moet hoofdpijn voorspellen. EOS Wetenschap Special, Technologie en gezondheid, 25.) We have transformed the shape of this decision tree into a binary decision tree to demonstrate that this form is not always user-friendly. For more explanation, see chapter 4 of the student course of this project." - file_location: "/assets/files/care/MBrainBeslissingsboom.png" - file_icon_name: "description" - link_name: "Download" - - file_title: "Search for Speech - Computational Thinking (unplugged activity)" - file_info: "Locked-in syndrome is one of the worst medical conditions. You are completely paralyzed, except that you might still be able to blink with one eye. Your intelligent mind is trapped in a useless body: you can feel everything but cannot communicate. It can happen to anyone, out of nowhere, as a result of a stroke. If you want to help people with the locked-in syndrome, is it best to become a doctor or a nurse? Or can you also help as a computer scientist?" - file_location: "/assets/files/care/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/care/MBrainBeslissingsboom.png' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Search for Speech - Computational Thinking (unplugged activity)' + file_info: 'Locked-in syndrome is one of the worst medical conditions. You are completely paralyzed, except that you might still be able to blink with one eye. Your intelligent mind is trapped in a useless body: you can feel everything but cannot communicate. It can happen to anyone, out of nowhere, as a result of a stroke. If you want to help people with the locked-in syndrome, is it best to become a doctor or a nurse? Or can you also help as a computer scientist?' + file_location: '/assets/files/care/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Download' stem: title: Python in STEM sub_title: Data Visualizations with Python @@ -222,25 +222,25 @@ curricula_page: agriculture: title: AI in Agriculture sub_title: AI in agriculture - description: "Removing rotten tomatoes during harvest? Artificial intelligence can help with that. But how? Students in the second and third grades (SO) get hands-on experience with AI. Perhaps a vibrating conveyor belt can improve the system even more?" + description: 'Removing rotten tomatoes during harvest? Artificial intelligence can help with that. But how? Students in the second and third grades (SO) get hands-on experience with AI. Perhaps a vibrating conveyor belt can improve the system even more?' contact: Questions? Contact us at team@aiopschool.be. The press can contact Francis Wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Design" - file_info: "Design of the conveyor belt" - file_location: "/assets/files/art/Transportband_InnoVET_RCH.zip" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Design' + file_info: 'Design of the conveyor belt' + file_location: '/assets/files/art/Transportband_InnoVET_RCH.zip' + file_icon_name: 'description' + link_name: 'Download' art: title: AI in Art sub_title: Drawing Robots in the Classroom - description: "Can we create art with artificial intelligence? Students in the second and third grades (SO) express their creativity with AI and reflect on the result. Is this art? They also discover how AI can protect our cultural heritage." - contact: "" + description: 'Can we create art with artificial intelligence? Students in the second and third grades (SO) express their creativity with AI and reflect on the result. Is this art? They also discover how AI can protect our cultural heritage.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co wegostem: title: WeGoSTEM sub_title: Drawing Robots in the Classroom - description: "We challenge third-grade (BO) children to program a drawing robot. Through play, children learn a lot of STEM skills, from technology to computational thinking." + description: 'We challenge third-grade (BO) children to program a drawing robot. Through play, children learn a lot of STEM skills, from technology to computational thinking.' contact: Questions? Contact us at team@aiopschool.be. The press can contact Francis Wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 @@ -251,61 +251,61 @@ curricula_page: contact: Questions? Contact us at team@aiopschool.be. The press can contact Francis Wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Concepts and Approach to Computational Thinking" - file_info: "poster" - file_location: "/assets/files/computational_thinking/CDposterDwengo2.png" - file_icon_name: "description" - link_name: "Download" - - file_title: "Explaining Four Concepts of Computational Thinking" - file_info: "Presentation on four concepts of computational thinking: decomposition, pattern recognition, abstraction, and algorithm. You can download the PDF, open it, present it using CTRL-L, and navigate with the arrow keys." - file_location: "/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Concepts and Principles" - file_info: "Overview" - file_location: "/assets/files/computational_thinking/Icoontjes.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged Activity - Emotion Machine (Assignment)" - file_info: "How can you stimulate emotions in a robot?" - file_location: "/assets/files/computational_thinking/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged Activity - Emotion Machine" - file_info: "How can you stimulate emotions in a robot?" - file_location: "/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged Activity - Color by Number" + - file_title: 'Concepts and Approach to Computational Thinking' + file_info: 'poster' + file_location: '/assets/files/computational_thinking/CDposterDwengo2.png' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Explaining Four Concepts of Computational Thinking' + file_info: 'Presentation on four concepts of computational thinking: decomposition, pattern recognition, abstraction, and algorithm. You can download the PDF, open it, present it using CTRL-L, and navigate with the arrow keys.' + file_location: '/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Concepts and Principles' + file_info: 'Overview' + file_location: '/assets/files/computational_thinking/Icoontjes.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged Activity - Emotion Machine (Assignment)' + file_info: 'How can you stimulate emotions in a robot?' + file_location: '/assets/files/computational_thinking/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged Activity - Emotion Machine' + file_info: 'How can you stimulate emotions in a robot?' + file_location: '/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged Activity - Color by Number' file_info: "Images can be represented in many ways. In this color by number puzzle, you have to reconstruct an image using the given list of numbers; this list tells you which color to fill in each square ('pixel')." - file_location: "/assets/files/computational_thinking/kleurenopnummer1.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged Activity - Human Computer Network" - file_info: "In this activity, students learn how data transfer over the Internet works. Computers, smartphones, and other devices connected via the Internet can communicate with each other. To understand each other, this communication must follow certain agreements. We call these agreements a protocol." - file_location: "/assets/files/computational_thinking/menselijkComputernetwerk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged Activity - Compression" - file_info: "To send images over networks, we want to represent information with as little data as possible. Compression comes into play here. Using algorithms, images are represented with as few numbers as possible, but in a way that you can still recover the original figure. Other algorithms restore the original image when the information reaches its destination." - file_location: "/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged Activity - Program a Human" + file_location: '/assets/files/computational_thinking/kleurenopnummer1.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged Activity - Human Computer Network' + file_info: 'In this activity, students learn how data transfer over the Internet works. Computers, smartphones, and other devices connected via the Internet can communicate with each other. To understand each other, this communication must follow certain agreements. We call these agreements a protocol.' + file_location: '/assets/files/computational_thinking/menselijkComputernetwerk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged Activity - Compression' + file_info: 'To send images over networks, we want to represent information with as little data as possible. Compression comes into play here. Using algorithms, images are represented with as few numbers as possible, but in a way that you can still recover the original figure. Other algorithms restore the original image when the information reaches its destination.' + file_location: '/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged Activity - Program a Human' file_info: "Computers cannot interpret, so they literally execute every instruction you give them. The programmer's challenge is to solve problems by breaking them down into small steps that the computer can execute and giving the instructions to the computer correctly." - file_location: "/assets/files/computational_thinking/programmeerEensEenMens.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged Activity - Search for Speech" - file_info: "Locked-in syndrome is one of the worst medical conditions. You are completely paralyzed, except that you may still be able to blink with one eye. Your intelligent mind is trapped in a useless body: you can feel everything but cannot communicate. It can happen to anyone, out of nowhere, as a result of a stroke. If you wanted to help people with locked-in syndrome, would you be better off as a doctor or nurse? Or can you help as a computer scientist?" - file_location: "/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/computational_thinking/programmeerEensEenMens.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged Activity - Search for Speech' + file_info: 'Locked-in syndrome is one of the worst medical conditions. You are completely paralyzed, except that you may still be able to blink with one eye. Your intelligent mind is trapped in a useless body: you can feel everything but cannot communicate. It can happen to anyone, out of nowhere, as a result of a stroke. If you wanted to help people with locked-in syndrome, would you be better off as a doctor or nurse? Or can you help as a computer scientist?' + file_location: '/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Download' math_with_python: title: Python in Math Class sub_title: Python in Mathematics - description: "The programming language Python offers great possibilities to enrich the math class. From the Pythagorean theorem to creating your own graphs, digital image processing, and linear regression, everything becomes clearer with Python." - contact: "" + description: 'The programming language Python offers great possibilities to enrich the math class. From the Pythagorean theorem to creating your own graphs, digital image processing, and linear regression, everything becomes clearer with Python.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co python_programming: title: Programming with Python @@ -316,12 +316,12 @@ curricula_page: physical_computing: title: Physical Computing sub_title: Program Robots in the Classroom - description: "Build a musical instrument, car, or weather station? You can do that with Dwenguino, a microcontroller platform with its own programming environment. Students from both primary and secondary education can get started with it right away. In real life or in our simulator, block-based or textual." + description: 'Build a musical instrument, car, or weather station? You can do that with Dwenguino, a microcontroller platform with its own programming environment. Students from both primary and secondary education can get started with it right away. In real life or in our simulator, block-based or textual.' contact: Questions? Contact us at team@aiopschool.be. The press can contact Francis Wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Bouw jouw eigen robot" - file_info: "Build your own driving robot." - file_location: "/assets/files/physical_computing/bouwjouweigenrobot.pdf" - file_icon_name: "link" - link_name: "Download" + - file_title: 'Bouw jouw eigen robot' + file_info: 'Build your own driving robot.' + file_location: '/assets/files/physical_computing/bouwjouweigenrobot.pdf' + file_icon_name: 'link' + link_name: 'Download' diff --git a/backend/_i18n/fr.yml b/backend/_i18n/fr.yml index 577388fc..e3b68924 100644 --- a/backend/_i18n/fr.yml +++ b/backend/_i18n/fr.yml @@ -2,333 +2,333 @@ curricula_page: title: Notre sujets d'enseignement - read_more: "Lees meer" - curricula_files: "Bestanden" + read_more: 'Lees meer' + curricula_files: 'Bestanden' algorithms: title: Algorithmes sub_title: Algorithmes description: "Les élèves de la troisième à la sixième année (enseignement secondaire) apprennent comment utiliser des algorithmes pour résoudre des problèmes. Ils apprennent à concevoir des algorithmes et à analyser l'efficacité de ces derniers. Ils apprennent également à utiliser des algorithmes pour résoudre des problèmes." - contact: "" + contact: '' teaser: https://www.youtube.com/embed/2B6gZ9HdQ1Y basics_ai: title: Basisprincipes van AI sub_title: Basisprincipes van AI - description: "Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen." - contact: "" + description: 'Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen.' + contact: '' kiks: - title: "IA et changement climatique" - sub_title: "KIKS" + title: 'IA et changement climatique' + sub_title: 'KIKS' description: "Les élèves de la troisième année du secondaire explorent comment les plantes s'adaptent au changement climatique via leurs stomates. Ils utilisent l'intelligence artificielle et la reconnaissance d'image pour compter ces stomates." - contact: "" - teaser: "https://www.youtube.com/embed/dO-E33G20co" + contact: '' + teaser: 'https://www.youtube.com/embed/dO-E33G20co' curricula_files: - - file_title: "Fiche de projet KIKS" + - file_title: 'Fiche de projet KIKS' file_info: "Il s'agit d'un bref aperçu du projet KIKS avec la structure et les caractéristiques du projet." - file_location: "/assets/files/kiks/projectfiche_kiks.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Le manuel - également disponible en version imprimée" + file_location: '/assets/files/kiks/projectfiche_kiks.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Le manuel - également disponible en version imprimée' file_info: "Nous voulons donner aux enseignants des connaissances de base sur le contenu de ce projet : le changement climatique, la biologie des stomates et la manière dont les plantes s'adaptent à ce changement climatique via les stomates, la recherche scientifique de l'UGent et du Jardin botanique de Meise à l'origine de ce projet, la science citoyenne, ce qu'est l'intelligence artificielle (IA), l'histoire de l'IA, son utilisation et l'éthique qui l'entoure, les principes des images numériques, les mathématiques derrière les algorithmes et les fondements des techniques d'IA actuellement les plus utilisées. Nous expliquons également comment nous avons utilisé KIKS en classe." - file_location: "/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Un cours pour les élèves" + file_location: '/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Un cours pour les élèves' file_info: "Avec le cours pour les élèves, nous donnons un exemple d'un parcours possible que l'enseignant peut suivre avec les élèves. Le parcours inclut le changement climatique, la biologie des stomates avec une tâche de microscopie, la manière dont les plantes s'adaptent au changement climatique via les stomates, la recherche scientifique de l'UGent et du Jardin botanique de Meise, la collecte de données pour entraîner un réseau neuronal, ce qu'est l'intelligence artificielle (IA), l'histoire de l'IA, son utilisation et l'éthique qui l'entoure, les principes des images numériques, le travail avec les convolutions, les mathématiques derrière l'algorithme du Perceptron, la classification linéaire et non linéaire des données, et les fondements de l'apprentissage machine." - file_location: "/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "Les objectifs d'apprentissage" file_info: "Dans le projet KIKS, de nombreux objectifs d'apprentissage peuvent être abordés. L'enseignant décide lui-même des objectifs d'apprentissage liés au projet. De plus, le projet offre de nombreuses possibilités pour permettre aux élèves d'apprendre de manière active et autonome, et pour enseigner les compétences en TIC. KIKS peut également être utilisé pour développer une mission de recherche. Les objectifs d'apprentissage et les plans de cours des différentes institutions contiennent de nombreux objectifs d'apprentissage liés à la biologie, à la géographie et aux mathématiques." - file_location: "/assets/files/kiks/Leerdoelen-KIKS.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/kiks/Leerdoelen-KIKS.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "La réalisation d'une empreinte de vernis à ongles d'une partie d'une feuille" file_info: "Pour connaître le nombre de stomates sur une partie d'une feuille d'une plante, nous examinons la surface de la feuille sous le microscope. Pour ce faire, nous pouvons retirer une partie de la cuticule très fine de la feuille, mais cela ne fonctionne pas aussi bien pour certaines plantes en raison de la rigidité de la feuille. Cela peut cependant être compensé en utilisant la même méthode que les chercheurs du Jardin botanique de Meise, à savoir prendre une empreinte d'une partie de la surface de la feuille avec du vernis à ongles transparent. L'image microscopique peut être photographiée avec un smartphone." - file_location: "https://vimeo.com/467062270" - file_icon_name: "play_arrow" - link_name: "Voir" + file_location: 'https://vimeo.com/467062270' + file_icon_name: 'play_arrow' + link_name: 'Voir' socialrobot: - title: "Robot social" - sub_title: "Robotique en classe" - description: "Alors que les élèves de la première année du secondaire bricolent et programment un robot social, ils apprennent à résoudre des problèmes complexes grâce à la pensée computationnelle. Ils travaillent de manière ludique sur les nouvelles compétences finales en compétences numériques." - contact: "Questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + title: 'Robot social' + sub_title: 'Robotique en classe' + description: 'Alors que les élèves de la première année du secondaire bricolent et programment un robot social, ils apprennent à résoudre des problèmes complexes grâce à la pensée computationnelle. Ils travaillent de manière ludique sur les nouvelles compétences finales en compétences numériques.' + contact: 'Questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' curricula_files: - - file_title: "Fiche de projet Robot social" + - file_title: 'Fiche de projet Robot social' file_info: "Il s'agit d'un bref aperçu du projet 'Robot social' avec la structure et les caractéristiques du projet." - file_location: "/assets/files/socialrobot/projectfiche_socialerobot.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Collage des robots sociaux" + file_location: '/assets/files/socialrobot/projectfiche_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Collage des robots sociaux' file_info: "Les robots sur cette photo sont des réalisations d'élèves de la première année du secondaire ou des prototypes." - file_location: "/assets/files/socialrobot/collage.png" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/socialrobot/collage.png' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "Kit de construction pour le projet 'Robot social'" file_info: "Vous souhaitez que vos élèves conçoivent et construisent également un robot social ? Cela peut se faire avec le kit de construction de Dwengovzw. Sur la figure, vous découvrirez la composition actuelle du kit de construction. Intéressé ? Contactez-nous par e-mail ou trouvez plus d'informations sur cette page du projet." - file_location: "/assets/files/socialrobot/constructiekit_socialerobot.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "De la mission aux compétences finales" + file_location: '/assets/files/socialrobot/constructiekit_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'De la mission aux compétences finales' file_info: "Les compétences finales qui peuvent être travaillées sont liées aux différentes phases du projet 'Robot social'." - file_location: "/assets/files/socialrobot/EindtermenAStroomSsocialeRobot.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Machine à émotions (incomplète) - Pensée computationnelle (activité débranchée)" - file_info: "Activité débranchée" - file_location: "/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Machine à émotions (mission) - Pensée computationnelle (activité débranchée)" - file_info: "Activité débranchée" - file_location: "/assets/files/socialrobot/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Machine à émotions (complète) - Pensée computationnelle (activité débranchée)" - file_info: "Activité débranchée" - file_location: "/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Machine à émotions avec matrice de LED - Pensée computationnelle (activité débranchée)" - file_info: "Activité débranchée" - file_location: "/assets/files/socialrobot/emotiemachine_matrices_nl.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Guide pour les enseignants" + file_location: '/assets/files/socialrobot/EindtermenAStroomSsocialeRobot.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Machine à émotions (incomplète) - Pensée computationnelle (activité débranchée)' + file_info: 'Activité débranchée' + file_location: '/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Machine à émotions (mission) - Pensée computationnelle (activité débranchée)' + file_info: 'Activité débranchée' + file_location: '/assets/files/socialrobot/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Machine à émotions (complète) - Pensée computationnelle (activité débranchée)' + file_info: 'Activité débranchée' + file_location: '/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Machine à émotions avec matrice de LED - Pensée computationnelle (activité débranchée)' + file_info: 'Activité débranchée' + file_location: '/assets/files/socialrobot/emotiemachine_matrices_nl.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Guide pour les enseignants' file_info: "Les fiches regroupées détaillant l'utilisation du Dwenguino et des capteurs et actionneurs." - file_location: "/assets/files/socialrobot/ficheboekje_lkn.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Fiches pour les élèves" + file_location: '/assets/files/socialrobot/ficheboekje_lkn.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Fiches pour les élèves' file_info: "Ces fiches expliquent l'utilisation du Dwenguino et des capteurs et actionneurs." - file_location: "/assets/files/socialrobot/fichesSocialeRobot_lln.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Créer un visage - Pensée computationnelle (activité débranchée)" - file_info: "Activité débranchée" - file_location: "/assets/files/socialrobot/maakeengezicht_activiteit.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Exercices de la MOOC" - file_info: "Aperçu des exercices de programmation dans le MOOC." - file_location: "/assets/files/socialrobot/Opgaven_MOOC.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/socialrobot/fichesSocialeRobot_lln.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Créer un visage - Pensée computationnelle (activité débranchée)' + file_info: 'Activité débranchée' + file_location: '/assets/files/socialrobot/maakeengezicht_activiteit.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Exercices de la MOOC' + file_info: 'Aperçu des exercices de programmation dans le MOOC.' + file_location: '/assets/files/socialrobot/Opgaven_MOOC.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "Affiche du projet 'Robot social'" file_info: "L'affiche représente les différents aspects du projet." - file_location: "/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "Guide 'Bonjour robot!'" - file_info: "Avec ce livret, donnez vie à votre propre robot social." - file_location: "/assets/files/socialrobot/handleiding_hallo_robot.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_info: 'Avec ce livret, donnez vie à votre propre robot social.' + file_location: '/assets/files/socialrobot/handleiding_hallo_robot.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' chatbot: title: "Technologie du langage à l'école" - sub_title: "Se mettre au travail avec un chatbot" - description: "Là où le langage et la technologie se rencontrent, naît le domaine du Traitement du Langage Naturel. Un ordinateur peut-il comprendre, traduire ou même écrire des textes ? Peut-il reconnaître les émotions ? Les élèves de la deuxième et de la troisième année (enseignement secondaire) en apprennent davantage dans ce programme." - contact: "Questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + sub_title: 'Se mettre au travail avec un chatbot' + description: 'Là où le langage et la technologie se rencontrent, naît le domaine du Traitement du Langage Naturel. Un ordinateur peut-il comprendre, traduire ou même écrire des textes ? Peut-il reconnaître les émotions ? Les élèves de la deuxième et de la troisième année (enseignement secondaire) en apprennent davantage dans ce programme.' + contact: 'Questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' curricula_files: - - file_title: "Fiche de projet Chatbot" + - file_title: 'Fiche de projet Chatbot' file_info: "Il s'agit d'un bref aperçu du projet Chatbot avec la structure et les caractéristiques du projet." - file_location: "/assets/files/chatbot/projectfiche_chatbot.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "BrAInfood Chatbots" + file_location: '/assets/files/chatbot/projectfiche_chatbot.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'BrAInfood Chatbots' file_info: "Dans ce BrAInfood destiné aux jeunes, le Centre de connaissances Data & Société donne plus d'informations sur les chatbots. Le BrAInfood contient une histoire fictive sur Lotte qui discute avec un chatbot et transmet potentiellement des informations à des entreprises. En outre, quelques points d'attention concernant les chatbots sont expliqués, ainsi que quelques conseils pour les jeunes afin de mieux protéger leurs données personnelles. De cette manière, nous voulons sensibiliser les jeunes au fonctionnement des chatbots et les encourager à réfléchir aux données qui sont collectées à leur sujet." - file_location: "/assets/files/chatbot/Brainfood13_Chatbots_FR.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "BrAInfood Nouvelles personnalisées" + file_location: '/assets/files/chatbot/Brainfood13_Chatbots_FR.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'BrAInfood Nouvelles personnalisées' file_info: "Dans ce BrAInfood du Centre de connaissances Data & Société, des conseils sont donnés sur la façon de garder le contrôle sur votre fil d'actualité." - file_location: "/assets/files/chatbot/brainfoodrecommendationnews.jpg" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/chatbot/brainfoodrecommendationnews.jpg' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "Manuel 'Chatbot' - Également disponible en version imprimée" file_info: "Les enseignants acquièrent, via ce manuel, des informations de base suffisantes pour aborder (une partie du) projet 'Chatbot' en classe. Le livre aborde différents aspects de la technologie du langage, tels que l'histoire de l'intelligence artificielle, ses aspects éthiques, l'analyse des sentiments et la détection du cyberharcèlement, les chatbots, les assistants numériques parlants et la reconnaissance d'auteur. Il aborde également les compétences finales STEM et les compétences finales en compétences numériques et en éducation aux médias." - file_location: "/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Improbotics - Livret - Version enseignant" - file_info: "Dans la pièce de théâtre Improbotics, un robot social improvise dans les scènes. Le livret contient des informations sur les technologies utilisées." - file_location: "/assets/files/chatbot/Improbotics_lesmap_Enseignant.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Improbotics - Livret - Élèves" - file_info: "Dans la pièce de théâtre Improbotics, un robot social improvise dans les scènes. Le livret contient des informations sur les technologies utilisées." - file_location: "/assets/files/chatbot/Improbotics_lesmap_Eleve.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Improbotics - Livret - Version enseignant' + file_info: 'Dans la pièce de théâtre Improbotics, un robot social improvise dans les scènes. Le livret contient des informations sur les technologies utilisées.' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Enseignant.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Improbotics - Livret - Élèves' + file_info: 'Dans la pièce de théâtre Improbotics, un robot social improvise dans les scènes. Le livret contient des informations sur les technologies utilisées.' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Eleve.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' care: - title: "IA dans les soins de santé" + title: 'IA dans les soins de santé' sub_title: "Systèmes d'IA aidant dans les soins de santé" description: "Les hôpitaux utilisent déjà l'intelligence artificielle aujourd'hui. Les élèves de la deuxième et de la troisième année (enseignement secondaire) découvrent quels systèmes existent et comment ils aident les médecins à prendre des décisions. Ainsi, les élèves apprennent les principes de l'arbre de décision, une technique couramment utilisée dans l'apprentissage automatique." - contact: "" - teaser: "https://www.youtube.com/embed/dO-E33G20co" + contact: '' + teaser: 'https://www.youtube.com/embed/dO-E33G20co' curricula_files: - - file_title: "Fiche de projet IA dans les soins de santé" + - file_title: 'Fiche de projet IA dans les soins de santé' file_info: "Il s'agit d'un bref aperçu du projet IA dans les soins de santé avec la structure et les caractéristiques du projet." - file_location: "/assets/files/care/projectfiche_aiindezorg.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Sprouts" + file_location: '/assets/files/care/projectfiche_aiindezorg.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Sprouts' file_info: "Un jeu d'introduction aux 'Graphes'." - file_location: "/assets/files/care/Sprouts.mov" - file_icon_name: "play_arrow" - link_name: "Télécharger" - - file_title: "Explication des exercices de graphes du cours des élèves" - file_info: "Quels dessins représentent le même graphe ? Une approche plus formelle." - file_location: "/assets/files/care/dezelfdegraafFormeel.mov" - file_icon_name: "play_arrow" - link_name: "Télécharger" - - file_title: "Explication des exercices de graphes du cours des élèves" - file_info: "Quels dessins représentent le même graphe ? Une approche avec des couleurs." - file_location: "/assets/files/care/dezelfdeGraaf.mov" - file_icon_name: "play_arrow" - link_name: "Télécharger" - - file_title: "Le cours des élèves - Finalité Générale" - file_info: "Cours des élèves" - file_location: "/assets/files/care/AIindeZorg_doorstroom_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Ensemble de cartes - Également disponible en version imprimée" + file_location: '/assets/files/care/Sprouts.mov' + file_icon_name: 'play_arrow' + link_name: 'Télécharger' + - file_title: 'Explication des exercices de graphes du cours des élèves' + file_info: 'Quels dessins représentent le même graphe ? Une approche plus formelle.' + file_location: '/assets/files/care/dezelfdegraafFormeel.mov' + file_icon_name: 'play_arrow' + link_name: 'Télécharger' + - file_title: 'Explication des exercices de graphes du cours des élèves' + file_info: 'Quels dessins représentent le même graphe ? Une approche avec des couleurs.' + file_location: '/assets/files/care/dezelfdeGraaf.mov' + file_icon_name: 'play_arrow' + link_name: 'Télécharger' + - file_title: 'Le cours des élèves - Finalité Générale' + file_info: 'Cours des élèves' + file_location: '/assets/files/care/AIindeZorg_doorstroom_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Ensemble de cartes - Également disponible en version imprimée' file_info: "À l'aide de cet ensemble de cartes, vous pouvez amener les élèves à réfléchir aux aspects éthiques des nouvelles technologies. Qu'en est-il de la vie privée ? Les contacts sociaux ne sont-ils pas compromis ? Quelles technologies sont bien accueillies ? Qu'est-ce qui n'est pas souhaitable ? Les nouvelles technologies sont-elles abordables pour tous ?" - file_location: "/assets/files/care/Kaartset_AIIndeZorg_AIOpSchool_Dwengo.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/care/Kaartset_AIIndeZorg_AIOpSchool_Dwengo.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "Manuel de l'ensemble de cartes" file_info: "Ce manuel fournit des explications supplémentaires sur l'ensemble de cartes." - file_location: "/assets/files/care/AIIndeZorgKaartenset_UitlegVoorLeerkracht.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/care/AIIndeZorgKaartenset_UitlegVoorLeerkracht.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' - file_title: "Arbre de décision du projet 'mBrAIn' sous forme non compacte" file_info: "Dans le projet de recherche 'mBrain', qui vise le développement d'une application prédisant une crise de migraine, une arborescence de décision a été construite. Cette arborescence de décision aborde un problème de classification binaire : il n'y a que deux classes, 'Migraine' et 'Pas de migraine'. (Sources : Femke Ongenae. (2021), UGent ; Van Hoecke, S., Ongenae, F., Paemeleire, K., & Vandenbussche, N. (2020). App doit prédire les maux de tête. EOS Wetenschap Special, Technologie en gezondheid, 25.) Nous avons transformé la forme de cette arborescence de décision en une arborescence de décision binaire pour montrer que cette forme n'est pas toujours conviviale. Pour plus d'explications, voir le chapitre 4 du cours des élèves de ce projet." - file_location: "/assets/files/care/MBrainBeslissingsboom.png" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Recherche de la parole - Pensée computationnelle (activité débranchée)" + file_location: '/assets/files/care/MBrainBeslissingsboom.png' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Recherche de la parole - Pensée computationnelle (activité débranchée)' file_info: "Le syndrome d'enfermement est l'une des pires conditions médicales. Vous êtes complètement paralysé, sauf peut-être pour cligner des yeux. Votre esprit intelligent est enfermé dans un corps inutile : vous pouvez tout ressentir, mais pas communiquer. Cela peut arriver à n'importe qui, à tout moment, suite à un AVC. Si vous voulez aider les personnes atteintes du syndrome d'enfermement, vaut-il mieux être médecin ou infirmier ? Ou en tant qu'informaticien, pouvez-vous aussi aider ?" - file_location: "/assets/files/care/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/care/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' stem: - title: "Python en STEM" - sub_title: "Visualisations de données avec Python" - description: "Dans ce programme, vous apprendrez à aborder des problèmes complexes de manière plus simple et plus rapide avec le langage de programmation Python. La programmation peut jouer un rôle de liaison entre la science, la technologie, la conception et les mathématiques appliquées. En bref, grâce à Python, nous tirons le meilleur parti de STEM." - contact: "Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + title: 'Python en STEM' + sub_title: 'Visualisations de données avec Python' + description: 'Dans ce programme, vous apprendrez à aborder des problèmes complexes de manière plus simple et plus rapide avec le langage de programmation Python. La programmation peut jouer un rôle de liaison entre la science, la technologie, la conception et les mathématiques appliquées. En bref, grâce à Python, nous tirons le meilleur parti de STEM.' + contact: 'Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' agriculture: title: "IA dans l'Agriculture" sub_title: "IA dans l'agriculture" description: "Retirer les tomates pourries pendant la récolte ? L'intelligence artificielle peut aider. Mais comment ? Les élèves de la deuxième et de la troisième année (enseignement secondaire) travaillent avec l'IA. Peut-être qu'un tapis roulant vibrant pourrait améliorer le système encore davantage ?" - contact: "Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + contact: 'Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' curricula_files: - - file_title: "Conception" - file_info: "Conception du tapis roulant" - file_location: "/assets/files/art/Transportband_InnoVET_RCH.zip" - file_icon_name: "description" - link_name: "Télécharger" + - file_title: 'Conception' + file_info: 'Conception du tapis roulant' + file_location: '/assets/files/art/Transportband_InnoVET_RCH.zip' + file_icon_name: 'description' + link_name: 'Télécharger' art: title: "IA dans l'Art" - sub_title: "Robots de dessin en classe" + sub_title: 'Robots de dessin en classe' description: "Peut-on créer de l'art avec l'intelligence artificielle ? Les élèves de la deuxième et de la troisième année (enseignement secondaire) expriment leur créativité avec l'IA et réfléchissent au résultat. Est-ce de l'art ? Ils découvrent également comment l'IA peut protéger notre patrimoine culturel." - contact: "" - teaser: "https://www.youtube.com/embed/dO-E33G20co" + contact: '' + teaser: 'https://www.youtube.com/embed/dO-E33G20co' wegostem: - title: "WeGoSTEM" - sub_title: "Robots de dessin en classe" - description: "Nous mettons au défi les enfants de la troisième année (enseignement primaire) de programmer un robot artistique capable de dessiner. Les enfants apprennent de manière ludique de nombreuses compétences STEM, de la technologie à la pensée informatique." - contact: "Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + title: 'WeGoSTEM' + sub_title: 'Robots de dessin en classe' + description: 'Nous mettons au défi les enfants de la troisième année (enseignement primaire) de programmer un robot artistique capable de dessiner. Les enfants apprennent de manière ludique de nombreuses compétences STEM, de la technologie à la pensée informatique.' + contact: 'Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' computational_thinking: - title: "Pensée informatique" - sub_title: "Pensée informatique en classe" + title: 'Pensée informatique' + sub_title: 'Pensée informatique en classe' description: "Comment pouvons-nous résoudre des problèmes complexes à l'aide d'un ordinateur ? Grâce à la pensée informatique ! Vous pouvez apprendre cela grâce à diverses activités avec ou sans ordinateur. Nous vous aidons déjà à démarrer." - contact: "Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + contact: 'Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' curricula_files: - - file_title: "Concepts et approches de la pensée informatique" - file_info: "poster" - file_location: "/assets/files/computational_thinking/CDposterDwengo2.png" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Explication des quatre concepts de la pensée informatique" - file_info: "Présentation des quatre concepts de la pensée informatique : décomposition, reconnaissance de motifs, abstraction et algorithme. Vous pouvez télécharger le PDF > ouvrir > présenter avec CTRL-L et naviguer avec les touches fléchées." - file_location: "/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Concepts et principes" - file_info: "Aperçu" - file_location: "/assets/files/computational_thinking/Icoontjes.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Activité sans ordinateur - Machine émotionnelle (tâche)" - file_info: "Comment stimuler les émotions chez un robot ?" - file_location: "/assets/files/computational_thinking/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Activité sans ordinateur - Machine émotionnelle" - file_info: "Comment stimuler les émotions chez un robot ?" - file_location: "/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Activité sans ordinateur - Coloriage par numéro" + - file_title: 'Concepts et approches de la pensée informatique' + file_info: 'poster' + file_location: '/assets/files/computational_thinking/CDposterDwengo2.png' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Explication des quatre concepts de la pensée informatique' + file_info: 'Présentation des quatre concepts de la pensée informatique : décomposition, reconnaissance de motifs, abstraction et algorithme. Vous pouvez télécharger le PDF > ouvrir > présenter avec CTRL-L et naviguer avec les touches fléchées.' + file_location: '/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Concepts et principes' + file_info: 'Aperçu' + file_location: '/assets/files/computational_thinking/Icoontjes.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Activité sans ordinateur - Machine émotionnelle (tâche)' + file_info: 'Comment stimuler les émotions chez un robot ?' + file_location: '/assets/files/computational_thinking/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Activité sans ordinateur - Machine émotionnelle' + file_info: 'Comment stimuler les émotions chez un robot ?' + file_location: '/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Activité sans ordinateur - Coloriage par numéro' file_info: "Les images peuvent être représentées de nombreuses manières. Dans ce casse-tête de coloriage par numéro, vous devez reconstruire une image en utilisant la liste donnée de numéros ; cette liste vous dit dans quelle couleur remplir chaque carré ('pixel')." - file_location: "/assets/files/computational_thinking/kleurenopnummer1.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Activité sans ordinateur - Un réseau informatique humain" + file_location: '/assets/files/computational_thinking/kleurenopnummer1.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Activité sans ordinateur - Un réseau informatique humain' file_info: "Dans cette activité, les élèves découvrent comment fonctionne le transfert de données sur Internet. Les ordinateurs, les smartphones et d'autres appareils connectés par Internet peuvent communiquer entre eux. Pour se comprendre, cette communication doit suivre certaines règles. Nous appelons ces règles un protocole." - file_location: "/assets/files/computational_thinking/menselijkComputernetwerk.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Activité sans ordinateur - Compression" + file_location: '/assets/files/computational_thinking/menselijkComputernetwerk.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Activité sans ordinateur - Compression' file_info: "Pour envoyer des images sur des réseaux, nous voulons représenter l'information avec le moins de données possible. C'est là qu'intervient la compression. À l'aide d'algorithmes, les images sont représentées avec le moins de nombres possible, mais de manière à ce que vous puissiez récupérer la figure originale. D'autres algorithmes restaurent l'image d'origine une fois que l'information a atteint sa destination." - file_location: "/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Activité sans ordinateur - Programmez un être humain" + file_location: '/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Activité sans ordinateur - Programmez un être humain' file_info: "Les ordinateurs ne peuvent pas interpréter et exécutent donc littéralement chaque instruction que vous leur donnez. Le défi du programmeur consiste à résoudre des problèmes en les divisant en petites étapes exécutables par l'ordinateur, et à donner les instructions à l'ordinateur de la bonne manière." - file_location: "/assets/files/computational_thinking/programmeerEensEenMens.pdf" - file_icon_name: "description" - link_name: "Télécharger" - - file_title: "Activité sans ordinateur - Recherche de la parole" + file_location: '/assets/files/computational_thinking/programmeerEensEenMens.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' + - file_title: 'Activité sans ordinateur - Recherche de la parole' file_info: "Le locked-in syndrome est l'une des pires affections médicales. Vous êtes complètement paralysé, sauf peut-être que vous pouvez cligner des yeux. Votre esprit intelligent est emprisonné dans un corps inutile : vous pouvez tout ressentir, mais pas communiquer. Cela peut arriver à n'importe qui, sans avertissement, à la suite d'une attaque. Si vous voulez aider les personnes atteintes du locked-in syndrome, vaut-il mieux être médecin ou infirmier ? Ou un informaticien peut-il aussi aider ?" - file_location: "/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Télécharger" + file_location: '/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Télécharger' math_with_python: - title: "Python dans le cours de mathématiques" - sub_title: "Python en mathématiques" + title: 'Python dans le cours de mathématiques' + sub_title: 'Python en mathématiques' description: "Le langage de programmation Python offre des possibilités intéressantes pour enrichir le cours de mathématiques. De la théorie de Pythagore à la création de graphiques personnalisés, en passant par le traitement d'images numériques et la régression linéaire, tout devient plus clair avec Python." - contact: "" - teaser: "https://www.youtube.com/embed/dO-E33G20co" + contact: '' + teaser: 'https://www.youtube.com/embed/dO-E33G20co' python_programming: - title: "Programmation avec Python" - sub_title: "Programmation de base en Python" + title: 'Programmation avec Python' + sub_title: 'Programmation de base en Python' description: "Apprendre les principes de base de la programmation ? C'est possible avec ce programme. Nous utilisons Python et apprenons tout sur les séquences, les structures de répétition et les structures de choix. C'est exactement ce qui est stipulé dans les objectifs finaux. Et plus encore !" - contact: "Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + contact: 'Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' physical_computing: - title: "Informatique physique" - sub_title: "Programmer des robots en classe" + title: 'Informatique physique' + sub_title: 'Programmer des robots en classe' description: "Construire un instrument de musique, une voiture ou une station météorologique ? C'est possible avec Dwenguino, une plateforme de microcontrôleurs avec son propre environnement de programmation. Les élèves du primaire et du secondaire peuvent commencer à l'utiliser immédiatement. En vrai ou dans notre simulateur, en mode blocs ou textuel." - contact: "Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org." - teaser: "https://www.youtube.com/embed/tqSnpAKLsu8" + contact: 'Des questions ? Contactez-nous via team@aiopschool.be. La presse peut contacter Francis Wyffels via Francis@dwengo.org.' + teaser: 'https://www.youtube.com/embed/tqSnpAKLsu8' curricula_files: - - file_title: "Bouw jouw eigen robot" - file_info: "Construisez votre propre robot de conduite." - file_location: "/assets/files/physical_computing/bouwjouweigenrobot.pdf" - file_icon_name: "link" - link_name: "Download" + - file_title: 'Bouw jouw eigen robot' + file_info: 'Construisez votre propre robot de conduite.' + file_location: '/assets/files/physical_computing/bouwjouweigenrobot.pdf' + file_icon_name: 'link' + link_name: 'Download' diff --git a/backend/_i18n/nl.yml b/backend/_i18n/nl.yml index 98fc0beb..05af16fe 100644 --- a/backend/_i18n/nl.yml +++ b/backend/_i18n/nl.yml @@ -8,357 +8,357 @@ curricula_page: algorithms: title: Algoritmes sub_title: Algoritmes - description: "Leerlingen uit de tweede en de derde graad (SO) leren hoe ze algoritmes kunnen gebruiken om problemen op te lossen. Ze leren hoe ze algoritmes kunnen ontwerpen en hoe ze de efficiëntie van algoritmes kunnen analyseren. Ze leren ook hoe ze algoritmes kunnen gebruiken om problemen op te lossen." - contact: "" + description: 'Leerlingen uit de tweede en de derde graad (SO) leren hoe ze algoritmes kunnen gebruiken om problemen op te lossen. Ze leren hoe ze algoritmes kunnen ontwerpen en hoe ze de efficiëntie van algoritmes kunnen analyseren. Ze leren ook hoe ze algoritmes kunnen gebruiken om problemen op te lossen.' + contact: '' basics_ai: title: Basisprincipes van AI sub_title: Basisprincipes van AI - description: "Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen." - contact: "" + description: 'Onder dit lesthema bundelen we verschillende activiteiten waarin de basisprincipes van artificiële intelligentie (AI) aan bod komen. Leerlingen leren wat AI is, hoe het werkt en hoe het kan worden toegepast in verschillende domeinen.' + contact: '' kiks: title: AI en Klimaat sub_title: KIKS - description: "Leerlingen uit de derde graad (SO) onderzoeken hoe planten zich via hun huidmondjes aanpassen aan de klimaatverandering. Daarvoor tellen ze deze huidmondjes met artificiële intelligentie en beeldherkenning." - contact: "" + description: 'Leerlingen uit de derde graad (SO) onderzoeken hoe planten zich via hun huidmondjes aanpassen aan de klimaatverandering. Daarvoor tellen ze deze huidmondjes met artificiële intelligentie en beeldherkenning.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co curricula_files: - - file_title: "Projectfiche KIKS" - file_info: "Dit is een kort overzicht van het KIKS-project met projectstructuur- en kenmerken." - file_location: "/assets/files/kiks/projectfiche_kiks.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "De handleiding - ook verkrijgbaar in gedrukte versie" - file_info: "We willen de leerkrachten achtergrondkennis geven over de inhoud van dit project: de klimaatverandering, de biologie van de huidmondjes en de manier waarop planten zich via de huidmondjes aan die klimaatverandering aanpassen, het wetenschappelijk onderzoek van de UGent en de Plantentuin Meise dat aan de grondslag ligt van dit project, burgerwetenschap, wat is artificiële intelligentie (AI), de geschiedenis van AI, het gebruik ervan en de ethiek errond, de principes van digitale beelden, de wiskunde achter de algoritmen en de fundamenten van de momenteel meest gebruikte AI-technieken. We geven ook aan hoe wij met KIKS aan de slag gegaan zijn in de klas.​" - file_location: "/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Een leerlingencursus" - file_info: "Met de leerlingencursus geven we een voorbeeld van een mogelijk, uitgebreid traject dat een leerkracht met leerlingen kan doorlopen. Het traject omvat de klimaatverandering, de biologie van de huidmondjes met een microscopie-opdracht, de manier waarop planten zich via de huidmondjes aan die klimaatverandering aanpassen, het wetenschappelijk onderzoek van de UGent en de Plantentuin Meise, het verzamelen van de data om een neuraal netwerk te trainen, wat is artificiële intelligentie (AI), de geschiedenis van AI, het gebruik ervan en de ethiek errond, de principes van digitale beelden, het werken met convoluties, de wiskunde achter het Perceptron-algoritme, het lineaire en niet-lineaire classificeren van data, en de fundamenten van machinaal leren." - file_location: "/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "De leerplandoelen" + - file_title: 'Projectfiche KIKS' + file_info: 'Dit is een kort overzicht van het KIKS-project met projectstructuur- en kenmerken.' + file_location: '/assets/files/kiks/projectfiche_kiks.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'De handleiding - ook verkrijgbaar in gedrukte versie' + file_info: 'We willen de leerkrachten achtergrondkennis geven over de inhoud van dit project: de klimaatverandering, de biologie van de huidmondjes en de manier waarop planten zich via de huidmondjes aan die klimaatverandering aanpassen, het wetenschappelijk onderzoek van de UGent en de Plantentuin Meise dat aan de grondslag ligt van dit project, burgerwetenschap, wat is artificiële intelligentie (AI), de geschiedenis van AI, het gebruik ervan en de ethiek errond, de principes van digitale beelden, de wiskunde achter de algoritmen en de fundamenten van de momenteel meest gebruikte AI-technieken. We geven ook aan hoe wij met KIKS aan de slag gegaan zijn in de klas.​' + file_location: '/assets/files/kiks/KIKS_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Een leerlingencursus' + file_info: 'Met de leerlingencursus geven we een voorbeeld van een mogelijk, uitgebreid traject dat een leerkracht met leerlingen kan doorlopen. Het traject omvat de klimaatverandering, de biologie van de huidmondjes met een microscopie-opdracht, de manier waarop planten zich via de huidmondjes aan die klimaatverandering aanpassen, het wetenschappelijk onderzoek van de UGent en de Plantentuin Meise, het verzamelen van de data om een neuraal netwerk te trainen, wat is artificiële intelligentie (AI), de geschiedenis van AI, het gebruik ervan en de ethiek errond, de principes van digitale beelden, het werken met convoluties, de wiskunde achter het Perceptron-algoritme, het lineaire en niet-lineaire classificeren van data, en de fundamenten van machinaal leren.' + file_location: '/assets/files/kiks/KIKS_leerlingencursus_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'De leerplandoelen' file_info: "Binnen het KIKS-project kunnen behoorlijk veel leerdoelen aan bod komen. De leerkracht bepaalt zelf welke leerdoelen in verband gebracht worden met het project. Bovendien biedt het project heel wat mogelijkheden om de leerlingen actief en zelfstandig te laten leren en om ICT-vaardigheden bij te brengen. KIKS kan ook gebruikt worden om een onderzoeksopdracht uit te werken.\n In de minimumdoelen en leerplannen van de verschillende koepels zijn heel wat leerdoelen te vinden die KIKS linken met biologie, aardrijkskunde en wiskunde." - file_location: "/assets/files/kiks/Leerdoelen-KIKS.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Het maken van een nagellakafdruk van een deel van een blad" + file_location: '/assets/files/kiks/Leerdoelen-KIKS.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Het maken van een nagellakafdruk van een deel van een blad' file_info: "Om het aantal huidmondjes op een deel van een blad van een plant te kennen, bekijken we het bladoppervlak onder de microscoop. We kunnen daarvoor een stuk van de flinterdunne cuticula van het blad verwijderen, maar bij sommige planten lukt dat niet zo goed, bijvoorbeeld door de stugheid van het blad.\nDit kan echter opgevangen worden door dezelfde methode te gebruiken als de onderzoekers van de Plantentuin Meise, nl. een afdruk nemen van een deel van het bladoppervlak met doorzichtige nagellak.\nHet miscroscopische beeld kan met een smartphone gefotografeerd worden." - file_location: "https://www.youtube.com/watch?v=JptF3jhOV5k" - file_icon_name: "play_arrow" - link_name: "Kijk" + file_location: 'https://www.youtube.com/watch?v=JptF3jhOV5k' + file_icon_name: 'play_arrow' + link_name: 'Kijk' socialrobot: title: Sociale robot sub_title: Robotica in de klas - description: "Terwijl leerlingen uit de eerste graad (SO) een sociale robot knutselen en programmeren, leren ze complexe problemen oplossen via computationeel denken. Spelenderwijs werken ze aan de nieuwe eindtermen rond digitale competenties." + description: 'Terwijl leerlingen uit de eerste graad (SO) een sociale robot knutselen en programmeren, leren ze complexe problemen oplossen via computationeel denken. Spelenderwijs werken ze aan de nieuwe eindtermen rond digitale competenties.' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Projectfiche Sociale Robot" + - file_title: 'Projectfiche Sociale Robot' file_info: "Dit is een kort overzicht van het 'Sociale Robot'-project met projectstructuur en -kenmerken." - file_location: "/assets/files/socialrobot/projectfiche_socialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Collage sociale robots" - file_info: "De robots op deze foto zijn realisaties van leerlingen van de eerste graad van het secundair onderwijs of zijn prototypes.​" - file_location: "/assets/files/socialrobot/collage.png" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/socialrobot/projectfiche_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Collage sociale robots' + file_info: 'De robots op deze foto zijn realisaties van leerlingen van de eerste graad van het secundair onderwijs of zijn prototypes.​' + file_location: '/assets/files/socialrobot/collage.png' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Constructiekit voor 'Sociale Robot'-project" - file_info: "​Wil jij dat jouw leerlingen ook een sociale robot ontwerpen en bouwen? Dat kan via de constructiekit van Dwengo vzw. Op de figuur ontdek je de huidige samenstelling van de constructiekit. Geïnteresseerd? Contacteer ons via e-mail, bekijk de kit in de shop, of vind meer informatie op deze projectpagina." - file_location: "/assets/files/socialrobot/constructiekit_socialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Van project naar minimumdoelen eerste graad A-stroom" + file_info: '​Wil jij dat jouw leerlingen ook een sociale robot ontwerpen en bouwen? Dat kan via de constructiekit van Dwengo vzw. Op de figuur ontdek je de huidige samenstelling van de constructiekit. Geïnteresseerd? Contacteer ons via e-mail, bekijk de kit in de shop, of vind meer informatie op deze projectpagina.' + file_location: '/assets/files/socialrobot/constructiekit_socialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Van project naar minimumdoelen eerste graad A-stroom' file_info: "De minimumdoelen waaraan gewerkt kan worden, worden gelinkt aan de verschillende fasen van het 'Sociale Robot'-project.​" - file_location: "/assets/files/socialrobot/MinimumdoelenA-stroomSocialeRobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Van project naar minimumdoelen eerste graad B-stroom" + file_location: '/assets/files/socialrobot/MinimumdoelenA-stroomSocialeRobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Van project naar minimumdoelen eerste graad B-stroom' file_info: "De minimumdoelen waaraan gewerkt kan worden, worden gelinkt aan de verschillende fasen van het 'Sociale Robot'-project.​" - file_location: "/assets/files/socialrobot/minimumdoelenBstroomsocialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Van project naar minimumdoelen tweede graad" + file_location: '/assets/files/socialrobot/minimumdoelenBstroomsocialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Van project naar minimumdoelen tweede graad' file_info: "De minimumdoelen waaraan gewerkt kan worden, worden gelinkt aan de verschillende fasen van het 'Sociale Robot'-project.​" - file_location: "/assets/files/socialrobot/minimumdoelentweedegraadsocialerobot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotiemachine (onvolledig) - Computationeel denken (unplugged activiteit)" - file_info: "​Unplugged activiteit" - file_location: "/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotiemachine (opdracht) - Computationeel denken (unplugged activiteit)" - file_info: "Unplugged activiteit​" - file_location: "/assets/files/socialrobot/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotiemachine (volledig) - Computationeel denken (unplugged activiteit)" - file_info: "Unplugged activiteit​" - file_location: "/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Emotiemachine met ledmatrix - Computationeel denken (unplugged activiteit)" - file_info: "Unplugged activiteit​" - file_location: "/assets/files/socialrobot/emotiemachine_matrices_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Ficheboekje voor leerkrachten" - file_info: "De gebundelde fiches waarin het gebruik van de Dwenguino en van de sensoren en actuatoren uit de doeken wordt gedaan." - file_location: "/assets/files/socialrobot/ficheboekje_lkr.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Fiches voor de leerlingen" - file_info: "In deze fiches wordt het gebruik van de Dwenguino en van de sensoren en actuatoren uit de doeken gedaan.​" - file_location: "/assets/files/socialrobot/fiches_lln.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Maak een gezicht - Computationeel denken (unplugged activiteit)" - file_info: "Unplugged activiteit​" - file_location: "/assets/files/socialrobot/maakeengezicht_activiteit.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Opgaven van opdrachten in de MOOC" - file_info: "​Een overzicht van de programmeeroefeningen in de MOOC" - file_location: "/assets/files/socialrobot/Opgaven_MOOC.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/socialrobot/minimumdoelentweedegraadsocialerobot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotiemachine (onvolledig) - Computationeel denken (unplugged activiteit)' + file_info: '​Unplugged activiteit' + file_location: '/assets/files/socialrobot/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotiemachine (opdracht) - Computationeel denken (unplugged activiteit)' + file_info: 'Unplugged activiteit​' + file_location: '/assets/files/socialrobot/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotiemachine (volledig) - Computationeel denken (unplugged activiteit)' + file_info: 'Unplugged activiteit​' + file_location: '/assets/files/socialrobot/emotiemachine_ingevuld_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Emotiemachine met ledmatrix - Computationeel denken (unplugged activiteit)' + file_info: 'Unplugged activiteit​' + file_location: '/assets/files/socialrobot/emotiemachine_matrices_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Ficheboekje voor leerkrachten' + file_info: 'De gebundelde fiches waarin het gebruik van de Dwenguino en van de sensoren en actuatoren uit de doeken wordt gedaan.' + file_location: '/assets/files/socialrobot/ficheboekje_lkr.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Fiches voor de leerlingen' + file_info: 'In deze fiches wordt het gebruik van de Dwenguino en van de sensoren en actuatoren uit de doeken gedaan.​' + file_location: '/assets/files/socialrobot/fiches_lln.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Maak een gezicht - Computationeel denken (unplugged activiteit)' + file_info: 'Unplugged activiteit​' + file_location: '/assets/files/socialrobot/maakeengezicht_activiteit.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Opgaven van opdrachten in de MOOC' + file_info: '​Een overzicht van de programmeeroefeningen in de MOOC' + file_location: '/assets/files/socialrobot/Opgaven_MOOC.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Poster 'Sociale Robot'-project" - file_info: "De poster geeft de verschillende aspecten van het project weer.​" - file_location: "/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'De poster geeft de verschillende aspecten van het project weer.​' + file_location: '/assets/files/socialrobot/posterSocialeRobot_nl_Qo4ANmV.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Handleiding 'Hallo robot!'" - file_info: "Met dit lesboekje breng je je eigen sociale robot tot leven.​" - file_location: "/assets/files/socialrobot/handleiding_hallo_robot.pdf" - file_icon_name: "description" - link_name: "Download" + file_info: 'Met dit lesboekje breng je je eigen sociale robot tot leven.​' + file_location: '/assets/files/socialrobot/handleiding_hallo_robot.pdf' + file_icon_name: 'description' + link_name: 'Download' agriculture: title: AI in de Landbouw sub_title: AI in de landbouw - description: "Rotte tomaten weghalen tijdens de oogst? Daar kan artificiële intelligentie bij helpen. Maar hoe? Leerlingen uit de tweede en derde graad (SO) gaan met AI aan de slag. Misschien kan een trillende lopende band het systeem nog beter maken?" + description: 'Rotte tomaten weghalen tijdens de oogst? Daar kan artificiële intelligentie bij helpen. Maar hoe? Leerlingen uit de tweede en derde graad (SO) gaan met AI aan de slag. Misschien kan een trillende lopende band het systeem nog beter maken?' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Ontwerp" - file_info: "Ontwerp van de lopende band" - file_location: "/assets/files/art/Transportband_InnoVET_RCH.zip" - file_icon_name: "description" - link_name: "Download" - - file_title: "De lopende band" - file_info: "Video van de detectie van tomaten" - file_location: "https://www.youtube.com/watch?v=6TSqY4ECMU04" - file_icon_name: "play_arrow" - link_name: "Kijk" + - file_title: 'Ontwerp' + file_info: 'Ontwerp van de lopende band' + file_location: '/assets/files/art/Transportband_InnoVET_RCH.zip' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'De lopende band' + file_info: 'Video van de detectie van tomaten' + file_location: 'https://www.youtube.com/watch?v=6TSqY4ECMU04' + file_icon_name: 'play_arrow' + link_name: 'Kijk' art: title: AI in de Kunst sub_title: Tekenrobots in de klas - description: "Kunnen we kunst maken met artificiële intelligentie? Leerlingen uit de tweede en derde graad (SO) leven zich creatief uit met AI en reflecteren over het resultaat. Is dit kunst? Ook ontdekken ze hoe AI ons cultureel erfgoed kan beschermen." - contact: "" + description: 'Kunnen we kunst maken met artificiële intelligentie? Leerlingen uit de tweede en derde graad (SO) leven zich creatief uit met AI en reflecteren over het resultaat. Is dit kunst? Ook ontdekken ze hoe AI ons cultureel erfgoed kan beschermen.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co wegostem: title: WeGoSTEM sub_title: Tekenrobots in de klas - description: "We dagen kinderen van de derde graad (BO) uit om een kunstrobot die kan tekenen te programmeren. Spelenderwijs leren de kinderen heel wat STEM-vaardigheden, van techniek tot computationeel denken." + description: 'We dagen kinderen van de derde graad (BO) uit om een kunstrobot die kan tekenen te programmeren. Spelenderwijs leren de kinderen heel wat STEM-vaardigheden, van techniek tot computationeel denken.' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 computational_thinking: title: Computationeel denken sub_title: Computationeel denken in de klas - description: "Hoe kunnen we complexe problemen oplossen met behulp van een computer? Dankzij computationeel denken! Dat kan je leren via allerlei activiteiten met óf zonder computer. Wij helpen je alvast op weg." + description: 'Hoe kunnen we complexe problemen oplossen met behulp van een computer? Dankzij computationeel denken! Dat kan je leren via allerlei activiteiten met óf zonder computer. Wij helpen je alvast op weg.' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Computationeel denken en programmeren in een STEM context" - file_info: "Informatievideo over het project" - file_location: "https://www.youtube.com/watch?v=Nifa0vooyKg" - file_icon_name: "play_arrow" - link_name: "Kijk" - - file_title: "Concepten en aanpak computationeel denken" - file_info: "Poster​" - file_location: "/assets/files/computational_thinking/CDposterDwengo2.png" - file_icon_name: "description" - link_name: "Download" - - file_title: "Vier concepten van Computationeel denken uitgelegd" - file_info: "Presentatie over vier concepten van computationeel denken: decompositie, patroonherkenning, abstractie en algoritme. Je kan de pdf downloaden > openen > presenteren via CTRL-L en navigeren met de pijltjestoetsen." - file_location: "/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Concepten en principes" - file_info: "Overzicht​" - file_location: "/assets/files/computational_thinking/Icoontjes.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged activiteit - Emotiemachine (opdracht)" - file_info: "Hoe kan je emoties stimuleren bij een robot?​" - file_location: "/assets/files/computational_thinking/emotiemachine_gids.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged activiteit - Emotiemachine" - file_info: "Hoe kan je emoties stimuleren bij een robot?​" - file_location: "/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged activiteit - Kleuren op nummer" - file_info: "​Afbeeldingen kunnen op veel manieren worden gerepresenteerd. In deze kleuren op nummer puzzel moet je een afbeelding reconstrueren, gebruikmakend van de gegeven lijst van nummers; deze lijst vertelt je in welke kleur je elk vierkant (‘pixel’) inkleurt." - file_location: "/assets/files/computational_thinking/kleurenopnummer1.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged activiteit - Een menselijk computernetwerk" - file_info: "In deze activiteit maken de leerlingen kennis met hoe overdracht van gegevens over het internet werkt. Computers, smartphones en andere toestellen die met elkaar verbonden zijn via het internet, kunnen met elkaar communiceren. Om elkaar te kunnen begrijpen, dient die communicatie volgens bepaalde afspraken te verlopen. We noemen deze afspraken een protocol.​" - file_location: "/assets/files/computational_thinking/menselijkComputernetwerk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged activiteit - Comprimeren" - file_info: "Om afbeeldingen te verzenden over netwerken, willen we de informatie met zo weinig mogelijk data representeren. Daar komt compressie aan te pas. Met behulp van algoritmes worden afbeeldingen met zo weinig mogelijk getallen gerepresenteerd, maar wel op zo’n manier dat je de oorspronkelijke figuur nog kunt terugkrijgen. Andere algoritmes herstellen de oorspronkelijke afbeelding als de informatie de bestemming bereikt heeft.​" - file_location: "/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged activiteit - Programmeer eens een mens" - file_info: "Computers kunnen niet interpreteren en voeren dus letterlijk iedere instructie uit die je ze geeft. De uitdaging van de programmeur bestaat erin problemen op te lossen door ze op te delen in kleine stappen die uitvoerbaar zijn door de computer, en de instructies op de juiste manier aan de computer te geven.​" - file_location: "/assets/files/computational_thinking/programmeerEensEenMens.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Unplugged activiteit - Zoektocht naar spraak" - file_info: "Het locked-in syndroom is een van de ergste medische aandoeningen. Je bent volledig verlamd, behalve dat je misschien nog kunt knipperen met een oog. Je intelligente geest zit opgesloten in een nutteloos lichaam: je kan alles voelen, maar niet communiceren. Het kan iedereen overkomen, uit het niets, als gevolg van een beroerte. Als je mensen met het locked-in syndroom zou willen helpen, word je dan best arts of verpleegkundige? Of kan je als computerwetenschapper ook helpen?​" - file_location: "/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Computationeel denken en programmeren in een STEM context' + file_info: 'Informatievideo over het project' + file_location: 'https://www.youtube.com/watch?v=Nifa0vooyKg' + file_icon_name: 'play_arrow' + link_name: 'Kijk' + - file_title: 'Concepten en aanpak computationeel denken' + file_info: 'Poster​' + file_location: '/assets/files/computational_thinking/CDposterDwengo2.png' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Vier concepten van Computationeel denken uitgelegd' + file_info: 'Presentatie over vier concepten van computationeel denken: decompositie, patroonherkenning, abstractie en algoritme. Je kan de pdf downloaden > openen > presenteren via CTRL-L en navigeren met de pijltjestoetsen.' + file_location: '/assets/files/computational_thinking/CD4concepten_33V3gBg.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Concepten en principes' + file_info: 'Overzicht​' + file_location: '/assets/files/computational_thinking/Icoontjes.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged activiteit - Emotiemachine (opdracht)' + file_info: 'Hoe kan je emoties stimuleren bij een robot?​' + file_location: '/assets/files/computational_thinking/emotiemachine_gids.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged activiteit - Emotiemachine' + file_info: 'Hoe kan je emoties stimuleren bij een robot?​' + file_location: '/assets/files/computational_thinking/emotiemachine_gewoon_nl.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged activiteit - Kleuren op nummer' + file_info: '​Afbeeldingen kunnen op veel manieren worden gerepresenteerd. In deze kleuren op nummer puzzel moet je een afbeelding reconstrueren, gebruikmakend van de gegeven lijst van nummers; deze lijst vertelt je in welke kleur je elk vierkant (‘pixel’) inkleurt.' + file_location: '/assets/files/computational_thinking/kleurenopnummer1.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged activiteit - Een menselijk computernetwerk' + file_info: 'In deze activiteit maken de leerlingen kennis met hoe overdracht van gegevens over het internet werkt. Computers, smartphones en andere toestellen die met elkaar verbonden zijn via het internet, kunnen met elkaar communiceren. Om elkaar te kunnen begrijpen, dient die communicatie volgens bepaalde afspraken te verlopen. We noemen deze afspraken een protocol.​' + file_location: '/assets/files/computational_thinking/menselijkComputernetwerk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged activiteit - Comprimeren' + file_info: 'Om afbeeldingen te verzenden over netwerken, willen we de informatie met zo weinig mogelijk data representeren. Daar komt compressie aan te pas. Met behulp van algoritmes worden afbeeldingen met zo weinig mogelijk getallen gerepresenteerd, maar wel op zo’n manier dat je de oorspronkelijke figuur nog kunt terugkrijgen. Andere algoritmes herstellen de oorspronkelijke afbeelding als de informatie de bestemming bereikt heeft.​' + file_location: '/assets/files/computational_thinking/puzzel-gecomprimeerdepixel11.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged activiteit - Programmeer eens een mens' + file_info: 'Computers kunnen niet interpreteren en voeren dus letterlijk iedere instructie uit die je ze geeft. De uitdaging van de programmeur bestaat erin problemen op te lossen door ze op te delen in kleine stappen die uitvoerbaar zijn door de computer, en de instructies op de juiste manier aan de computer te geven.​' + file_location: '/assets/files/computational_thinking/programmeerEensEenMens.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Unplugged activiteit - Zoektocht naar spraak' + file_info: 'Het locked-in syndroom is een van de ergste medische aandoeningen. Je bent volledig verlamd, behalve dat je misschien nog kunt knipperen met een oog. Je intelligente geest zit opgesloten in een nutteloos lichaam: je kan alles voelen, maar niet communiceren. Het kan iedereen overkomen, uit het niets, als gevolg van een beroerte. Als je mensen met het locked-in syndroom zou willen helpen, word je dan best arts of verpleegkundige? Of kan je als computerwetenschapper ook helpen?​' + file_location: '/assets/files/computational_thinking/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Download' math_with_python: title: Python in de Wiskundeles sub_title: Python in wiskunde - description: "De programmeertaal Python biedt toffe mogelijkheden om de wiskundeles te verrijken. Van de stelling van Pythagoras tot de opmaak van eigen grafieken, digitale beeldverwerking en lineaire regressie, alles wordt duidelijker met Python." - contact: "" + description: 'De programmeertaal Python biedt toffe mogelijkheden om de wiskundeles te verrijken. Van de stelling van Pythagoras tot de opmaak van eigen grafieken, digitale beeldverwerking en lineaire regressie, alles wordt duidelijker met Python.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co python_programming: title: Programmeren met Python sub_title: Basis programmeren in Python - description: "De basisprincipes van programmeren aanleren? Dat kan perfect via dit pakket. We gaan aan de slag met Python en leren alles over sequenties, herhalingsstructuur en keuzestructuur. Dat is precies wat er in de eindtermen staat. En meer!" + description: 'De basisprincipes van programmeren aanleren? Dat kan perfect via dit pakket. We gaan aan de slag met Python en leren alles over sequenties, herhalingsstructuur en keuzestructuur. Dat is precies wat er in de eindtermen staat. En meer!' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 stem: title: Python in STEM sub_title: Datavisualisaties met Python - description: "In dit pakket leer je complexe problemen eenvoudiger én sneller aanpakken met de programmeertaal Python. Programmeren kan immers een verbindende rol spelen tussen wetenschap, techniek, ontwerp en toegepaste wiskunde. Kortom, dankzij Python halen we het beste uit STEM." + description: 'In dit pakket leer je complexe problemen eenvoudiger én sneller aanpakken met de programmeertaal Python. Programmeren kan immers een verbindende rol spelen tussen wetenschap, techniek, ontwerp en toegepaste wiskunde. Kortom, dankzij Python halen we het beste uit STEM.' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 care: title: AI in de Zorg sub_title: AI systemen die helpen in de zorg - description: "Ziekenhuizen maken vandaag al gebruik van artificiële intelligentie. Leerlingen uit de tweede en derde graad (SO) ontdekken welke systemen er bestaan en hoe ze dokters helpen om beslissingen te nemen. Zo leren leerlingen de principes van de beslissingsboom, een veelgebruikte techniek in machine learning." - contact: "" + description: 'Ziekenhuizen maken vandaag al gebruik van artificiële intelligentie. Leerlingen uit de tweede en derde graad (SO) ontdekken welke systemen er bestaan en hoe ze dokters helpen om beslissingen te nemen. Zo leren leerlingen de principes van de beslissingsboom, een veelgebruikte techniek in machine learning.' + contact: '' teaser: https://www.youtube.com/embed/dO-E33G20co curricula_files: - - file_title: "Projectfiche AI in de Zorg" - file_info: "Dit is een kort overzicht van project AI in de Zorg met projectstructuur- en kenmerken." - file_location: "/assets/files/care/projectfiche_aiindezorg.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Sprouts" + - file_title: 'Projectfiche AI in de Zorg' + file_info: 'Dit is een kort overzicht van project AI in de Zorg met projectstructuur- en kenmerken.' + file_location: '/assets/files/care/projectfiche_aiindezorg.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Sprouts' file_info: "Een spel ter inleiding op 'Grafen'.​" - file_location: "/assets/files/care/Sprouts.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Uitleg bij oefeningen grafen uit de leerlingencursus" - file_info: "Welke figuren stellen er dezelfde graaf voor? Een meer formele werkwijze.​" - file_location: "/assets/files/care/dezelfdegraafFormeel.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "Uitleg bij oefeningen grafen uit de leerlingencursus" - file_info: "Welke figuren stellen er dezelfde graaf voor? Een werkwijze met kleuren.​" - file_location: "/assets/files/care/dezelfdeGraaf.mov" - file_icon_name: "play_arrow" - link_name: "Download" - - file_title: "De leerlingencursus - Finaliteit Doorstroom" - file_info: "Leerlingencursus" - file_location: "/assets/files/care/AIindeZorg_doorstroom_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Kaartenset (unplugged activiteit) - Ook verkrijgbaar in gedrukte versie" - file_info: "Aan de hand van deze kaartenset kan je de leerlingen laten stilstaan bij de ethische aspecten van nieuwe technologieën. Hoe zit het met privacy? Komen de sociale contacten niet in het gedrang? Welke technologieën worden met open armen ontvangen? Wat is niet wenselijk? Zijn de nieuwe technologieën voor iedereen betaalbaar?" - file_location: "/assets/files/care/Kaartset_AIIndeZorg_AIOpSchool_Dwengo.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Handleiding kaartenset" - file_info: "Deze handleiding voorziet extra uitleg bij de kaartenset." - file_location: "/assets/files/care/AIIndeZorgKaartenset_UitlegVoorLeerkracht.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/care/Sprouts.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Uitleg bij oefeningen grafen uit de leerlingencursus' + file_info: 'Welke figuren stellen er dezelfde graaf voor? Een meer formele werkwijze.​' + file_location: '/assets/files/care/dezelfdegraafFormeel.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'Uitleg bij oefeningen grafen uit de leerlingencursus' + file_info: 'Welke figuren stellen er dezelfde graaf voor? Een werkwijze met kleuren.​' + file_location: '/assets/files/care/dezelfdeGraaf.mov' + file_icon_name: 'play_arrow' + link_name: 'Download' + - file_title: 'De leerlingencursus - Finaliteit Doorstroom' + file_info: 'Leerlingencursus' + file_location: '/assets/files/care/AIindeZorg_doorstroom_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Kaartenset (unplugged activiteit) - Ook verkrijgbaar in gedrukte versie' + file_info: 'Aan de hand van deze kaartenset kan je de leerlingen laten stilstaan bij de ethische aspecten van nieuwe technologieën. Hoe zit het met privacy? Komen de sociale contacten niet in het gedrang? Welke technologieën worden met open armen ontvangen? Wat is niet wenselijk? Zijn de nieuwe technologieën voor iedereen betaalbaar?' + file_location: '/assets/files/care/Kaartset_AIIndeZorg_AIOpSchool_Dwengo.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Handleiding kaartenset' + file_info: 'Deze handleiding voorziet extra uitleg bij de kaartenset.' + file_location: '/assets/files/care/AIIndeZorgKaartenset_UitlegVoorLeerkracht.pdf' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Beslissingsboom 'mBrAIn'-project in niet-compacte vorm" file_info: "In het onderzoeksproject 'mBrain', dat de ontwikkeling van een app die een migraineaanval voorspelt, als doel heeft, werd een beslissingsboom geconstrueerd. Met deze beslissingsboom wordt een probleem van binaire classificatie aangepakt: er zijn slechts twee klassen: ‘Migraine’ en ‘Geen migraine’. (Bronnen: Femke Ongenae. (2021), UGent; Van Hoecke, S., Ongenae, F., Paemeleire, K., & Vandenbussche, N. (2020). App moet hoofdpijn voorspellen. EOS Wetenschap Special, Technologie en gezondheid, 25.) Wij hebben de vorm van deze beslissingsboom omgevormd tot een binaire beslissingsboom om aan te tonen dat deze vorm niet altijd gebruiksvriendelijk is. Voor meer uitleg zie hoofdstuk 4 van de leerlingencursus van dit project.​" - file_location: "/assets/files/care/MBrainBeslissingsboom.png" - file_icon_name: "description" - link_name: "Download" - - file_title: "Zoektocht naar spraak - Computationeel denken (unplugged activiteit)" - file_info: "Het locked-in syndroom is een van de ergste medische aandoeningen. Je bent volledig verlamd, behalve dat je misschien nog kunt knipperen met een oog. Je intelligente geest zit opgesloten in een nutteloos lichaam: je kan alles voelen, maar niet communiceren. Het kan iedereen overkomen, uit het niets, als gevolg van een beroerte. Als je mensen met het locked-in syndroom zou willen helpen, word je dan best arts of verpleegkundige? Of kan je als computerwetenschapper ook helpen?​" - file_location: "/assets/files/care/ZoektochtNaarSpraak.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Sociale robots en stellingenspel (unplugged activiteit)" - file_info: "In deze presentatie maken leerlingen eerst kennis met sociale robots. Nadien worden de leerlingen aan de hand van enkele stellingen uitgedaagd om stil te staan bij de ethische aspecten van nieuwe technologieën.​ Hoe zit het met privacy? Komen de sociale contacten niet in het gedrang? Welke technologieën worden met open armen ontvangen? Wat is niet wenselijk? Zijn de nieuwe technologieën voor iedereen betaalbaar?" - file_location: "/assets/files/care/StellingenspelByDwengo.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/care/MBrainBeslissingsboom.png' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Zoektocht naar spraak - Computationeel denken (unplugged activiteit)' + file_info: 'Het locked-in syndroom is een van de ergste medische aandoeningen. Je bent volledig verlamd, behalve dat je misschien nog kunt knipperen met een oog. Je intelligente geest zit opgesloten in een nutteloos lichaam: je kan alles voelen, maar niet communiceren. Het kan iedereen overkomen, uit het niets, als gevolg van een beroerte. Als je mensen met het locked-in syndroom zou willen helpen, word je dan best arts of verpleegkundige? Of kan je als computerwetenschapper ook helpen?​' + file_location: '/assets/files/care/ZoektochtNaarSpraak.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Sociale robots en stellingenspel (unplugged activiteit)' + file_info: 'In deze presentatie maken leerlingen eerst kennis met sociale robots. Nadien worden de leerlingen aan de hand van enkele stellingen uitgedaagd om stil te staan bij de ethische aspecten van nieuwe technologieën.​ Hoe zit het met privacy? Komen de sociale contacten niet in het gedrang? Welke technologieën worden met open armen ontvangen? Wat is niet wenselijk? Zijn de nieuwe technologieën voor iedereen betaalbaar?' + file_location: '/assets/files/care/StellingenspelByDwengo.pdf' + file_icon_name: 'description' + link_name: 'Download' chatbot: title: Taaltechnologie sub_title: Aan de slag met een chatbot - description: "Waar taal en technologie samenkomen, ontstaat het domein van Natural Language Processing. Kan een computer teksten begrijpen, vertalen of zelfs schrijven? Kan een computer emoties herkennen? Leerlingen uit de tweede en derde graad (SO) leren er alles over in dit pakket." + description: 'Waar taal en technologie samenkomen, ontstaat het domein van Natural Language Processing. Kan een computer teksten begrijpen, vertalen of zelfs schrijven? Kan een computer emoties herkennen? Leerlingen uit de tweede en derde graad (SO) leren er alles over in dit pakket.' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Projectfiche Chatbot" - file_info: "Dit is een kort overzicht van Chatbot-project met projectstructuur- en kenmerken." - file_location: "/assets/files/chatbot/projectfiche_chatbot.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "BrAInfood Chatbots" - file_info: "In deze brAInfood - gericht naar jongeren - geeft het Kenniscentrum Data & Maatschappij meer informatie over chatbots. De brAInfood bevat een fictief verhaal over Lotte die praat met een chatbot, en vermoedelijk informatie over haar doorgeeft aan bedrijven. Verder worden enkele aandachtspunten met betrekking tot chatbots toegelicht, alsook enkele tips voor jongeren om hun (persoons)gegevens beter te beschermen. Op die manier willen we jongeren bewuster maken van de werking van chatbots en hen stimuleren te reflecteren over de gegevens die van hen worden verzameld.​" - file_location: "/assets/files/chatbot/Brainfood13_Chatbots_NL.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "BrAInfood Gepersonaliseerde nieuwsberichten" - file_info: "In deze brAInfood van het Kenniscentrum Data & Maatschappij worden tips gegeven over hoe je de controle houdt over je newsfeed.​" - file_location: "/assets/files/chatbot/brainfoodaanbevelingnieuws.jpg" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Projectfiche Chatbot' + file_info: 'Dit is een kort overzicht van Chatbot-project met projectstructuur- en kenmerken.' + file_location: '/assets/files/chatbot/projectfiche_chatbot.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'BrAInfood Chatbots' + file_info: 'In deze brAInfood - gericht naar jongeren - geeft het Kenniscentrum Data & Maatschappij meer informatie over chatbots. De brAInfood bevat een fictief verhaal over Lotte die praat met een chatbot, en vermoedelijk informatie over haar doorgeeft aan bedrijven. Verder worden enkele aandachtspunten met betrekking tot chatbots toegelicht, alsook enkele tips voor jongeren om hun (persoons)gegevens beter te beschermen. Op die manier willen we jongeren bewuster maken van de werking van chatbots en hen stimuleren te reflecteren over de gegevens die van hen worden verzameld.​' + file_location: '/assets/files/chatbot/Brainfood13_Chatbots_NL.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'BrAInfood Gepersonaliseerde nieuwsberichten' + file_info: 'In deze brAInfood van het Kenniscentrum Data & Maatschappij worden tips gegeven over hoe je de controle houdt over je newsfeed.​' + file_location: '/assets/files/chatbot/brainfoodaanbevelingnieuws.jpg' + file_icon_name: 'description' + link_name: 'Download' - file_title: "Handleiding 'Chatbot' - Ook verkrijgbaar in gedrukte versie" file_info: "​Leerkrachten verwerven via deze handleiding voldoende achtergrondinformatie om met (een deel van) het 'Chatbot'-project aan de slag te gaan in de klas. Het boek behandelt verschillende aspecten van taaltechnologie, zoals de geschiedenis van de artificiële intelligentie, de ethische aspecten ervan, sentimentanalyse en cyberpestdetectie, chatbots, sprekende digitale assistenten, en auteursherkenning. Er wordt ook ingegaan op de STEM-eindtermen en de eindtermen rond digitale competentie en mediawijsheid." - file_location: "/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Improbotics - Lesmap - Leerkrachtenversie" - file_info: "In de theatervoorstelling Improbotics improviseert een sociale robot mee in de scènes. In de lesmap vind je informatie over de gebruikte technologieën.​" - file_location: "/assets/files/chatbot/Improbotics_lesmap_Leerkracht.pdf" - file_icon_name: "description" - link_name: "Download" - - file_title: "Improbotics - Lesmap - Leerlingen" - file_info: "In de theatervoorstelling Improbotics improviseert een sociale robot mee in de scènes. In de lesmap vind je informatie over de gebruikte technologieën.​" - file_location: "/assets/files/chatbot/Improbotics_lesmap_Leerling.pdf" - file_icon_name: "description" - link_name: "Download" + file_location: '/assets/files/chatbot/Chatbot_handleiding_eerstedruk.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Improbotics - Lesmap - Leerkrachtenversie' + file_info: 'In de theatervoorstelling Improbotics improviseert een sociale robot mee in de scènes. In de lesmap vind je informatie over de gebruikte technologieën.​' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Leerkracht.pdf' + file_icon_name: 'description' + link_name: 'Download' + - file_title: 'Improbotics - Lesmap - Leerlingen' + file_info: 'In de theatervoorstelling Improbotics improviseert een sociale robot mee in de scènes. In de lesmap vind je informatie over de gebruikte technologieën.​' + file_location: '/assets/files/chatbot/Improbotics_lesmap_Leerling.pdf' + file_icon_name: 'description' + link_name: 'Download' physical_computing: title: Physical computing sub_title: Programmeer robots in de klas - description: "Een muziekinstrument, auto of weerstation bouwen? Dat kan met Dwenguino, een microcontrollerplatform met een eigen programmeeromgeving. Leerlingen uit zowel basis- als secundair onderwijs kunnen er meteen mee aan de slag. In het echt of in onze simulator, blokgebaseerd of tekstueel. " + description: 'Een muziekinstrument, auto of weerstation bouwen? Dat kan met Dwenguino, een microcontrollerplatform met een eigen programmeeromgeving. Leerlingen uit zowel basis- als secundair onderwijs kunnen er meteen mee aan de slag. In het echt of in onze simulator, blokgebaseerd of tekstueel. ' contact: Vragen? Contacteer ons via team@aiopschool.be. De pers kan contact opnemen met Francis wyffels via Francis@dwengo.org. teaser: https://www.youtube.com/embed/tqSnpAKLsu8 curricula_files: - - file_title: "Bouw jouw eigen robot" - file_info: "Bouw je eigen rijdende robot." - file_location: "/assets/files/physical_computing/bouwjouweigenrobot.pdf" - file_icon_name: "description" - link_name: "Download" + - file_title: 'Bouw jouw eigen robot' + file_info: 'Bouw je eigen rijdende robot.' + file_location: '/assets/files/physical_computing/bouwjouweigenrobot.pdf' + file_icon_name: 'description' + link_name: 'Download' diff --git a/backend/src/app.ts b/backend/src/app.ts index b0f7afa2..f0d1b32e 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -15,7 +15,6 @@ import loginRouter from './routes/login'; const app: Express = express(); const port: string | number = getNumericEnvVar(EnvVars.Port); - // TODO Replace with Express routes app.get('/', (_, res: Response) => { res.json({ diff --git a/backend/src/entities/assignments/assignment.entity.ts b/backend/src/entities/assignments/assignment.entity.ts index 7909b107..89952c64 100644 --- a/backend/src/entities/assignments/assignment.entity.ts +++ b/backend/src/entities/assignments/assignment.entity.ts @@ -12,7 +12,12 @@ import { Language } from '../content/language.js'; @Entity() export class Assignment { - @ManyToOne({ entity: () => {return Class}, primary: true }) + @ManyToOne({ + entity: () => { + return Class; + }, + primary: true, + }) within!: Class; @PrimaryKey({ type: 'number' }) @@ -27,9 +32,18 @@ export class Assignment { @Property({ type: 'string' }) learningPathHruid!: string; - @Enum({ items: () => {return Language} }) + @Enum({ + items: () => { + return Language; + }, + }) learningPathLanguage!: Language; - @OneToMany({ entity: () => {return Group}, mappedBy: 'assignment' }) + @OneToMany({ + entity: () => { + return Group; + }, + mappedBy: 'assignment', + }) groups!: Group[]; } diff --git a/backend/src/entities/assignments/group.entity.ts b/backend/src/entities/assignments/group.entity.ts index a68eb5a0..5b224087 100644 --- a/backend/src/entities/assignments/group.entity.ts +++ b/backend/src/entities/assignments/group.entity.ts @@ -4,12 +4,21 @@ import { Student } from '../users/student.entity.js'; @Entity() export class Group { - @ManyToOne({ entity: () => {return Assignment}, primary: true }) + @ManyToOne({ + entity: () => { + return Assignment; + }, + primary: true, + }) assignment!: Assignment; @PrimaryKey({ type: 'integer' }) groupNumber!: number; - @ManyToMany({ entity: () => {return Student} }) + @ManyToMany({ + entity: () => { + return Student; + }, + }) members!: Student[]; } diff --git a/backend/src/entities/assignments/submission.entity.ts b/backend/src/entities/assignments/submission.entity.ts index bd0936a1..1bc28add 100644 --- a/backend/src/entities/assignments/submission.entity.ts +++ b/backend/src/entities/assignments/submission.entity.ts @@ -8,7 +8,12 @@ export class Submission { @PrimaryKey({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) learningObjectLanguage!: Language; @PrimaryKey({ type: 'string' }) @@ -17,13 +22,22 @@ export class Submission { @PrimaryKey({ type: 'integer' }) submissionNumber!: number; - @ManyToOne({ entity: () => {return Student} }) + @ManyToOne({ + entity: () => { + return Student; + }, + }) submitter!: Student; @Property({ type: 'datetime' }) submissionTime!: Date; - @ManyToOne({ entity: () => {return Group}, nullable: true }) + @ManyToOne({ + entity: () => { + return Group; + }, + nullable: true, + }) onBehalfOf?: Group; @Property({ type: 'json' }) diff --git a/backend/src/entities/classes/class-join-request.entity.ts b/backend/src/entities/classes/class-join-request.entity.ts index 8e88999c..2f9fc341 100644 --- a/backend/src/entities/classes/class-join-request.entity.ts +++ b/backend/src/entities/classes/class-join-request.entity.ts @@ -4,13 +4,25 @@ import { Class } from './class.entity'; @Entity() export class ClassJoinRequest { - @ManyToOne({ entity: () => {return Student}, primary: true }) + @ManyToOne({ + entity: () => { + return Student; + }, + primary: true, + }) requester!: Student; - @ManyToOne({ entity: () => {return Class}, primary: true }) + @ManyToOne({ + entity: () => { + return Class; + }, + primary: true, + }) class!: Class; - @Enum(() => {return ClassJoinRequestStatus}) + @Enum(() => { + return ClassJoinRequestStatus; + }) status!: ClassJoinRequestStatus; } diff --git a/backend/src/entities/classes/class.entity.ts b/backend/src/entities/classes/class.entity.ts index 2ad98c84..ecc11748 100644 --- a/backend/src/entities/classes/class.entity.ts +++ b/backend/src/entities/classes/class.entity.ts @@ -17,9 +17,13 @@ export class Class { @Property({ type: 'string' }) displayName!: string; - @ManyToMany(() => {return Teacher}) + @ManyToMany(() => { + return Teacher; + }) teachers!: Collection; - @ManyToMany(() => {return Student}) + @ManyToMany(() => { + return Student; + }) students!: Collection; } diff --git a/backend/src/entities/classes/teacher-invitation.entity.ts b/backend/src/entities/classes/teacher-invitation.entity.ts index feba8fc3..98d2bdd4 100644 --- a/backend/src/entities/classes/teacher-invitation.entity.ts +++ b/backend/src/entities/classes/teacher-invitation.entity.ts @@ -7,12 +7,27 @@ import { Class } from './class.entity.js'; */ @Entity() export class TeacherInvitation { - @ManyToOne({ entity: () => {return Teacher}, primary: true }) + @ManyToOne({ + entity: () => { + return Teacher; + }, + primary: true, + }) sender!: Teacher; - @ManyToOne({ entity: () => {return Teacher}, primary: true }) + @ManyToOne({ + entity: () => { + return Teacher; + }, + primary: true, + }) receiver!: Teacher; - @ManyToOne({ entity: () => {return Class}, primary: true }) + @ManyToOne({ + entity: () => { + return Class; + }, + primary: true, + }) class!: Class; } diff --git a/backend/src/entities/content/attachment.entity.ts b/backend/src/entities/content/attachment.entity.ts index 2ead7262..7a9dd946 100644 --- a/backend/src/entities/content/attachment.entity.ts +++ b/backend/src/entities/content/attachment.entity.ts @@ -3,7 +3,12 @@ import { LearningObject } from './learning-object.entity.js'; @Entity() export class Attachment { - @ManyToOne({ entity: () => {return LearningObject}, primary: true }) + @ManyToOne({ + entity: () => { + return LearningObject; + }, + primary: true, + }) learningObject!: LearningObject; @PrimaryKey({ type: 'integer' }) diff --git a/backend/src/entities/content/learning-object.entity.ts b/backend/src/entities/content/learning-object.entity.ts index c5bfe08f..bf499e8a 100644 --- a/backend/src/entities/content/learning-object.entity.ts +++ b/backend/src/entities/content/learning-object.entity.ts @@ -17,13 +17,22 @@ export class LearningObject { @PrimaryKey({ type: 'string' }) hruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) language!: Language; @PrimaryKey({ type: 'string' }) version: string = '1'; - @ManyToMany({ entity: () => {return Teacher} }) + @ManyToMany({ + entity: () => { + return Teacher; + }, + }) admins!: Teacher[]; @Property({ type: 'string' }) @@ -47,7 +56,12 @@ export class LearningObject { @Property({ type: 'array' }) skosConcepts!: string[]; - @Embedded({ entity: () => {return EducationalGoal}, array: true }) + @Embedded({ + entity: () => { + return EducationalGoal; + }, + array: true, + }) educationalGoals: EducationalGoal[] = []; @Property({ type: 'string' }) @@ -62,7 +76,11 @@ export class LearningObject { @Property({ type: 'integer' }) estimatedTime!: number; - @Embedded({ entity: () => {return ReturnValue} }) + @Embedded({ + entity: () => { + return ReturnValue; + }, + }) returnValue!: ReturnValue; @Property({ type: 'bool' }) @@ -71,7 +89,12 @@ export class LearningObject { @Property({ type: 'string', nullable: true }) contentLocation?: string; - @OneToMany({ entity: () => {return Attachment}, mappedBy: 'learningObject' }) + @OneToMany({ + entity: () => { + return Attachment; + }, + mappedBy: 'learningObject', + }) attachments: Attachment[] = []; @Property({ type: 'blob' }) diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index f758dace..28d3cadd 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -16,10 +16,19 @@ export class LearningPath { @PrimaryKey({ type: 'string' }) hruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) language!: Language; - @ManyToMany({ entity: () => {return Teacher} }) + @ManyToMany({ + entity: () => { + return Teacher; + }, + }) admins!: Teacher[]; @Property({ type: 'string' }) @@ -31,7 +40,12 @@ export class LearningPath { @Property({ type: 'blob' }) image!: string; - @Embedded({ entity: () => {return LearningPathNode}, array: true }) + @Embedded({ + entity: () => { + return LearningPathNode; + }, + array: true, + }) nodes: LearningPathNode[] = []; } @@ -40,7 +54,11 @@ export class LearningPathNode { @Property({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => {return Language} }) + @Enum({ + items: () => { + return Language; + }, + }) language!: Language; @Property({ type: 'string' }) @@ -52,7 +70,12 @@ export class LearningPathNode { @Property({ type: 'bool' }) startNode!: boolean; - @Embedded({ entity: () => {return LearningPathTransition}, array: true }) + @Embedded({ + entity: () => { + return LearningPathTransition; + }, + array: true, + }) transitions!: LearningPathTransition[]; } @@ -61,6 +84,10 @@ export class LearningPathTransition { @Property({ type: 'string' }) condition!: string; - @OneToOne({ entity: () => {return LearningPathNode} }) + @OneToOne({ + entity: () => { + return LearningPathNode; + }, + }) next!: LearningPathNode; } diff --git a/backend/src/entities/questions/answer.entity.ts b/backend/src/entities/questions/answer.entity.ts index 2690d50d..34558612 100644 --- a/backend/src/entities/questions/answer.entity.ts +++ b/backend/src/entities/questions/answer.entity.ts @@ -4,10 +4,20 @@ import { Teacher } from '../users/teacher.entity'; @Entity() export class Answer { - @ManyToOne({ entity: () => {return Teacher}, primary: true }) + @ManyToOne({ + entity: () => { + return Teacher; + }, + primary: true, + }) author!: Teacher; - @ManyToOne({ entity: () => {return Question}, primary: true }) + @ManyToOne({ + entity: () => { + return Question; + }, + primary: true, + }) toQuestion!: Question; @PrimaryKey({ type: 'integer' }) diff --git a/backend/src/entities/questions/question.entity.ts b/backend/src/entities/questions/question.entity.ts index 5830c816..444d2179 100644 --- a/backend/src/entities/questions/question.entity.ts +++ b/backend/src/entities/questions/question.entity.ts @@ -7,7 +7,12 @@ export class Question { @PrimaryKey({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) learningObjectLanguage!: Language; @PrimaryKey({ type: 'string' }) @@ -16,7 +21,11 @@ export class Question { @PrimaryKey({ type: 'integer' }) sequenceNumber!: number; - @ManyToOne({ entity: () => {return Student} }) + @ManyToOne({ + entity: () => { + return Student; + }, + }) author!: Student; @Property({ type: 'datetime' }) diff --git a/backend/src/entities/users/student.entity.ts b/backend/src/entities/users/student.entity.ts index ccfa7dfc..c5632e84 100644 --- a/backend/src/entities/users/student.entity.ts +++ b/backend/src/entities/users/student.entity.ts @@ -4,12 +4,20 @@ import { Class } from '../classes/class.entity.js'; import { Group } from '../assignments/group.entity.js'; import { StudentRepository } from '../../data/users/student-repository.js'; -@Entity({ repository: () => {return StudentRepository} }) +@Entity({ + repository: () => { + return StudentRepository; + }, +}) export class Student extends User { - @ManyToMany(() => {return Class}) + @ManyToMany(() => { + return Class; + }) classes!: Collection; - @ManyToMany(() => {return Group}) + @ManyToMany(() => { + return Group; + }) groups!: Collection; constructor( diff --git a/backend/src/entities/users/teacher.entity.ts b/backend/src/entities/users/teacher.entity.ts index eaaa8327..9f11a3b0 100644 --- a/backend/src/entities/users/teacher.entity.ts +++ b/backend/src/entities/users/teacher.entity.ts @@ -4,6 +4,8 @@ import { Class } from '../classes/class.entity.js'; @Entity() export class Teacher extends User { - @ManyToMany(() => {return Class}) + @ManyToMany(() => { + return Class; + }) classes!: Collection; } diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index 88996cf9..d180bce0 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -15,21 +15,22 @@ function config(testingMode: boolean = false): Options { // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) - dynamicImportProvider: (id) => {return import(id)}, + dynamicImportProvider: (id) => { + return import(id); + }, }; - } - return { - driver: PostgreSqlDriver, - host: getEnvVar(EnvVars.DbHost), - port: getNumericEnvVar(EnvVars.DbPort), - dbName: getEnvVar(EnvVars.DbName), - user: getEnvVar(EnvVars.DbUsername), - password: getEnvVar(EnvVars.DbPassword), - entities: entities, - entitiesTs: entitiesTs, - debug: true, - }; - + } + return { + driver: PostgreSqlDriver, + host: getEnvVar(EnvVars.DbHost), + port: getNumericEnvVar(EnvVars.DbPort), + dbName: getEnvVar(EnvVars.DbName), + user: getEnvVar(EnvVars.DbUsername), + password: getEnvVar(EnvVars.DbPassword), + entities: entities, + entitiesTs: entitiesTs, + debug: true, + }; } export default config; diff --git a/backend/src/routes/assignment.ts b/backend/src/routes/assignment.ts index eb49144f..4ae5756d 100644 --- a/backend/src/routes/assignment.ts +++ b/backend/src/routes/assignment.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - assignments: [ - '0', - '1', - ] + assignments: ['0', '1'], }); }); @@ -17,7 +14,7 @@ router.get('/:id', (req, res) => { id: req.params.id, title: 'Dit is een test assignment', description: 'Een korte beschrijving', - groups: [ '0' ], + groups: ['0'], learningPath: '0', class: '0', links: { @@ -25,30 +22,24 @@ router.get('/:id', (req, res) => { submissions: `${req.baseUrl}/${req.params.id}`, }, }); -}) +}); router.get('/:id/submissions', (req, res) => { res.json({ - submissions: [ - '0' - ], + submissions: ['0'], }); }); router.get('/:id/groups', (req, res) => { res.json({ - groups: [ - '0' - ], + groups: ['0'], }); }); router.get('/:id/questions', (req, res) => { res.json({ - questions: [ - '0' - ], + questions: ['0'], }); }); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/class.ts b/backend/src/routes/class.ts index fa7a2310..6f8f324e 100644 --- a/backend/src/routes/class.ts +++ b/backend/src/routes/class.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - classes: [ - '0', - '1', - ] + classes: ['0', '1'], }); }); @@ -16,40 +13,34 @@ router.get('/:id', (req, res) => { res.json({ id: req.params.id, displayName: 'Klas 4B', - teachers: [ '0' ], - students: [ '0' ], - joinRequests: [ '0' ], + teachers: ['0'], + students: ['0'], + joinRequests: ['0'], links: { self: `${req.baseUrl}/${req.params.id}`, classes: `${req.baseUrl}/${req.params.id}/invitations`, questions: `${req.baseUrl}/${req.params.id}/assignments`, students: `${req.baseUrl}/${req.params.id}/students`, - } + }, }); -}) +}); router.get('/:id/invitations', (req, res) => { res.json({ - invitations: [ - '0' - ], + invitations: ['0'], }); -}) +}); router.get('/:id/assignments', (req, res) => { res.json({ - assignments: [ - '0' - ], + assignments: ['0'], }); -}) +}); router.get('/:id/students', (req, res) => { res.json({ - students: [ - '0' - ], + students: ['0'], }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/group.ts b/backend/src/routes/group.ts index e951a8a7..303f5215 100644 --- a/backend/src/routes/group.ts +++ b/backend/src/routes/group.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - groups: [ - '0', - '1', - ] + groups: ['0', '1'], }); }); @@ -16,19 +13,19 @@ router.get('/:id', (req, res) => { res.json({ id: req.params.id, assignment: '0', - students: [ '0' ], - submissions: [ '0' ], + students: ['0'], + submissions: ['0'], // Reference to other endpoint // Should be less hardcoded - questions: `/group/${req.params.id}/question`, + questions: `/group/${req.params.id}/question`, }); -}) +}); // The list of questions a group has made router.get('/:id/question', (req, res) => { res.json({ - questions: [ '0' ], + questions: ['0'], }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/login.ts b/backend/src/routes/login.ts index bc2ed3d8..33d5e6c3 100644 --- a/backend/src/routes/login.ts +++ b/backend/src/routes/login.ts @@ -1,4 +1,4 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Returns login paths for IDP @@ -9,6 +9,6 @@ router.get('/', (req, res) => { leerkracht: '/login-leerkracht', leerling: '/login-leerling', }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/question.ts b/backend/src/routes/question.ts index 040f742d..f683d998 100644 --- a/backend/src/routes/question.ts +++ b/backend/src/routes/question.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - questions: [ - '0', - '1', - ] + questions: ['0', '1'], }); }); @@ -18,21 +15,20 @@ router.get('/:id', (req, res) => { student: '0', group: '0', time: new Date(2025, 1, 1), - content: 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????', + content: + 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????', learningObject: '0', links: { self: `${req.baseUrl}/${req.params.id}`, answers: `${req.baseUrl}/${req.params.id}/answers`, - } + }, }); -}) +}); router.get('/:id/answers', (req, res) => { res.json({ - answers: [ - '0' - ], - }) -}) + answers: ['0'], + }); +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/student.ts b/backend/src/routes/student.ts index bc3f588b..9cb0cdee 100644 --- a/backend/src/routes/student.ts +++ b/backend/src/routes/student.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - students: [ - '0', - '1', - ] + students: ['0', '1'], }); }); @@ -30,30 +27,29 @@ router.get('/:id', (req, res) => { // The list of classes a student is in router.get('/:id/classes', (req, res) => { res.json({ - classes: [ '0' ], + classes: ['0'], }); -}) +}); // The list of submissions a student has made router.get('/:id/submissions', (req, res) => { res.json({ - submissions: [ '0' ], + submissions: ['0'], }); -}) +}); - // The list of assignments a student has router.get('/:id/assignments', (req, res) => { res.json({ - assignments: [ '0' ], + assignments: ['0'], }); -}) - +}); + // The list of groups a student is in router.get('/:id/groups', (req, res) => { res.json({ - groups: [ '0' ], + groups: ['0'], }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/submission.ts b/backend/src/routes/submission.ts index 98acc842..cb4d3e85 100644 --- a/backend/src/routes/submission.ts +++ b/backend/src/routes/submission.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - submissions: [ - '0', - '1', - ] + submissions: ['0', '1'], }); }); @@ -21,6 +18,6 @@ router.get('/:id', (req, res) => { content: 'Wortel 2 is rationeel', learningObject: '0', }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/teacher.ts b/backend/src/routes/teacher.ts index f9de3aa5..a7c60bc9 100644 --- a/backend/src/routes/teacher.ts +++ b/backend/src/routes/teacher.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - teachers: [ - '0', - '1', - ] + teachers: ['0', '1'], }); }); @@ -25,34 +22,27 @@ router.get('/:id', (req, res) => { invitations: `${req.baseUrl}/${req.params.id}/invitations`, }, }); -}) +}); // The questions students asked a teacher router.get('/:id/questions', (req, res) => { res.json({ - questions: [ - '0' - ], + questions: ['0'], }); }); // Invitations to other classes a teacher received router.get('/:id/invitations', (req, res) => { res.json({ - invitations: [ - '0' - ], + invitations: ['0'], }); }); // A list with ids of classes a teacher is in router.get('/:id/classes', (req, res) => { res.json({ - classes: [ - '0' - ], + classes: ['0'], }); }); - -export default router \ No newline at end of file +export default router; diff --git a/backend/tests/data/users.test.ts b/backend/tests/data/users.test.ts index a982151e..887748a2 100644 --- a/backend/tests/data/users.test.ts +++ b/backend/tests/data/users.test.ts @@ -1,13 +1,13 @@ -import {setupTestApp} from "../setup-tests.js" -import {Student} from "../../src/entities/users/student.entity.js"; -import {describe, it, expect, beforeAll} from "vitest"; -import {StudentRepository} from "../../src/data/users/student-repository.js"; -import {getStudentRepository} from "../../src/data/repositories.js"; +import { setupTestApp } from '../setup-tests.js'; +import { Student } from '../../src/entities/users/student.entity.js'; +import { describe, it, expect, beforeAll } from 'vitest'; +import { StudentRepository } from '../../src/data/users/student-repository.js'; +import { getStudentRepository } from '../../src/data/repositories.js'; -const username = "teststudent"; -const firstName = "John"; -const lastName = "Doe"; -describe("StudentRepository", () => { +const username = 'teststudent'; +const firstName = 'John'; +const lastName = 'Doe'; +describe('StudentRepository', () => { let studentRepository: StudentRepository; beforeAll(async () => { @@ -15,19 +15,23 @@ describe("StudentRepository", () => { studentRepository = getStudentRepository(); }); - it("should return the queried student after he was added", async () => { - await studentRepository.insert(new Student(username, firstName, lastName)); + it('should return the queried student after he was added', async () => { + await studentRepository.insert( + new Student(username, firstName, lastName) + ); - const retrievedStudent = await studentRepository.findByUsername(username); + const retrievedStudent = + await studentRepository.findByUsername(username); expect(retrievedStudent).toBeTruthy(); expect(retrievedStudent?.firstName).toBe(firstName); expect(retrievedStudent?.lastName).toBe(lastName); }); - it("should no longer return the queried student after he was removed again", async () => { + it('should no longer return the queried student after he was removed again', async () => { await studentRepository.deleteByUsername(username); - const retrievedStudent = await studentRepository.findByUsername(username); + const retrievedStudent = + await studentRepository.findByUsername(username); expect(retrievedStudent).toBeNull(); }); }); diff --git a/backend/tests/setup-tests.ts b/backend/tests/setup-tests.ts index 6738ad56..6c9d23f6 100644 --- a/backend/tests/setup-tests.ts +++ b/backend/tests/setup-tests.ts @@ -1,7 +1,7 @@ -import {initORM} from "../src/orm.js"; -import dotenv from "dotenv"; +import { initORM } from '../src/orm.js'; +import dotenv from 'dotenv'; export async function setupTestApp() { - dotenv.config({path: ".env.test"}); + dotenv.config({ path: '.env.test' }); await initORM(true); } diff --git a/backend/vitest.config.ts b/backend/vitest.config.ts index 7601a84b..302015fb 100644 --- a/backend/vitest.config.ts +++ b/backend/vitest.config.ts @@ -3,6 +3,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { environment: 'node', - globals: true - } + globals: true, + }, }); diff --git a/docker-compose.yml b/docker-compose.yml index c5230d7c..6be29180 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,14 @@ services: - db: - image: postgres:latest - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: postgres - ports: - - "5431:5432" - volumes: - - postgres_data:/var/lib/postgresql/data + db: + image: postgres:latest + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - '5431:5432' + volumes: + - postgres_data:/var/lib/postgresql/data volumes: postgres_data: diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 7db110de..50d132d6 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,10 +1,7 @@ - + - + diff --git a/frontend/src/components/BrowseThemes.vue b/frontend/src/components/BrowseThemes.vue index 5191a920..9575da5f 100644 --- a/frontend/src/components/BrowseThemes.vue +++ b/frontend/src/components/BrowseThemes.vue @@ -1,11 +1,9 @@ - + diff --git a/frontend/src/components/LearningPath.vue b/frontend/src/components/LearningPath.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/components/LearningPath.vue +++ b/frontend/src/components/LearningPath.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/components/MenuBar.vue b/frontend/src/components/MenuBar.vue index 73336fa3..1a35a59f 100644 --- a/frontend/src/components/MenuBar.vue +++ b/frontend/src/components/MenuBar.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/components/errors/NotFound.vue b/frontend/src/components/errors/NotFound.vue index 7a45fea2..99afde41 100644 --- a/frontend/src/components/errors/NotFound.vue +++ b/frontend/src/components/errors/NotFound.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 8ce0fe3f..558d88e7 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -1,4 +1,4 @@ -import {createRouter, createWebHistory} from "vue-router"; +import { createRouter, createWebHistory } from "vue-router"; import MenuBar from "@/components/MenuBar.vue"; import StudentHomepage from "@/views/StudentHomepage.vue"; import StudentAssignments from "@/views/assignments/StudentAssignments.vue"; @@ -22,12 +22,16 @@ const router = createRouter({ { path: "/", name: "home", - component: () => {return import("../views/HomePage.vue")}, + component: () => { + return import("../views/HomePage.vue"); + }, }, { path: "/login", name: "LoginPage", - component: () => {return import("../views/LoginPage.vue")} + component: () => { + return import("../views/LoginPage.vue"); + }, }, { path: "/student/:id", @@ -36,24 +40,24 @@ const router = createRouter({ { path: "home", name: "StudentHomePage", - component: StudentHomepage + component: StudentHomepage, }, { path: "assignment", name: "StudentAssignments", - component: StudentAssignments + component: StudentAssignments, }, { path: "class", name: "StudentClasses", - component: StudentClasses + component: StudentClasses, }, { path: "discussion", name: "StudentDiscussions", - component: StudentDiscussions + component: StudentDiscussions, }, - ] + ], }, { @@ -63,56 +67,54 @@ const router = createRouter({ { path: "home", name: "TeacherHomepage", - component: TeacherHomepage + component: TeacherHomepage, }, { path: "assignment", name: "TeacherAssignments", - component: TeacherAssignments + component: TeacherAssignments, }, { path: "class", name: "TeacherClasses", - component: TeacherClasses + component: TeacherClasses, }, { path: "discussion", name: "TeacherDiscussions", - component: TeacherDiscussions + component: TeacherDiscussions, }, - ] + ], }, { path: "/assignment/create", name: "CreateAssigment", - component: CreateAssignment - + component: CreateAssignment, }, { path: "/assignment/:id", name: "SingleAssigment", - component: SingleAssignment - + component: SingleAssignment, }, { path: "/class/create", name: "CreateClass", - component: CreateClass + component: CreateClass, }, { path: "/class/:id", name: "SingleClass", - component: SingleClass + component: SingleClass, }, { path: "/discussion/create", name: "CreateDiscussion", - component: CreateDiscussion + component: CreateDiscussion, }, { path: "/discussion/:id", name: "SingleDiscussion", - component: SingleDiscussion + component: SingleDiscussion, }, { path: "/:catchAll(.*)", diff --git a/frontend/src/views/HomePage.vue b/frontend/src/views/HomePage.vue index 677f16f0..60afc9ac 100644 --- a/frontend/src/views/HomePage.vue +++ b/frontend/src/views/HomePage.vue @@ -1,12 +1,8 @@ - + - + diff --git a/frontend/src/views/LoginPage.vue b/frontend/src/views/LoginPage.vue index 85a69bfd..1a35a59f 100644 --- a/frontend/src/views/LoginPage.vue +++ b/frontend/src/views/LoginPage.vue @@ -1,10 +1,7 @@ - + - + diff --git a/frontend/src/views/StudentHomepage.vue b/frontend/src/views/StudentHomepage.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/StudentHomepage.vue +++ b/frontend/src/views/StudentHomepage.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/TeacherHomepage.vue b/frontend/src/views/TeacherHomepage.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/TeacherHomepage.vue +++ b/frontend/src/views/TeacherHomepage.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/assignments/CreateAssignment.vue b/frontend/src/views/assignments/CreateAssignment.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/assignments/CreateAssignment.vue +++ b/frontend/src/views/assignments/CreateAssignment.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/assignments/SingleAssignment.vue b/frontend/src/views/assignments/SingleAssignment.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/assignments/SingleAssignment.vue +++ b/frontend/src/views/assignments/SingleAssignment.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/assignments/StudentAssignments.vue b/frontend/src/views/assignments/StudentAssignments.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/assignments/StudentAssignments.vue +++ b/frontend/src/views/assignments/StudentAssignments.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/assignments/TeacherAssignments.vue b/frontend/src/views/assignments/TeacherAssignments.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/assignments/TeacherAssignments.vue +++ b/frontend/src/views/assignments/TeacherAssignments.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/classes/CreateClass.vue b/frontend/src/views/classes/CreateClass.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/classes/CreateClass.vue +++ b/frontend/src/views/classes/CreateClass.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/classes/SingleClass.vue b/frontend/src/views/classes/SingleClass.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/classes/SingleClass.vue +++ b/frontend/src/views/classes/SingleClass.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/classes/StudentClasses.vue b/frontend/src/views/classes/StudentClasses.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/classes/StudentClasses.vue +++ b/frontend/src/views/classes/StudentClasses.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/classes/TeacherClasses.vue b/frontend/src/views/classes/TeacherClasses.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/classes/TeacherClasses.vue +++ b/frontend/src/views/classes/TeacherClasses.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/discussions/CreateDiscussion.vue b/frontend/src/views/discussions/CreateDiscussion.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/discussions/CreateDiscussion.vue +++ b/frontend/src/views/discussions/CreateDiscussion.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/discussions/SingleDiscussion.vue b/frontend/src/views/discussions/SingleDiscussion.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/discussions/SingleDiscussion.vue +++ b/frontend/src/views/discussions/SingleDiscussion.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/discussions/StudentDiscussions.vue b/frontend/src/views/discussions/StudentDiscussions.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/discussions/StudentDiscussions.vue +++ b/frontend/src/views/discussions/StudentDiscussions.vue @@ -1,11 +1,7 @@ - + - + diff --git a/frontend/src/views/discussions/TeacherDiscussions.vue b/frontend/src/views/discussions/TeacherDiscussions.vue index 4aaf6ef8..1a35a59f 100644 --- a/frontend/src/views/discussions/TeacherDiscussions.vue +++ b/frontend/src/views/discussions/TeacherDiscussions.vue @@ -1,11 +1,7 @@ - + - + From 91eb374b7e8b6e72a832f33affdfc1a1c84849a4 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 15:15:04 +0100 Subject: [PATCH 34/80] fix: api helper voor extra error checks bij fetch dwengo api + schrijffout in controllers/themes --- backend/src/controllers/themes.ts | 2 +- backend/src/routes/learningObjects.ts | 3 +++ backend/src/routes/learningPaths.ts | 2 ++ backend/src/services/learningObjects.ts | 17 +++++++++------ backend/src/util/apiHelper.ts | 29 +++++++++++++++++++++++++ 5 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 backend/src/util/apiHelper.ts diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index d81cf054..d6c67107 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -17,7 +17,7 @@ function loadTranslations(language: string): Translations { return yaml.load(yamlFile) as Translations; } catch (error) { console.error( - `Cant load for language: ${language}, fallen back on dutch` + `Cannot load translation for: ${language}, fallen back to Dutch` ); console.error(error); const fallbackPath = path.join(process.cwd(), '_i18n', 'nl.yml'); diff --git a/backend/src/routes/learningObjects.ts b/backend/src/routes/learningObjects.ts index 907ec1d7..1d72daaf 100644 --- a/backend/src/routes/learningObjects.ts +++ b/backend/src/routes/learningObjects.ts @@ -3,9 +3,12 @@ import { getAllLearningObjects } from '../controllers/learningObjects.js'; const router = express.Router(); +// DWENGO learning objects + // Arg: hruid learningPath // Query: language // Route to fetch list of learning objects based on hruid of learning path +// example: http://localhost:3000/learningObject/un_artificiele_intelligentie router.get('/:hruid', getAllLearningObjects); export default router; diff --git a/backend/src/routes/learningPaths.ts b/backend/src/routes/learningPaths.ts index 7e821350..17eb881d 100644 --- a/backend/src/routes/learningPaths.ts +++ b/backend/src/routes/learningPaths.ts @@ -8,6 +8,8 @@ import { const router = express.Router(); +// DWENGO learning paths + // Query: hruids(list), language // Route to fetch learning paths based on a list of HRUIDs // Example: http://localhost:3000/learningPath?hruids=pn_werking&hruids=art1 diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 0168981c..bab246e0 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -1,5 +1,6 @@ import axios from 'axios'; import { DWENGO_API_BASE } from '../config/config.js'; +import { fetchWithLogging } from "../util/apiHelper.js"; interface LearningObjectNode { _id: string; @@ -18,7 +19,7 @@ function filterLearningObjectMetadata(data: any, htmlUrl: string) { title: data.title, htmlUrl, - // Html content object + // Url to fetch html content language: data.language, difficulty: data.difficulty, estimatedTime: data.estimated_time, @@ -50,15 +51,18 @@ export async function getLearningObjectsFromPath( ) { try { const learningPathUrl = `${DWENGO_API_BASE}/learningPath/${hruid}/${language}`; - const learningPathResponse = await axios.get(learningPathUrl); - const nodes = learningPathResponse.data.nodes; + const learningPathData = await fetchWithLogging<{ nodes: LearningObjectNode[] }>( + learningPathUrl, + `Learning path for HRUID "${hruid}" in language "${language}"` + ); - if (!nodes || nodes.length === 0) { - throw new Error('No learning objects found in this learning path.'); + if (!learningPathData || !learningPathData.nodes || learningPathData.nodes.length === 0) { + console.error(`⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.`); + return []; } return await Promise.all( - nodes.map(async (node: LearningObjectNode) => { + learningPathData.nodes.map(async (node: LearningObjectNode) => { const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; const metadataResponse = await axios.get(metadataUrl); @@ -72,6 +76,5 @@ export async function getLearningObjectsFromPath( ); } catch (error) { console.error('Error fetching learning objects:', error); - throw new Error('Failed to fetch learning objects.'); } } diff --git a/backend/src/util/apiHelper.ts b/backend/src/util/apiHelper.ts new file mode 100644 index 00000000..08e12b11 --- /dev/null +++ b/backend/src/util/apiHelper.ts @@ -0,0 +1,29 @@ +import axios from 'axios'; + +// !!!! when logger is done -> change + +/** + * Utility function to fetch data from an API endpoint with error handling. + * Logs errors but does NOT throw exceptions to keep the system running. + * + * @param url The API endpoint to fetch from. + * @param description A short description of what is being fetched (for logging). + * @returns The response data if successful, or null if an error occurs. + */ +export async function fetchWithLogging(url: string, description: string): Promise { + try { + const response = await axios.get(url); + return response.data; + } catch (error: any) { + if (error.response) { + if (error.response.status === 404) { + console.error(`❌ ERROR: ${description} not found (404) at "${url}".`); + } else { + console.error(`❌ ERROR: Failed to fetch ${description}. Status: ${error.response.status} - ${error.response.statusText} (URL: "${url}")`); + } + } else { + console.error(`❌ ERROR: Network or unexpected error when fetching ${description}:`, error.message); + } + return null; + } +} From f7d6cbce65eb4698ba008f2c0e4cf6f6904d8cbf Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 17:52:55 +0100 Subject: [PATCH 35/80] fix: opslitsing learningpath controller met extra service + api helper --- backend/src/controllers/learningPaths.ts | 143 ++++++----------------- backend/src/services/learningObjects.ts | 13 ++- backend/src/services/learningPaths.ts | 45 +++++++ backend/src/util/apiHelper.ts | 13 ++- 4 files changed, 98 insertions(+), 116 deletions(-) create mode 100644 backend/src/services/learningPaths.ts diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index e588bbe3..880858f3 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,100 +1,68 @@ import { Request, Response } from 'express'; -import axios from 'axios'; import { themes } from '../data/themes.js'; import { DWENGO_API_BASE } from '../config/config.js'; +import { fetchWithLogging } from "../util/apiHelper.js"; +import { fetchLearningPaths } from "../services/learningPaths.js"; /** - * Fetch learning paths for a given list of HRUIDs. - * This function sends a request to the Dwengo API with the provided HRUIDs. + * Fetch learning paths based on HRUIDs or return all if no HRUIDs are provided. + * - If `hruids` are given -> fetch specific learning paths. + * - If `hruids` is missing -> return all available learning paths. */ -export async function getLearningPathsFromIds( - req: Request, - res: Response -): Promise { +export async function getLearningPaths(req: Request, res: Response): Promise { try { - const { hruids } = req.query; - const language = (req.query.language as string) || 'nl'; // Default to Dutch + const hruids = req.query.hruids; // Can be string or array + const language = (req.query.language as string) || 'nl'; - if (!hruids) { - res.status(400).json({ - error: 'Missing required parameter: hruids', - }); - return; + let hruidList: string[] = []; + + if (hruids) { + hruidList = Array.isArray(hruids) ? hruids.map(String) : [String(hruids)]; + } else { + // If no hruids are provided, fetch ALL learning paths + hruidList = themes.flatMap((theme) => theme.hruids); } - // Convert the input to an array if it's a string - const hruidList = Array.isArray(hruids) ? hruids : [hruids]; + const learningPaths = await fetchLearningPaths(hruidList, language, `HRUIDs: ${hruidList.join(', ')}`); - // Request learning paths from Dwengo API - const response = await axios.get( - `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, - { - params: { - pathIdList: JSON.stringify({ hruids: hruidList }), - language, - }, - } - ); - - res.json(response.data); + res.json(learningPaths); } catch (error) { - console.error('Error fetching learning paths:', error); + console.error('❌ Unexpected error fetching learning paths:', error); res.status(500).json({ error: 'Internal server error' }); } } + /** * Fetch all learning paths for a specific theme. - * First retrieves the HRUIDs associated with the theme, - * then fetches the corresponding learning paths from the Dwengo API. */ -export async function getLearningPathsByTheme( - req: Request, - res: Response -): Promise { +export async function getLearningPathsByTheme(req: Request, res: Response): Promise { try { const themeKey = req.params.theme; - const language = (req.query.language as string) || 'nl'; // Default to Dutch - - // Find the theme by its title - const theme = themes.find((t) => { - return t.title === themeKey; - }); + const language = (req.query.language as string) || 'nl'; + const theme = themes.find((t) => t.title === themeKey); if (!theme) { + console.error(`⚠️ WARNING: Theme "${themeKey}" not found.`); res.status(404).json({ error: 'Theme not found' }); return; } - // Extract HRUIDs from the theme - const hruidList = theme.hruids; - - // Request learning paths from Dwengo API using the extracted HRUIDs - const response = await axios.get( - `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, - { - params: { - pathIdList: JSON.stringify({ hruids: hruidList }), - language, - }, - } - ); - + const response = await fetchLearningPaths(theme.hruids, language, `theme "${themeKey}"`); res.json({ theme: themeKey, - hruids: hruidList, - learningPaths: response.data, + hruids: theme.hruids, + ...response, }); } catch (error) { - console.error('Error fetching learning paths for theme:', error); - res.status(500).json({ error: 'Internal server error' }); + console.error('❌ Unexpected error fetching learning paths by theme:', error); } } -export async function searchLearningPaths( - req: Request, - res: Response -): Promise { +/** + * Search learning paths by query. + */ +export async function searchLearningPaths(req: Request, res: Response): Promise { try { const query = req.query.query as string; const language = (req.query.language as string) || 'nl'; @@ -104,51 +72,12 @@ export async function searchLearningPaths( return; } - const response = await axios.get( - `${DWENGO_API_BASE}/learningPath/search`, - { - params: { all: query, language }, - } - ); + const apiUrl = `${DWENGO_API_BASE}/learningPath/search`; + const params = { all: query, language }; - res.json(response.data); + const searchResults = await fetchWithLogging(apiUrl, `Search learning paths with query "${query}"`, params); + res.json(searchResults ?? []); } catch (error) { - console.error('Error searching learning paths:', error); - res.status(500).json({ error: 'Internal server error' }); - } -} - -export async function getAllLearningPaths( - req: Request, - res: Response -): Promise { - try { - const language = (req.query.language as string) || 'nl'; // Default to Dutch - - // Collect all HRUIDs from all themes - const allHruids: string[] = themes.flatMap((theme) => { - return theme.hruids; - }); - - if (allHruids.length === 0) { - res.status(404).json({ error: 'No HRUIDs found in themes' }); - return; - } - - // Call the Dwengo API with all HRUIDs combined - const response = await axios.get( - `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`, - { - params: { - pathIdList: JSON.stringify({ hruids: allHruids }), - language, - }, - } - ); - - res.json(response.data); - } catch (error) { - console.error('Error fetching all learning paths:', error); - res.status(500).json({ error: 'Internal server error' }); + console.error('❌ Unexpected error searching learning paths:', error); } } diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index bab246e0..52913169 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -64,14 +64,15 @@ export async function getLearningObjectsFromPath( return await Promise.all( learningPathData.nodes.map(async (node: LearningObjectNode) => { const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; - const metadataResponse = await axios.get(metadataUrl); + const metadata = await fetchWithLogging( + metadataUrl, + `Metadata for Learning Object HRUID "${node.learningobject_hruid}" (version ${node.version}, language ${language})` + ); + + if (!metadata) return null; const htmlUrl = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; - - return filterLearningObjectMetadata( - metadataResponse.data, - htmlUrl - ); + return filterLearningObjectMetadata(metadata, htmlUrl); }) ); } catch (error) { diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts new file mode 100644 index 00000000..6a3039f7 --- /dev/null +++ b/backend/src/services/learningPaths.ts @@ -0,0 +1,45 @@ +import { fetchWithLogging } from "../util/apiHelper.js"; +import { DWENGO_API_BASE } from "../config/config.js"; + +interface LearningPathResponse { + success: boolean; + source: string; + data: any[] | null; + message?: string; +} + +export async function fetchLearningPaths( + hruids: string[], + language: string, + source: string +): Promise { + if (hruids.length === 0) { + return { + success: false, + source, + data: null, + message: `No HRUIDs provided for ${source}.`, + }; + } + + const apiUrl = `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`; + const params = { pathIdList: JSON.stringify({ hruids }), language }; + + const learningPaths = await fetchWithLogging(apiUrl, `Learning paths for ${source}`, params); + + if (!learningPaths || learningPaths.length === 0) { + console.error(`⚠️ WARNING: No learning paths found for ${source}.`); + return { + success: false, + source, + data: [], + message: `No learning paths found for ${source}.`, + }; + } + + return { + success: true, + source, + data: learningPaths, + }; +} diff --git a/backend/src/util/apiHelper.ts b/backend/src/util/apiHelper.ts index 08e12b11..4c7c10fe 100644 --- a/backend/src/util/apiHelper.ts +++ b/backend/src/util/apiHelper.ts @@ -1,4 +1,4 @@ -import axios from 'axios'; +import axios, {AxiosRequestConfig} from 'axios'; // !!!! when logger is done -> change @@ -8,11 +8,18 @@ import axios from 'axios'; * * @param url The API endpoint to fetch from. * @param description A short description of what is being fetched (for logging). + * @param params * @returns The response data if successful, or null if an error occurs. */ -export async function fetchWithLogging(url: string, description: string): Promise { +export async function fetchWithLogging( + url: string, + description: string, + params?: Record +): Promise { try { - const response = await axios.get(url); + const config: AxiosRequestConfig = params ? { params } : {}; + + const response = await axios.get(url, config); return response.data; } catch (error: any) { if (error.response) { From ae4d76a84b415d255be9943d73c97f119ccd2776 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 17:54:29 +0100 Subject: [PATCH 36/80] fix: 2 learning path routes gecombineerd, all en hruid lijst --- backend/src/routes/learningPaths.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/backend/src/routes/learningPaths.ts b/backend/src/routes/learningPaths.ts index 17eb881d..e196c0d3 100644 --- a/backend/src/routes/learningPaths.ts +++ b/backend/src/routes/learningPaths.ts @@ -1,8 +1,7 @@ import express from 'express'; import { - getLearningPathsFromIds, + getLearningPaths, getLearningPathsByTheme, - getAllLearningPaths, searchLearningPaths, } from '../controllers/learningPaths.js'; @@ -10,14 +9,15 @@ const router = express.Router(); // DWENGO learning paths -// Query: hruids(list), language -// Route to fetch learning paths based on a list of HRUIDs -// Example: http://localhost:3000/learningPath?hruids=pn_werking&hruids=art1 -router.get('/', getLearningPathsFromIds); +// Unified route for fetching learning paths +// Route 1: Query: hruid (list), language +// Fetch learning paths based on hruid list +// Example 1: http://localhost:3000/learningPath?hruids=pn_werking&hruids=art1 -// Query: language -// Route to fetch all possible learning paths -router.get('/all', getAllLearningPaths); +// Route 2: no query +// Fetch all learning paths +// Example 2: http://localhost:3000/learningPath ( +router.get('/', getLearningPaths); // Query: language // Route to fetch learning paths based on a searchterm From 13f563bb56ffdae106181ab707460eb34ad13b53 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 18:03:14 +0100 Subject: [PATCH 37/80] feat: interface toevoegingen voor het type any te vermijden --- backend/src/interfaces/learningPath.ts | 46 ++++++++++++++++++++++++++ backend/src/services/learningPaths.ts | 10 ++---- 2 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 backend/src/interfaces/learningPath.ts diff --git a/backend/src/interfaces/learningPath.ts b/backend/src/interfaces/learningPath.ts new file mode 100644 index 00000000..3260c6ea --- /dev/null +++ b/backend/src/interfaces/learningPath.ts @@ -0,0 +1,46 @@ +export interface LearningPathResponse { + success: boolean; + source: string; + data: any[] | null; + message?: string; +} + +export interface LearningPath { + _id: string; + language: string; + hruid: string; + title: string; + description: string; + image?: string; // Image might be missing, so it's optional + num_nodes: number; + num_nodes_left: number; + nodes: LearningObjectNode[]; + keywords: string; + target_ages: number[]; + min_age: number; + max_age: number; + __order: number; +} + + +interface LearningObjectNode { + _id: string; + learningobject_hruid: string; + version: number; + language: string; + start_node?: boolean; + transitions: Transition[]; + created_at: string; + updatedAt: string; +} + +interface Transition { + default: boolean; + _id: string; + next: { + _id: string; + hruid: string; + version: number; + language: string; + }; +} diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 6a3039f7..a5a84b1d 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -1,12 +1,6 @@ import { fetchWithLogging } from "../util/apiHelper.js"; import { DWENGO_API_BASE } from "../config/config.js"; - -interface LearningPathResponse { - success: boolean; - source: string; - data: any[] | null; - message?: string; -} +import {LearningPath, LearningPathResponse} from "../interfaces/learningPath.js"; export async function fetchLearningPaths( hruids: string[], @@ -25,7 +19,7 @@ export async function fetchLearningPaths( const apiUrl = `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`; const params = { pathIdList: JSON.stringify({ hruids }), language }; - const learningPaths = await fetchWithLogging(apiUrl, `Learning paths for ${source}`, params); + const learningPaths = await fetchWithLogging(apiUrl, `Learning paths for ${source}`, params); if (!learningPaths || learningPaths.length === 0) { console.error(`⚠️ WARNING: No learning paths found for ${source}.`); From 008e2e1c2c65ea9b82342629b3ce1a0e5ed31c7b Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 18:24:21 +0100 Subject: [PATCH 38/80] feat: gebruik interface voor learning objects --- backend/src/interfaces/learningPath.ts | 60 +++++++++++++++++++++++-- backend/src/services/learningObjects.ts | 60 +++++++++---------------- 2 files changed, 77 insertions(+), 43 deletions(-) diff --git a/backend/src/interfaces/learningPath.ts b/backend/src/interfaces/learningPath.ts index 3260c6ea..6f187bec 100644 --- a/backend/src/interfaces/learningPath.ts +++ b/backend/src/interfaces/learningPath.ts @@ -1,7 +1,7 @@ export interface LearningPathResponse { success: boolean; source: string; - data: any[] | null; + data: LearningPath[] | null; message?: string; } @@ -22,8 +22,7 @@ export interface LearningPath { __order: number; } - -interface LearningObjectNode { +export interface LearningObjectNode { _id: string; learningobject_hruid: string; version: number; @@ -34,7 +33,7 @@ interface LearningObjectNode { updatedAt: string; } -interface Transition { +export interface Transition { default: boolean; _id: string; next: { @@ -44,3 +43,56 @@ interface Transition { language: string; }; } + +export interface LearningObjectMetadata { + _id: string; + uuid: string; + hruid: string; + version: number; + language: string; + title: string; + description: string; + difficulty: number; + estimated_time: number; + available: boolean; + teacher_exclusive: boolean; + educational_goals: EducationalGoal[]; + keywords: string[]; + target_ages: number[]; + content_type: string; // Markdown, image, etc. + content_location?: string; + skos_concepts?: string[]; + return_value?: ReturnValue; +} + +export interface EducationalGoal { + source: string; + id: string; +} + +export interface ReturnValue { + callback_url: string; + callback_schema: Record; +} + +export interface FilteredLearningObject { + key: string; + _id: string; + uuid: string; + version: number; + title: string; + htmlUrl: string; + language: string; + difficulty: number; + estimatedTime: number; + available: boolean; + teacherExclusive: boolean; + educationalGoals: EducationalGoal[]; + keywords: string[]; + description: string; + targetAges: number[]; + contentType: string; + contentLocation?: string; + skosConcepts?: string[]; + returnValue?: ReturnValue; +} diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 52913169..9e1bb3a7 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -1,70 +1,51 @@ -import axios from 'axios'; import { DWENGO_API_BASE } from '../config/config.js'; import { fetchWithLogging } from "../util/apiHelper.js"; +import {FilteredLearningObject, LearningObjectMetadata, LearningObjectNode} from "../interfaces/learningPath.js"; +import {fetchLearningPaths} from "./learningPaths.js"; -interface LearningObjectNode { - _id: string; - learningobject_hruid: string; - version: number; - language: string; -} -function filterLearningObjectMetadata(data: any, htmlUrl: string) { +function filterLearningObjectMetadata(data: LearningObjectMetadata, htmlUrl: string) : FilteredLearningObject { return { - key: data.hruid, - // Hruid learningObject (not path) + key: data.hruid, // Hruid learningObject (not path) _id: data._id, uuid: data.uuid, version: data.version, - title: data.title, - htmlUrl, - // Url to fetch html content + htmlUrl, // Url to fetch html content language: data.language, difficulty: data.difficulty, estimatedTime: data.estimated_time, available: data.available, teacherExclusive: data.teacher_exclusive, - educationalGoals: data.educational_goals, - // List with learningObjects - keywords: data.keywords, - // For search - description: data.description, - // For search (not an actual description) + educationalGoals: data.educational_goals, // List with learningObjects + keywords: data.keywords, // For search + description: data.description, // For search (not an actual description) targetAges: data.target_ages, - contentType: data.content_type, - // Text/plain, text/md, image/image-block, - // Image/image/, audio/mpeg or extern - contentLocation: data.content_location, - // If content type extern - - // Skos concepts needed ?? - // Return value needed ?? - // Callback_url to send response - // Callback_scheme + contentType: data.content_type, // Markdown, image, audio, etc. + contentLocation: data.content_location, // If content type extern + skosConcepts: data.skos_concepts, + returnValue: data.return_value, // Callback response information }; } export async function getLearningObjectsFromPath( hruid: string, language: string -) { +): Promise { try { - const learningPathUrl = `${DWENGO_API_BASE}/learningPath/${hruid}/${language}`; - const learningPathData = await fetchWithLogging<{ nodes: LearningObjectNode[] }>( - learningPathUrl, - `Learning path for HRUID "${hruid}" in language "${language}"` - ); + const learningPathResponse = await fetchLearningPaths([hruid], language, `Learning path for HRUID "${hruid}"`); - if (!learningPathData || !learningPathData.nodes || learningPathData.nodes.length === 0) { + if (!learningPathResponse.success || !learningPathResponse.data || learningPathResponse.data.length === 0) { console.error(`⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.`); return []; } + const nodes: LearningObjectNode[] = learningPathResponse.data[0].nodes; + return await Promise.all( - learningPathData.nodes.map(async (node: LearningObjectNode) => { + nodes.map(async (node) => { const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; - const metadata = await fetchWithLogging( + const metadata = await fetchWithLogging( metadataUrl, `Metadata for Learning Object HRUID "${node.learningobject_hruid}" (version ${node.version}, language ${language})` ); @@ -74,8 +55,9 @@ export async function getLearningObjectsFromPath( const htmlUrl = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; return filterLearningObjectMetadata(metadata, htmlUrl); }) - ); + ).then((objects) => objects.filter((obj): obj is FilteredLearningObject => obj !== null)); } catch (error) { console.error('Error fetching learning objects:', error); + return []; } } From 6bb8c364b93f99861c999dc08c94d0081b90e84d Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 18:31:38 +0100 Subject: [PATCH 39/80] feat: toevoeging fallback language constante --- backend/src/{config => }/config.ts | 2 ++ backend/src/controllers/learningObjects.ts | 3 ++- backend/src/controllers/learningPaths.ts | 8 ++++---- backend/src/controllers/themes.ts | 3 ++- backend/src/services/learningObjects.ts | 2 +- backend/src/services/learningPaths.ts | 2 +- 6 files changed, 12 insertions(+), 8 deletions(-) rename backend/src/{config => }/config.ts (83%) diff --git a/backend/src/config/config.ts b/backend/src/config.ts similarity index 83% rename from backend/src/config/config.ts rename to backend/src/config.ts index 84181070..2de2920b 100644 --- a/backend/src/config/config.ts +++ b/backend/src/config.ts @@ -6,3 +6,5 @@ // Dotenv.config(); export const DWENGO_API_BASE = 'https://dwengo.org/backend/api'; + +export const FALLBACK_LANG = "nl"; diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index f7640891..91a1a3b1 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -1,5 +1,6 @@ import { Request, Response } from 'express'; import { getLearningObjectsFromPath } from '../services/learningObjects.js'; +import {FALLBACK_LANG} from "../config"; export async function getAllLearningObjects( req: Request, @@ -7,7 +8,7 @@ export async function getAllLearningObjects( ): Promise { try { const { hruid } = req.params; - const language = (req.query.language as string) || 'nl'; // Default to Dutch; + const language = (req.query.language as string) || FALLBACK_LANG; if (!language) { res.status(400).json({ diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 880858f3..cf084e2b 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import { DWENGO_API_BASE } from '../config/config.js'; +import {DWENGO_API_BASE, FALLBACK_LANG} from '../config.js'; import { fetchWithLogging } from "../util/apiHelper.js"; import { fetchLearningPaths } from "../services/learningPaths.js"; @@ -12,7 +12,7 @@ import { fetchLearningPaths } from "../services/learningPaths.js"; export async function getLearningPaths(req: Request, res: Response): Promise { try { const hruids = req.query.hruids; // Can be string or array - const language = (req.query.language as string) || 'nl'; + const language = (req.query.language as string) || FALLBACK_LANG; let hruidList: string[] = []; @@ -39,7 +39,7 @@ export async function getLearningPaths(req: Request, res: Response): Promise { try { const themeKey = req.params.theme; - const language = (req.query.language as string) || 'nl'; + const language = (req.query.language as string) || FALLBACK_LANG; const theme = themes.find((t) => t.title === themeKey); if (!theme) { @@ -65,7 +65,7 @@ export async function getLearningPathsByTheme(req: Request, res: Response): Prom export async function searchLearningPaths(req: Request, res: Response): Promise { try { const query = req.query.query as string; - const language = (req.query.language as string) || 'nl'; + const language = (req.query.language as string) || FALLBACK_LANG; if (!query) { res.status(400).json({ error: 'Missing search query' }); diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index d6c67107..f4e24369 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -3,6 +3,7 @@ import path from 'path'; import yaml from 'js-yaml'; import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; +import {FALLBACK_LANG} from "../config"; interface Translations { curricula_page: { @@ -26,7 +27,7 @@ function loadTranslations(language: string): Translations { } export function getThemes(req: Request, res: Response) { - const language = (req.query.language as string)?.toLowerCase() || 'nl'; + const language = (req.query.language as string)?.toLowerCase() || FALLBACK_LANG; const translations = loadTranslations(language); const themeList = themes.map((theme) => { diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 9e1bb3a7..e753ad26 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -1,4 +1,4 @@ -import { DWENGO_API_BASE } from '../config/config.js'; +import { DWENGO_API_BASE } from '../config.js'; import { fetchWithLogging } from "../util/apiHelper.js"; import {FilteredLearningObject, LearningObjectMetadata, LearningObjectNode} from "../interfaces/learningPath.js"; import {fetchLearningPaths} from "./learningPaths.js"; diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index a5a84b1d..0bff4f92 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -1,5 +1,5 @@ import { fetchWithLogging } from "../util/apiHelper.js"; -import { DWENGO_API_BASE } from "../config/config.js"; +import { DWENGO_API_BASE } from "../config.js"; import {LearningPath, LearningPathResponse} from "../interfaces/learningPath.js"; export async function fetchLearningPaths( From 5da0720a08fc0827080960b3c7fe4cce1ccb6cb1 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 18:40:32 +0100 Subject: [PATCH 40/80] fix: lint --- backend/src/controllers/learningPaths.ts | 9 ++-- backend/src/interfaces/learningPath.ts | 66 ++++++++++++------------ backend/src/services/learningObjects.ts | 4 +- 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index cf084e2b..8c86f0d2 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -3,6 +3,7 @@ import { themes } from '../data/themes.js'; import {DWENGO_API_BASE, FALLBACK_LANG} from '../config.js'; import { fetchWithLogging } from "../util/apiHelper.js"; import { fetchLearningPaths } from "../services/learningPaths.js"; +import {LearningPath} from "../interfaces/learningPath"; /** * Fetch learning paths based on HRUIDs or return all if no HRUIDs are provided. @@ -14,13 +15,13 @@ export async function getLearningPaths(req: Request, res: Response): Promise theme.hruids); + hruidList = themes.flatMap((theme) => {return theme.hruids}); } const learningPaths = await fetchLearningPaths(hruidList, language, `HRUIDs: ${hruidList.join(', ')}`); @@ -41,7 +42,7 @@ export async function getLearningPathsByTheme(req: Request, res: Response): Prom const themeKey = req.params.theme; const language = (req.query.language as string) || FALLBACK_LANG; - const theme = themes.find((t) => t.title === themeKey); + const theme = themes.find((t) => {return t.title === themeKey}); if (!theme) { console.error(`⚠️ WARNING: Theme "${themeKey}" not found.`); res.status(404).json({ error: 'Theme not found' }); @@ -75,7 +76,7 @@ export async function searchLearningPaths(req: Request, res: Response): Promise< const apiUrl = `${DWENGO_API_BASE}/learningPath/search`; const params = { all: query, language }; - const searchResults = await fetchWithLogging(apiUrl, `Search learning paths with query "${query}"`, params); + const searchResults = await fetchWithLogging(apiUrl, `Search learning paths with query "${query}"`, params); res.json(searchResults ?? []); } catch (error) { console.error('❌ Unexpected error searching learning paths:', error); diff --git a/backend/src/interfaces/learningPath.ts b/backend/src/interfaces/learningPath.ts index 6f187bec..1e2cc6ef 100644 --- a/backend/src/interfaces/learningPath.ts +++ b/backend/src/interfaces/learningPath.ts @@ -1,8 +1,23 @@ -export interface LearningPathResponse { - success: boolean; - source: string; - data: LearningPath[] | null; - message?: string; +export interface Transition { + default: boolean; + _id: string; + next: { + _id: string; + hruid: string; + version: number; + language: string; + }; +} + +export interface LearningObjectNode { + _id: string; + learningobject_hruid: string; + version: number; + language: string; + start_node?: boolean; + transitions: Transition[]; + created_at: string; + updatedAt: string; } export interface LearningPath { @@ -22,26 +37,14 @@ export interface LearningPath { __order: number; } -export interface LearningObjectNode { - _id: string; - learningobject_hruid: string; - version: number; - language: string; - start_node?: boolean; - transitions: Transition[]; - created_at: string; - updatedAt: string; +export interface EducationalGoal { + source: string; + id: string; } -export interface Transition { - default: boolean; - _id: string; - next: { - _id: string; - hruid: string; - version: number; - language: string; - }; +export interface ReturnValue { + callback_url: string; + callback_schema: Record; } export interface LearningObjectMetadata { @@ -65,16 +68,6 @@ export interface LearningObjectMetadata { return_value?: ReturnValue; } -export interface EducationalGoal { - source: string; - id: string; -} - -export interface ReturnValue { - callback_url: string; - callback_schema: Record; -} - export interface FilteredLearningObject { key: string; _id: string; @@ -96,3 +89,10 @@ export interface FilteredLearningObject { skosConcepts?: string[]; returnValue?: ReturnValue; } + +export interface LearningPathResponse { + success: boolean; + source: string; + data: LearningPath[] | null; + message?: string; +} diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index e753ad26..f4da4faf 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -50,12 +50,12 @@ export async function getLearningObjectsFromPath( `Metadata for Learning Object HRUID "${node.learningobject_hruid}" (version ${node.version}, language ${language})` ); - if (!metadata) return null; + if (!metadata) {return null;} const htmlUrl = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; return filterLearningObjectMetadata(metadata, htmlUrl); }) - ).then((objects) => objects.filter((obj): obj is FilteredLearningObject => obj !== null)); + ).then((objects) => {return objects.filter((obj): obj is FilteredLearningObject => {return obj !== null})}); } catch (error) { console.error('Error fetching learning objects:', error); return []; From 887787de05e2200d44b4f60ce18beaca2054d0e6 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 18:42:45 +0100 Subject: [PATCH 41/80] fix: format --- backend/src/config.ts | 2 +- backend/src/controllers/learningObjects.ts | 2 +- backend/src/controllers/learningPaths.ts | 59 ++++++++++++++++------ backend/src/controllers/themes.ts | 5 +- backend/src/routes/learningObjects.ts | 2 +- backend/src/services/learningObjects.ts | 44 ++++++++++++---- backend/src/services/learningPaths.ts | 15 ++++-- backend/src/util/apiHelper.ts | 19 ++++--- 8 files changed, 107 insertions(+), 41 deletions(-) diff --git a/backend/src/config.ts b/backend/src/config.ts index 2de2920b..8fd8ec3f 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -7,4 +7,4 @@ export const DWENGO_API_BASE = 'https://dwengo.org/backend/api'; -export const FALLBACK_LANG = "nl"; +export const FALLBACK_LANG = 'nl'; diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index 91a1a3b1..2d733d97 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express'; import { getLearningObjectsFromPath } from '../services/learningObjects.js'; -import {FALLBACK_LANG} from "../config"; +import { FALLBACK_LANG } from '../config'; export async function getAllLearningObjects( req: Request, diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 8c86f0d2..c819b072 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,16 +1,19 @@ import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import {DWENGO_API_BASE, FALLBACK_LANG} from '../config.js'; -import { fetchWithLogging } from "../util/apiHelper.js"; -import { fetchLearningPaths } from "../services/learningPaths.js"; -import {LearningPath} from "../interfaces/learningPath"; +import { DWENGO_API_BASE, FALLBACK_LANG } from '../config.js'; +import { fetchWithLogging } from '../util/apiHelper.js'; +import { fetchLearningPaths } from '../services/learningPaths.js'; +import { LearningPath } from '../interfaces/learningPath'; /** * Fetch learning paths based on HRUIDs or return all if no HRUIDs are provided. * - If `hruids` are given -> fetch specific learning paths. * - If `hruids` is missing -> return all available learning paths. */ -export async function getLearningPaths(req: Request, res: Response): Promise { +export async function getLearningPaths( + req: Request, + res: Response +): Promise { try { const hruids = req.query.hruids; // Can be string or array const language = (req.query.language as string) || FALLBACK_LANG; @@ -18,13 +21,21 @@ export async function getLearningPaths(req: Request, res: Response): Promise {return theme.hruids}); + hruidList = themes.flatMap((theme) => { + return theme.hruids; + }); } - const learningPaths = await fetchLearningPaths(hruidList, language, `HRUIDs: ${hruidList.join(', ')}`); + const learningPaths = await fetchLearningPaths( + hruidList, + language, + `HRUIDs: ${hruidList.join(', ')}` + ); res.json(learningPaths); } catch (error) { @@ -33,37 +44,51 @@ export async function getLearningPaths(req: Request, res: Response): Promise { +export async function getLearningPathsByTheme( + req: Request, + res: Response +): Promise { try { const themeKey = req.params.theme; const language = (req.query.language as string) || FALLBACK_LANG; - const theme = themes.find((t) => {return t.title === themeKey}); + const theme = themes.find((t) => { + return t.title === themeKey; + }); if (!theme) { console.error(`⚠️ WARNING: Theme "${themeKey}" not found.`); res.status(404).json({ error: 'Theme not found' }); return; } - const response = await fetchLearningPaths(theme.hruids, language, `theme "${themeKey}"`); + const response = await fetchLearningPaths( + theme.hruids, + language, + `theme "${themeKey}"` + ); res.json({ theme: themeKey, hruids: theme.hruids, ...response, }); } catch (error) { - console.error('❌ Unexpected error fetching learning paths by theme:', error); + console.error( + '❌ Unexpected error fetching learning paths by theme:', + error + ); } } /** * Search learning paths by query. */ -export async function searchLearningPaths(req: Request, res: Response): Promise { +export async function searchLearningPaths( + req: Request, + res: Response +): Promise { try { const query = req.query.query as string; const language = (req.query.language as string) || FALLBACK_LANG; @@ -76,7 +101,11 @@ export async function searchLearningPaths(req: Request, res: Response): Promise< const apiUrl = `${DWENGO_API_BASE}/learningPath/search`; const params = { all: query, language }; - const searchResults = await fetchWithLogging(apiUrl, `Search learning paths with query "${query}"`, params); + const searchResults = await fetchWithLogging( + apiUrl, + `Search learning paths with query "${query}"`, + params + ); res.json(searchResults ?? []); } catch (error) { console.error('❌ Unexpected error searching learning paths:', error); diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index f4e24369..62564485 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -3,7 +3,7 @@ import path from 'path'; import yaml from 'js-yaml'; import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import {FALLBACK_LANG} from "../config"; +import { FALLBACK_LANG } from '../config'; interface Translations { curricula_page: { @@ -27,7 +27,8 @@ function loadTranslations(language: string): Translations { } export function getThemes(req: Request, res: Response) { - const language = (req.query.language as string)?.toLowerCase() || FALLBACK_LANG; + const language = + (req.query.language as string)?.toLowerCase() || FALLBACK_LANG; const translations = loadTranslations(language); const themeList = themes.map((theme) => { diff --git a/backend/src/routes/learningObjects.ts b/backend/src/routes/learningObjects.ts index 1d72daaf..ec702c6d 100644 --- a/backend/src/routes/learningObjects.ts +++ b/backend/src/routes/learningObjects.ts @@ -8,7 +8,7 @@ const router = express.Router(); // Arg: hruid learningPath // Query: language // Route to fetch list of learning objects based on hruid of learning path -// example: http://localhost:3000/learningObject/un_artificiele_intelligentie +// Example: http://localhost:3000/learningObject/un_artificiele_intelligentie router.get('/:hruid', getAllLearningObjects); export default router; diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index f4da4faf..a2243a9a 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -1,10 +1,16 @@ import { DWENGO_API_BASE } from '../config.js'; -import { fetchWithLogging } from "../util/apiHelper.js"; -import {FilteredLearningObject, LearningObjectMetadata, LearningObjectNode} from "../interfaces/learningPath.js"; -import {fetchLearningPaths} from "./learningPaths.js"; +import { fetchWithLogging } from '../util/apiHelper.js'; +import { + FilteredLearningObject, + LearningObjectMetadata, + LearningObjectNode, +} from '../interfaces/learningPath.js'; +import { fetchLearningPaths } from './learningPaths.js'; - -function filterLearningObjectMetadata(data: LearningObjectMetadata, htmlUrl: string) : FilteredLearningObject { +function filterLearningObjectMetadata( + data: LearningObjectMetadata, + htmlUrl: string +): FilteredLearningObject { return { key: data.hruid, // Hruid learningObject (not path) _id: data._id, @@ -31,12 +37,22 @@ function filterLearningObjectMetadata(data: LearningObjectMetadata, htmlUrl: str export async function getLearningObjectsFromPath( hruid: string, language: string -): Promise { +): Promise { try { - const learningPathResponse = await fetchLearningPaths([hruid], language, `Learning path for HRUID "${hruid}"`); + const learningPathResponse = await fetchLearningPaths( + [hruid], + language, + `Learning path for HRUID "${hruid}"` + ); - if (!learningPathResponse.success || !learningPathResponse.data || learningPathResponse.data.length === 0) { - console.error(`⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.`); + if ( + !learningPathResponse.success || + !learningPathResponse.data || + learningPathResponse.data.length === 0 + ) { + console.error( + `⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.` + ); return []; } @@ -50,12 +66,18 @@ export async function getLearningObjectsFromPath( `Metadata for Learning Object HRUID "${node.learningobject_hruid}" (version ${node.version}, language ${language})` ); - if (!metadata) {return null;} + if (!metadata) { + return null; + } const htmlUrl = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; return filterLearningObjectMetadata(metadata, htmlUrl); }) - ).then((objects) => {return objects.filter((obj): obj is FilteredLearningObject => {return obj !== null})}); + ).then((objects) => { + return objects.filter((obj): obj is FilteredLearningObject => { + return obj !== null; + }); + }); } catch (error) { console.error('Error fetching learning objects:', error); return []; diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 0bff4f92..734207db 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -1,6 +1,9 @@ -import { fetchWithLogging } from "../util/apiHelper.js"; -import { DWENGO_API_BASE } from "../config.js"; -import {LearningPath, LearningPathResponse} from "../interfaces/learningPath.js"; +import { fetchWithLogging } from '../util/apiHelper.js'; +import { DWENGO_API_BASE } from '../config.js'; +import { + LearningPath, + LearningPathResponse, +} from '../interfaces/learningPath.js'; export async function fetchLearningPaths( hruids: string[], @@ -19,7 +22,11 @@ export async function fetchLearningPaths( const apiUrl = `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`; const params = { pathIdList: JSON.stringify({ hruids }), language }; - const learningPaths = await fetchWithLogging(apiUrl, `Learning paths for ${source}`, params); + const learningPaths = await fetchWithLogging( + apiUrl, + `Learning paths for ${source}`, + params + ); if (!learningPaths || learningPaths.length === 0) { console.error(`⚠️ WARNING: No learning paths found for ${source}.`); diff --git a/backend/src/util/apiHelper.ts b/backend/src/util/apiHelper.ts index 4c7c10fe..76d166c8 100644 --- a/backend/src/util/apiHelper.ts +++ b/backend/src/util/apiHelper.ts @@ -1,4 +1,4 @@ -import axios, {AxiosRequestConfig} from 'axios'; +import axios, { AxiosRequestConfig } from 'axios'; // !!!! when logger is done -> change @@ -14,8 +14,8 @@ import axios, {AxiosRequestConfig} from 'axios'; export async function fetchWithLogging( url: string, description: string, - params?: Record -): Promise { + params?: Record +): Promise { try { const config: AxiosRequestConfig = params ? { params } : {}; @@ -24,12 +24,19 @@ export async function fetchWithLogging( } catch (error: any) { if (error.response) { if (error.response.status === 404) { - console.error(`❌ ERROR: ${description} not found (404) at "${url}".`); + console.error( + `❌ ERROR: ${description} not found (404) at "${url}".` + ); } else { - console.error(`❌ ERROR: Failed to fetch ${description}. Status: ${error.response.status} - ${error.response.statusText} (URL: "${url}")`); + console.error( + `❌ ERROR: Failed to fetch ${description}. Status: ${error.response.status} - ${error.response.statusText} (URL: "${url}")` + ); } } else { - console.error(`❌ ERROR: Network or unexpected error when fetching ${description}:`, error.message); + console.error( + `❌ ERROR: Network or unexpected error when fetching ${description}:`, + error.message + ); } return null; } From f62baae90f953649a41b597026ab37c73a761efe Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 19:40:52 +0100 Subject: [PATCH 42/80] feat: test toegevoegd base64 --- frontend/public/base64Sample.txt | 1 + frontend/public/test-base64-image.html | 52 +++++++++++++++++++++ frontend/{ => src}/utils/base64ToImage.ts | 0 frontend/tests/base64/base64Sample.txt | 1 + frontend/tests/base64/base64ToImage.test.ts | 24 ++++++++++ 5 files changed, 78 insertions(+) create mode 100644 frontend/public/base64Sample.txt create mode 100644 frontend/public/test-base64-image.html rename frontend/{ => src}/utils/base64ToImage.ts (100%) create mode 100644 frontend/tests/base64/base64Sample.txt create mode 100644 frontend/tests/base64/base64ToImage.test.ts diff --git a/frontend/public/base64Sample.txt b/frontend/public/base64Sample.txt new file mode 100644 index 00000000..2d5b7b46 --- /dev/null +++ b/frontend/public/base64Sample.txt @@ -0,0 +1 @@ +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zODJhMWUiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjYyY2I4ZTktNjM3Yy00ZmMwLWE4ZDQtNDA3OWExMmEzMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OGY5MTI2YzAtNWFjMS00NTFlLTk4ZmYtMmZjOTJkZTE1Mjg5IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjc2Mzg4MTg4NjA2OTYyIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjgiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDZjMDg3MmUtMmQ0Yy00MzRmLTk1Y2ItNWQ1MjEwMzA0ZjFiIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0wMi0xNFQxNjoyMzowOCswMTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICA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 diff --git a/frontend/public/test-base64-image.html b/frontend/public/test-base64-image.html new file mode 100644 index 00000000..e620f6e8 --- /dev/null +++ b/frontend/public/test-base64-image.html @@ -0,0 +1,52 @@ + + + + + + Base64 Image Test + + + +

Base64 Image Test

+

This page will fetch and display a Base64 image from tests/base64.txt.

+Loading image... + + diff --git a/frontend/utils/base64ToImage.ts b/frontend/src/utils/base64ToImage.ts similarity index 100% rename from frontend/utils/base64ToImage.ts rename to frontend/src/utils/base64ToImage.ts diff --git a/frontend/tests/base64/base64Sample.txt b/frontend/tests/base64/base64Sample.txt new file mode 100644 index 00000000..2d5b7b46 --- /dev/null +++ b/frontend/tests/base64/base64Sample.txt @@ -0,0 +1 @@ +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zODJhMWUiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjYyY2I4ZTktNjM3Yy00ZmMwLWE4ZDQtNDA3OWExMmEzMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OGY5MTI2YzAtNWFjMS00NTFlLTk4ZmYtMmZjOTJkZTE1Mjg5IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjc2Mzg4MTg4NjA2OTYyIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjgiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDZjMDg3MmUtMmQ0Yy00MzRmLTk1Y2ItNWQ1MjEwMzA0ZjFiIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0wMi0xNFQxNjoyMzowOCswMTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICA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 diff --git a/frontend/tests/base64/base64ToImage.test.ts b/frontend/tests/base64/base64ToImage.test.ts new file mode 100644 index 00000000..3bf1abb9 --- /dev/null +++ b/frontend/tests/base64/base64ToImage.test.ts @@ -0,0 +1,24 @@ +import { describe, it, expect, beforeAll } from 'vitest'; +import { convertBase64ToImageSrc } from '../../src/utils/base64ToImage.js'; +import fs from 'fs'; +import path from 'path'; + +let sampleBase64: string; + +beforeAll(() => { + // Load base64 sample from text file + const filePath = path.resolve(__dirname, 'base64Sample.txt'); + sampleBase64 = fs.readFileSync(filePath, 'utf8').trim(); +}); + +describe('convertBase64ToImageSrc', () => { + it('should return the same string if it is already a valid data URL', () => { + const base64Image = `data:image/png;base64,${sampleBase64}`; + expect(convertBase64ToImageSrc(base64Image)).toBe(base64Image); + }); + + it('should correctly format a raw Base64 string as a PNG image URL', () => { + expect(convertBase64ToImageSrc(sampleBase64)).toBe(`data:image/png;base64,${sampleBase64}`); + }); + +}); From 828a02a4dc57a7948ceca6d667743bcff2930b31 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 21:57:06 +0100 Subject: [PATCH 43/80] fix: verwijder test html --- frontend/public/base64Sample.txt | 1 - frontend/public/test-base64-image.html | 52 -------------------------- 2 files changed, 53 deletions(-) delete mode 100644 frontend/public/base64Sample.txt delete mode 100644 frontend/public/test-base64-image.html diff --git a/frontend/public/base64Sample.txt b/frontend/public/base64Sample.txt deleted file mode 100644 index 2d5b7b46..00000000 --- a/frontend/public/base64Sample.txt +++ /dev/null @@ -1 +0,0 @@ -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ODJhMWUiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjYyY2I4ZTktNjM3Yy00ZmMwLWE4ZDQtNDA3OWExMmEzMWVlIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OGY5MTI2YzAtNWFjMS00NTFlLTk4ZmYtMmZjOTJkZTE1Mjg5IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjc2Mzg4MTg4NjA2OTYyIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjgiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDZjMDg3MmUtMmQ0Yy00MzRmLTk1Y2ItNWQ1MjEwMzA0ZjFiIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0wMi0xNFQxNjoyMzowOCswMTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg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 diff --git a/frontend/public/test-base64-image.html b/frontend/public/test-base64-image.html deleted file mode 100644 index e620f6e8..00000000 --- a/frontend/public/test-base64-image.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - Base64 Image Test - - - -

Base64 Image Test

-

This page will fetch and display a Base64 image from tests/base64.txt.

-Loading image... - - From a3d40cf2bbfc1f2ec9ff7070368e53d36b2dae54 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 22:18:33 +0100 Subject: [PATCH 44/80] feat: voeg de 4 fotos toe voor de home pagina --- frontend/public/assets/home/inclusive.png | Bin 0 -> 187002 bytes frontend/public/assets/home/innovative.png | Bin 0 -> 95278 bytes frontend/public/assets/home/research_based.png | Bin 0 -> 67883 bytes .../public/assets/home/socially_relevant.png | Bin 0 -> 87263 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 frontend/public/assets/home/inclusive.png create mode 100644 frontend/public/assets/home/innovative.png create mode 100644 frontend/public/assets/home/research_based.png create mode 100644 frontend/public/assets/home/socially_relevant.png diff --git a/frontend/public/assets/home/inclusive.png b/frontend/public/assets/home/inclusive.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0215fed3388798c932ed9ba1b7f6bcd33867bc GIT binary patch literal 187002 zcmcG#bx>SE(>DqMg1ZOF0*m|N9%ONsAVC7`;_enma0@QMg9Hzn;1b*+1P{*Q1PBn^ z?#W~Kty|ys*7MJ$YKz@-=Ja&;^mO<1uTPYwx&kiNGb|(|BwQs$Ic+2)0@UP=-q z?js5iaD;o9gM1tvoZLlyB?P=>|4s-pP}2m-I=jI^0$hTe zmc0A|AR!ShUO_&75fKg$gojs{n@5yI9o%?)NHsx2q~uepF< z67)769xkHX+}_^aT;6EzDvZwhj7cS|>0 z7Y|!!C(vJt<`&ML9uo8br~eee(d9p6o!tMWCO~1_KISgmyj(ngMf&$ZHMReJsH5Y5 zM!S1Jy?|N%#qa--u)D6W3!GaU?(XdAW(kLS!JRx9{yiDY@;}eIc)B_KLsFO}H{1d4 z2n=%v7~}oVR4z8o9?tGI&i@xV{&V|3(zuAqy1~sooZWPtogMzYP@4ay0+N;eyD%ak z7JXYMn6tM#>tCk+^$c9j+ygE_58;9EaPshR^6}{M@`>{Cib90hc_5-ZJpUZ32ABfO z+{6688|)0TwetOMhN`KFDml4(m^)d*mEU1t*`CAV1tf0M0K677a2A8%5mgK)NMDG6^|L*2q|2y~possN zrGG9B_y2d*{&DYrIIw>Y2fX6num5q!z>ohpbhr~h+6{2m?^CZUke*C4DalFe`egrV z_slk4@ZElF4~WUnP+I1+vi)#KC;N+6hnhJqL|t&fA#mXrQ*B6VRxk2^5{}X@-uDu@ zCp`5ZGCsX@uV|*=dUz<^C-YR{d{%Riu@_%d?td(D`SRR%TxEj2sY(TtG3EEH@-wg}Ea33m&Gw z28lAJXmiK-;xXr)*c?6S5Ou7ABxVyPsB)|wE7L9{?%j9`5tXdZnGtszlg z4DZPzX4;`}@gdA{U`QCx7N8$@(C;uHVkLGYIN;jYnWO*eepl7L(LZqEIqVDAA`zKPRaX9>)P*PBCi{9LluzmAc9~nsk$|T8~G-J%A4{ zXw-KVmi)*bh4_Q~=>5yGx;s`wA~LolgU=OiF9MS9H>XHDi*Z#Q zScq|@nOrp@n&zuQ5Z^K=opd_qb{@PmmZLP=O3GA4wUCrZ2%*SIBnga!N+bkm`M)zk zplJF!aKSKrG+5mXF&2CvGyVlq49CxCa9{e8bG#ULt2mUzogexH5U6{C^C^?I3MsUm zkni$smP+LXx~z1bl*<^W^OV< zF%5|l7%}775Hm0jsC=RvNplTh6WQSA=S|It6URLthgZIf8|e0h4^YuWqv?bjmAbYOkT3^?j1AdMkgvOB7@0p`Qdu*LCIuW*io=i;%yT5!$j1DJr zy82$dc4l*>OITg}QJE+@z_ZeKz;#)7e3y^IIs`5zRTXzd+sa1Hl^@!O{C8=^p4}sq zIys{AwBaXH<@B7t59}6FO{YBR>_31ZPczz}vo(X8Y7UDsvu(Q%NDFc}i~I!RE>tSf z%95!cy;qsa7t;x=Y{7X-rgeSSXL8$`^90w0q}0p5#hDvAx_{z7KI@9k47Nrga5=HV z%GadOdy@BSV@9_soGx!D>!i*0xgf_a-H2@`J?7*z2x# z$~l$~=Vlm(NuOG(jnG*ef$N{1sODyyTN+%5C^WNVraQPLts~G&9ZcRH;ak2cLHlkz zAe{mi?_#myQj^S*X$#$Nuvgj))*MwPNBzd>N4nH~wB?8-o$}3-*UeUUc_iZ?2^787 z{cSzxs(VYff$Q7&r|)`U2?~t6Gv7%t^*ZVT`l(}Ay_7Cwuz-0Gx+T`zU$hj zJeS`y1I_2|kI!e$$dc9itwh#;Y|eWu?nhWwX*$C!6fDQ0P*owKCZ zrtxfz<>^Wr4Tz+AYIRx(nYqajU9L9TKB{lS#TgZ=FDE5n8_AVHzmH4zjJtmLOGal* ztcwa(9elK*B|sfDCR-=!xzG=hG?|0G)NSkHNdhN-pfGQ`r6`LcjMWVu-DHs$#cT*; z$51SfW7Z94riPwJuvFU@w{=iLr-nZ1Z2nL(o_jN8KV}`mOkj1@i##iFMM}1Ef=sr0 zF8!l+0oO*0;CCrRx*8A-F$voo@!0&(fPkI73|gtn72w<%0UYV~trZ1KMq`z~@u!jI z;{5!+G2CXW8cp1;6^xY*-DtKrHGGcfn@SIWd2NBF=_!BLq{`iEL-!+x$(EQ-Q2A#-X#-W*4FTbQ9 z4v{G0%*qC>53)5BStvmY4nT`f3v5BHf~IqH)L6t0cFfZ)k+bkQEv?m9$4oHuz>2X2 zH~-rnVhltJSF>&#D3BpiF}mMoLd&E2d5|G#1AP3tu3(J_^9ln!0NBs>kmO$+i>^O> z&tT&7QAeoJ~NqPOy!IEbXHX7 ztDW|?z<;oWNI1@2{*EGaVHJB#>n8l%#>z|?^jWcHKc4Qo(M8f1u(-PI zh>E}CIggo3&|q{~kKM`Z8~udsdZ|MD;sw%OOR$+frmx-|ZR$vw6+g$~=t8$sPhFtF zkD5BmJJ#!1^)d zz}k*cCvODh40D<0RSX*dD@}qCK&eMQoH#hMD6c+zcDOo{s<~^=vwHY^Oh=s8wB}hI zu6Kkj|2;qw&(SvrWkS5SHwvYfK_GV8!)@5Ct7)T$@P!)|1Afy9B<>T%0YUCRgjSgC~Nz9I5Ywr>qRR~0bjN220$McYMMm$H-q#$vzIt zJt`et-969uLowLt9l_@Hrj#bARkIw=Pp(HN##)ccPoAEc(=jwu(j?}NSwfu1EzJZR z@MZiuo|V66=6VBROmW#t==k%AyM4x;Wqk)HB)LpOEbg{v-{tqCZbWxXLC0I`s-2dq zk=f*k1-A`hi9$>_->4eXaQ*YwVt9&>26)}&^>f#NshDYQ(->xo46liC&oVC)a;+r7 z7;}GV0$1u=aR@OyN;Tk#;o0|w3%nQKYCjuR`}d_aBM8{4yZF!APQK4A+=0!VJt4Tv;@)jnjBAQ-O$f5dvB1C~~Xw$7XiIu1fwJt*;m9byK z{65z9&|Lq5|^wn~EoXG=V z%LHBNB>|jrvF(pYR8nlg-Y=hh|6hSywtrgGld6>2a?s|W`dcDqI&%Uh>3w+B#R0sj z0+M_g<2&~)MoAwz*VUjyfC;GqNk_S|PSNA<@>54swG*@9=3>W_-dtP<;f{DtlZf4C zR3PhTq2hr?!_Rgr?aZM)GHG+%A3xQG6CViH>o;KIV{bg29i=X?YWDI=M+EdMp60N0)ORmCRWX3;fuH!_gw-ujn zz9S7~>ktektkw+ zvy{%*r5#8SW!`R?%O7;xHLWRhbDC#{C4fHMk<>3lFfP{r}Jr1a|eCZ z%8J*hUj_6A`=Z}9(_0%ftFA01@ExvJzQ2h#J>3M-8zQZ`?W)UA%m1GEi-=^=BPiiy1>q3%OG>Lf@LBqDBzQ>pg7SP%=AE(e zTwewoW>#N8>*)uPl$q%t-ggAt_lW1o)X&#{CwbS_2hau|5Y*H~9_?vY@14EvlFNK_ zU3@0#eT!?*OkDsX_^$hNxSOM@Vxzc0{>a&RV|Lb$-_YuEjmI*XcUT~U&^cwjj;Y{f z+EsXo60Cmo)f>KGkj1w9T(7qGa(5coKre!2Xg=I^ML2U#BcL?>4Yy?Q{)yI9GtS7M z*}md@v2;;!)cytZYNTAV9odD3zdCPzm!LZE*v#Pa>XMS0lKDp+1tGaw#-hA@n%qJm z>t{)|>qEKOD;P&={I$gXib^&NlW~;tufxlHEu8j%J+Rffg*;L1quZ>UZTT9KAwUsj zEi6J*7$p7!r=5Pw+CSMDvNKhI zz?XGnnOU(a?BKV|1Wd^vo1f`QOdHf7i&E_n9_zi zDgKl)UfN*llQO3JW9s8(nZBvbhcEo>e2ZCDp4N2O6w3rrEq3eW+j(Wk#r5P# zG?@4#{CC+i%RS*Y#In>H*%m6tl6dFTMfOEh=;@Knkzi$2DX&4@Xw5M{HY$R6IWxuLq_Q>ryxngfTY$#Deu0BzS{ahIZfmu5>-CNJJuM ztG06cLo#ue%7u*kgbfO&mf~>!rL=LbIn0K0HFGc9)^E%klX&2XTqIE9V@+9BT?y zxvA7bFF4MTbYmwjq;d}pdj&G?HZ*}2%tEgW35oD>vskQXitEWlmyG8&dY7m~he5xh zNitTFI6<*F6(u7K6&A}T`c1OG#2!q$sX|c4%dx0z^?v89_+9}>%N|rR0|4_4P6{*a zCbblXb4?UYtvcG;UhlYk>omx}xM?43f{g`#dOotn zgPTkx_NuwCER7jI=e00d;pk32yQb{t*U1YHSh+2}{2pB3oX9){4}I+DZ8~1a;O`R@ z)M0xp1j)h1@&?ner-@7U8D!aHK>DRFkPDU1MI6i<6u$#SMka+KQTrimM;$UV$G7AT zjH06wAPtGu6Yltlnb{!iDP7%au}5F3G&TBUYj7@bI%264X2vv9B7s&Hdt7;J30dyl zwbyz)_|?^@#DZZlZI zls2aTx1wSvW~jN`AH47D@$&0;qm{QzBdS)~;5w!30&gUi${ncCVaLw%?cY=yuJ;2$ z$>DwW6UlGepQ+nO6JY4+p7qCf4y`kH^wh$=>&2#Z!Dr2~B&Zw%<~&-$8bnYJ!vYba zf_Cxl;h)M!Ijb`Eo+43lnL`eEN(9L1H^Y!P9GtUnA@O{f$~vZ6QJeEiZoe6a8JjNg zALCvZ1$zW+WcE(INpy>I4$L@=56a4tyoTHDOz)NF9< zb4AnFH=HW_qGj>ZAC<9CPISQTw)}>D6+XhL6ma_q+S%u;<2S@&!lFOM%6f%qp@pnQ z8q?%5sk$5k-5hD3F@wKtz93)EWHOptic6iynV~=5S8OI5o@%)`em!^j7_iQ_$WU8nis4q9=bblX2{FPx_xxZ4H2S%udU&^?SbE`RQCwt z6rWNQGdeSn7WIcyN_OPEfOaL#1t8VCV~FkB56x1IIGylxRmM z?6gkHtifpIsUHWtXNIH3;lpWY(8h3T%TMRA&fXV07qfbC`y6*&@!oiXQllt}>Iq^9=cT0g%yfS-nVaF| z+6S_J5$!6O+U5v0b~$mnw#;q=wxN!9J=8RNR*!31aq(VL5-ai8p%T(yEf|o@cu{8- zcyd%7zLp*nC)54PTU{5GsTmq;&YKu#u0o$w`FhKJK8^R#t;0yLoJIMnTPydmv2*ik zh10?0f|d!6AIL6d|72b|Gq+LTtUO*-CQ zeTv8{l%xigpf>@C7-tB2^GV}F_G}+}RQ!A6H|)!vlL5$2@eaEMareopdLi$FCX zDQ9qp9>}afitA6g$%9!6eA|8n?%!sM3-oqv>%EZfKR4<|W4kxqSfIu~mKc^e%iJyH zvW6u0xtiS7jRr@v#6K5}bKF$)mkA}MTs_G_eMPQ0^IcgonaiQ!_03M*4nj1tAe5P; z&y$*iK_9e9&sxzEaneB?dqG?1d;Q+S_>rsN-0_Nj3#iqB-a2mbx@Sz0U3~H(Kwbai zgEonbDh=X=ysg~d?Re33;DI^!g(ki2I57I9q?+`6= z;-ZKQ4k~~2>)#t*!7cK$Ulb{yj?IvQ`9yLh-I5@k_^>F&M|1Ia1e_yP40+98Lff&W zlVHXJR+T#}5wj9K1{1vHi{#{(D@^Ip#O38BwhOq^UR>M>K_Iy=RcP$#&HE-B#mW?o z5;vUkEqK}j&b)QSIh=z0=orC~i7M`PE(vWVI77rQ+zw;<7xa{VqqW`mPlex8)y5`X z+MdpibYu_(GHC&NF6QM)G};$Fq9T=^*b#u@nf|(xm2JPps7L6&2hv z+g~kT&Ht>AXh%_?jKn3LzSl(?F2$190;5ee)R_3Ir?pCvZ12v_i8T8YFTYn&8Wt^g zx24Kw|Eu$M(blK(HPq?1cm@A;1>WRN_M#23xe>@t3h?p;kb@CvdI9j0ESfMboH z4nS%->l6MkVMO*BxkuM^>Z=|)b-e;th(@gXWE!)n_iTI>Ztzt4devb2(eHkm(;$k4 zT~%Ejk~x~l%K_j|r3UZWq5|`nR?`Qcb&4kr=V16uCsjINz5qNo($oHA&tin+E5bi_ zUlmeExV!@B?GpsRg0vF-`lfyfH9~_?wUQo&JIiO)mXKF9KZ@dY5DXb=kleU;Aiy~d8Tww}Q^RHF@B}>$Vg3`6{ZqVh za>D_HcCw_q(Q%Hi=HvJZ?M(@ws9GC?2O5(?ywduf=tw`Zat=0vHT35Bgoh8uJoy!5 zi_~Ib&3_nCZVmpX$ZEOOLLt1HPr;=rv3PJBKFH*;!mhyBxm%-Wh13-gip`8{zQ)g- zh_5V16ERtoOCn`668+G4;bo-1s_f7df4=(23^vR!wlvgII|{(|9TrU|#nnnGCOxc* zoHrpKsEwNaO7z*e%j{(sEk=&sy2}GAUJ{tR4XY{!zD)?lob$x$B)1NDbPw;d5r1EJ zGsw(za?SNCdX9vZGeR6uz>FoUQq4jUQtV@D!wh$D{EY}c^UwN{p*GDdO}S%dHhO*h_*l!t?&0Uz#PWNE28_A1m-z0a_u zSSz+Q%W%Utt4p@^!`zny{G~@iCtK5zOdwoT=V>%^cgu;&b0mLrmicucet``1zJh zI=saab3Y`|$?Utbcn%tBuq3|h2?;mtLD$atnkz>^&j99}ppI0KZP#HSo-1}zXr&$6 zMD#0ycZ8&9(kb(o-3-5cj|O5db3PWo!R$~JX|N?xG$g@H(J%Bvp;+M0xTy)i;QG&;%EIKQ~5GT!`Z{;FN`tqG!4N zBl{#w(P}%Zo+z3=H}0%t#QjqJ?n{_fca4=z`8qZb%O}PMI@Gv$m3(y+T=N@a zFkNUp%rF)OT{*C|Qd}IU_|ipsqB~^tTR|WFQL^VR*wD@HSv|2|YOhSYwn$zt#Q;#g zrOxbpTxae3Ay{-<;wLuE{^5SKrTKJC}_#6wB zOIks%Ll_W`;$pLVzi^62tGgT0m^&j8BzSN$pqNmbJ&L!l`^mR!eG!^mmJFMU|M(Ft zNaGcQDYVOtI-oApR;ZmvdRnsny_9wUQ z0?;v7k&C^Rw9%ztsWM#6A7nXc`Hp>hGs4L=~b^~1OvTl(q2e#1!9C!&@7rY}!B8QUx;rE(q4 z_J%D52p>0MXzY#f+7X!Y8#}!+CgkjSg{}*@suy{^yl#JD;Y~p&pB+S-VP z-gvdReKSu42ewmCP**qKSg`4BGbE=^6b1ko4)#Cw{EB5Q%iq|s<`0k1CK2q%HG$*U|TI~YB1b}(+} zVerEwz4aZ_Y*v}D#k)6Tr{ ztmhR`SKgy1Udle`g|Pfb>et}h>-gx8mr`#s-K5Pa7G3wAYq&btBC#arMlnevK9Vjde3?AjA z)EK%6$t0Wh#zBGRBf764>4=v8XS4jX38PztZ{HT5?ng<+#j1bw7a!$=fYoW%BNaBs z!|Zv~BC<0EzH-ukRpaOGOq|tg{CF$7$ydhC&FsFsVJ$r4dU&^~+-M-hRq^vW?V5V@ zq}k|K1H9n+3E=0<-PXW$mB8vo!8Zw@gk#UUA*W$#2prf^3s(zw<}8qTG+H7ux}`?rbC<7DUPw+*V-oQtkuF!wLPRje?pd?fK4ORRl19d#dkOfHMOUjCHLXq&jSGM2+}f(T)vNJsz>;-p==eM?(OyMj{dZqb9JG{*5Dal%cuF}yN!O; z4M%0ObKwZ7PoElT9A`A_a&-ugJCaV?+N-s0{ZQaHSd#1z^yiggo$|>3B9L`!Q0{Ef} zcqDmM1tsISjl)4oXxg3KUKPQhkJll;{MQN9bA(?26~WrEh1N>|3`Q8>(5wJuET1Rq z^@|&(oB77S9p|8z5sI;Rb=L!r;g*KeU%0y
59t7q;?Cg)d!z5NR}$<9ep?3;YS>$~52bjvN;s$N+64X@m45^rmVV=d>h-Kki!G^u==?cYW9{J-!$ATX!Oe zR-#x4Zzd?hEi*dV@%?B|4(xiu;#79jTI4tW#533a8ezcEN~swOW+#M7lY&JnUilvG zS{cv5>1h~p)!bGK76(6wP&aDoaIs}57^(PT#jM|F<4LFB5MT(6`J_&$6WyF(y|cAdDfa0B|bUd zpp?)JXfw_|fXq%>3-%xf>aG9YMGdJ%osr~bR_MPz9mx{*v5SS|q06RZq(76bwaCWU z17Pym=Zo@Y4xyJ-9q*6SoNJCIoe7`s%U(uc=*{LqJEmIh(lKTZm<4#d^Y!zGL< zWf%99!`wgmVhuQ5b#<=I3x3T}!NzjlA=;vjyfKjtOc4BSOH-$}7qt=$aokQMIV^B|!Tc{uAk=b`>|z;4l*&Fr0Z)5I1>W(xzbYUGqj08x6XhA;}n?joYf`Y zsseuKhoA%hu1{-{d0R4ZwgCI*Dzh7yp}c%$l%JL7JQL*z^R|K9UA~w2H3toF>N*tf zxP(7gPW9Zu=IR}O{TzDXK%w?h3!KsBs7c9EI%wDc0KTy$Oj_cmN6yCYCFeErxQCm_ zn%E4F(k)W+u$4%(;8Ewx_u_%Sh4BwXROftRe|~(9?t+^5sf@SZy^#95Nq2er$D_Yf zQB%=whS(nuR9_4GdH@iVe8D+qUs`>bsQU~;_WUXVw&ihuO^vbgmFCHo9+1VYXr^fD zEmtm28xL@Kyc)3aJJZH(m41zI~Zr?MKFtW!~j@{Hgp6?*a^G`MHH# zO_rL}9XSVs0?>zrsw6qWr#oneuifc`n_uo1Yg`PfL^L`0Z@$``QnDkj{NSG6)Mm?< zHkj1t5YQ6LKcWqa4qlr{`ScgvMGP&yd#fNJSc0tV^Qus8R|*Bd$R7$JoA;Rt?KQ>+ zisC)%?=XoB5q991LK|90EpME&AE5@1jNXAvQW@&VK6#Dx8V`_nVc1As;L@&NTpX~T zMYsy&tXtmBpB4rcn(ujjsqDZVsEt_|HzZkBS?<;Y${m9k9c-REYd^{A$|u`4$bv}) zHm8OREp~KvNRqGQkR5g^xlFjYl0by#VP$yo3DB@8k68V9$L)y4yp7w%+_eF*Jh=a{ zB+iJOKELW>cMUE~tDvwhW3?TT{vDQjFRL&K3yTVfZgV_I#lP1$GI8M(o0A%1X-Ogcsy~LebESef;#hW7EvG)IGTv<@%^~_ zfnxT0=x3`dO5mu&Q)z+(7#e}_pP$J1Bzy!zZ-$P%hljkEy3%u?A%QgYrmtcW#k?+RNCqBiiNFkXHHm1Skct(e z_~i9)TEG7tJL4DIil(8~`FIyG##Cbvd&HcC3Zm|S)!wFO6uxtz89lhk8IGWYX??4% zsHZI%P7+$vk`l-rt-7!q#^<(8AX@PPysQ{S2yvO%+s|5^f%QJf$xImn!o1X$Hjp=> z>Vc#f%eAU9dgm|;;CCQ!^ze>`4ZDl4>ti0X>0qBFP0V%~o^B!PU_C&ehTEfN#LD3Q$B>U4i_zH{}>$ z%9&W33Rs$N3BDy;?k9J8pa}Y1HSt|aWZ1h=G8`dXRO6}^(%F0*)8@Q&o~>+60rVi` zdxWpM9FiLDk~5yEgmOe%!}WH+slx%;bt`Y$j#11$w!9(Ka0-g65sCz1$OV`;IRw+B4wnpUnGI$TjPIxz4rt{d13Jz!VbkgLuFS#kZ$C=#aTnD3O;rw ztEr2;4n65_f^LJE5&IX6AWf3D89lPXmQ#FN62DOy2BV`>^OESiG_33L692H4J=6P) zeF7cEOq=_7eK%hmRcRM#@$Qf7vIRx~i+;skwrB&s;iQ4j?QIOBUpl#0l=W$E{nK)e zeD?bEW?z9%3^_tU-t?&lX9xQoBhM;B8>v49?jCE#_VY<`VEai1(z&@Cr+3tXLx^`g zzO`V%@N{Ow;w(w)`Wc(o)ID5nt4k4iX1B%5suo*Q=S~u=X+Nr~9apE1~e6jlADBPgrxO2L<&B14q|B=3A4OgD0&h~UqPWtv+gR29vmi9Pt zCaZ%3r<{_scFM?pt0Xa-tm(61l=_zS5}w>qNjZ(0aX6|3DiZ|$twz{>uIq^;q)JIOoc2cJQ(tJ(X2z@s)(D>>7}i>-pC4}J zhBbav!iw4ikLG_ZrNsbp9FSPx4X49MQCsaBKZFY%P(Cc!V`)L3YjDY~R|&Lg81JHr zc7vV8P~1y!m^Fu=z>-2_2Ydo1RPF})BYb^!>f8K0`0kT?Z0drUDqv$W)D42heVN6K z0d`}z*L??4gDC7r>o;kASGrPh2OlHZf^Mc8uLkrVV!~}WmDnRReq5!Hn!|gZ{9$Bw zRV6k9^5)Ikm>S-}Qa!n4I-lIbo4 zmOqh;YxZUKanS(M%DSfIUp2hO*v9(Tn_@7ldp%m~fq$!+B;M82SQ-cpX!Pwq*Dx2W zH=xmX)yi{=(cmmC05c$E7^nR_Rb~?>%oX|l4F15PpwQw%9pO*5BDe9xZ`K+(UCQkn zeSc!E?iBRi#)Q2K8!XkO>*)O9WW|!&@6c6757+0(&U8ZFx(q2aF@gET8$HU5buD$t zM~vlWiuhRSt%$7Wh86*)N%woXyD^RlZVr#%HFq2Cn!( z55y$tdpWK?7mFvI+g&BT*YzbG!`=wT}LwQ85Em+JyZr$UsA#Z#`@yC(9+%MWbgUQ$l4^aNXK%f^a!@p4x7~9 zjhbNn+-btg-?!`c*Qh&-LT7ch8=&H9b)n2Mc9DASbB?Kv=+XV+Vfx#L<&SJ*EOl$% zBcZ^diotcRhMMz>VwYNlUznjH4cCl#ohLX+1)7sf@3@TxX&%Wxb+=*Vqxw71y;FIM zXzBgot1Uv@Sp~|gh%*RfQ)yW(40M7xa-5a^h_BiQD>qsFU0)<_@w@vPxS{{z4tJ9Z zk#%}l=BUUYYcNsN^p{k3+N#q6NzWnHbuz7&1bxAaelQq;|CwKSKf1`KRVjX2{a1hd z7&|co?ZqKECa*M(U#j|CfBMM)&_jE<1J${-az575i@dC0k75C*HTQ-K@rK#PD3Cal zTbNU1AB(HJh~NUX6c4J!n3@}foGaCkJSQj#oeqw02NF*hN?M|9A_?^zV~z$wPhzy% z7IB2u_?unmO{hktFZU%^TWZ6pJOS#)0&1;8a2x#fPcnggEM2Abc-mXBz_v5W%tB8b zRlKQ}3xl0OcPd}>1QKJ?@=Kq|i$;Nz4dip9Z>-eMy$Ge+k`45*Gep?>+YMn{Ye`9- zqRcI26Y4cr5_w>P&!BWQbFnAvROEHF_T=};B^djGsK}>j(t`+VaT>$|N_Bmcm*fc5 zHgAT~m<^4FQtMN8`?5o0d0*LA`LUC%9`-}vuMo-|873aa%ZG$Dp) z`hK+AeC#QwH*=oYY-UwDE_o=yU{ZgTMeF4cmHS0Z5tPC;IoFMC5&Lm)n2xIlv~cNp z{^;|54~Mw;i{HbEV|O+KQ+IR43O-hsG1-douDYHSgMA4!=oKtuEp6t=m)sp86ULXw zfhR5aF8VvT)1hp&4lySlu|8Z;wy(mDEHMn?)J#fi6dx}Y9>Pm5I+g8xQQjn%7)&-r z20c!jY464SkdS<9xf#Q?(Y;*^Lfao8Vq|LQj4r(0!__sZdB0x?6v^u5xk;aJ*%~t2 z!EL3Q;$yqlYZk)o&HxR72K*e}+o<^H^6%h7YJ zblL~!j;%FWN4zc;%c2x{vDr_DIn zS((0mm-2zP17^i^##T+f-~{;Lf_3(F!%c}04+Y8%l?2@UDLH7F-*bSmvk5~r_Taj93Xqi&s*IVb?_>^ zzO*nSDfc@~7d@-Lr3KMCI{Rx873_kI+|v zm({k}ouNS3|6|RH^@MY4=58DX1KTu9|PTyn5Fiv=cJo zT<9NwiXbYdFdmRULvx`?zZygW4ig3bwXxK71$2=_mJ$j>)>Co^nb;QG)?UZ%Ca~p@ zj4{pK1uhNjCRM@?mZ7lO_C5snmFD(M9f+jeKolsRYiWPKNB#?0p_}<;XGxv;>rSvw z*O{rPp4;mK9X^g)hv{WFHss>WiQZo50df)7DfH)T2r+oN?Ka{IR=m+pq?JSQRuL@qNY}wMALq2Fj*7Y5Y0riu!(clQbVPK zFTcBTA{w#c6Med^?h!;$KaayudRvB-LW~tgp{82XY>z%cZ7=`?=x+Q5iLM*s#SBIA zrTZsOd`DjBc|I%ry7aRlJifXqePZ=Wi`F0zU*%vMq2>AG8V9i_Ovw<#_o-f@r@n?J zV%vtsGJ~S?`g>k&;W5(t#AklYPn(=45APOt9%8$CZhfz7AB)P%i2veGxjWxnsXeOk z1qiHOA5>g9hUB_P1Rv1n$Pzm0n991rKoTBHVtat;&olS_Kx{x-D7XUD!8ckGaP}}u0TpYAzCbH<7(%!HJ=OG>?g53Ek@Yo?6M4j6V>3S zjj-Mc`wcJdVIqa$8aENVwmTLe>V7XbqNLtsCc*-#@Vz?7F6+(UbU z%$0Xk2vcu2mjFQ^5YJ9s5==jxtp7AWTf*?;R|%k*_Ru1#Oeuq>M3Y~4 z*pwHyw7k06+q;TVJGeI1gpsqa1=*(Ck@4WXdWuDEr@Ay&k(#G|*G++VcBrF}TS-+t zayKNROLAtRCH*zG5I6=uB*3m)yMikYsm_5Dt#=TdB&zPnSEkkA(RcW;_cMFNsO)IF zCH$M2#iHj*glmJv%Ajb=pfizH|2{|}Y^%3DxAAiQmG^20UJ4ZzYTSDC+{Ahg7+b~2 zx~qH+*n!rTLkl(Zy@Ya+{Y8Y*i;C(p6Aa?#E{N=ZM3CqsK)r&k_6|t0`SR|zasq=cN=YS*K{Sxz| zg1knoF+yWTBY*25dg*-WJj|0Hr1v{uUZ$uf28MPk6 zj)JXZYO-z!90LAqz55qJE(0*v>yEkz8@*_QEsTNwROtw#nJq_whqdUOFLh2TlXhQr zsM_uxg-tnl6-;t6u#8$fSGS^13$LGO-a(>B78E>xeOEnxmH@36h!yo7E`Jawqei>P zHEV)cI_tnb{zRv%^}0Omc|^IPEE{*`!Uyx_?0uihX!9Kn5l^d>)QMmOQL@aDnj#BU zTG;*Un1?T$e##}S^GTD7XYf5lcchbFpTfwP?pn%i>(Bm5*h0+-pIpO|X3xs!um5?nD4^`{WKMmFtgh&RI2^b>1Con)$AUf3<0s18 zQa%bNCXL$zRa!?yvaT)>ZX3^g8#}A;eWA1c+MkWYl*v8)+rQ)jTxk^fY%otPYJx>P z)2bP>`h464V(+y^%aRO#+rWWbgthOn)sj;>eP7cQ$8_D0vmA4>nWv|}E4@5hI;|zH zVPtq2Lxa(nz|l909KN0P8I6deF}qTgSOXjU{LM&}A{hSc3CD*YaYaD`tktQza;pqM zTgd37BwyCApD-3l3!Dx!5&a$c2E6%-=;H=WG!|u?+;P+zurLZu0~&na zZj{wF7BoDZrcC8#;0IE$%vQ|-pIgjOKCLSgf7fpp0l)1PQLQ*P=NUUWjJNF32I&*Q zr5dvhDf${$6^3rJ_YIa$TBZJpDRI3|KP#&*Q%OIKwFa7d?Nj$zDI~VkB~Aa@-FN|} z4i>Bdn$WusZ)ssSYlm&U$IF)k5yk5fFxY8Ozqyt(+>-RI#qF#n8RE+%gPi*ZFtI6& zRG^68p~b!{GZIJ6%TA|qk?+&#jKlu6J1?=ZL4xb^z^&mn{n!<(IOLA@@(VAnUbmQ; zD)I=4C!7*GzCx6PXKnU!<9$ncxo!{gcW(C7P-Wusm0Pj>K5ee!EFUnIZZGD#OzGJNUqw^&7}+ ziV<{l#6`REcY+2T^+Pf&e%)>`XDvOyLi=|6PI%^ts**@&WXdm~Tq)0!yxDg zt#-QB!DHZ~x4~}HZ6cv?2i(B%KO0B|zF&G{Jfe85V2CI$&(^W?9PuS1^c-SqeZO|M zq@4XRc2K*&)NOUt)can_C(0rnUhu^$qt1u1Mg5iQqdOk4)4n|a3|~5#-cr3!y;wzA zYY16YWHAF&p=y(#ms$gtepY@Kbd0bnNFo;u+)4@2@%nvmann$MjV4XOeSKVXaO2Fk z{H*!y_Jk!iBPHd@YD8%JBAO17>iivF8Nq+C+o%e$KWQ$Qhj+s~8&n_7lGkZ(Lp`Q?{1lNHX_u zzVj2?oZ50Q3nn>Mw4K#Da&Ku=TXV4B$YbC|7hM{QZ>a|hy}9F5!NNGzT*C&m#sl$_ z+{bZ8mC8yow~V2c@C4;aC^|f%+61mWV>yG(@H!tVh}&1?l7PleVyRoWxvm3$SW$c^ zq#)f)3yo;nL?E@(S*N2l6>Dq5ANgsW@>DKJQ9Y}1tuM)T7Dyi2A={`V9$Rn&xSpa} z-Q7$4_}kpxH`tOiogJlYZwDk3#pz!P`FoS5k;QN#pEi`6U?>)qAl=-oRNum@1{I^a zf*v|#1@(iION-iAbO!GarGJl=#A=!m?Y*J?c2-uZ<17;C>ma# z>V)-K+4Geg4oYx-QW86S*xY&glzTr#)H`OUt0H5nCxN4Qyxe;%e5US-jiRcCCog|y zcI^|Z-+Bsn5fQ!el_2dXl{u7;Nt}%v6Bj<#icM722s!awee}13AWqADOn}l|^JW9$ zkE7j&gGpcCa7yVe6;cEK5qVv0#LNZQ1Da>lywDXwbsvx9)j{=7>}I$&;sZRX;BjQO}pUf9Lnn_j%q?q#+b< zugu`KN+bA_{cZ9g1hxXuu`{iAafOZ8v)dueX7)e6j~y9tFlz=Jp<&QfN=^y_#>h)4 z?p6_I;$nl-Iscr<{S`jc>dzs+`6UEz&k>dWgK;3LPl8ZaANBfpE=XJePin36k;wD% zjX%z$s~E=FE>+l3uJ_niz<3xmsn~JB4l^bRi<70EISKHg;S`cP@7K0vL}t&{9lj= zyS{AiHMoBn@%?KFfl$xJ=_5x)GrsEeaEmBH&`beUpQ}HH&L7tEAOhX#_Cb?k2&ZTq zI&~qO>IVjLTO>&+Ay43_-Km zh+P~x4X}oY>Dm0 zhx9>AsDAI8JFTRMQtHkz1uI*KuokZi@-Y#jzX)?;L1}If)P(!}oEN;;vpcHP1VjhEs@;JQogavI2S7n%mUr;52rx zHVwIr?^PI0mT)bJs@iTQUROKN`uBm7ccf{H?D0Cvc4y*^R{tI-7ja8{S3Enq<;Fa_ zk=gj{K;cB^IDMY1`gxKsTSRlR9DlDA26H`To$@&@GhV~uU~Y*5kvH(rh|3fi^bt_h z4T*mxI1Q#iNaS1ifZ|Ehr*X|H&J5%Wf&p!qUS|HM~zTDImQEzFOb()pWLmSAU{I7S9^%g>9 z#^ z!noe3_3ZDf*0VE7IaqssuXLWYK4ae}HVGTX_M|29Ea9mkSz31<9uCRI>CTS3ukbK( zGtHDJF|PD==;1k@~ucRgbz2@m7NJHbJGjr%!z5%1i+Zc+@;DlBGmsg zScIs`nSq7INMbp^)BZjTHZZ!nn859{!sI-PiT<83pj0HV&g+3bhz8}l8QhF19m{JX>{ zA_=2nLZZj(HcddVbch~~9?`HptommS)L0i0RDe|lImG*Kwt}T@|BgS)O%PJpq|a0g zsS7>8ntgWV9V1cJKVq&_Uyj+Z&UpnE;c)9UXbwt%!EDypUm8>{rWa+VII5gmJ`RZs zLyt^8BgZ5->4=J$ZlMeYeR+fVu25uyQ!)<6%fnot+3)NQ_uE~^vvJ>$OI!*bOYb;t zpJxR+f}bl_ANVJ>;O?5&dc}?9Q9lLmH9k#BI=Bf|)159+yZmxlLG-wb9@WwtnaXN8 zAm!@;2V?Rz6pRs?ZSlP*Rr6%R(sG8KTK;WrM^G4$QJOuyad~f#U*WN$4*GJlD$Ua6 zK^5jWL&Wg?^sM%pMO`M%xrlJzU21lvo`+9D;ec9@=QNaZO9W~%>01|g>=s_VX$pK? z!=XP}#_P9G36jgHlNAPCS<+x5y?vb*hw~pm<0LN6K)*wB0m8g}vz5$y(r=`5y~^@$ zYu}x@kr>H7T-4x;HkcJReb=RA(zma)u}lzZ27O85beut>`TtLzxB!^lNIi`w*N&yU zmhjo-?u_0%-798o&ceZp^c?_q?4%S)NVUDP1oV?|gjj;D&%x{#eJBioM7Gn-H2x%s zuFPo6#_YTm`&N>*L|HtJ{sg+F8fePzG!SW>u`KjK4fz$Ni`{_Z$G9_)y!rJUM5??r zqhK=Mk&4v||6;y(9VPi6X<-P`RrfRRvvz{Le&Ff`Pl-+%I3Z-LOmv_i~7Y?ZsQ5?>QFYwwCD~Hn z8c3I8f2#B-t|n76N>DRd7#jn$jvagwSTH_(UX_MTNYsb6k+v zYYYDB)Q@kqmLJK#-5>bmgSE78m0V{YYRo2#32f@9sH_bj;2UYY zDlNBtUeo4fog27neXLF5w*7K~$A5=AvLM$UlOZ$Ze zTXsn$8f~B#qr9}xVmA_D|Cz|CTULU`hBb8<>*5C;`%b%T9@#5_JvcD%rGkO4<-qS_ z164x8+7cC*wsx?tnf6lZs8@rrS{|Mhv&e09wU&)!utT=ry3=Acm$ii2cx{k;h4Xf& zT?f0*r)fktN1>C$>@!Jq797<{@$+|T$L{{agvVRM`cH6c`Nhn9QGl_=GdYs<{W-E| zlY885TyRDb)eP5i+=-YtHpZ*`Tq-tl;=*A@aIL%=prRV&(G2bdvD zYGWBg)lS2I$e5PuRFFdfMT(x@xZXn1@twIVq+6A^sPvdKPsr=A zL@l*?iyVt^y%%a`uHy~|+yuN-WDj~EFM)OA65*z7yLH&d$}=U{mJ=Lc=pRfx57+e# z?c^DB*8@b_hZxKF)*opB_6d~2GFHY1B zQpU^0$#-K&?1trE)USi34MqraJ|Pso!`y5|TwI5H7$(kMjXrv!M$O#I=hKL)Fn{Qa zf9^v2Ei56cDF}Cpv6aYu#zOk6tTnK=LqIB$R(8K=H~QGV3w01hFYfj$T7nBR_P$F? zV*xs&FI)C1^}{TPOfvnu z51|yZ^d$PZtdXhNoNCO76s6O!zQam~lSx_)V1z4!7+$0C0|oaHMG3)fpAv_DjEE*q z>WnLStX&lG!d3_Bd1+??g6YU^rt~J4_~RV{4vTC9A2?W~`(DC4P!|L$Emp0LpQnp5 zAI2HdneXqEnF!D#6@E3>#}x}-|7Q>_>BAW6D`Lda1?VQ;tNhWc>Ns!pL+S!NG~c^t z5PI*Alvt!Iy4yeapVs=PB}T@|LkMJeP>W&(EivqMA)0ZgmU{kB(s8ccRJ;Pq@@Q*8 zkJ)jbl-3#aDml!yqi#w|<3S?cak3xxh#mnER6UJmt4t54Ep2{MQ=h0pHE1N*va|F8 zoqR%K<6mn&uPiI``%qg7KUiu=dT$BMbX;u2sGvw(=b7_0Wj&Apk0Anh49n&k)%7X6 z{One+q6O0KV)vUfcKywJ?d+VA@+5%U7&5u^yv+CMXbzK9h(aSnEdHqus~T&5fxRfk zuLu<&eHov0k-NLt&`f$nTupJ!vB^59G~9!=3S-psf6vr4c&32q-#&vF2~7XfKH=iJ=BT4nQFP`a95S+ZNcptU zzGS1n%yCSG!c#|Z;Juh_^;@O!rKW^Orlg+Z_k|wZ=BAcJg%Wv2f|x&IR;*J1&KkIdJWA(cOum5x+5S|{b5*u7(|VXJ5)Zc*RskDKV%Rqt93_&IyV#@+~3I|{x0 zGRIZYENbS(S)~#TiFU%ey0^oL{4^qT@g;C-b2?r=Qyc4$;+?x+FLBeSJZc$mY#?Hf zHX)FZg-OKX?D<&t| z%6!i!`_ehc_{5Zqya`U7$>u~-;`k>`d07X-!*KP#^>?Oel|GP6m*!}M-;0X6FheRC z8e&3NuL*kiwH+s`s&gaMjx}BJ$N&_h4AOy-c$y{gn|y!`E7kw?e)(NYaVNhA1&TTMQ>OoUrJvFVrA_QB!KcIyA-Iv;=j9uZ5OD9qo(5`qa59zW=Ip3o(^IBPaNdZ2mtVvfgJ zuqc3|0_~8&wnwkP(mf^4k#b)6BqL?gik?~~@9WjJmC5{c3kI74kLK*jA=%sMXfOP> zty~*>M41F6CSx3&p?w(JnM1#P%7B^sDrDGiA0UthkV;|UmMf$qKkZ8Db8|Fu-t^nYe?32d zr$YAAwG#2$^F;Mlm~iuh_18|-f-?&$(G7j!C+csO`u$_Ex%l&y3ZNee5HNv5(VpRQ zp8oZ!zpD?jqOrGFCqKIcpCc`yvDBNy$o7mr=7wu^e=;B1!#?LSmX}iFh>$}XU^{t5 z8R1B5+OUsKsrwovAF+N~nrzg9KB8N+NwKB^$%v*O~xfx(%k!D27wC zP4*E}oAegfRA>N&^jUs*qO}csFqAy(bxF0jl(q2`qbnexj)`A^(%iBlvl|7q4mLIN zBLTqT`rMUqFWTQzng|_7Af#(U?{60ZgiRO|Tlb6ro{L`gfPiRK_b19k@WX~&xZ~0n zJ&A<;{CKNfe33VSC!y#^!s4}FtT-s=Ac**fsbNp@_3YVtr4b=-DStAE=X#cYFa5&% zVn~)P*%YW4S^N!A$JSo{$KSjnlB2B*>GaJ1g33v-3CP5tB%%yXQ!w`bsa(F)6mpq1 z(;WX5@{5Gb+ITlTBZo^xG*!4CoX_$*^m|UnzJVV+&#%Uw$~*6|GRIXq0v!9WLerXt zsu7K4CQ3z<{g*F6bUV)OA1CJs84xN>BWUNMbzFzGCexd}dB z#6Cw>{CL|H9NX0aV|+)yV!x6I>!qd*<*L<CG(AAGrKlGv)k1An>BH4_Y(L##JOYL;4Z+1#CNz8pKCVU$?5 zL*8XOFAk(B&~Oa{n_#?pPpx#D>0R%%9uvzL<1gamSl3to7|p}9PD6OAmC>M{a)VQC6l@yh=aNTy#H6w$o>-kM#~&m)#cb3wN2> zJkq&LGD$481f1S-i+E;UR2t{MYp=;H_MGXZab5Shq=W#h8)Pm0${V*j6DF6HTVbNy{%lAg8sKoiKS_7d~ zdP_Aos86e%&&Z;_xm|SCuI?jSZvuB`TVfBRz0%Efk?YRY2Y<{9s_Rrc3B7Kp@KBOJ zvy|Ub{zXhE@mWJ{xo;m7T*#_iEqN6%( zhhZ;QtP&kj=V|^LXokM}5rM36vODJ{Z2H@0VIMGpt9F@F+%Ilz^{@d8L{$7{TDg#vA%l~ec+z82=~1=?bbgXAJR$B*c|?K{@-NnX*K!ic@&K107_aG zOg4X5QRL*sz&0P50N24A9`1WMC!N;;z-P_&##ox{iaovWu}N2-Bz{wt(qnac&2(4S zhBGT{Grq6b$JH54dtGB58BgWye&1As?A(^> zSMwOI?$4GS68kg2cHaBK`+HcsM}yCgDg>nF7}Gbm>ZxlJIL{`YreokSDz{d5y(&L% zRj$;77)ykJ+qlU2&1iG$OBq~P`d_2APY!v=p&Qul`NcAdQLAqP!xP`qgTBT2m!EK!DRcd@or z5VNpLuA(dRD-UD3E_CWQMH!z0Yxts*)k_oAkT}nzouTv~<0&#T4RNzR-|Mga{-MT4 z3ehw^_wt!DBkw;3dMAG2vqIeI_b_#5G1GdO5>q_u$X&OY^K_Ib;!fJQ>mk5ZPmUiX z40$OX*NY5uPmwOP6A0R_gaYhTCkfmn{zzPc>)XLl!?cXu|Q1e_zZ=JLA z+QxxFxLsc_a_e%H&zao8)iDN~8=k_xYEj@Ekn*%cyiaJ~QcHr|)EGPOpKY5vI(_#M zh|JdCh+^8}#RIdB`nUdxP8^JS;cKT~hLzloJ}9@HgsVerj_mb`l+mTPQKmSUR(qwn z?_WiuUk1%iy2JqfjWSj_m1=^Q6VZ29uFgv)WKEqWUkIu-nGHU?qp;$k2a5cat@iv^ z6sPD zJ-iC`(HHrr4boA^?r;fkD_`g^QbyDD(Luihm_W*DD>IOK<+hP@n3=DeVmTQNO9Wzl zqd3H>Go<3vX_On$TvcxO)j8TR!PO1=I0uLPZojyQQk8m~$dXprm!IBzSBPvaalnN4 z>$8d?Oxx2~`Xt7d{u=(Fv}1tQeTN`A*VR+Sl-8n$N>8;f99Dnc!W4bFI23*M(5lWe zvtymG|7!LP|o;{c^^ry<#0d{Sfe?5bk`lQfaw}fq7*6^te1b=U9 z?+f5J*Yq}O|H|b4kxGI*TLHJg;gOt5A~n|6ta?KCcTT8~=NcK<5I&Dry;mqB8>75sqyz{N9#zF{6=poy2jO7*`5*v+hHlx@- zO-BA;Y^icoLG50w?{?u+JH9k3fe*LTZmcq)W+9sUF3;kNDZ$Fa|xNY@Oho&ehTBDrs~UH4bLfW@>+skX9+TTpTXSnaqEn zCz!94Z=CC<@p(n`JBAT*@?)p}Hb}UX@s>UKkw1*;sm+q7GusWgr%1nSax6Vfl%*!+ zj$3R`=s>X3VdJMP3s$36O78|(XS;PXnW)&^h;%*(u@FLE%}nrzEFTxslNOT;iu#C1 zpazek10N4SM{SSu=5J0)?{6p4uFszej}0Z(UxG0oWXJm){WB7?mGMVX0b5Ifcv*3| zl}VgX3xoRh;PX3CvQ))!Jtgzsw;j2c6E}Gozs4CgJ>eJ_(((E8Ehi&*xV?{fd}TGo z2*JUUr(QEe0?M4XUtOD@D!+^OY;$e&BPYEF%t_;fRw{?eAL&kJ_zgxx!n~N6)H4 zzxGfG_O(LNHKCGsDT7qZ8s{FYKpr35z#yJJ{Fm6ymLW@~0AucwXV8XFlxgKQ_d1Q@ByLsHx8C-TKkUjblMz+? z;W`Inmd|tUb06*Wg8X$C9WR4$zH`GC8rztU|K;+%l%xX52ee?8{Zt)vVOnFML^9fN zHvQ&DcDlF-^>bVE9e92HXUaUGXSZxWGQpB*kv%$Zm(gt+Zh}Q8D0M{F5zBeYA&v?kR^Lm5bcdP&5#l2RG;t8C zy4Ujz?6MUOJ8HVAX_$E-5$PtQ76v^){lF@8$j9tYM{Y?%B|)vB`F&l-P581bG%FVV zalH?JIXp@Ih7ZEBzst+HbVj4NZ}t+L*fCEPSp;?JnyZ{_^-MB-imrX`HllCl%9>I~ z^LrJ@zdfq8=hG39W*2niSJfAiL|2@yAKu^gOtk?2uD*OUPBy17SfhB;PBqb!xihV( zaG}odPLu3Ri>Z1a(WO(h&tRA*ra| zS-j;wKLGhy)l8sg*RKONDqUvdZ;egzu-k@N&xtOqy}MieAO+mt5q$y~@s9j)M4LPU z_#Qs@?a$HI%#ER0;zUa0f9yana4{=RC1z>iw#()HxhCH?D5UPkfLG&DVJb( zSg>1H4Za?4bt-5OG~J_B6*#{@{yG<8f;s*f2D*42k6k|nIG^Z_j~e`}Tkd%U79@;* z#6{}z^YRM)WAJpAxl3>T4e|Fi0dTOicV#x2xb}@2UiBjFY*#@8JM+I2LAzPb&FJ-$ zG=AyyYi4%m1BRXUN~79q9@(YK|FXW^Jh)y_d!xtY8Jdm*AjMF-dbUW6ct0R#0EjJU z?dA6Kfj71A>ylx0AD*)AS_SVGk2sqpV6PY~-aJYegd9B zdTacKgGK*-Cb{9K15QgQ-uG$Y&Yiwa5RjG>`6I-h^bR|2#cDjq;#OXTV}#bnw76p6 z4_KXjnqqIU0sOyO_a7A2} zh0|96HzrgcTbySiv>AE+-ad7g)oTn%Qjr7@H}S^qk{B>~plZ^aa%{Ze)hpo3jw1`v zlYgpHuDTd_5j}U0D|bvBikUlt;dA|fHZR<8R^J&pR(c*F{AaoKMmb51DgXYDsR9%; z|H;1g_srxbbS2hAT-11Eg-!}agSboJt=ewijsZ{q8qLm2_Vw{|&`8bE2`-JjOh+sF z$gwxRq9#t;P404TxycK63C`+rIqjXe@)$gPGET0*txHOVx!FK&Wcb`sEs!w_XZh@{ zXOa9bi#QBwBj7S4snB}Hm8<=w?j)loK#K!lDpa)WmEmE+)BV=nu9k5)xy7dNEtL05 z4iSC1B;cqx6D83_SkOVbQJMYxO5bDsouJF7~ib+d5d}QU1qT#8nwWnJO^%otBf_+K(&qJivS;%E#5yf9;)S>qOjFW#BA)jviV?{&g;y zjA2ic_|j_N4}_WW^LR)sgH?*zu)px5Iv_ok+C_DCiA>iX95@QLnB=*8ft$OGo_=0~ zfTOP!o0`?7Rs)O7=b8Jp&aPm03q5b;c6KKmX zH`BkK?%AktJkULePF8v#d_r!IO=zkJl6vAy7z8d!Pp!D*=Zx~1(;SlTAh0l&CF`iF6WW^Y$YJN}XH zHf?CS(J|5rWMPnA5vOswqELSL zzIPg@*gg9&It|h-d&#@EA46KesQSnBUJN~4 zSn?*8H>s1uZsGT*izDCp0;+9Jd00{+H^g4lFdozyPT)H)NM}Udl=+{` zH#H5C-w{8S6x7yK96}K#?`&j^Lya%a#SK89ZlN5Tya$$HK zJg_rc=jX-p5GZYp{Ezz&1)!U*UNX?N15CW!*Z%4{;od)E*clCXi8jfX-P%6n(IG+^ zJ+DsM;a)S8m7=zCvU_gli0?q!pPt(5wfU2X&MfBK>Tr{c&I@6!Fc!UQRw5Y9D&AXS zVd>_3L@XQ>ygYwLrcK<+|L|oBDYA1cZt#Yt7lVF#znILW%Y1`eR~ap&E3T%(MY7oc zX9nzv%`bGvq_>dmq^GOis7zt}_|ZOS_C}R^4H;5b5RQ!FTmE&Y^^+*deumta>33Au zt{=wyOXnsU{iP+&J-_lNlZRnq_2Dt>&4-$>H`_a6fu>gd^$}?9P~fVL7*RL`@3*+R zDU!)OKm7!skhg_vj~K5`d){8gsv+Rjg{L5Ab>3$W|sTDe~~l8D;%B z^9x=yC$BMnFN!)OFT!L4Ft4G)u6=n_5V1Z!VZ!=-iZ__D`$*NlLOs(WVoi8>hwqb@ zWN6~M^fhG%`qKfp(34NI_YAko&@H$3K50RLK6$l}GU)i<5gV8aYduqmjw)O+zvRH9 zB9G=1;K?WP=)W1%x>X~B9#-XuL~Zq7lnF+8d11W+e%2?^a&X6#xJ(aW*xC$Nl!@)P zbOTZJ(?H6QJdVXi+kW?C<3u^bjER}|@(kY!+`8q9`Ad}+sQ!ija&4B?>K``t1HXbw z2Ct;mkMDE03^CY|j#d#zx`cE#=9F5~?y78yl?d>nU5TowM++Z7o#rnu4r3hEn=$hX z%GX!N9zRQ=P~#H)|ENE-{kLY}VrNbDOEIzgoblXIXkc0Bnl8KL$Otc~-P}Gyq#>ej z%z);~hDJ|qqyg7cTVr?o!+-X1A1&=;(k}3bU7EAMXyTN3M(G&FNh^}tF~CR|6qJ7e zIA0SF2n*?++fePC#`hNfsUK^8dU?vM6S{XQ-!vj2Az^E9Tq9iI^Q^{5`JEP9LTO~G zG3g)QQ*z`81=L5O!W@TJ7eNF6A+bumV1%emuo!zB>jh)2YeY$0iwj>fHlt|9^=fwq z7El=RI+OF#{pE=^k+q@79s(otttH^LL`|JZ-qC#j*Zc5!oXH04oSjTOfwG?F(dz1$ za@sIVfIq$uD4>z#sXs+{FiA9T6{*69CHjy!c$}VrYx1g#aCAEAIdw?|6Te)k8TL2Y zZGj|wK_sBlP5u+W4m=V;edPXiH2BHj5P^U-YZ#Xv%OCz;LX^sA!`2V1V1X9efG>dz zHdUam3%HmIG7#d{G}QY=FuWJCjjPB6pxGlb6-^hlziInC;6DwntjY-UfwXlh^Wu}O zya}|mE*rH|R73a8T1-b5H%OZ){bfFQrQQ+u;w@v@$vr0GSi^-o zy%r<`m!8k;oQ{D$UaSSUnV>jsZ@A9@v_IL}TpWgMvB{RMU??bwV^w^ktH<-kvJG9< z9onbGA~buveon0|`#ZPP-k4{fM}-k8Da@b7#&zqo*)^GdFoOFrPzd=I?O#sON=H{3 zHbvv{hx2g7vjJ|;4B&2wLvu)I`j9IAqio`iNpiY-d=~aNCZ>ToWx74nt8c#-Xyf1(>1=U+_U^D1sv z+&n4?2K1$fQqb*sk;Dl8F8#JxQBiuGN; zJRMN*^56bG&||6ye(NhrMd$>q02F0@px4}Nq5@)YRD=Rq(NQ(Z(dj5bStd8rSkJ{Q)Ft+$PHy~ zT*TMhvwSYPRFjn72IwL@uo)>8g?RmA2gv%uAZ0n`dMm2$!A)iomS{XHNyMOfoB-9`?QF9xdImP>!`RA(oTG|N!n zQ6?&$AM_nEGT5vgQAciUlBJH3f80+yl`>ps1`x~900T)6e*A+5ak8Y8tMLf=5E^Jr zrwNW@ws3pvv1b;PQ~QS&G{h6SVo{Dv5m#!UO#{=rp~?5kOkmNIwCKbXmmz>?o$2i3 zN(yNUe7g%`JLjd?oa889mV4d|zoE2C621XQsh)Eh3!zeVtAbiP{CX2Zh144zmT!BD ztI(ZXx}Q?cY!hQ0c}&L?w68;VFsnHhKVO%fDY~E)XQSQLR;2SrkYYcCjGBquiVn8-Nh@Vb>e-Ar~870aq6q8GlIK0mbhleu=c;N-YT``FC4vO ze%CE!Z4j82B*y5z^T?>z7Btvv%WB?3y)Y^#zy5J)wl;MjfSAafU(_fsiCr)me5x5z zNel9-1re)u>et4|HddL9%@#O`veQacj!dn#Ryq}`YN`=d!2_?C#E}F41m#|ZQ|%>T z?<*?$__@84*W{XFDt4%iUS#_IBUIJ?*CTxT{`8p2)F0`iy@5qLU4r#Q#|yL*S^azA zjJ;M7`DTCFN5F8~!gxCBYzyCqUdWZCa1k2I)3Ps&Bx2oTP=^}(Kvt{2UVPdJrVO!3 z7=<~$s1-pJL->~hiO3gO0h zKK9>tD*8FnS8RE7@}Eze@Ea=L!^wQ8CMp>C+3bD${z>``T#4u__D;Z@3czN>GE3T) z#fC>p676~Kb{!TOc!{V;yezpu+HP;1#e2%f*-k*B*%Z1HhawFX>cb?7*I9fV8hJlA z-kukE9bIWOa>Z%f-Sk`0+5<@tJ2%gQn(6yht~p<;v}bc`Bh^3xlU7e2%C$0h9V*sc zV-J+W&?6oY&A4h9v*3%{g*c?=1=X4}C- z=D%zZWBKA3lFb|0<(z{0(5&Hz z#vOJoT0w`2fqrpC|2QVqco32P;v)^|;)#%ZT!3-J0oDE=C!&W{yx?^<`xVvlFBuH& zY@S!z>Cr+MQDkd~Yz%zS%Io7A_kP(D2^)5pPP(skq_@X!a5AOT7Zj(>N$=;QlpvLB zAM_bKSb+0aG&Ip&MiX-fkNC0ywca4-<{^t=kpnNBK8dr^wy$KmRd(RX`X-;c7pkzo z${nK4(m@)!KF1YS1R3yh|0X|Q7Ym;{IVn54XrE#%BtJ|ynoO`UmWcLc7MF`zi$_w7 zak#N!;NkA~6HD^ld`VQ&IP2d|TCQh2pDVv-KLh-W!dGUKCfP{S^)XbbXWa}X=6cJvfkvc-5vUqZNw)F z>eV=;kAz7%cVZX1LIctxICt734&KM$DloCdv?07%jy%S7G>@r0IcgaQSL=Q>3RGd{vB<5OTK3`24ybk74>Luv2x1WkGRiqePZwHxG zWJGbPvjiIh!oES<*Jllk)R-=eEZbG^VTji4Gh zMQ;q9WD&;p(CIAWosY<>15=nE6QY~WiD9RXb56wn?nyq(Gqb#N0TBnmo$g%6EP;@` z`xeKss!fJzgm!IHd)gi9-cpFR?MjpWpWe+M+BGHuJ(~)C1?J$biMXn*F&`I$Un>Ne z`Y2?$5~9#wHg{=IFoIJ&o^94MEQiDLgeflH++gG?`ccRP2+3b5T8|L8wR)V8k!n05 z5_dkbfAjH3uNpxDd33k~)@tP8 z1S44hS*bz&y&{8R5AFQqEb^_%-v-FA{YAgq)3Umd#I-F;;_7E+H0Kl9>ql&#hnvdx zaq{db_^I5faNWs8AuQPBpVj1R|02J9+l6^P+@5{Q-Kf@S)p`07>GBI66Z%?z=;OiD zUGZ*{XOgrVC+EQQdUO&dbJ^KKtL)UL$>y+96H5&0H|*Jk)owUWWn9X$&0!i6#8qJg z9VUrH-baKP%lGtYEYh`kQx3}zdt~S7r7tUO*Mi|r%|?;3w<}HFVOZ8?JWFm-AuL@b zN8tjs8{aV7@pd~75)a`;|JYlx1reb!X?CvtmCO>peC1EJqU@B#_e5a8)Bz{I-^b6a z5KCmIOEjNX?Zycn90TL=_@2TYZ)|a{{mAkujfJqQXeoADUIMIB0?j z4Yf#=$*CMPFg99O7t^*+)ul%GZc!~4ObRwW!F!wgAqmqtd)_u3Y^JkK@!-bX0V;GB zu{a#&!)3{GXsm{6rz=J>|BE=rd~k^j)4VT9m@8(zgquFh3151X4&}aB^=rJiQi7fL z>1bBw^XK`78!m*`3%CCsFcBIXlvj?tY;}vjppq!wN| z25;e>4LTxa*?>7&zx0_8;_Lq-XQjHrgrzW+&c*9sS|F&bs zI&JSfDogf~jC{HO(*=5EhFkp5rKN`EZ0{$UH!qcSf@@GD|J2KI_=JG(YgEiGxI)Lc zZweNo$_YlP$Dd}i*M}pc%kHR?5VFr|hm-Fi;-7C{67H$lS*##QRc7RIXmrFzjSEz7 z=}r{Ow_Y6jY}kynM7(Sl}{kWh0&iHe@08W~)cy(nsR;73JI*ZSA znZr^u(zM+hYI^Cb>(O7{3`5$-aOyq1W|i8-e;}cD7SGPi2i~EV(LVlrCi^eU1)JkP za7oZ9@shj{#@Fkc(U7O~f+&tTZ6T`uA4S(3R_EKte_OS<#bw)CwobNfEZbVGTAggy z^76tm*22lQ>*SN|-sk*~+0?)$mF_-JII=-09m@?Hl;3u}lEfg{9g#??-=BzDBb z!F`p8_XEV0Kyf!Z?QzGx>>(hj2G;!dwy|ZW!82ybh zwvsoI@F;)oa$1t(18ct7LbK?1!pMs$?_eb4)P?cWQZ9VDOqHwY%v|Q$ujYY63?z#n3bVTq?q#DTA{oRu5Ss7Klg9j9Wu zLw%L%s)Vuxxp${?^ta^>I>gy9KI6ZdKwK|jOPo?+O;p>QHzqiJ%FTtYf=z6#B6biA zxJWOc<+K}fdK)2X-4!8*E~YilA0vSEfXBAzfy>?wH>ct(?wXiW`pE7&4M)g@TD6>WRfpSN^f-(czAbD!wn z>1evZf0UVYl_D{?-ij2c`DKQR()Bg8Crl{m2swA<=|3LSFKOKXn{Ue_r2bd% zav&a3c&Z1_-PNMeHAVIB)jh}psw)uZP-Zg(M^)?jiEPAjsF(U}xIo_g2a&;^Bzo^NtZrAN6q zM2l6WB*u++H02ZqJm8WV{UOLF-g(dvjC}0fseV6^yE?utC7ex^mON^+-?}G&i^&!P zb8C-Nx_hv|Z$-Pv0;RAR%iUallwyL_*7Tsh2N-JQFSV4$ZQmxy%yl;SDh9-%5$ObGkNpbF^$p3$4}X$ho9 zyM0V5+wpx!DJjZb>ow7~f)2L2y&+A>jc8s!)??*diYE!7N z8_V}T`j;EH$3HnN_@8K81T;K>K(zvD-x&?kP<7Sg{?)@4Kefx zy|*qEpC#mmK}CS~t2c-xuc_MZhic8EBqFRI6W>B0@r9M#TuvOV1YYBlnSwYxv8CYm z<6_lgHBEn{ep2ZsjeD-aPq!|cPbN|*3w3*RZ)6TyJ&gg8HBsNjW``nn`C=@uQe;Z; zn$IDpfsXbyv5X65b zj9@5fV%0d8`rj#}(D@&-mQ%6VevRXgH+CYGp8YSjm0~{6CsX%?lJsGBL#D4JL21Hv zimxgB=n9*)mO`x^pC1S4O0P_>K2#K?b_DDxap{55Eb~O_VlP!0?pTZ!+7cjc*3H{M zw9VBIRgZ2P&vw=%X6Pc%kFGaR(uCoh3g=)=9OkD=-z3g@`b-*#n7i1v<& zxS(IYFq$)qI(eid(IdC}WsvN$hx^X8wHt4y$=ZlE6S+$@CGU!k|M7XD+^91=%N#Q^ z6Fd`{6hkj(xcG#!@7);*h}VA^2~j<$^mSBUZ9jJ6B2hA-?0a>_Sm7)_)|r&qEdlP? zANSn%my!%^=}^sOL8oAG`i_V2oJ zM)Pi-Y1uLkD9Et+qlB+BKAMa)@Rh!NuV2F%YZ@-+%)ZytkkrT*z39PSXN_1PoLDw~ z+E5$Pt}QxRP~+Zs-K0*$v~L*{NzHSY!tH+G|29-IgBX>jrS`{T%qK;#CK@oguLss2 zluU$pcg|2?s4Mk*@C&8cHP+MeW{x+4Fz-Y!e4QsFJU?~TyD@ho8M!_UhOpw|xj{S$ z?X=fG?8e|kC6iu@ZDbnT9*p!`N9cKj2?gLymUJ|*-S#TM;u+tk#1Ag$t1BUITT+m_ z^psDoRTsGwn)|Mz%JEDxER$CduyeTmmS5s=?JF;1LcV-QJ@)#=LBA#mqvq#FQt?7D z@#@l_DW(b(@Cyn?s2o&0v!UKoin`nv&|W7tKHSKP z`FfN(;`vJ>F(T`K5EQ!kjl8nw4nqx}94i)Zf($i33$6K)Xu0xl&oT zcN+xjNPc`fg0?2FAlp)qI;_jCbFv>F;(}oU_mr-WZ22Wuv+oMEK0>E@{OG}nBfz)^ zC?qP82SzwhXIPY1m@z7yip_4;s`S0^=zi3?6z>a}&8hV8OyT5;`fS?x7MsE4K5%_H zt-7hOc{`;HcR(24_u+8D4>VGrIxgI2I%^h7mrVaCO51%8ve7vtsDGN=&qJ zX~txksL(e}lW*(MbOa9FeQEj62w0vOK*Y$$KJvmCca_jWwbK#aUrhSM}n>B&ftwj?TcsV4pJ%MZ9xvE&QXjcrln6 z^0_0d8R3bE#i?r3EEL28!o3(H@(Y{ZHp)rvu|7*~kY}xmv-{($9ZUa_Nyx=XN|yBa zD77Hv<{mkKB*L#!EJb5#M7j9JS$C~GtPX%Fw^&1@k{*sIcHI1baC9aUbC@^HbwBa< z7E*H=JsIijCUq4|A;O8gC|tFZi~8Ib&;U2`rfllxCG3kM41e?+cCq8{UevrSx7vxj zwcR#WX&#xiOKzk(&JTB8Qd-vE62H>G*xF26ke&Fhru*_CtWG3{&Zh*dW^} z*m(THNR&lzc+x_f8GlEE#D_f}jW9LhOd?O$S{XzDKrFyipAAg;vt-*qea3)~@@8EL zwO!d^v6vpwn(_dST~g&$aHvc9XkjCs9^3*#{er$~1uH;fb+?cjsz><6fUYSKLdH^Hy(?`9 z0emqqtXr)u?2mvxZFl+)^--2fu6ph}H$TW1z(t%fy^0`y)fm4(g{(nq5R;*{z_s@U9%^MQ^+0X! z^^b#9H}3Dz5zTR%M_9-;JL@E;PdG$d=o_;<{=6mI;{BPCAzZp8f?N{c&Et&2(`onC z_3gR4=&QY{4md~aJduyH+G>Sc=L;t_9DvKVly zcJJXq2~%KVFlvmc`6Ba`|9399bS_MusmIEzxf8Y-Dd1a8JoP!UY@@i~&cyckflgjJ zZy;YVIxLnZeRGh5m>*1q;0lKA#r@hsVXXP-^M>c?9JrR`VrX)akk)Ot%K_LaPzVo_3BS|^Sg+tQT!37xG8HMJRkY>sI2(6<_&U6_Phm`sR8GQ) z6T>QY%IU$s-qp&lwova;-_`ANvtK=&@X& z^!UFq4W?T;=563UYGnOr{SzrjJw>k*!QI3A1p{8?zHbn_vZ|;t2s!bRF`#GAM|JHv zssz874h${vCV>z{{}NMAF+YboIGIiu<#E@~LPi)+>3nW?ys$#>%i7tnF2a2v^}upR zeN!M$-I$*9l!YMvJ0^%2QqX-vJXOz#Rmr1n(jErU5tdbWOD)V$|A=T1SHJ&Hja08b z9PDB{^_U;P#@7@}Kcoq`?-V|;a}HhDD5lUz(CjvntVGkx8UJTcH+rZkTQA}FEB^R^ zoM` zAlx0&LBe58UZ{|J!iD1uUqwQqG<&=DJKEKnvsWP#Elo|+>F|<-^CQ~+5jQC_Jr0%? z^YbdbQxUM45j~pbUiSB-4a%K=xPJvyd@DF^dUk15#g>PD5&Gj80-e$7J+%Ar>_5YQ zBVaChwiug98(_#Wh%n2QatQv7Nb5{7=9imWJKNhbc{D1dv5L9%WXl-cI`W5y2bf|)>yPV{&Y&j&ir$SmlLmKCgytkkvO$DA>LLU3!L6m zxqero&xv`}_K1?{`zTzuFVay4aZ0|w!oKb8zX`o~2fX~9;p(d-`0RkoKoJxKMdVxb z#+<4@7zCgW%a3on5K-~^O;bE!v~^V8{zRMZVby&r&3rNzeA0N+yKoEAq4+~DwoODp ztI9jo$red@xD}*n@?ZZxgwaszs13JZ1Pli96ayYd&>Hjh^Wt9_t)kNsNl4ndkRFNt zF7C`WDPr|=)c}oRs%b}xtgV)7;Qew)f(16?7#_LstWMRFaB0o4vTRvaJ6kQKLDtyE z5nGaDYn>6yilSWrVChL4xM7x`O{yC+um09a9Q+{oHH5t6W=uEyxy4ItE{S`#W>L1d z3S6*5{tg7~tRyQg>CS!8QJ&IO?=7!EJ$4rEX-{`7Vbm8=;2zi4Xz` z=z*RgN^@43wMP&^n<8G6u*`L>^Pm9f!2`?iEbqFaHta;ewH$5d@aQih^#EAkVAT97gd6_wS86i~o0)nqa=(7qh5$)XY^vDw^@ z;3)r~?fpcl#2r=9ZO?>3@ z*{C>JsM(SPKHywzsRfmsIt6Xf1?NTg!W|2B=MSrfcJANJ zI_(cf1p;4*`X3Jx@TsJBr^nC48Xm^9D)E%m%3=M5I$7pnJRjicyC zpq6ed5kc5WZ%n@y<=;8$cG|r6RhmEu*_*>VKS{PjMWV`G^HbrCK zQ-5wGq}X_Z^VvGSp*2SbX z$nYhdmIxRQrxrLF^K~Xy$HH`tja8;O2jkE z8jb$eG0%#*th(j%abQ^y0BKu4Z-ki!&!$%R8(pgt2*~lt= zVg-i+24!p`N%uC+Lq9j(KTl#jiZS|g5l+I&n%Y?n50q!pb3iE9)|iir7om|>IP{j& zeIxc?SA9ea2CRVI^|@C#Y(-gpc|pRwCECaDn~!zm^f7x$tC@U*WD1RcIsVblnls8+ zqq1^XtC&?q`f`>uuJHA{`Jhc3y`VF}zu~j0qBSRm>Dhs$XF{}&M2ywN);C5VIeBLm z9ULj?dO55fzB9cbGD!QlYX^*2sl@ZR%Pq7)81Lcl@DHS?UTXKlA=Z&YJY*J(y;=K> z-OEJY*1Hh&1Rm7qW$f;W*Cr?zt=(6GmVZ=Z-dA^I&l|JM29g71$;1SO0{YUF`1?!P zwHkzA_nI?KapAx1X-?+k(CT1;rdWFeUHjXvhaRndBCsmQ#6V?a|n|N^w;kgxhaTHA31#Hn5NIm#0&&1$mn$wE$4VXTG z#!vh*la{5W^o(50VhyZiT3J~!Dl3Yhvt}Qb+0?tOf#Ve!%M}X50eCYQ3}(B%XTW51 zVV5~^(+S3=QcLT!P_W8%14pH`*K2Sum-rg!9=of$_Kl*<(TCrdlTWaHh? zYDPkYJNNsf-30g_8gV(bpsQ)uFu*Z`w|&9_7Y?a9E_Q?el0|8B2E4@B!Bu*bMn94OD1~_zHWeY@P(&C#U%#wrP(;-h?pNm z@{V+gLCI5pg&PfMG!cpW7?K(Fuy$h(pW7IbgRkae?ryh#gih9?#Rb%I68e1wb}{WU z*VHoBc*LzkVV`u2(!&jL0sOJJB5&ZvfZnJrZgD%cj}aF6lD2}X6P^XpMU(lEF>O3R0X_+WnmPd4;w;4UXJ2lr9QAlc_iUYV*{cCJ z&Ygks6(hdd=UY<&t5>t{u1<4Y8=ANAfXRlGV`EO@@!V!%rZm01Kpf08M`Yml=DEyM zchA%az?Er(YKmJWB3*S42=h7m|Z$Y2C3CTiDb$TdA>=noR6ON zwycii7MA5mkY7kL$U}?>R4V&}|LwQ8A8=h-$`9jz1j!u+JznXdfl4ZBqQGJq^{QdN zM5PK6sB(!1$e2JFCAK#$bjJK_8C7Dyg{wRIFly*!C~Gs#n}4pB^ch}!=OB8+^!E$a zN7xxlY2=tm%~hHJ2;tod=j3+^&9(Td2iaMcfx29R>1*0xl@;bqROxcPx_1lx4H-5= zr02u)!}mpb!xJBiXhS1PAk$&&>+|~Q`3wQVhvDH8)^GRv-2G18S{pCt! z>dG|Zk}VMyJo(Od@Gz~y=gyul3JG&;K&Um*Te|nyyB)zV?a1NK4xh`9@}X*ghiYvT zaq%oNWxk-oVa3N3HofrF?t%Ica^Np%X$&T!GYL%U8rcVs@ic%Zawx3w<+;n^)b~F~ zT_^I4l9zAv;!adjv!(X!3k|n$a1>P-#~iqDa3uEwo=$>m3g`8+9-~YiMR{$(SalIC zSD>>N)_cjrXTgAq=l&JZ`4v>NQ_tFF(ebBvI+GPURBsIhY`_zzL(-s3T>?F@gD7(d_8KluWX5 zO67%h9ffHFJ_HIxX{!8_(EwM(Dq0%@ICe@`XGf2`g&9vHYBge=yb&AP1vg;$xHjbL z$#V`$<34*u1{P~{OIxo9orBI3jAhY#sO05#9OR>nX{XoYK;m!xo+Nr0z2z7DhtZB1 zns?Owu)EKj^IxvLzHgzUQk^3j7NZ?YdNY-QJy;QdRFw-6DN` z?R|?zul5f^4a`lZJ+asY2`ZBfkj1HW`IMy32yYR#1JQ*~fG6m%X71bS9rN2=s|x0w zjEhuAV&c2kyXCv9O0oy%MjPoN>)Ou7k{^^Fc>;aF)0dT{mEH1Y^GcMaMxIYdkiXah zXq+F^0>v-OG1;QUa+nJD9w}OQ5K7QwH1(Dqvs2K5NEDn0FdGF28S_bM$cqR`HkWgp z?wO_M+VykN?K9{JBYM!-uQ;(Fa+b8g^@<@;_Jo#MSusaYRTfTBKt0W6#Wtj=7=5qH@H7&qmKV@Y`K-PB6W~-oN9E!?~Nlj zH(;NqP$<=wAdW?|-nsp5m^jKgcVj4MtWcEyZ}vX=@A9CJ3i2@gab?_h1kp~;FsNuRXpCBIXzOlatIB3VWmsu4@#z)wrZE$breZo#)3 z++w0jwJvTY=DhWaej^k)gWgmlw2TA2el)^Kc8&}pOj!H zV8!<~UvT&ea#vRk#oBixV9gVek_55bZTyLl_{14OM_Y&>anKXFPsvjTYXinoN5Y)7 z2jc$#^v?JquFy29;;FUej{AfDM8k6dV75+)8fVu<5_T##^=QlA5#1nYQXFvMra8vz zBxe`GUgPNgoO_y|ZR`4K z(jTyi&dLBa}b#xwuvaTvc%*UFbJdR>`0>M|(#cvR4)8#ueyYuZW=v|4`Y^-3;s+{*96*n#m zqhC(U4v_g4-Ef9jR0W=mB8shI9N8W5Dd(Qu5q7JP2jXeIK!J}qEZ0;%kkvaD%pe|g5t*DQYM!D%|-6;u*7 z*}CkMvn3y&oKyBjo3j^^Cvm$Sg!T>Z5-pkFn?EhBaY->9D4<{dD?h2KHR?aA0HN7v zwAARZa$ur0Gr9P4Z&|UDO2gLL;8%Jw%=<>R|lGJyZ_ZtwI6UR5i;88 z>1)5M5vxd$#FE15A+NMQS_(R4elpM>!iN6ab#J_BqB;x$+8?m!LF(U>&gI2=dO*yQ zM34K1t42)#n(GXNqmTkoSgm;I)0P>f=LQ-z-hGdj@Cu3c zH!gBJv;)XU{r?06O4T+2NC~=Hlm5%ND^BWU+xDgpBHMm5$SN>F4D6FZ=n<|CL?c|P z9=Xe@*pW$wD;Hxo(UxBbn#shLKx7k64($S?H+u%RIPb_Tm_;F zac#9b*cTX zm(%yGzWUxO7jNRYm>Pr1dC&Lanuxj9@L$`JHNY#?u;n)z!hF4caK3s{2~Jd;2i>G5 zHai%ePoG`dN=ttr7~TKs?y%0+ns1{*R_OUVAJFRZ%+IT1pzY?|Uueid0 z*24u)9lx`_TpYzKBrlZ3s`!7@lw^_Qv1nU%*#s%Az5Z%@084mu+2Ye>^C4eghLj_A z9azAbAO4*jhMLyLU~@-mF^0G{pNyWvU#)pj zEqVc}ni>W`nMzVE%#q5KSq8HW%IXl|-8owHLdk3{27nWpU?jz6O|(Q1$KeM$7yfn_ zO^idz6cVWbz9ysw<9|#J0_4YH1U(lY1VCT|vyo#o`w!aSSQB z7b`7uX|uX!!60(vm-Zh`-S;)A*$d;1C$b7;X8rlYVXc*;?dC0 z!=wQxc6JifUM^psA#287tK$xjgm0x5i?kEDez_nT?$!3M1aFN{grF;;H{fXybiKg{ zQN_U|lKWOiW388>3Yb)?sabxe!7%6J9tEr{eUAPi8(MbxJFva&x0`IrFIeq}{imhf zLc_+m0MgQ&m5oWo7p*Cy{-(I`Sp=Xn_JEdf&ymEf2d{aHvQTTc*J^?CV&fyfPcy(0IgP5 zWvjN$Ui}-Yh!Z7d@!Jq8MDJ55HweT_D&Eu`s7l7in@ZOFtVJx&B41U}5{l*{pRTdC z9|}vj(NYt6Mv1O{=4sN8W;*CF8VW#rudJp&A5YGQlsiGe6@b$>#D7!~mPT;$=&FSt zc*{a~#L|mSToCN_boU0KYZehGl72djdpG@1j(#4G^djBXzyb%lQd@7t0`l%zu;tXg zinbAr&|@%FQUnB;i7Wd`bDq;Ho%^^FLVn-Wh{p0p{ zPfEDpOoPFaspAl;Bh42=&*YKEKb)G3D68+gelaQOP_z6u4iyn7t!e}e(7A?o*}eJ> zo87=)ZSkjZ3fIPb{SgpR<+0(|9d)YYM{O?A@(`z*93ipdDirbaZEFCj1isQ3^M3L3 z!4+J%3^!tcWHUrzsCFkGCm>yiBu_fU4c?(OSD--SkDv*6=}Sm2rKLN^TL$`7rpTJ; zl9UdX_nUhk#m@^jjqtqh>CMNWGhS*ps^Oly;gR^ZL5D2(TfnhvraYCI1lK>}od$PE zCYM!y@I)*93dsicw8$fi(v_sXoixg+wnue#kAdzS5XsrCe0P9EwG>lUBpQ#o z&Vxz<7*_*GOahRTnP$XRe^nxtUseo?pLT2^%m z6CuFNe!g6Ii=6LKuAnS2Bt70KBH9=s6MZGhs2MT!!uj({nzuBD??Z57*gRGH;!9t5 z{UIbMZO?yQoRwQ&5#7@T0YL+7rhrli{Yi9kkK#x_k0Da@(WKz>*zuL@DtG6TJccU* z0Um*5T=K%vpj|A!8-t!BCV>f+y?#*U;^0iiqq@sk-)v(xV%=-6EYs`LC=px0BW70c z%gu_wPlHG@dI`}5cbY$qg*<$J0=Wz}Eua1}%e+KRI!k*uK`|x+xl&Tk_q@ACPrv;5 zT5IqxGcicnvr%=h*mRU|+QTv!UoWN8oZy>>#WHU*as&2*6jJCnsKCy2(YJ5MS4Hv` zPH&Y@C>m|m!CqKUGbAK_AJMuQAA0o|P+#IF=(GhX@9a+mI~++3wp}(6B## zog*{-dGlVzv?iKUHhfBXnRk(jvc_SeBqQdB}#eJG3Ecgkas;#HZ{Qs-^KaiU8S+PjWs3U28 z=fCcoT+w|^6I87bEd9q7Uxzuk=NFY{(nw09USZiUngiH0Dx~*=4JLG71O|o49;~S4 z3OB#v?6B86Vh-k0(-tg0TZ>7q`tF@dWYN^Htctxq6lwIKEB%O+xZtZ?>&43KB2@@;ss!C%Nl0Hgb$%ZKi$s%bh5efJ&@R0P{!MYuBou# z;Tg!H$788Elr8*5-V%vD4>@xf^*|gmD~GZm&{t?vZwyJXDlUr?QmZxe-th0n@OGv{NE%7kB!3l$0#x?jEJeCW zGtxH*lkde*GE?x5BV1OEp&?BmZg;7?`bm@20E!p3S67 z>8T~u_Jxh5ty}U7nD7`(UXZNm<1}T}c%F%GI^PtHHf*9|yCQ2{kca;K?*Fd|=dvP4 z&WxBtm03$byGD~O=oTtlaN$;3^Rr-)>L6U(fg$vYM_wfxZ||PbX#y5GcP6e%Ym0~=^P45QjQ2f|I-<}De@A^-k1MBf5>OpV!YDvemLQ7=fm9>!k=fnHK z5Tx&t!W{uFL=eB4-xWsWT7bt*-#hwsQGO3x!`~o^6c##IP z##Lod0mZ=17!fa(VlSkQN zW=U3hn0Hh?Mg7>r^ag=sUV;Vcjdl6M674pQ76;mL4VFG23T&U5=SrHe0wsw#f z5DIr}nc?(XU(10%D@haZYw0<7LS4tvY2(R;^a?FksrTES|JBG&6z< zq4Ro>42Lt{xx;e8t1lv6QN{OK2b3GPkB7Xqcee4|vu50Jg8bqxm{?mYXpApS9%lv`tJkv0;G1v%AENSx6(3`HCBnc&=$?*_%oS#k2Fyr z-8_@a;sV}}{a=6J3g6}N!l96V3PA9dGMXut^%74R;2w7-G{gff3|Y_YAWAPSc7!aj z9n(1zpxGqH>?HkP^agN;$A!#!H1oT4+t;MExj(G1ajwn*>qA04wV^U;-wTCcNlN1$ z=a=KN>0APFRu%WwwtIpOCHls9dtidk_EQaHo?@T5XSzaV0 zWQ6ziX^HCj-sTmLfNH{DXDuEoHb1E3?hCxvc=Nd@d%TWhLGn|g zJmdL~!sgw_Rek0dhg#5iL+e6q84yT1+3R|lNj-7wkIap+3(i(-!Ui7QPzp6b!Jy)1FfV>N7KtCW@EzzQjm zW~K@G^(bHJ_GKtGf491KC2KNY=yCvt&SKQiMC! z6(+J;mL)s_m$YkbDNb^6zl=6(ldM^E#5v&MY|v5ze%L?0OX=S#J)cA19Fs*<(m-Rp$XSf$MJ zZ0XZhh{}!>vGRCDl|Ot{!s zne(fjGx~Z{*lXsA%IomN>eWGv#8bNemk!?xB)q4U@+h6(ux$!fbmJ}I5i;^(MEo%o zH01}(f{8N071zl7=UEW+dHsvY)>+pL0a6$+DWg`r_p;fxPB^)#N;WZRhqWDKk!d6? zdTweJtLC8BtoNDHes|{{e`s2*Osc}!RX~u4avSX^OJ^PC3?+9v{QGJA*e6Y_3Jmn^ zKr{)d9xFL{Bqd;ItqQSfn;jNrl2sb_KA zjT`o+|0wiq^4nmTW2d15dgx)$9si|aPuMqUARy@Fu^>y}B1*H|5&5wuUDGdjD7HHz? zM#8~89x+24L;9QPZs-P*Q*Xe)Ng#IJMbXT1xR_G;%&VqYB(wkSeEjwv)KTsr_~D<< zoJr6*#G5IJ>tx6YMuq@^w5P8@TGthFPP=3!&a*gJ7`UAfRi4Q9u1(p@Or<+wYhE@VFQeLW-i%?nYGu zGu?NmMkUbJo`X_ePG|B0&i*dHU#OKzZX9Y%dQ7c7lJ1l-Ixd?fbE{K$S&OXuKM;>d zOa%b)3*w|gweDLdpoX5N*tjd+^4Tm2)q9|t2@f{8`yc!nX`##7-rt?j=mjaZV(J9= zYx1<0w5%y3Gogly_tpECIb!`&IQ3)=ym6NZIC&07ImPH;LGENVo=ZXsFVt8`=KmhO zMisN8-uGUO6zE3)nJxchQ0RaZ3q)|j_16o0JoB2oFMZEoO5_ZIt03~4CnhyAXl5!< zJfHwc|AJ=kv(I_K!}o&_j0)0od2SS7pmwzv^1Gt_G~I8|ZlrD8v*F;M75qBhO+mvr zrS%d4Z@RAEA-oD(5E$?@;u`y5M%dxD_g{QTxZSgU&@CI5Wun^Ds|2tY= zI@1!wL>{B_`UTY&CqI9{^A1B^({zV3nXaUNLRuucm>vM0Rlt9I*ecud4ee3@1zLKv zzX`DNR&Rb}J!=>IRAWyy1Q=s{hs7BzT4=!xAs54K%i}(JTRFCF-cbEG&z#+WU?!0{ z$Wk8e`k!ZG3H@(5{1iS-_l8Ws5g9ca>}y;(y_X4_1$_xBKdT)4%n+^UvOj%acT6kw)TCTqj2& zKYY`g#16hmLp%O(-b8ghlbaj7qG^1wIO~PSH^2M?+7=lKBnM0DaIH67zH5{ATXKIu z`bfiVcx-PGyuv~HbzM=Z%1!@a+&05(Mk(+^G#i^R1|_}}r^E3nuPH~hrQ9&*a?HO1eSJH=kpA<$ae2;c0UiWog zNjY%(YZ2E=ErW!^gjaaX@}z>QU-#SJMo*m76of@5`wyqYgRHOG2lYNQL08=*7U0bM z*mC!tYtr>P9w;i(tFPe0z~|E)Rpy>z&Uyo$hL)gyGKL;c2Ow_*49$;5d~b?(v&ocR zQ(ElBF$E@kU#D)k@Bv6r00EAiqc*C6?{JhPle8?gt{4|uozyUYF0#CjaKyTkk%PAo z3U)(u4bF&$({UmGA*17DMa|no&omI;QWI^l5*Zq)H|Xwkr!ZUH73~=x1V1w9Ph|kcea^*h{0!Tbr5cJ4Nv(2sDZ7i*p&ZW@@!f&D zR{@@H8k#c02TJJbBnE-d{ z6FaJWxuj8R4o4!5l;0pWPmmWg4n$f5=U)i9KA-$=Kg$X8pM2M4gBz+vpw z2gUy&p1;5;lfnXh?QaivgT*pPeZ%Xe_Itcgk?x9X+LqJCCIYNyT)wpMq-RU3Mnh-8 z;K!kj-EPt6cgkL#lw%sSw{7G|_q`mSgl=dARLJ&7y3f1MAz15vkHiUDxwEEhfh;!V z1`PnwCa(^c-(^ny4x!`OvzI)bl%Ts7ZVHR_cx@nRp-ZK>D(f?P7apYPz>$BX{%IY$ zYZTwQU)HgYOT+jOo&K6Tar*p$dkWZS7>_q{a;7>d}q2krN7f44euk1!Du43)Uj!Q&|XQ=;*39w3WM*^KWy=Sk{oGj}?_rlx z5M74PSD)PVMFyXc5Lgh)6;|Lvyne?lU7po`1f>C*;QM~(pezNvI4E1??P`Lvpd$5Z z_%pW6efuJ9q(#(XzrS>bTTSZ#$Hwhalaezw2)Vb8e|2pbT6s!ygqqYGV<2%*10^5g z)F%(Cc=&%|0)*$*9DGi!Uqdjcgins2#`opW?=+Tw_f>v&n)unlZ(VMX_gTbP-BY64 z6`+4HFdp_8*Oz1J#~%+gDG|;)_BT1;XaRV%P~{ru09{cWDiKV({_axEPd$&>17?aC zU+ssXhg)ZuE+G(pgig*xcpJ7aJNL4f7G*^USgz!r_xquB`O(XlQl9o!(#gWesoj~|&y9UD@HE#pyumKbADoFK zCiWgeYdBd#dm4%3nr~F>vK5cs`&NqeH2Ln=S4V~p!uIbHkot#k>O0(=@R%6Wf7e$; zS+YX)#x+djd7~zcAmZ9wlqIQXcb@L&Pj5qqXMuT4Ec*v>+EevksrH$4CUI-6{*uv^ z+z&DkBB)U~wp$v8#1toK2gDpvJcc6s6=_|k@~B6qY2Y8)>>Mcj#huaEXQZ&{OOs=j zv9H`^!2#)Cn)*ZDamRZb#`lDFg`oyt&(_R=1I&)1>`|ei%AcDC=!Z zja9qzQpq!&-8SGh?J2>CD|*Bi7-?Dgs=WRlJ9F%_-V#L4O|+?gi}ry6PbZ?5%*9rV#^YXDqH+L zyiys2tmq3MQEdFgAuQo{rr?ny3fQNm4TFHZ$oFyF!98(5_j)}Xf^Jswt+=>DPtmV> zFL+uoWAx7c!NUT1R-fs8FxiQt*8|cZI%_|u!Fk|SA!!klmKueY;+)%L#HE`X6###r zF6>MR!;GsfAC~}K@N?yFaWGHYM|SwGQW&kF@w265=VYM zKBF}nZT@?81XfQ<07x_aXgwO*%#}V|)@t+M=I4&E&et7Z;lhB}K3>mR7c;u`f<}vY z(C(8pI!NwWdB#|Cp+Z{bsQ0ypJ&Wx>u@37*Jd!i;&L4aQ!Pl_+NnZAw5@#jqC-f02 ze-dgD$G2BF*^gv-^Q>XGY=78@?6Tne-I5+(_87TDl) zN_rIMfSY{&r`!n+Eat6y@DDz%X<6eGWPJn=2p}GexBx?bZ zp0>;k`x|#1|7M(pqP5j~&|^-oSbApvYpY}pI@6E-axADLx?qQDFejj_dzT<4-HT0V9_MOUNd~`#VzeGXjU#3x-G7)6o_B1z%2NSQ zH7M#OedY%+z{~-$Um5ocjBwGH8z`P!#`aYbMW!u~gOk!XSivo!e_eFY#|k(r!V$oX_7pLhurSuq0BzyieJ265+ zTA=n+Qgd;A*q8_kFWA9o3)TlMlbI2_%k-+SBno(w@h*Sjd@t>mAzPJlSKS4v9OlWV z7=;7kTL}Q)*n2K(5lAQ5%V$8~5DtJ9M$xl9RA$WwAF*kWsq#w_jotyOxm{1K4 z+$}cwBsv0Ei?N5l>wivl^Bru&CBw%OQ5qsDCPq_J(Mv2ELEY@0hyW2>>9ob|lt59}{{u8DDv zaSeC#lZ~L%nj*_FOUJPt%@Hyfux1+%m#rsPNVOxw80s|$G zATB%3c!lHMb3uQNdn5=BUWU`g4*@ta$Cv^bCDj_B*xkZ=$`NMmp;u- z<{6bf2u>Tock_!6sj!V*8&3_eiG-(uy2C9pgYLe7a@Rxj5wB(vE6`5l(`|?{(>#$k4xdU%#;x4b1AT-;_?M4L zL8j&IKmzjqnl*>NJC(|nKN64OS-3jQJJLRRyEfrj)-=3#isB~xh)py;=Z^YPqdmS= zP_~cNE^GlfR_~v$Lyh#LP4uxRE_{;aLMV;Jq0M4`G8uL=S@}^+9}IN-y`AzS*U=KL zsvsI+Jt9avL{1>O02mX6F9GvPG$T|-}xgL-PoC zz4_PV(&e^6Q3$e}6}Ctu)*5!tOCyf{yi;Lmw`yx4tgd}FmTo+_^4e=653iYhQ!KGt zwJ+pX075fetfAfz<-$?vzPBro@XQYQ1XHKa2J3Z+EW7csQ?oSFFm%{!on@AVA4B6X zl5KKd;a?Qa_U1C&9N0G{M@I|Vmx>5h(&HMe11kDo)!0$*EuJV~byFO4u-C3Hh67C4 zGR6|P7?u{)Ze|x{W=zrv83@zb=)dOX%EViaV}!qbq|%JS$>Cq-$4yPQ+S0&*Df)%^ zZC)15ujpi^ysiK&v0c^|&O zY`6$xzzj`DBHr0QOku+g%V>In_^vU>bkihQ@4Y2A0Myqk_sT5k^o4i)+%RR(M8!9n z3AvzuK+9L`&Ec}37$c9!djXKz6l{Yj z1#;!1P*E@kpH?k0Atp(U<3RkCw_8{jaPiTuvi~_xP3iVKn5=Ddk1WGag(JU&O`4cFp0EHQ>A{2NiZoC z?zh^xg?rIvt(`BZNJH4DEcK%`PI9c!Fy*wNyk5AHCE+KuHUm;2P9D3y**6+#e`*Xh zuu}H6zmVfHDLut6%KX*R?Q1a8#vvf2Jbau*t0+)v9KG;^tae0gl2MPBiIH#M2CI`D!UwSlWfwycUHVdBfZ%yRI$kwn$4qTsF`e2SjEWTI?Lv^Ii?5ZCY z3}7IjujT9lx4SC$V;@mk%Rg{ziJxbC*FknF8=zUP7DYXK$p!k|Hs!VQNHzObAjPg; zWJofWe1V0xw2tVWh&)oK$WGjCzkd6o`7MAtvF?Y8{)^G>1F*#<;1}d+i*3h5qQ%A2 zI#Ybj%8JIGZ0q&K`o+`1SeB7Wwa2}zk&wP+ffWMjvb&2!AX4@EC4isDS!QOp!s#H` zlyvT`E0d)vGny}D23@sjjZ!M>q2ZFxJL_Ue1_+}S6zr}(GwLW6YHJe*oW%Hem3Hv{SHrn9BG?>Rz`0DtZzP@AD9LWVWW$^h3K zZNgW?%A>ZVdM%_&xh3clAFmSevsXc)HKD?pcr4M2M!zZ8UJ6&-x1PX^4CPS8jZc65 z7OtRzEOL&&_7EBUaPK9jwyDehv7PyJ^=(m{Jdr|Csn3Y+@>@CxD>f5a2fMhe9f}P5 z!Nv&GA`r?%aIgsk2;=K5qb8%JbU=5k*bolu#k!k~U{VQnaL?BZ%nEY0*7?f4E`(9C z5jSEJ<~l8ym2vuiJo8ClfVo;K(#7^)nXUZ7dwRM7OoU@rGf!=p3W0>3FS&2qwe_tY z3?(E{M|BhJx$!x4&e`7s3Z7@cNa2ED(i!OSKQL;x2QZVYqJFuyrbOZ;#iP+G_4U=Q zpK4g={LOc3MN^HdaE9xGV)E@u^#6vcODtZmbCwm&{GQBL9vf`yNQkY98c*i}u{OlW zz1ii($NCGXu$k8ii6LL?^3&=-snRvlf4dP3qddjt4D3W~C5QF-#qPwuzf4!!9BYiI z_p+4Q)_ThWkg|%3d|^M#$BK@Xr4%DA$Z!2xA%%^(`J{C_GeR?3?91LM7y{1$OyGYq z7WOOC?X<}w+Cwlv!k2Vv!_~zGz5q*i|1SMEd~wm_uE>jPT4SEW&M|^cZCNykfQ$$V z7@(ElptTVp`bt~|nn~Z>MBR!iT_>mGv?A=)Cu+Ylb=#bGV(y>gMQ!EoYbm4BsHp>( z!A(9IS}IcFgo%0gsX>&X=oQZR57cfCcPcN1vjJ=vkXMypR@%g(z^g!mUFM4i>*0@m zBWBq^A(F{gHJc&VtZOn}whbR!Me#-K2*9Wd=(<2g3q$VcW`_$Hdej|^_~ii4?&k%` zy2Q*!aUz9p>3KZ@&70@EIRyn;2)_96mJNu339DiNL=?FG>!>5TC?=tZ#xE6mDRN}X za*BCaa6E2(8u9y_sX9yTINISCY=J_X`6qwgR8&A>l5oth*i&wB4%W*bI6)>5tqwLph1ex>;4SMr4BetjT`3}jGGj)is9q73L@i*>hectVGieZkmLh6H5#f-P|fvF$uOMQL5+tMw{ zXAwG?BT-w;;TKFVA2@9rvW*+0vKfCQKc=-cZUYTbkJ*?LeH zXf$4_-^#F93y(1{Y?=z9vjo;@zX^w=<*YO`3IxHts2T^x6qkYAc}C?w;2rK$mF4U_7r!+;Uvkz3E;L5|N{VM=yfDx5pzU6^XBw*4U2UA`j z27(hcdq10uIe<*c-1~-#b!+IA)L}r5f#z;fo~FSNDX^qMBTT=NDtkdVFtVli?5@` z)(dK~K({ArOdby|JKt^P+|HGa2lD%Qj$XHrx^c`O-Oz zShSV0rRy*QvEt^IyO=qiG|}02YJpnruy}c_cfpbCC!DL3JK~XHe-aSbF zbqU`4V1~w$j&{Z-kYOaZ)MEv2^WMr&l#?f5?{8T`l!D@OTkShJ^fXZ)F-;q#k?*Ua zt(8}OrB6QA^I|hgw!8YTK2d?C91h2%mw~r6K0zr}F+zFjfP&MsV18E?yY)#EMQ>lj z~!d%Md8 z+ERfy(KeYhD}c+S7>m+?%ikodvV0e#r~Ez9pIV`_CdQyDjPbO*B`~t%Q@Fr+jDVD} zKZg|#7rk2YrLI+0tVv$1TAscnuS~299GiZGGPUmHly=5}Qo^rC7?jL^p33?+MW#_y z_)#WNQVRn@JXB6R1mR!CTa^Z}=|Bnf{nS?x7RUf}$78ursTb~uFGi|Wh|oqrrWUk) z)ol<%h_`bVPLXo1q?exv@?w1N`3O}Nwe-P&ihiypn><$2x?0rzc`F*G8cSmLmUt3+ z2yG+G)D{f}zC27QcHC9C;>QsCI-L8Pm^5Fr$pQ2yqso7|3I)A^gR;G|L)KS#THDkfJ+GMD{bImQ8WI?VMv*Yd+=*akB~1WbzK%xSYp?m zTIG_lt;bT+8HYe?G+z61`duaJtaoHj9+RlbECIL~kt7oknP23oS9?t$6M&+QKv$HlK`OOyECccf7M_VCc4|fgWfHNg>u(CriIpkY5zil^T0fx%Jc& zbWf5^?(;Srn7iGw_1>U!cA24cD@;-h^P;L9q~y8chG`J@Rbp zyNF9y%&C85B#FPGy=191!T`DI6w?l}G7vErF43|7c!~4>$TCx)M~|0fXb`YPeUnQl#5#!*vvd31 zJfZp00grHpZ=NAkB`TZ*sWWogQ%pG^A)q!uIi8`W*yIgP zc|Y}KZ>jANnZ@}44SUP`tCS+3`8b>|4J_V91W2;x_SGJDx-F6;n1-&noS*wZZ%X2z zhlDU(La6ic0hTR(u4$hgJ}~uobDbw-`Hz9w6$95F>2@ zj}Lquf%?dbVk<>wK=bfKtB?8qQFE2^$qpc^aHUKCy81FL&N>1#NE6*DX*CsgmMlWT z+)2KIkbRtmJ3pdDyrFbPOCBm6Y>eC>l*H#leZ9lzROm8`t7yNbx?*c7w5w-IFw%4( z4RKWn>yaT=U4(&Qc0wI!V@(Q_B-mgRFkxIVLN;F0Hnk!2)*+Y6pYe@sG?~pQ^rbOT zj(0QEp${?k_Lt0FZiscS(WI_+#Kw;?qz{)whfn#6jQXQ-Q-8}MB-u;0;YSk*3K;V& z&{7#o+U$NL{pv!d<1tmy4K&%{85Z;z@!$f%Gq!?5$7A_9zcky=C%he$_Arj5Aa3;H z+TvZ{h_nzsmgy^xmoy`rGQ6;ssB?M5U{B)kXg|}#fYlf5%BTIN`yd(1L1Mh{NT-u< zC50h7kWq_;UTBK}y4C@_YmE(gE2G7LSNZqm8(~)Q6hiC=MM8#BDxThlTdx(Jo|MBI zPaxU-1@LsJ%Mo|IT5fh2626a76yMAICx=$m$GEG0k2oA)y#e}N(m|e}A9dCz z*><kzqW^??1yR(>&fXy$&#&bN4x`_jIPS!YaE5a-1xTamMjVcg_KYVB!-x%8U%%=P|{%qDRWoPi2#X0 zqQ0Wo+t=`4qYcwOzOb5j6TB#K6j#qRw#XsI?7AWeRF4AJOmgTamuxsh>}^Nii^Ea^ zZQ9wkY}sm}7<)f`11SVx)u4=t4ZZJ^uEVx@iP3zD{rteqIxJerVY-Z%ecU`2K0B1x zbg^B}R$@sahM?VuiiILkFKXC$vZrYG0YHRumm_-qjb;A2A zlLi`1N7%32B=iHc8Tx?0n zqbc0B(KMi&npaZaQy5y!kxWm=L~4R#jF=d517QSYlzGDlOyIHh#YiW`OqRT1)@hQg^k2p|NWzq^-(rc z{3pbbDJ^h3z;0o5(sg;=xGVOX93&|0S(aNtY4t7qFHC??NnBxFQGy1^I2%>7GOoNm z;PgV(Pjh3~8WiG%t%*dBP~y2Ei~oITR6cK=&}Ps<-6XK;8hh2&V@ZjpuIN+1Roc#* zHnwHfAF3IynbzjBd!N28F!6zo2l1OM-s@9T%D95{p=tQA9R+TjK#*5DoN?|>lI9|e z$L|KS<{DvL7A?2kV;jYAFBGL{j8w0nmVKQg;S%}e<~Kg~t6U#p{y$vUGSJk5Z+<0k z>-5WZsuhej(v;*PbKJ!mqU(3S;2Q%wpDd^RG^LX|-T#D1~_>}=i z98FXy7@=$ItM6@m?Dg8^Gv2L_@Yrk3 z;i??KCO~7%RtC6b9D@p(d@_w{y#dK6J~=%#45*l!1cv`U*i+g>eWNCEs?j--rRF?O zPyrOtsX^H=QWzG*7Y9C-MB6`3H^p9ma;eTb0x<$Fg7Z#U)mDrZY!bdSQXdPdWB5pG zH^QIN7-wGtYu{w}0w6x}1}6n)7gS%%iA&yDN-+h<506i^Mkc!+_p1{iii`2|pLF=J z_3(u(uDl@s9f7;O_*^uB*7z*2ioXk~!)tihct`>r8mdv>M5K8M&XzsPP=#XCv%d>M(uk z%zAIGHlKPzYD9pl0fdN+PDH^okje`H;4HIXqy!W6mLO=L5>=L5zi}Aw&EP0FDf@f{ zjDJABukI#)BwiKK3+mi`txl05n(_eAS`fgi*5OQlJHb0S06*OfKH(;C-|1M`*Dvl= z8mv2H`bI8Al2XQhU+x-nL6~14{;0C>?Tn4hL1DNG>0%{i(yU>w)F7RQb!-zuU}4y{z(ja$3QiHM$NgqVg@tpP?VJ&Qc+w@MZWWeLH>NBFL2`0z~Y@&kNXy?fMh$7L$AyGiE`hC7zB1W|R?sqgoyRW-Df$y_Mc1v~ouThe~C;N4#^gDECdpBezt?6PBq zP^Y(J#ulPcGu2T{Q9Nu~;ACwZ$l7MUWvbiOx4OA)(_ER}MXt1=CEF{L>rcHUDgeAz zR@b~7)c>KR5@n4ioK%81(_{l7OrqG4_OIBg3&yq3KT?K7Pr9Nua>>XGHaW@bnqB!D z3osANDg!hEUGtAPb#k8wtFuO3;jqp3qIHymmtif`W7jF0f|k7&W}#~E#78U43;)o*7^IeINL2G^k!Cg7Fey2# zbLsOA75aeCaG%5dTg>-t$M9ebl0F%Pf6ML5NtSzew2fLMCdgyM)pKTx0=W}gYh}#^ zYgaze#gy)&lw529n>moqPp%0L6fY^UXI%IZ|4wjZ+CB&3-(poFF*dS2^DHMm{m*W>Fwe)sx(>x8VWne)&VR9pK53^)Spcr`_69993Js`+q? zG4W(P+Eu>b#cHy zJvH#QJY`1yz;cszJeuWUUvuhzxVPv8eJqbu2ttc=ERAa~IN6`4K@xb!1U%i`is44` zZlPX7s%O_4IEonY#=-M^IRkYzL~kpfid8!~x!zgSq!BrBlZ!eJC%&oI@2I1A9@fh{ zJ%Tq46afyRqU{ndPj8!-%DUR26=An}P{UvIMR%r3UwHh;#H7+A_FALRH#_M!Edo0| zzB)SjbcdY!`2qN|=EYhC7VgO}vV<=G2e}DJ+L9<-9#_^hp(R zq7IhaQ5=Pb9FDqwQga5LpWG>N?mQW>OF(CBk+Gct-k8DbP4N9uTP6unHt861 zV+H2pe+Sor94-Jq6iza&dIbDQsiN@!c~MPu;dabRP*z_+%BC^klGrDjYV!@MKoH`V zn)0+gFNosIHgIDN3U;KE?4Q+oD-8A14$=5r;@aw8r_ zzkBGTr^Br#f3iFVI1+_FOQqL$F5F-2f(EJ1?M&D^ayCT?<`l^1=&`;RH2;zI!(ki*%C*0=slM2<^ z;zEirmb3-bH?CaRo5SaMooX8OAJmU{l^|Xj?V2>{xnW5y?1dmlsfrH@*qfO-fR^`CHL} z(=I;L*y6ZqqK#Ewpa?KDe!B;V@bWlq+#80gOR04h7Zj9uRaNACEZsH|t;lU;bi@Jp zD7OkPp2yH!FEGUf>T=t`j4PzJ2fmG=1PnDQJZ}3P6v7n)6z@CaoV~<@A7KHJdlAaW z=@7G!bvj0%#I7@6o3I2&oAFoM2RgxY^rKsNInJrzlj__0IjZK#5$T=>^AZJ40_-??c4|N2B9 zw~z5jdp6s9**2Ir(Fj-b1e`LowEfV$)OwQr3tlCWAM7vgO9ApedZlhuywp_vXFs4) zCs3o#yaDP@&FKu!+yp-MgF{`Sx^n)uIiL*;LVA2nxH{I_%Me1xv@}_tg;j*xzD`(o*X-e! zhSd?#EA}g?28j^$nCxsO@&8-t3H66ZDsn+&j}GNqd+v|-p~oZKaa*$8wo9ocJ)nlD z*Q3#L)5=93dlT0=Z)l2^6Fze6=pd2SIqnge{=;uK$HA{-hgl9k#9AyaFkwx`RdY%< z2A5Fv3(GOAAjn2L%>z`wb(8-oeR%*h9Y!-~`1=<;|99ryAo!rsm;afa{CtRP^?~xzBkm`TL$U7)&-1#+zJswVd4SD@ zv@_(se4z1@{nt=tA=vd^f$qGDV~VeRofjN~i%l>hHZS@Q-zSSN^YD&1=OAZU+Wp9j zPQytZV~nb=EIhu^e!X%p^W-|$_1O+BTp`%yW`6YabGh*$i1mfA^?iuhmM`B8p=3)@ z8O=Iv)piw09m31R8++wT7SeqkP zCtx}USpHjQ+;9gtfyqnIJqmdn1y6&&{_VWVYVTnPM^%MZe+s5H4!2*((Zjh&x13|` zasUO)pf}#9?>2Z_*v@$I_?i)3eQK7CCx{V@-k&NTJIBJF z?9n}1O*yh8FzEkk>T_Mkq#y2lO)*yspn7;PDLFiB1bQR$L{KXGJFax~6Rb-UYf z=!}TZz60`j+d`N+wMh&!h9ZXI``779-{1%I*Oj-vTyh+yfk`s}&s6{wK)>oP*tY+N z3Z6l_HD>CU1pGl{s&cpcfxGVGb2o6pPy=#{@saXppV!u>ld))`pZmSl+sO+>0GOJ= z1s!0gp-_qWzA}=WLSUl0+Uh?k3&9`HZ6+T7RLTXK+~tbWUS7uGi7ie~RX5kbI$LGw z?fX7ZrG;&9`c7H3hC{iHj#_=P_39e`H28kLWEPk5#x9cQIroiH2b=h~iZ7}691n1yANi)t%cxgQozfhZ2?T-W=4AcJv2$A>X#G?PP-+I~M*fQN3dRgJAGp28# zwZZvkZ`O&(fRH;V{E>0;X$c(LH&Txg%g2#f1OTQB-!`SufD>JO|JQ}c` zgDhQo7S&#oKs9@mM+*xtEOMcR&=P-Jtm4|C1bZGsC(3m8OPO~erQ4P5X0)aD+0Lv8 zpRJN!KPVwV)W-lrsswPbkJa1)z~JHX3;3+d4%tV5JyC$R05B&)3^IYJXYy|td`oplg*_;& z)WwEILsZf!iS{`1bcK0=GgUn_%Jg52K|-Av`k*fnr%^qoThdYAqgb{ERd~OSG>zfG zYu0E`$HxlOe{|HHl6;}Yv+`<(S;a~%WFh)@d7%4U_swv^Bd4ln?_}JPF@#K`0;(CZ zB-~hAvL=%Kz=Y!>535&v5Unp6GY%6)XF(^0;XC1*vl-vz$$5c5w(;oEo(OlqaXaFg&oB!Tz>qmmp3m&Ybz<&>g z^M;#kTt}Yb7WTYmU@@;My|#%=df!PZq+W{M!=NIvC1HVbMVXDiYfp1k{;be)3{O<^ zHxJAPryPZ*!BF6((Rqj98LBHI+n!bj35@v%N@%Vh*u<#Qa;Ps+!}dWHh!4<&&6EbM zuz>Ckj;;{#+ikjq5&3P50`6U)IvPj)m_KX(Ega!m$z%@1PE6->=<`kc1fFtwMbZcD zTiZV>StL{3wLzo9oUln2a+;45Zau|}2-;|!B?I$Oip;vsgleuE={8}sT$s{Nl#46P zpuhD}=SqK8x3;#P8;Xk;^|hY9)FQVe&kP8d3^OgQ=4QD83cDfJ?Q9p>SF(btUkWn@ zMEc0;F8!V`*r`D7ze5|zsp6C$C}*7ITp0RkYCPxZUJ*xXhxZ@Mle*kQdBbvPu_lj9 zMf&Gs;HTrW}p@b)i~jEXi~m;1-UWL%QBxm~>0x(@J=n_!{V&=hqL zXzBIdIAv?v0!r)QN#LvraEI+QHQI$D1;fH7LS{)X@Xro<^!cYg+yhd_E4hhb92jv5 zBp!_-3tGBqV9*OJAz~p2p$YKEI5k;$MU5B-N_K=dm)C}F7N|+*^R|xmyeW7s44JPx z#u*W)X?-fhjW{Q^vibWzTfKiD$xL{ZH)c6~6+C(qzKPiF3JVHHCwTnFZ5=rk2!3ad zrylTCAO^A$oJO^mtT8R4-&vcKwe>KWhuHe44z=!D-XsM*L%^YK^$ zD6flC0KLnPnu(X|Hie625&@yex~TrDL@#U*j^qMY-Q!v=6&vg5QtXE`OR>#G?`k-T z7;HzJ$!IhRJ72l&tIr=<`eKOR9uU11WZ2WjqeV9TEFO3s@+~1p*JqQj*BK^XeTX*X zw|p*;4%r@_WtqQSoCC>VdiRsxx6{a30hyA!iLNev{5Q*Gv2P=dHY~Y!7TeIVGkl?Q z#I-TdrK*ghxLDxj&&wP+5W-ghdJ$x(H5Pzn2Ie)uIGX=^p$`!14fClUY2~*Mo(NPQ z#i)N$A#SfKpu^)Kk5yQ-pe{F1ez#mwVKQ^DAY7aUO5;h=71%Nq0JP47q|UElFcc$U z-s=}i2sZ(Rs<;wCjP4(>y1k7y1j}t9!H(pjNSk{ePI{jnia{d3C7?XVq&7Y4G}yoL zdJFVQ^fo^Uxj_?OSW?kcHa>$lzJMcC&`N2VN-j!{u?C#Z>P^z4a3P2^OKFmV<^a=^ zH_~FA6dl};4Cz=<=yAKU}&hQyaY^o&TZ z`JsKeu^8};f4SjDM_X40ZGqO4*Egggqrw_k}O}5GU%J$ojb9B4zWG9!Z zX<LQt35mM`+Sxg0p( zj=jFy+p2Epv{Y0=4maeKR)TcRN)sRaYMazG6hlMvb&PQ8Ak=JOK@K8K?Wfxv)6(Y4 zAx4N`caj)EzeX4y{ezybZ=Z6ohnvhj@^_NO6D&}`=sJRGMPV?Kv-f%eO!bGuFN8;% zF0)JEMm==6bqAxuLM+crqnZ%+MYJQPQsy#khFWSp?Kln(>K1$bB3UZ&FyM%s8jw0H z!2y+tR2LZ~^>L+jId3)oakhdr4t@69>$(GKDB&RGBPG08k_qDjPJ^i#X z>((jB`oQNz37-3zqt@%Gt%2<;S9yJ&v6Ynxe&1_qs&63X^z0!=n}m4o_KN&+yk@IJ zW~23mp4={QzBZ#Z#IxfS5&im1p?)Qr0b|pWe}ooPS$oZuybZU`hA{X1W3HQYIH@gmCy!vJB{Da9w(=mF~e05y`KLRS?WXt*EW6whpHko z3Pxy0z=N35Bup)Zu@dnH3^7o_MzGVm-$8Yy^4pfQ zrnJ$x(MIBX5Zw~xaqy2hYwlZI@PEILe9MqcyddtIHoNw56LVn<^p|9nqv;qeE{vVy zXb%*XV9K!ywEl&n#v?$(f=*N4keKE96nWNqVB5Uq$yFF?JHmK)rNeh-_N;|pmPtOw zj!qT(QzOG{Z3kPC)e9%V>(_-7*%TN#!~&|YJ!!^RFmrE zVi`T&7vZO%YN6sQnI4r?Cu*E}g4@0u zv)+f9%iDC>n|^N#a-M!G>+|7xVIX+ZTjxQ2TnnD6g|w2i>_#5lk}$u?pCm~%2Cb~u zRkNpow5f*F95YV7NTIlhZ_FIvYfjWWSb--3wglgMv)Akl-L^QJ-D2lZWemKK(v@Pa zi)m=x7FW~DXoa_EjZe0kGcN+&X0Dq+v&&q=1w`a842Jheq}*B&!Y$t?3bYO7BmcB7 zZ6J`;LZnP7wsahfy?4~=ko@E0wzQ_i*V!|pxDFyQIyTm5+OA!|X3vVkqen}T;VKF_ zFu_y+qf|v~f-7jRGG|7D)sg(x=H{BhByhuA>p7ckY^10(WT^R~_e1#)Suq!`Q$^%S zc%=8vqaP9*-oWvhh>SA|{(ApR&cI!?ZK=~Qm=2YKI8B5#9q@H7urnoT_6;Fw+8W*d zM}Fy*gAcW08@3!0KEAQU+!y?mk{WxE+dGaH1sd23o{N)8v5lcW>zK zQ$y_fd=>p}Mm9W&GCWsOnV&JJ#1GlVJO3z&UY~O3zt<<8GkIc$7_sobF6Rx7dw|xW zVA551?uYmr&^fyTO`nN^+^UiAGQ-cUBs&0N*IqhFh+C!k9604u(1u9z2ZBxlv$PxUf-i*>o{B=r>j z($&&)sepIQ1gf@4qAV6w#4z+sQelrN$CWiXbl-oQC&=ZWSgs*BNI@dBdEnQd&Y>g< zN1ZR+KLe8)qUZB!x!KKbaU8hPv)y#`&vzCalg#SWrO+Nv)Xu8&}}!Y5aC_!@T!(U8u+T zITKl?WZd|H5WA;ovhr4awaa}nJ^t*;Z<(>ETiGL9!BDWF=I z?FX{0JFexS+@cJyr7`Lw4XkXyyv|*glIa55lF&NhG^fgz{G-gXPMk(G(^^M$KX;&y zH`?LpmUSxCd7xD1X-u#+J3Zrln0yGqJCGE|8LN}fM8sy<<-N}vj^nAlE<7>SNM*J? zNFXwBO>XWQs3XRA)Vm=kqGsIg2L>Hucg2Ryu_sfP)#uf#nK}NkKEZPS65b5b7tl&g z+AQ1RU<#=KRn7j*ShSG1-?aaQDTodmJ&`Isslzzi!iEHo$%(>nc$j>9{!=?6ayWS1 z?DNYlrl0aiOI12C)zYIK@yy84Z7sox{N3`6jIGd8yei#+NrF-VOt3M#umpSf!K$or ziO24oqP%?W(ceX7f?VDoeT=AFMzR@-Dbkw!TVlz7ip_$2z>T8rZH`hHp#QFNMA2f@ zyXI6S8|D955c#KZT5T>b0&^4TWX)#}k8Rr>T0BDZtIR41_q*^MgH1xN^Y`b7fWium zjF`#_2oYhp-x#ESYA%#vBP#kP4ncFm@#&&y-ozu1vw`B8gO=qS`c(wBNNGQCFp*#d z9X>E%L3@_$YK2g>IO^~uwY1B5y`KJ^3@7h+|6mkT7L;l9c(?}0k^QnCH|*I;d3jkP zA<4RX3Ib}OU2!i;QxGrJa-}rnAAJaP_f~RPRPxEZp?|#G{pI0}kSRK>b-YLS8ybTC z2;S+?o7zn6jOdPMFvdQ-wziV1O%N}v=xT{5_$6w@|9YUn>UTik*1acKXz4j{S3ERH z25tm>OtdM#e2jEvn6qk5Hg!>Al{!PNX!{xS8HB5_lLRM;TZPvM_qzliBlVEy_V^v5 z8&re65lKhM3PXL6g0tyG{to=cmMco-HZ%7l%TIJfN|0$0H5i;g+bSH>JfFJ@qpq3~>#=lcv1neQ z&vmL#TpN4rY;rzo6D*X70F(d~3e<`|-Ozb9>{e#CU@9iTk=bkXN#mnYO-SIZcVH8r z9#{SoS+qxZcCyvi{c*lt_x^3zvt=&xOdJy~atHy^Ymuq*yH=qw9qdo(1YIB5EWy5I zzfZID6N1COYPVkyjH?_W0r!}Y>WX8T-yjD>Nfe7H{gUg z!(e1byPeO0`R1Ch>5D}ps&EaAes`5eH2eHyicOxlYS&r+?idsBx~=u4tL#qoq+V(;sp8Izpt2D;TN3J=If_}Hdt4)tH5tX#&*M*eDKI~wreimP@8Sn zAm#lJRtbRsAg+76YS1h**+j&9L`)3 zDVc)l`&ZM-njP8`!iy>5QlRUU6?!jXewQo;BHcK)wSF>P}q_``#FJj-u;*y>3CX_Kuuheto6a$}-yyCzY5q zoGAo<>K4BPhQ8t-%%&>aPg5|D#Ci_MTEtQHiAuETp*;j{PCvIhi;K+MJu|m+Q{H5# zO377+aZr=ew;NQYnbF`Whwq*Vcw3(dnPVPs3i`N5yM`e{#Rw57cclrk!@O;s2Wrjt z)<&QMGn)4yJ65L`93~IY>&Y3hp@nI^jZ_!vb9XEPSo5Ymm6zU)78ve!YG8lbHH0Kg zmC|vrVza3}ENerJ8y)>A#z2_;y%CmsbFi&=>yFE%h$o}ecM(=ps<^MWK)%ZF&Wa$L zdm?o@_pk-J8%+B(?mT0VUN9kSe9}1QEI@|6rY5RN3(ZDiuA196Z&zImnq=3;VZcf~}{2^h}>M4EDUl?SXUCy%xxYYnaaX z81Psz==A)tb1r!ie(ug*WXe}tnK6}q%X)jKrN9be+OHv&8&mv-7eW6R3o9VtJ#)zM26QdQwKqA5zEPw7v7p3Y%7!~NU0`8)gUd~2+x`}~fA zmzo<3*j>KvjAW*_%Pyy|u(L(jY1?R)sVn0jEXU1FX%L9bKi@$6#g{8fxF3cr+mo)! zl`5M*u`=`wQ|g+L5{;<2v`0WbD9EuUXc`}_Bk&!Wo-ppOv@=U62=sv2<`n##bD`HA zQSM*#E3;+tBcUVKd-^6Ld<;iHiX~~7qcHe5@NTKP<4rccq7s#Of}`ME>|W0|=I-WU zpjjW*5nZ)Mr*^Wdh1M0s;3e{_l=o?+lz3-3N3j3IdBjqB)s8LP`@ZM!z=xDM(0@lH zXCj>9)9h63!_Yi!NEECJ4c5)0uc>oeapJRLZSnwXg{?j?QSebXY!Ej$e<8xU<6l(SLwF(5PlxAsyJs&oW3;#Y2d2)3<%USj@BGLw8Era7GBACr>DklQpr3X`?&lutoZ5Xe zi7(TMD3W3OQ@Zxe=e_tYqi30-csZ&X%O8@Sq5bY2|1DO3Rf5*$7xuU!Sf=boX1;ta zvHk6>^yAkkug}H{mDvX>!xG;0yrq&E7w|her?%PIoc#l>?#qFA_}eTUy#HNP+U%2z z)D@KeM4DHK_eYUZ8dvjI6fm!|^fG88)s_13am8Gic|B6MS13B#05=&OkZzN-T#-hr zcZ$U4gWKQxgyp(d6TAL#vkZzsjY!TKS7;cpTopILwn;Mmr)c8hxQVO3JIjuXk_oO8 zza0R0cR+weJx(-u!f&0FH6~r-tviYivywK0UAXKau#n5(-fG-^S#$}j;<=g+9NOo5 z%F0t1lARalRw6~vh&sekf?_xCOdmM7uD4}TC<)%zHB#FSj#rliRhL(exFn4E>~*he z`bR-;LG)Q1NL8Dsx@P$O2|*)Yf7~Do2^+EeGFrN2pDqeVSR5s^TW}ScYYbsw)vF-t ziJ9}R+ys=r&^n>5CJqIKfr9u%JD1QbuO;E*Nj~#&$W>k6kc*n}2UhC1%ygt4bj3MdW@AV9CH?v@s z)D&2wECi##Cw@gK-z2^8UPeZda;}1iw@fWc5=EmiWy&%A80Tr; zy4#&u?W+13C+Vz8g&B^{WyqZ~(AGxB?{LB+FQ0w%-zlMy(U&UVKrYRnv%3%g`dsAz zeRdk4GSzbUY9Xdg&>Qvchbv59Dfn^9o7K)XYQ0uGa{4!{Z#R88(#m7Bf~zj})W>z1 zVBu;VhB8v-=nHSq-25mZ?Y=a7{H2gIUV@2PQPa%aE=RH@gu937_j|6bwC3+(@Z0%- zZaCGdxx_Y0}c%0Ji8>wkQS3xGvt=M@E-VkMTK{Q=4 zt5e>MvPJ}NUMTTa#}^#^_paO_;hj40+F$*$`8%wck_E3{3uWL5a&V4{kK`M?JTto3 zl!4=|z~B!`C7gmw>C=Kav0qC=Zd(il zH{*4I?ldcwbjWhOAEU7l>58zQYxvQ{Cp*iQ5kKCKYKvN3l2m_;0D}qALl2$kj7dDw znfq2Ea7d2 zgzL^eFvZnXaL!$5j_o6LPRbCN{5#k!<(2acP9@ z*!lMA3zbh@_PdBJ=Uc_;BzC=yX4-zZ49LOx&Dgw>O;B$Mu0*{tKt!6ii5h&s?Z)ph z*EsfuJ7&4=1xL%@of0?j8?ujagu>e*L|34=^0u{vv_8WY6w1U)v+=+UrqH_ai#ctv zI`gW&^+MoFMr3qG9pu-^skOK5*A}NoeCR)>bPvKy3!{31D79M72t62kHTsp6^(ud2 z-3F(?U8p#J*Wl;LXxc4gH$+&!pInlZNQ57M6Dtim;H4mQK#D#yu^VCLBWqmBFg6IJ7<3By|O?Cy|x94Wfq+} zbdnDriF-cneJ|9xkP+@9Gw6VbkSABQ z1oIme!kR{le z0<@SPQp-HVkq%^7dtA*nM=Q=$sHLlp{4LB=6Sl31(7yj3Nv^K`4XWP8$*ls%J;i${I;xycT2?$sr1cwg8A_aJo>Re=FT^LH;3-H11B$8 zEM_@!J*iqkK;q*KY>ujREpo(Lk=|Z?my&z(B5Y%(Jr& zH{a61fBU69cuOu`r9XPJXo)WXh}SYAZ~O!zS{)!&O3BrQ!k&@t#OXGATNkOn_=~@| z*=_RdmCGL;NT(0h^8e()Pw}3c!Fpv0*|bPA_-^&))=LP> z#&20&WiG1IZF{_ae2zDc&tW(oPxhp+5>fC#3*@@35QUT!l4%Uv;;Uc#95*k`b1Io$ z0l8|!#s)xM1LhLYq-1N!;?GC>c*m`Kd91&S8BHaxDCAX@*{H$OykKvR)T|6k|zXX#S&*@QQmaRe*Sv<2$!NJSrMw*GrGpv zjwGKN?Bn@pgtyMllk|MD-5a;3*3Ij>C-KwaEvs=-k20CD1lgIZJoMoY;=2x8Z@dd+Ks41EhMn~sgrbHil0BE8 zVjHbpl7z0VaXrd#=K$OG+=SZQ%ai9%@VAeClD~iA(|qiy&++xMPcoZdL{(IfP;xCy z&0sLy%YA$9;=AvBEAPJb4ZP)s`?zWAE;_c{PM3I&!G(Xo)4FK>G#Zl-phgu=J(l6( znG&(Ys!`lZnVRwq`K^u{Z2O3cqqW?iY8SS0=vvF>dYoY66U`Sg8n(gCmrc%y1yl z42`U-@t04X!1MBS$D-`%?c$ZYw(_2v_OYe6lc~iFt{*VIl%+c!;}72UYBWXR&mMo4 zoxKXrr$-b47{wNn_E|If~D_Im1kr*Y{ z#!xkG7}?8Bqx;!EIL7Y2Z49P+(N&GbVwUm6NrE6ibdAvOreLv1uz`d&p{fWxN0!~C z%gar{8m`%4IRU6aC>Z#Pz%RcQt7q4^UjiEXrq@)hD$#DU)m>E7sUKbaaqAnfTE5;l zy;SlU8I5wo;S?--4Hg=k1mq3Qw+-ZF^3Hz-{owb3*;&Q!j7MH}Wj>b}?M~*`8s>Uv z(*gZ2ANt$}zURfSt=m*PHa^a;yx}L<*}D}()5%!{a#n%t{8fY^LaXaog1z^>jnu#> z@y-C|}CfTrP(41osv(c?ru`3cO=d>Z}ObI3>( zduWJaZx_-J)yRz#ZEQd-F01*CuBLTcHSM+0rYa@#hR&R+GnOmzu?LRw7vl^33JDN6avts^^ii9U^{!n#=Q*(LsJKljRrB zULv1}RlDYGfbzP=P5B(Xr6RMYiM|rBMS@gFMLOt8bzr+Hj_>pI#57+ycZrW2Il<4} zcPDSYaUYpXo{VKNUnrsgzx&o#GMOvzxs&JFGGOq0-!3|*FL3IM|HO_%w_--)I8E}a zTe%Fw`)*=j>>ynu+p!B-PJaFK9Q*Poxa&JVK=+oN6x-MqTmB+-RU;iuk}xA=N(C-2 zPV)5S=Xv__^PHZ!$oaV|03;&`bX7-JH41i#q#5U?(fzz=`;8nJ9AkIyHU>MpAPRE} zB_r0o(2$eTK@qL6Sr zBCdxk6tWQmM-7A2tew1ty3c2s-!u`5Ts;v8v6@Sujes-Fz`h}qC zu5B^gxd!h|>nW}^Z32i_otGZ+&xaP~k=*%F=U~>pYKY80@&?KI}pc&nm8FL~0Z^XblpoiVzCt9{D1XM4I74 zx8rQU4Q5RW0x%5xp*{$}c>GBs|L_qa|MD-WQlh(jbO#2q%+|nc*!(KxE}93e-(k`pZdF5G7LH#hqPsr zNyYg;TL<~`=g*>`qlf_C)5ztLNCcYZ)%92`#!(cXc&vaQs0=y|4|I3%kNrL9g(3)n zD+C2y*(EN2{So4wz4UAu!>w49NTH#5MWWUP zP|Wo`h-ILb0(^<%1P$ebN}vjaAXZ*rUP;AyYPg5-bdp?4HSx zwgTp2X1GPy1pF#{Y863F3W4qiBrFF-N-SN)C)6IAu8%;HGj(iT4SQ%b7dMd7*QB41wQB9%>-4uSv4y&kZdER_M7uL>~H~y6k?*i2gpll>z;0r;guq&z}9= zwftfcZgK~ z5Ki$LCI4j#Br+Ny80rQGB47Fn(GUL}=KWtrEG-cX4B+kB9hQ|r_&GIv@aqHfmCtgG zw{G1FgSw)vB>n1Nstn!0j&`Nkoh$Oy&pyn5z2g9Xb$AzEp+wwq2}EdcR@8KYc!I;z z6a41$Px0!hab}}27Id=$%r^$)0MQ^|I%e|uo(^za5Q2iH(&c)5^vG#mITcR+@9pp6 z?Kkcrqie)HA6%bjQZW_{9W#*ldO)!h!}rxXFkc>rqWIW$glNP<5fa1ocr2X&Qzu#| z5dejV!TT>><&Tb?1}X7$jkh1($G;5rlC*4Mw$0UKjL&s-@I4dLjupjM6lDA!c@kFeR=?|l*P|Kyk19xrk}F+hLccCLKm^X$I$?odj%mH|=sGP&$!rVBs`2`GB4?SgKNnBmS za~%32XE#7Z0(282;&sMm3Xd1RT`+v%m4X8&{c8>1bqC!Rvy~Y%Tl8J9{2$S z5>$nwqrKqy>{!V0x|8D^o>*WmZsIlxtg@DrE)@^~bmvRhn#%E^ZcYqzvJ^AI?I{Tf z$7T1_61%1r>CKi{jISDxuBldE{(H?*dbl77BP-CQ8ZEU=n+oW+ZQJ+9jrf;mvl|HR5|WunF@5@3X3ss( zo|nA|Gm*m1XWIgG-*YkJDfZs`R-XKa4>5n~G+m=RHV)`gf}#*4lgN$)(g0;Phxxht ziT&N*5&8UQ!LkTOh6#FmL&<%`nzIp@H-pFZO641AtERoW;_ZX^G6_OpKc9%wXWRVQ z*N@OsviYq$4v<$A5+xf)*GLCGKYa8te&WnAQl7{8WEx+HvNe0VK;Goq1jK@X^RWn* zA_jOq5^zm}d#+6J%ISG7Cu2w3;rObUCu00P?Cr)OPui%M+j~oR3A>kU-e{K{W75dv2Ag*bf|Hk!}nvK_Dxv-(@&hKaj)?ojrYBeCUxQZ0k((ldrgo z;_L!}lq@V|_zySk?v-#@Ab@27C}n%NE9Iip6jBh z8d3(K(VOdF#uB7@2e1oyd@syx9`1*$#ElrKXaY?UT%4cesY?&>?8GS^yKs~%i<4wZ zIbufWB@@*n}a$0isaLK;R0#Zom+CsL?Vu10}drVRl3GPz}I?^qC!jl^*CMKE=`T^|&I zzYKD!LbvCGq2m@x5HS$8Lyzm?tYZOM1^6-yUW1`y7fJ-tD1D0=h8%}!(?CVyMhtq& zZd(OINArEqR0bSpU3;~)K)yPJ@SPo8*_RH>1k%OO5~zxa?>V)V!dJcQwzjjogI|B( zQEndUkBzfOW`}xYb%XGUIQ;{@V;~h*Le~Qwb_oApOs&3%B4o`ma zuNmBZh<*3GmfXTDfg6T$4SbJMcB$<9uF(-ok%~mgS|!F8C;7^$M>sKko+DRIaBBJj zuJ4kHB+yh1L(?fZCE{k3!^3;oKe&_I_TNGL;$<#=@sr$h@TH{Foy^Wog+^^n?q}e8 z2u0<BAk*@L2K*oEBcmVpE*1wwiV8B}RHDsJi8&qx8^3vk^4rNL|~5u_X!S5^3f zJN9sXu#?nMA$*;s#8FjBrUpWw_yKX-MGGVyxe|Fp=bvvGL-!^3ot$(ZTSDkG!;2Jf4;6W^^5{s+gHP|L>^tc;=Y#U|TKHuV;2wYq(#gZE%XG@Z1^#D^b zV`O|jw{@gDd1;Liv_+c+=$gu}s!ILWbESu7WJyrdk9UDG&~PViIDoh9LV{NR1Jfe*8~$&pkiJBoSK zYX$O(g3IM|s=|n6^T87r_?{bflS{_fKRM5jT$&_ntcKoPGIW0E$`p^M6Fk-1Ma*{i z-)Aq;>3NKs25P&xt}AHCH2B_$X};Q-;^F=tG}q;SUK}Uk`z-1j0?D+Yb89xo&z!r& zZ|vHRr|W#z`HQ?~dX{O^ShJ62K)y^8KuQK|r%GH=ghn*d-@In|M1Uk^8q5_-{N{s? zbH|n;V!Dpyc`PpFxOe9$FWEZG(WzOSjxH7lb~1nZS!OSvr+@2CJm2TJFMXWpv(MAF zZ4VFq{U6b@b&PE{zXU6nK~)qwqAAkRC^^gK_|#cWPha4X3r9FPb)Kp09F}L(5lzt% zO|n?bvQW%0l;Cp4QpIUueg^D6wgmkG4q1+yo3o8=Wl{j{QqSQ;C013zA&u`kv`Jrx7i}|vV zn;@HrqT4P9rk04f9y5suSGrTEZfG!irL|P=ft09fIfI?wNKmT2{Y`$hV77U_#W`8=M|bAQblgEcb(pIQdG-$0 z=Vpl-+TQ_puQ8goXwv{a6*a%VmM5iTHrrY4`ubpS5S9Tc zs0G$$FIzKsTrZe!6nL*cm@iWp8(wg%E5#3-y2PTc@$>iH!JHe#R@G`SzXplC(VqHv z#Nf>{i`@U{bDT~kc-ia%Y2RluVuUJgVAjytR6ugW8|$O z$EVJ6>C(Xm7y_oqDg3vfF7dJULvA`QnjWd!dq67g2UE}CrC!aj9 zg{7EDN5LjxyDXVHU)VFu&WCfTK^RWDmDPJ71pT=p#|FFj!r|?h*%A>qw5iBNbplnT zH&dXqV3Cg)OmxHnLAqq4`2mTAJjZqn@ZfBYdyijYIu)%~b5{xGHOX6=3FHmNTzgJY z6g*GjxdAAmYWi;E9I~mB_!{RcL-ztmp`dvgit*hzMv{f>RlNQ>cOqKLpUYYJ!Rkc6A+>wiO~SKF2vtJ{-iqsls_7`29)6r{_MoU5j#Wem z1w9%I+ZD=+(TTrp6eO4re3j^D|CPuWzl3`3G(krf-sl#jqO2}IYo*IFeLEPxRdd%5 z=F22x=pTJ5o#1DWontB*;e)sDC$Fg}%U^G0`6eT1RH#|msqO-y5}3Rg@6SariwBv^{z zs%i3?g+&wz6Q+TqC=J1UT|i!O7vjDjZWjrG?^`6JgP3{(&nr>cVzbNC6onv=eD>4@ z-f&WT&(E;%+*9m%_m5+xQ+)QR zZ*X$@0>>xMa&qcCS2NQ@G?UI)ic}=QVlm5NkYnHA4)*r%VE^D4`v!Khr++)CNQ6wO z#6ls%Y<_WN%mNWE&K+xI8?IT@I-w{iib^TFh^CvY#;0gT0fEqwLPKepVy#IdW%lwM zC{_o(axUrx92w|98XA$Z@RLhKx%tW*Kl<UczoHs`vMT1pTEqOg&axCp{T1& zcEtJe-Ys10OOq;CVK&E-!vp(<**`H)qGVGvwATCNYjB#W-fPQfnjo7k8>nuN5xHtr zoK(Q}akDP2D_6ha>jdJm`cEAxzKg4Mk?Fh(B?th)#6p2BJ=IdWrYg$hV&Mk|JL7-2 z#z@wrO#$?HME~tZ{PFqCa}kqLBE3~Z9z{{`T^rXf5leUDl=1|=zlP*4FykrCJ^WA1 zT{_L}@A?3S8N;rAo0KcD!W71>~jquuPrKsWZuwND93Ks z8Z6;eDJiN77h~c6qf)NC4C?E~bO9=%#sB4~*YPJ*(q@+I)=b?*Nd46(^vF;8QN*1=`vZFIiUm`}%vB~IBvXKPt(i}-$ zrL!Y6_M7h(oZ7vE2cG{TPn>>|6I17~T!)Bm5H%vijVPAukhKbo^={#9H@=EpecQNg z+aZS1eJDbqU>8FW&n>Ka$v|j5uWCe7ow!yByO?VkQ(j6*yrYYW<41VrvwzRcZ+sv9 zJNBQh(w_)R;BI39){kWECm+!<%rT$Ze<)66#=AZ0ro8|>mj zZ<<6Q)Yjx;Ch4Nh2flWU(fK^Hi3lZKL-&1dxH89{$wmJ7rH42-&`CO9B4IgXI^sON zt&i6oJx{Uxjn!;B#8)}+s&~*kb^xTkMx?25LQnP$bNcI_<;(-0 zX5V-H0DctAFF!);um76pzy2#Co5kC<6$S@Z4BXZRx$3ye&C0GV_5Ry2ers8x=4OQM zYAVw)lb?9@B6hb$&QuUV<)?e?Kwew08n)J;s(vJ_XAixM{-VW-z3ry15y+Qmxdq?1 zF!c^%(SAI?M5`rK?U{(CvRJaYn#pr$uop@emgkc+4brB`l9k1dM6n`CRNLb0)Hug3 zpWw*l3>`dSr^Kg)t@``wFqn9=b<%;I#-&V?^TQW~O-Nb00w{3h|EaFrIvi`-b!hlqi7` zL17Vp9U#6s&=AmrAgBxLYx)6KQc>ok21Yq2t83~UygWl+!RBfzhFW8AhJ@L8gd3(7 z`D&&>HlhN}6(V%8Jt?`ww%u>wx zD|yf*63-9lNE__f8RzDkJ9zEu`iYH3DP6UiE?TQ-O%Pw-^H&0!x!%{{>QN%@0w8ex zfNaSj6|J_FNkxsp@%h~Lk?!P$wT9V>t{Kn`UHz>_#&F{c8<5W1y6Yi%u0z+BF|IuG z5Jx}#H{A6f{~L*(0i0s%NP2c5$H@L$$t=!b4-LZ1938*&yF~x)Z&8+(@V9P74i19v ztr)nq4Z`0xV1DgVd84z6loWIY(*=rzBE88yM2s$MXOUJPSuL7Zl%Eo7kl%OhME(EAc`@C#y=Bf&Y?-TWW z<`t7DJ_KRl7f%({>gyVbR|zB~L*r^Xwj!t$42_Y6JbPv`%qF8N8iD2BRVkTIL>R~v z*fq7tk!}5$o{#GKEXGVSQIm-4VU+_SHB-G;j;pma-b4Xk#(CeDq|-X-lwKtY2qAGC z$+71$Jo4BA4}NWq|MLDFjNO>Vp0MzJS?@&B3dF1bG%3)C1iHIOF*e5Rz?;zBYB%YL zg*>U@uDV(gL;DlpRn14VHeEBI$4&hWwLCwN%w_AtK&}I?*CeNqqibX*x4iwoFn8$` znqjtFp@##I_>O}$JjmF)-%aGNK2GunUX6PC1peqYyn%r*VY|N?L}V?Hd!dcr)+0eT zZ{~#u^JNke91VP5hhhvpk)_#2`U@+Ow^`>p(Dedx0HlwqMo7j+!eBCOeu1k(RVY>D z9S4-qtk3fU(s7fnXcWiy!@{bLohwo*2?o-A=n`DtLlJ^E9=?}X?7fTrR1d=){d7d5 zWG#!uVwR=iYHH(l4P8UO^?>tFf1OAo#mIqMSHsRWxs7hANFWCih_Z0$T60*VkDtBO6ty`7LF*$KKax(kBFG&*u4=|N1OH z^)q|8{k8pAmx~0A1NK$5Q9f!?pjGAae?mdGrkNOiFQwQZk-}9fdtJy|cz%FZ6A>~M zHD2DL^|ol^F(!d4bGd_wh~81lpUoCm3_-3J2}PllT_oP!&(1qvg=(1iZVN#71EgW# z9o&j?>^NO-eJ@=f_yNSs4Bozj$XF}{^M=s&|G>QR{6@jN@{Fo_SdNKpMNrjHWw@fY zrWRzIv{_NGzD^6O>!(E@*O7#v?8AP&`WE09NJdA9M+fn|Ha$)%ND^ASXG%6021tpi zspzUg*0#~h7Q3N@RJli7ma;?`wiTc^-bq9=u)P33@XLGQ>%VpxNZeA1q1`ud%NyTE zva27bkZ--_EBn7YRsqkkkwUcb)Fn~@%iMNNk0|hEIYvu0lsKva3cTmJOT6yr1zvh) zf**eD6x$aIEJche;HfWB}~^RShm0x)qRR`ltk$N{3>Q%&!%>W=%CG(ENsfMHhR9HKWhY3 zo)ZeDHANw@pNTEsi|#ZIVm7r@|1BDts!c8yeyq*QY)IE6p+^m^;U@k}rg4&n%_gBJ zxKOHXN=^Zf0We!_#dcKQ#fN|plL0Dy#CiJ zcXPmeO-ptmkX~poBUF`Umi0BQHR!e#kT)M+?fK?lzSh)O|4Rr-u@px$JQOuly|)F* z840g@s_|b1X&vZJ@mia7t zAXzkZB7_Ewvn2=1^HGH$WopDV4Oa$aBL*)$H;L~1oF3|C`_v+Lou48b(O0f;St4HE z&Xz#IG`Rch1d|>@G8V^F0Kv zgEi2H;@EWj?0+Zmr+t-tGQmOyoMnO-RUd~p{Zq1Z@g5zo?zZu zDsSCJtG;|+B@(enCUW?`y7pMstB$Xzw_YGu6rWr!P05O`Y7uHkN`VlPj`R|m=9cXN zS`6a_0`t+5#fSQmeBkysaZ}gbNUsHQl?2> z(YfjTqr75tkbU3z1AP6|<2-Zu7-wcKaWykd5Co(m2_%x7RX_+qU$TqcecQQf$4%_+ z+s;_;R=VRIxV}fGl%?d_YX*mDMN&%4Sc1aR91B-3(6en1s%{|t#?P@Cd0Hn?>mmov z{by7^kFUg=bl8|}bZT5VR^V@b{|dS)P_^n5DV3j(tm4T!er0(H1PEfTi|P6l3=LaT z(FM4^WIR`*F_8$mA+;;F3!Bl60 zWZtH;XpxN?RfDX=l&Z1UOlwtt8^|@w^K8|9k*l?qCF{!avZfs=K~)83FXVacEBg77 z|Go!%#%`=Z-XMrqj@`7bGClMTj^FfK#B;MC9hw2!fzfW#vFex?eh^4iX){?#1KO~J zKCzJhk)f`HUdx|cY;Ba*<{Edyq(x&C7G`+v(|?PV%dqu*?<4Ze89Lto0~k*{j=Oy) znC2Q_z6J=tP+$%?`2t-xA4H9q%sluodOD5JYC-*5%lNIGo|j2c!{jEWVPohve$Zqi z?ga$$m3q~B{A;3C@!+ouNe@LaNOT-Ppx{fN_RP)d$qNGd5;2xa7Qgi6hfx*5U@}3> z&~YRf(!(g_kddA2=pSZx*IOyx{5meqk8^hRGLKw%hUX{GaCvbO*Y`+86F8p7BNvYF z)iaON6Ype4&nO25$GCI*P3-L5!f59J0P}?<3U(=!{DJ`0Fo?v{*o6$9-L!&h^;ln6)CYa4ND7?P$^QPDhiV&i-PMB)mFbHUrJ_54yLLS(G*-ELaDl9-@MkM zzE(n&_M&l+=d@B0T!U0&jUP z!H8?UM$g^1<7BcdK64B`l|VI&l|3KXw25yOFmGN?5XSVe>jcxfef*8n3#VSMA>Shz8zmVTz%4FSse3onTo8~n4U!e1Y5gF;Rdu?Z0x3I( zlI$Ss`ef#3P(^4Qw|8JCuiF0-rn7S#y?T--FCF8|>_v`Go~7hiB+M9r3^+D%n#V34 z<>N=bz-Z?Xw{JVdp`kq-7#L$)_Yi&{DR?$Zxdkph`v@IKFqLA{FV7A_UXt=BN? zqS`i0Q)PPA=4%fx@ZLk|70pFMYJ=Zw>UQ-m64_%McB(ZSVe0cKz0e==vs*W38C@=XKs3Q|=QXq5%~+R0Hg;%&!DRsyZW|s)5t#d4UTd1o?9rMJIR&L{Ud$v{b8bmX>yCR4b}2asX#2<#cgl< zUix<)z_p6u{`opp_{*+iONrYE)D((z2}GS@5@ z2Bh&ub%gXN#kLa9on-IPALi)o|A4D^pt%`p6a08Vz+%CoGhUr8IUdpbuFU6pM!S=9 zEk@OlHU#Lps{B{2G8bT(zS+__z7Jhp*qsr&|HuEP^EZDBt22$?)wRj{5!y6C1jQK)_i}P1``1~`Rm^#aesdLQa=80$q9nloyi<2CiIE|?p z3_dzYpDo!p*v%j|H%LKW?+}?%iKS8&zrx_nb8O6bitV@DgO$&;pOmSF0!0T2eGC7B z@GSy0y>f1iX(1#996KQJE7lS%+~zE9BEK`@Y_^S}K9iQoC(l(y_d z#$t#SLzsUnU>+X%mW|odh1uIh;J8T7!&zJ+wtbY5zHSztK1TNV8JyWg)OZv%YS#7f zZvo69G(dA*1IIClEKBJxxI|uiUZN@iQZ|2Er4%SifU4Fn7{A@gRWy=biO$)Jq<8M6 zduS_Gi@;8z{MT}ACNg10G(*$b)4zk8NB2{7ZB9&{<>=LuJU@Awr!OBTZx_oGoIyUf z#GE2HUMlkWPyY@#4((yz;25`VImq6Doy3hOz6@9_EKzhU0^g&!G#~c50WcTRrx+ci zf9{J6P5v>iIZ8v>cMTME9f=IWS+AL-du_lOzK4i#u32rdb|eC2WzpGmxFDN=dVRr_ z!)9Y{-OuW{*4lz-yWJKY8oD5x^H^AP=vuV01v-NH3mubF%w+1W|Z zouu=Jev0IW{s?c|E@ULK#(sJIuVr3i>}n0bP21T>TSDO54zaDn=;Z~nv3smTJpkgc@jv9s==PZ z0dTt8r;uoPO%BUztO zpv2QUh}a8kyZYNmHHxnoVQ%#Bbh|eS&kd@qs@If6>&~^ixhz)vsheG^K&(nsvI&5; zsrqk6bKZ`W-nxN$c9rI$9a_Ft0lq8oT)7&7byb1yVATEi%wi?L85X7~NOqb6um|$%VBqaFy0Q1DU$^3x=-MEq534tJ1lu8w9?G z4A$@Wx5x5=%K4Bu}+EjxwymwNfXc|J-hz#{% zc6N|Ceg;|c(NjsJAGEl}MrSs@hE|jS*VS=74NdbJyMVm_K)y^tpkf#{$z+a9HjN@A zLIf)_vhS;yrbRNDL&|H4(e!VQe4(Hb&_8*Gp5bk5J9Ha`Om@R=W&nW%Gpt#V)K z1cY3tfn0@(y;e$J2J~{`$i~;Tq9a zB@x%a4KJc?Aa9E=SN}>t`dHCX5=%!IIsd1eIs9{I&SD*|E#$2_Ko@|aslN#PNRyr$ z(z*fN(3E#J;?L);a=u{=-?1^`NfbrJ$}N>gSbY`k;&n@s5*dx+4R_M<^S?prcYphu z!2DY#@|zHN*#e!n9wsu-gPX}UxLF~?D_T%2p+-zPZ$60heC+uJ+-x2VZeFre-lZ)1kEAU^96$r1GjO5)$86 zaU2s}ud!Z!0fD@df zW-syl#A!}WpXb=b8S-|KxDh2CO>%zj3eQ}5o|qA3ci%SllvAXe2J@f5id?MF#Y!g`ar|?zbVxe_1yYCnyKC!7HC;_^;i)VrZf$PBnbCsThW?Q zdaKdYNbu{YMk|c92T}*@qWWCKMZ9SxZ=TAxh+AraaZu>V6=0Xv;nLK7+H(j?KB5)k) zmp`@WCI}oC$H{;IEtSCR=?wP`r3~+X5QO(^xsDL!Ks8FZQuTd&+rge+B(-M;W?v8U zk3G%O^QQ@Nd9-*eG`?Hcy;wg9A+a5kXtWsmlvYR->+b6sfPAI5vLqgh7KuiS1c6$9 z^#T;dM@r>e63hWyMJ3n-fUP6}SgJwXci4I92whvo*njt{DJ*3+10&875JP%p=Nuj99;df%9o-b`Px{x7(;pF+{6 zyUQTjp<`ve#tpXWq-J7oZ$TjOv^0s#^9)}68&2N*n;11OgCvyFdy>&Ae%#bLugvHA zM!SjHF55${v$joVqshe_tczz-(rfl($;JcVNw>D;mlp{htPKn6aV8O4mJ z@I4o|m?QAL<`Y3HFAmMR z)OZwUajEA1h{pG%f*05h(ys97Rzw38qeM2@sAS8x_H zAOvbGiqN#S0c_j%&K{F#9yZ@h=y>N=V z-}mF_MuehcQFOvNM^zMV7}>|&V>hu_EO2W20;gv#^2qt8IX!ccOlF2a26V>K*q*~@ zpZ_Yh=dz`1h+Vx~IXt|VJGR}xmaaht(?dAE$E+0)Db3P5|7ilF578`*?ls=lW>R`v zs`n;kRE07^)_-fO>v>62t&*W$6n12uX^Z^WOn#yN1y;Q6NbRh($rv3)-y)8yqMeCZ8q78z{ z_`#}myK5COB60S=`dw_f^<@>(VYs^0qY1K8mpOOlb98UpL&wl|6v?`!cj0-sJGWvy zb%O5i|1Zc`jG(h~6JxTs3Ba}OG%V6SmJYJxl58G{uP-idU!ci$wy@L;5~KQ9{68o-Sli z-g^hd&`~rkY*%Zny04`mP;gv>NF;P~YMVA4$ZOjX>(ab_vngl9@P$&BhVxoz$%wNz zKh5yzM;LkW>$u^iuOmA*xB1dJU_|3AOKrGg&hf;h=eW3V6+Z~*ilr$z77w3)h6m3)&PNiR?CjaX zzJW1r9NEj>T`yr^{_Dhw&tpfnQS}aN;8uzj^{S=h##ZkQ>o!ntdomztXv7VTjO|uM zinBeRq^T3tRDzZFp^ZK8RvLt=*M2$-99*|s&tU3d22FFET1 z@s*>Nl6Y&ruO*0NPSA7pU&wUdP**fta_|F5t-u^Hv{$znX&tQ#&{HvUS1m7B9teah zYTtG6eUDg24^jrWR%t~#)XWG@G0){^zQLKV|110M`wn*9^G2*}Xvim}L^I6L=*x8) z1AP$S_w}M=@^pUS11R(JxVv_h{mdJ|<;JD*cG`h!Gkya?Fn3(MY>w_1-%Q6%`*Abn z>``KEiM;M-EA?IrAg>)00^Dp46oJvzL3DV4PS?enUBJ!d@CqfIg)DBqKw#TpoNS?> z7#dnMik?nlba$X9<4k|$5lU0DXt8L+?kh=A0z6O0_tkPJ$2BDTO$2h_g%8uZ$t0u% z1!iNNYbj9LZxdKFVvO1u_CNm>(!<+%$-Cc=?>cyny&<=-waE8e6is97j{6urbO(X& zm*25)I+qfn$uvO_VCOUVfzNzlk-5A?Q&oo2ee56Di3Bdrk8@`B5|3Xz%ClEbad}~a zl53GPV+29KvsX{?@cE~Sn@NTS@8|EfJp=I$@M|_?+o77`x}mJ8$!djA&7|~N$u^Ln z3Bgbzf*VLIZ#7+RT-O*%L=Z|S_tdr7O7-3h_*v z0{j4$at`17o>3xwCiyExM6ITIJ(74ceyg(5$1%D{&pnJ;S|HHkC>7ZcrIgI)O7x{; zRaFxaeQ10>w|%5Ld7(+`Rn#`1UtP$5&u~|w?zNoF)}(>}M;_i)$u z{4`gOK7yI*#CNULs)~YBEFcs?G}Vdky0~_6b+V8W3M)&vsIOda&;qE>7ZyU@N zfuAqoTNXWc-$wTxH{#_>NY4+gTpE#Rc(^%0UdtB(B={u@zf=ODV05O4^mikaPyz^C zkHGgMj24frIYEYiuHyR|hOz9E-h7;!2jrX6&NrI` z5=Vu(Na~uUa{&Z|lKG&MB@90%fI>Br6{xvHWKrE@EX`)d=xNy7`)!Xq+Z&p_U zoFEMQx+5K9(Q>hUA5&H7i0CK++&ZhdHe}tl#o_hH%?)Z+El>oCkWG#JTKBvf(_H|U zuM~OJOZ#}$8wPP^?Nu{Y5 z{i95sIzs2@7~5~ZmyW@$I955QY!Kj%^^^FskCFI`|BJVM4CJbsy%~g7bJqs*w%ch~ zq*d*jC1?=fE@aW-QTkqSFR8sdadSna=hlPy^_Iw6wNulUZ#m&!f0-p#qE(b7C(jRE z?UtX5=aJmKjfJO<5m+`#MLh6kB&EQ0bqu3PIHyeo@_+jvUP-D9C}{?HBZeMqJQTA) z;tGwN9%ZaF%i-e>5;Jt}`_W%zWNaUc(^sz>m_xY04+5W3ZV9AZ0doK|mZY#a%OfBA zBl>q9U|`oltX!r}tGDc?Rd7n=og#uTKl_V!-ptGQ+`(LKfy>!hPR(EDq0^7^FJ~|F z@}3;s9Xf7tjrXFR*T$D5QX0CUAOnd|TYO}#@UTW2Z)PAT2tivFg5H(H9}+hR|23Az z%gcyXQu+oAd%MEFM^hd_PlQ<>6LOS1M5SL9(tz4jr z;+06vKhD&)@1SK^{L2jQ+{MD=#5MVxw;~w?7_l%{v{TGCQ0EKuNR)F=Jb+!uvE$a4hH)>} zu*F#hcgwYzDyL_SM&lgbvWLWli;Q*b;qBl1es-S!704YUP=^`}ZXMSl0Z(E^RdhoT z1kh~#v!;~3j$;S|mIQJ+p_HsT*G@alM!B}%d9AG64D8oV-m?6&p*vnZ`iF~=@*-kk z(PeST;of`t_|YHSiK;8)XKlh9DXlcCO?YeY*MNdDFTgc>NiIB1EO!OZ=sb!fxqI% zE@LsIqLBXipGTXV#M!%NB|iJNHkhvhx%7R!T)2>l4)v4TH%4;*7)Xh;xI{%T@NW@` ze64}B*@u+)r4l_azJ=Vm%Q$mO7+vYmm9AM+A|MD<{6Ilb!|wvNKsX!s`9`m{(@uoe}aRrdJiuf>SAs)5^ZG&XCAnD(p^8nF#@B$8hCE+O63d<@ zv3QiZ(Kl29I>1uVt^;&aSM`a7{2Pb55}$4|!WC)@&~;ULZzKLfp?!6GJ0uhZw^YCr z0-?v(MTl=7C9!i0iCx=K zA_iVAAMTfbI|BL2vA`=>m_3~gzu{gk{LLru@&&X+yeX(J2buAForqp4yRZE}Aa94_ zmd{gTyExM^#P;m;n&myA;3*omqM^xv0Vm6r`AhU&JW4X2WY2g0Ft@zwtw)ZbH>`O4&u4Zcw)*f#=vLipqg|-@=|( zzKhJvDf;J+qiE^2UzJv73V{=lN^2xi8Z#3XhS7%cU;`<&xm4U(^}bTKnc5qgtJqsM z`OQn-q6&c&AcC;}&ZBrm?Jn^>QTGiPI!{4iGfwMyd~1o6ts z5`pk-%;HsomHBA(z0DLGFTf35{c&J(06l8xZ?EOqu1~huAb<4+sQQw^Rl2OmbL{u@ zpr4&4@u3eAbaaKzmOeVSJGT8O*C-vgo34+2&giUlYkTgRZ3#MP0A_I>E!8{yG-}gIl59QdhdAy z2VVXLM#lD#TUfxcO4k+40V2r`&OQDBSDt&ETi@~@QB2zGzK#8 z@PmN;FMl(Nrcnq$7ADaA5}q1cqjEcMl*F}t%x;~L?GY}YEfP<*uCb=-eM7)W!+q#x zi-Sf$UM;1!ax81m`kESqwW?R&2UQ6T43|~$rM%C(-Z{+6U)6`E3NRG>C70ZI5rn8q ze6kSOT2q19>y{HxbBd`>^L0>ALv<0OOzd5`pJqq?3(7T}XUiS=()` z*)abd0=c3 z_1br`ow*PX9mc>gW9WrJ851ZZXi%`ovC8_%)U z?fWi+06iK*)pYE9w)|d7JjVvt#x)W|oe2~_i_{t*Z<`=qJAtDs^becsdlOrs-Wuxi zR*lvH@g}I=+gWTh*C4Dvc}ry(--l>K<;FuPw75!f(pm`=TD2{-PD#AsscQi7$^&0Z z63d*zC`}P)2^6nT)xvzPM6A2|{YylQp7Hto!IAF7u|}7%OltzVs)+yCAoY2@yV~_2 zDe;E}F&}z{_(%Q@Z)97|#D9Ikd_9)zG6?VrMf&c$lb*Y7!7G-Kt{1v=xh{TXp6D7N zue-b71`>I*b0P?E7MAF`^&o20Wc-u&V@=Ir^mHK9iVSbCqIM4gr9FT2m3r{+4ak>C z$rZ@D>BC68*!B?m0~7 zz#w+fVrgbF%-nUI_RAZQmCG===LSX(zX+$4Ux{O3#1c5gJWqb&FX>~O3DboF;gc`gs(;#IVjfg!C(xvj{UEA|-4WxGiI=gfXv$^Y9B~=6D z<|S`g%LZ-pRqxl9yro9SZ#XvF^6Bd{iAGfXd51RO;o2qfI{w-qUR7E#(3~uqvxH@I zp->Izxdy_r05ny+7xp&D^~5B z1Ln=Y!gU$HDFSysL;Bz@I&a*MH9Z$bN^1iEzui>p&Cac`6oHfh_Ur=beLFF`JD7R! z36_qY0wFLulA)L>W$2IYYj~c9Y1sI(wYvA;GmwWQV9up<*I{+Kv^2w0pRr%*O9 z^IeC)_Yp#%XgZo<5{V^9_4E@@cOnBxF_$SDy@l<)kYEm>7Qk~IeAh+FAarR}6jV*; z+!GIQ>BvJ2>^g{|u21!^M`Kv|C7%4m|HaB@x#vIr>Y!-7bS1-E5Qs2lx@f+D{C_~cOrf0S9=L<7 z1IGL`(L{=5XD>okP{e9HeHnxalYGy^wM#5cuUf9Z&>+4{Ml_D^xp=m<;?5e5N5OL} z^7GT|x##ulxb>x2xlG&b3L!8eF^+upBg|bs%bow>1L%=x*v|?n2`OW5q z=0yP8qgr0{Euam9O|)eoeP;i-98QJbu>&;?2sh0pe9Z*Q~$HQc*k` z#kY{69)cy1vmCk-)z8{^D&uo%0TuV|EWK<>o(GR1{OyTW2 zfbbg!$#}u{%PToDAg~>}@4OkKD~&a`SUn;BTa(DIE09+g5JKQ)LqFq=L%T@t-^u*r z&oO=fqbNckR0RQz^P=6k+G~7(v!s zjtJbCt_O&(M;lPZQxJiJ;uVoi>_9R_yAIHGO;N8dJv}nBn1%e2|d?w{h?lZ>5yWROx|z&qFuEJOFJO#FeGf<%NOg*bIyvL?{Y{rTOxj zxzz{MzDm8FGIGgd&%p$PTO!O&*~F9W#q_F_k{eOx@&b4M$j|WdANp@(N*2=h2|PFa z-}lP^AO4epAKLoZ7H+ACS1O_C8cUZh@W8MCELJ{;9*I@;zIFt;=3{HNAZcf<&`eXX z(wdMgF1p-yOD8?s;uIzuxKOvJXl-3+11j}ayp>m41_-}7j?U*Sw)ds$_?oKxCtzcM zZfNQoYk6J}u#mq#fL=*5suKO=Cs3y*@%HS223FAD^f0bv%l6oo{b9;aSq)3)-ZTT5TK|kW-N(Q%Hw-3zU!>iX-Z+TdW>kC<(v{h z5bnj>#ay|5iuzgRAOQ(w@(i-bZGAU?iAg3CzaP|Z~ta$&Z zx&fwwSXQ|U1)+$Q`=+R&0iXgHz|`mttjr>crdM{?zUsY&l-^DZ`nFW>HOD~!k%+<# z2UFn5)r_$lmc(gT`Ieb({p(-zGRj(zW$4u?6T3*3&8>>Y& zkz_iJe&#Zf&wrMnx93|E%mL|n=&1y;t-}P4(;Up#3*^n%n+fFW>f_o}>y7!18WVW= z0*RfYL`V9tCg)J%38V~DvkDPx*oCbrDFPe^SuC`E9&J&1B8n$LZ7)^qW|5N3NH*IUYReZqJ|c) zBeS?VZ0YrEIHT)Yu^bUe9Eo@D0y3BLZfzsth-c_PVr^S76db)9vAl4QG@m|JE}*(hU6t|=0XXw6TW(0Q=Wv4gS%>ww(KlLa z3Lw_q&G=(aasEr6CLN0q_-)4Sml89P#08%J_}`#MMO{CY;z?tE^<1|ue$9`nGD0-w zFaNIy@_CON52aC3I+hdE-S0+{@+!Z4u&jxZ6{j23Z<8nG>c6@&vZ7Gn6DS6OmOwOG zJeDbMxplmlsl~3&=U>^ZPE!e8V!c<0`e;dWxy=ptT1TpeC`rt3JQ&`DDxZpPUKrQ9 zf`Tw8N=FJ+*9fXMd7E_GOaff5bX#?1!*I@qk-y@e6D?BOIPa+ZxUGjeL%>>ULL3FPTLYqOtD&TiR?)BdX zh2^($w=wIEBSIj(q;3bPQ~vXWJf}QX6qE%Ieze>?FhcZsC@< zd=HAE;8?{r4Co|*0LK_y{@JQ%tDjAoUI2z7xaF=6jy;vd_hfw(v$aT2rFvI&0~x@> zzxzuZc^!AaTooVgXCuNuyBOc@7kNhPkKl316V_lV9RA>a&KCT>GGr#ky3#j0( z-DXW~1+rO>(cvg}+}??w^};uOO^LW(5?}e*t|Z=w-%Pfw<5gU<^pV0KPz{7^Jl{w{ zOZP^ks>-W@FEu*X6wr0me_t&xkdlI3ziQY_3VOQHj~vDP+JpE51Jz*O#+UPgfH^=Q zQB8yBVDD-wpr#<#CYY_ouR7OcdAs30nzvWGs+LG%Ld8&Ys)FPMKDoffuNvk$uO0A< zCCvUV%z+*X=f_c!>GB?W^Ew+R33dr3-GNMZw4eXF0SQeY9Uts#3st)=QWUhSHu*Qb z8tcv%qg|avF54x%FeBI)Ng4W=>qh7w?|CcQo4^aL+Q)9cm%bhQh$PZj`K2`t;bait zT1EE1>`kb;jtnGDsnB+WJ0$=svISpBlqcO9P+SYh*LdUtaOWI$-J0USO(~8&ou#MW zXnSX-8vH`<Dn})_$%$`ZWLYQy<`MzxhX~{rzO7ryGL03<6Zcq^l#%g=e4Ub3ge3 zV%;W+Y7kUvmFm#7%xHkRE39USEU0l~TiZac*t|Txg|#SO0gmxYNNL5 zfxP+r-#%|mmAZtwJ%#1tAi&q61X>KyBE50maw$0;(V8%@x~kM|g)dW6KsR)CtgeI7 zb>2S@0)h?${pqJrCnoWB?hIFx4VOXC9CFtS=B;WsZcBO|YAk}5P7=88`oR3(h(uls zMkH5wr{IzayPMUbm% z_f4l5$jS2r^9zV%8kt?(cw5~)1m{m6r^g}IdVg%QNH`XlkbB#YgbdGFO-a05<^>ta z`bp9BmHqR|L3*x(svGQk*&Fd}3oEx+l?#2DD#O9r#XJN-IkKIC@45t@yRLAxLi#vH zFM$?ENG}BRYXtGy^R6e+6~R5P>gMEgIb2twY3rBLE87*Qq(^&r^!Go6y|~C5e)mu5 z>+h!oI3dCMxOUq9b;1S~8$ zY}*p!-k0~{E;!-4)99fzdv2Qv;%i9aE9Yz06vB7#q62tF2TD*cg;zFPwB0&DkDJ=f z4SEKe?4f`5_^(IeMzpJzKcBzO>UP6GStt>C;C?W4LIBC-LZkv9V_s$;YE7l@OJw`%QY(=znjjJSGkHpTAFe95Ez;yz2kxUSryiD-; zR}hA}@x5=~5BK|zK1y(@fQZ(apKLlwRYAL4B>%eCQ+Va;(5}u_1!P$%#|x$}XqzI* z4wj~_@b$m>9Tvtf5J_|ZtXO7CDJd?^mnG~*VD4kalLWrc{FQS^-w(?PK@f!QTI*Hm zsD2Sw@5R+RQGBavBCfiJb&T4o>ABNhk^kIRC^0l(GxNI=b*(2i=UK875XCN8r0HRqUD> z#kEU3`}vPCclj)Lz59nrbob%5v)A5))SyTyI!ZQqBmISs;cDsClk1ekTb=iP33k9M z-rUEjV|j8Jk3?!6(c_>_N?&&K>pL*a;`vj2@&oUub88Q&p%G%e1GvRJxv8rxUc7*n zgU&6TsF7%Sd!uQy4K?j+9@l9Q)|S%OQoSpRU}DnZ@PQO}y{s2&-d+tX)j%lTR7t#H zxdzzO<~T&)QRq5^uj}Zg>OJ(@;tM&8tv#u_HZ(RKp-UGr^Oe{7bC-61v$UeW?&c5^2so{s3nl z`4VGy+)J`&peB^-21xn@s-TcK818LKvGz^cfTS)26c=2QqY+;H=00*+Z(WL^%C&x# zEG#8~=M(QApl9a*zUwe^;yKQK>GNEE^c&=-Cx~@*(K9xHq8n9ND}`8XxtX*qYX3Hn z3q-|HL%wLEOwF;P2nq!c!w`JOn+HJ#IQFV1!n!1JS;Mb5ZYqga@v5}|RrM=Qw;G2O z22N~{cBZtV?cw?LFNdxwuWD4j;SA6j9eH(K!;XvNZQKHQO;Qv@0LEhvL$T1nkG2|e z+mp;?gCg}`*t#V1Kq5V#z;f`5b{W`fZsWHUkVCWfs(v1{KuQTqOCIld z%MjZRB+1P>AVm8hPR;L%|0_J#TGVZT_Ohmaqi5b=F`+p*tmJlz-G|WZLS6Aj)JQX~ zsmjhqWg7x|Uvg|;EzfeUBbWnHRS~%&>cj*x5^bD91k55^?m-P!bc%b*}@E%kp7bsC1|X9hympX3(MN7^^*RnnYe%KmfXG@LQR2 zPLvi%=rM$ZqVy`g&QtXvwj+%< zI#mYo%2{6saP0u>fH!{U0KNSt3-jySPY)YvajFh0MH7Cr@)gH*(s(<*>Fr4At;eve zYQOoWG_QDVKh~TRdTzG@&^35fLUvP$y#~Z9CG5&Yz`7O_0ibW>NiG^$cJ%YOOPAI0t&`<_TGKU2KE;a+7djyf@pdhrr6S()5@ePDhqk>47% z76bt(3X#4ZVxxmZ26|8jGm_}H}^O^&BGioFnS8C4yL1>7EP?+(GTyzQ)2{3>j zMQ67jBc|wBzC}^`<$dbrE8aT1Ut_#cA&|byhl_KdXlQ^%fa81oZr2z;*0r-d(f|~V zcg1^n`Q%YfI0ZVi2r(_fq?6|#^Rv7+Jq$sq`L#E?2d;;jNMIy%6zL*md-1O~L|%Z{ z-i^F8PwDMt z-+v_kmbamwpAAzmF0cG5DBOEgFyqOJu$}@dw}j_dnDG>fs^Zxef$t-0Vv*K<71z9+ zk`ke+2%(e{g@jrcJD;Ut;w( zi@nNFqjlfz()9-PcpUA@71Ze|WPI5|coV=}N~G^s?H8e{2u-ai*tj(}SD^cj8|c0J zR%8$^&jQa2UF>`x*=Pd41|Wyf-#@0PM6@W6+w=TkVUh>k99Mk@Pf8RaNC|}-v^ejL z_40l3AtFc?JUfg&+YHECX$cyTq39fOavb+cXsST~lsucaCkObk?wxpEiCo#>O-f0B zB+1|O?&0={BNSvnTnLJRm#;w zBNrF3|L4!+ef-Z+?|v=H*gnMA0Yp5B%q|g}d!FFrv-n^A48iGHltCR*$?Fd0QdKZ6 zE@0iXllhgkTRfu=K*3J-Q;E` z34D)uXD?E<=t0P$K9LQtA^*m7fv zw}00VfB$FWXqvz zIsEE(5>2K-2<&_o8TdHmIOLW6MUp8NuU_D>fBX}yT!zs@FGA6pYiim9?N%hvodt5q z-OTmAnxV`8mttaX^N3y>0P)&$K>+r&&EfmHSe$eC%s)=kJ7}WoqW#?)LBr%NEsw?O z)Ylfj)p5&pLOaP@R?8^m(5}UT&yRdy2V3_g$zHWWyNVS-t-(EzO>X&GAYM_XA%HjH z$;M?G?i5QvDCor*=EmNRl^!ILnP@(|8Yb{JW*>htp&vF9%a-Q7l zLQ;YX>cmxqU8=IyZ6D0T*Tl;eAP6uAdNBLCFnhZ&dpl8#a#S-Uf$iWdWXPYpLTO?K zMb{d%7m}iDSkv=i-fm5;mh_kD8YS||D>M}aL)H1o%sGC0=`3hbI`jm~(TW2k0)+@5 zv=}au`%5#tc*f?5{+sAhBP@CrN`o}6?Txqcq{OeCQG}orro&owMJxZ8mjP+T;J>Fv z_<_>%WUU;EX7Us15u_COwM+7b{ny+OMS)fp&)0*NgIRQRAUevwJr{fr5sx7{jMcKi zTA$-4kfI>+Ig|`c|DV6Wy5nZ_Qxiy4Ln#LgDQ4z5|M*v!KKDFJlb47jI~m@03+cWQ z_P_isL=tHdJ$-0;1U(j~u(ZI~ov);O%NWJX0+XkXpcy7Z`)_9A#1R6|VQ|llsD_D^ zT@2$cw3~mt0Z%id6f*Oi`ugWEV@aavG;YZvGc!)Id!QOcDoE8$7Oq}Is46e{?*B^H z$c`|z>UGWE?xRS_%)mS7pZ*k@U%*#ZcOhlJ8@>uPOyOC0W(SK~Ux(r^uLeZpJJNtzu-!U9*HyL78?6q|qk6itmY26S$Ka+Z zDGJyU?ZW@h-g(Daa#Uygsp@cZn!Gs&t)!Ju&Iu(%1_=>mqK&b!F*aZfCK+t72{tAg zlSPt90+e&ktGv6~9A0^?-gD7y)SOL(6o3$}bG_AoRP3QH1aVt{CRb*B)+>5>YN=?6w&B`innUX5m$2q9Q=)@3N=RoAUuY^#K8mFZZt zg5H%!<2nwj&bS!x)!_ZlJi@LG_ptc*Ggx`rMI`4hsqXJS_{ocq8kItxKqSV>(=Q?z zkMYFse!}S9ZJhmQ??-CJWO&qCDWpf~TeF@8N1uopicl_Oe-H11#4PS7+j|1(6>p_; z^A{)tS5=4K!vo??=>jSx7X(~-)qFHfaPxITboH17LvnW8+NQzGX4YN(|G}{ICN@61 zxalqTpx2~JDadAR3MGekymbkuU(iiqu!8HVCNQ6~*R~ed9cd7soGb{9P-Y9mt6xuM z(OCp?1I+a$uGq~)G91tsHKu8w_{1kBPj1`tHMz3uw9lA&{Tljc7RF0i{2%V{i!x1w z>k*;NC$8G)(hqM5F*=0$`~*>iYpdMg>_5|buM zK*lZ8shRwBY!UB?&gaZvin3B{wev_J(S<;22HPrWR+%AA2z5~Q?3P{ezZ?*zL`<$n zwdh=Rg0aL5^SD*y`QiwcYq2zx;@>-$5fcKtVbUOkzj?}49_xY$PK|UiPwJ#y3nkjj z8D@AkA{fRwuoq|Vc0{1bR`dV1NP(~{jGaX??|K`fAO0fxzHv+;2t*U?-}E@o+zTLac$S@T4qZ!DA*95$Dk$Y)S4udQa@A+L?GL&_;@TE=xrk$xF+yRarsG-` zU5i%{@0riw)@OPCp5GDe?4ftX(Z0>dEJB#J63?;G10fb3a}qr(j%M3Kck%R%Kjx_O zUQW-lb=Z~Cq!FJPil97i(zm#77)Z^)o?JIS^0T`@C`@`d%@Yqi!V2{i!Eg{)P4C-% zu6d1@2n3GhAsxl4lj4|~;JGKVC?yDnrguCe>W)R5^x2fHITo!;wY`42Mw)t7KU8W` zFg9*sS&DbPZ3(BI*F|BVg5#*Eaif(={YWzL7HO>~60OjFN;Id05*mBX_%v2*AzC@j z#J0Ox^#RZ|NoTBn%~6w5_K)VSjfVrnlh@T=5Y%IDiUvBGJ;YgMG-2YYBji{{(-6f1 zBAdlCYJFh0zPm}4k`Oor-^#W3CFc-dw*otx#~w@jgCVqfL;X5j2Q3^zk4Lb^Gl)P< zyEVVM)Fe)!gf*Tew6G7i)S^QN&B*J;)J^_3x0gMYEK$Q(GiRI%YmErEbREkgGX}~9 zA$fmn3I900h0kU8AoL(6P!t;fnIGiJa1S9NDYr5~lYkVs0~L@0t;a+;)KAB&Qc^CO zlKi}T4L=H}$axNLi1yN}o1`6UN(Ec+a4(o-3$^4R}BL5z7e625``e-j58$H zur+ZxC%8YSA{Ha2L)C)-@g|M76qJiDrU&P}wvVnJlVAK`KchnyojoR=+rE){_B_4n zy_TiVtbuPfkZWEcsjs9ROK+vY7ZL^r$|T|j?|jb^Rvi;3f1t|DnFSl40aV+9_$)#F zU_g9g@}Z`PYpU=R`0r10YD#xYorRNeoYB`mWv~OV|TWAs*r-q(F1~p{B zk1{j~8I8Zb5GcpR$roGSxM(_9KG%Z5sZgcd+(2G7_Q*%X z<+?al1-o3Nd)ZnR9(@w!d=}TXkeY@O472y?2YKd}pL61?-bUZ*^^|kz!}eGkMKesC zN|}KzPg58hV&O5T_{$i!g;mHCNp*4lYcHp0y_)o++exG!r5IU>P&Ed^2Ls~Ml~X=Z zvC1CqK!sz@=^)u*@Uw64WB=YVJ$)vcE@-u)HYwAo-fObzRPRmc)#Em*_i5{#PW4W` z@tb9N92l&yYGs6Xy>$s)i-Kea%1pdkt+b|7=d)nqEz7mIiJ6%AwHSaQ(Z{%Qh3n0COGBEXT!mJq)dWGN5bnCBP3S&ucSHExfR?qP^o!aUi>sm7U9} zxMLg0ptv%9(tNdXnl;`~r2rv(y}?E<1Y919^B_bgIojH^Q3 zY$y(+G+!NE@$BkEprJt_d@FxPp~h{bDM1ssgB3(XL&kKJ`dU6+iZJmGxM7G$&RS)(+g2FiOl8E z2Q0?_>Ya>y{9A~z5_&F8DAq?vNIJULz>6({CzW}){|n@D{kW=vs+vw}B7h;Igp6J~ zLPwJbEGHFQh7^#q#&F!yjG;&c0=rbgDf{a9&IQZaE;Szf$yYe_b$?0E^0ky^icF{c z5UIN9Gi|5pSVc$;*S08T$0x4|#Z&Bj{2m^@<{PX&^HMq%EypeurmuevBBTb&oAi<< zH65uLY`F0U?0x1Tx|gnD!Mc-?x{hmG{*r~`AoByb;rZ-Z{c(rCfjQAR8Xa5DZHaNdvEiL1sOO&c;A)s$gTZ&-OJ> z^|95u{IpX2ur;9=9kXy8#U&SZ^Xga5!whPS@AD0MYt`&c(ulURVdITy?dAf9z{czI z1=1~Jlt$Tp*1u8cT1I$mZ*xfA>H6Cs729nBbW_((tv#;;^so_M+E~e+@h9ldKF-R{ zSL4t5j{sMa!dI!ewtw6t4PY(=PBuqm)nZa79*dR9O)~RIX$QIuNoH3Hsp&9@fi3P& zYS@_^%Cz0jpG?oX=LnUQT^$cBM=(nqd7UuVd92mw*sh#r#1zjG64a=VAmS1j12ltL!__ zu`Ps3@x<6S4PW6h^o^~`&5Wf&!Wr&2&` zKxvyWmvsNT${nZ>OBr187mHYVRFvC(H^jicG9BHmt>9}}aw}=a(wkNC)#K?{dW(eV z4CF+Wl@AS8m_I+jYhFE{^{1q;(>CKnHSTX4pTjgPd)6S{;=Bp3TU9m#6K{EqkOaqf zFm&uY7&`h&f|+5IkS#Brt>nuV(O`X8WBtR4z~<=XabyuHzDU)EYpKL z&~pqw$_)_J4E{Pc4^2Q$c~e{0YMWBj=!8HR60hJOOCFfQ*U`4@qQHnp8NBsD`hRgN znqji|O)sJ2wDnly*~v@YVwu=c%Lr}Qj21MBu3UtjEg%CXLi7CqNYlV66sutJCm=@% zlmuhfC`nO^187HMuV8Z>+ex9esK93{E&}Eo_?8Fq^n1MbTzmX|U2A*eA zut#`u;Ojg!@INewoy{>lZ{w)$*CBv(Wq6iZ%oHj9rtjdCu7@?0FxW%)_xA~gf6n8&foEmcBFK&Uv% zz9nxWoZG~Lo&QZSx{e8gGiwl^F0TcUOn{A$g50=+Zn(VY+!U+Ugt_g85jH%W#<3Nt zP6J(UvAs>udT)9I8*i&_uRRu2T`y0go^L#E0CfQf4^WDWF6`#AOM8fPm}C!>@m!kS z-p-^_pQv;?&~9^0YtP~b!^B(kP3nZkwo>Rmp514C8ogXbx)qdYvvfF1gwK^M`jYiw znRO}aEQKe(nA^8}Ef_IVfyPS4i$jbQp5j3MK0-!nb}i3UJP$Mtq+S<~dNRC9EeHW_ zu0Ukv5`qhQv9tNfkFX6^HXlzm>!Jk%XaTcne|c?_!q9N?MeI!8-?J`S*EiWttGuT4 zYC`oNr`pF{S1<4Z1~Oh$&U=883A-NKqT3XW|(-MAIsdSlqsf1eP=e)fq7j! z{)lauAvE2rdUN!@4Ko~N&(ja`)J;DHAqmBkQ_E}Bxa;M7mSScU$F5BCepS_{R-Wza zKF#pF*AdP=U+qE-qih(bT0N82dH%t~c-P?ez54vYbrjisWuh^iS6wxqx4maEC!Crf zpK}-*wCXIv>xaJf8p@`G89%W()Kzn4NQsn!9Rmf{t&efVpD!b5YK-qMqiRht<{Ah^ z)nC(e-dMi2>blBQ+j^ROzqe{16x%QQI<6VUC{D5SCYd!|S1p~pnYuLk zM|0~Y&LxUGs-~zAy#(0427yHRSqAa5=!}iuIq?uB%;=l(y9qk z5MDCR|L7Zy;Oba-%eQ-~Cf7p-O=QqSWpcGG)VC)D%5i+PvEJr~X$Ru%5?f$r&MEWy za1Tb$aXefeXN?)-9g!Z2ZpDAzE$Wj9vbg@5o8y8~XtVw}nR*c`ZvFJSW}p&=?gx{| z7D%0PjPJrT6d-ZjYV1q_EgU5M_(t5aMe_L7DBB^}(}7Y7w^$<3*U9KTPcZW6lYqiV z#z`Er61UiD%Rv2OQc{9dK_39ZMN}xl>^9}Tz(oj@5a@$r$UJ2J?9B{)UkGe6iRX&oKxg1Y9Y#qCiUFmx`Z`r?c>cYRE zXy+-}X=J-KK73GjDkaQ#2gUJW9{kx?c+pGW!qOAYCO^!X*KA3fy?CxmAQDA4gXBgA0EH0<`O(ajqLRD#{6`-P5z{>i^rQ*yp-8T@$`n zV$Xwu?U1t^26ANrAqfSKT+Z>eh_hJ}Z#He=j9hgtV$u>KZe&n-*1apKB=z1)Sk&IE=JK(F{Yuc*4Sb3_t2e$*w6SIKR|KK$@G5hOCT!PixU1#9LcC=M^dCj z6!VySEvyxt4F21Hl6&2o>8^mW5AN;%B{x3*c^vsLOF9-KIU3J%@Txyd?ReC541j12 z=nDKFSJDw$N68-LchA3@@zPE%UG-T6lA=8}EvN%jiaFvv3+P(Bifs?wLhq_$F@quO zhIr(j=b@Vcgp|x%dpz^j9#16MMRsT(Ph5XB2cCbDjz!DS&A>qcdLR-bJG778Pu|bI zO^>s1-ANqxk~dH(tB|WQ|AXHGsf31E8K4rJ&&Csfz}hF?N#}vz zQi`nd*VJb;lxrAWW(i7-=@S^38?liBmamJk{HQ4XJ4$SNI>(mHc}9jU%0-tzSR)kD z&}3E5UMsEC)h)7`FKeG7g+Nw^5XbY#mt6{uOU3a}3WA1?=O{mJLYqm@oPe}NT5AxW zVZzne_AJ_|J@@RDcRfDfDQFP$-C< zFW{CczE)yli9y#9nq=^fhsiv%mF{y+B6Y&rDNt|Km?nICgW3go4XAi1OCdsX(w(Uu z4PlLC*#FzR@hTScE<2mhl6h1{#wUx)fPt0H<5tRm!p;^DM(qnHa54qLi+Wl1u2`Z&|}_j#ZhQ z{0XTcl)`fz%DGH6vYU?bJTim*WQX_rhIMO>pWa$tDWtArhN39tO&Qbyx)~rpHpqd^ zPtdn&J&TS#4W}A_#_xl~vC971I2@KG8zpoC&OK%7E6GNmxAVpPQTU|MH6*#V<;<{8^kBaMJyMA4Im3T=}_vW@{#Ep!(RbLve zX=w!5dbZnC@2n>fttJk_pXdcLyHT3K)|dT=@s$@593NoHU+tkt%_LAMiWQqgxPE0^ zlVa(_@g$%}%w$sx^s!<;3WX*Dl$~AdN#Dfc#F=$X9Tr%398@@h7mtH&Py2*D$3=^T zkU;}wIdx;or&QDUfwbWuhw=Gxo?cIN3Z#BI>Wh)znuR87FnZIwDKwW9JIZ zH+_ge-ueQC9t=Sdqi1rkc(gd(_=GUfq`;<+!TeBwDI ze)3h4Kl~2@oA={%g4>y7VuJR96d@3H1$}=Jr9t7M3mJR+hjCwg0X-EM+uYAJyS~AF zJHJZ+#6Ua0uAFCa$5Q5}6vc|F&aFi2v8g&3c_$hwh$!eFX8N~{(*3!1FM+#w~)3nMpGWT5kN?d;a!_?ZJX5mrT+V=6s61< zy(^BP^BpS*#r?@$Ie%~}^|^==8fJL_+w5fPasN&!vYe%xK8$YRr@&Qycxgu|Dz1m^dDx!9sT$TwAuzRC_*PSZu4?XQCN`{Eq|xxX*Im_E@(7J>#*WTs+hyM;v*aW~V+WwdN5jFh^X7}}7QRJvO|G3ho;V2TkyPV_ z{pshb)p`W9B>Qsrkh4ZHWE9&wjC({K2R9zWo4*KAs#V+7-;e^|AxywPY8tNBptfzN zUaw252U@pS#_UegciCC=UwaFc;W6}R7^Fnm4oc=0^C&p*Z22-G^$I3hsqixv#x ztxx4daTxo6qPph4fu&ITcI3nkoA z1*tV#J-fx4-?ruU#QNtTZ3`=!qMYhOujJ9U7jUBq#{TksoKC=@q z3{H0x4CD6`Fl9C(1u~yS8+K796fSuQ=_~)5@;R50iUNB)?%MH9?%MTDhO%2pgccEv zEg%-E;Cc$jn|eldHjzqT3zw{{P!cu)Wf1mEbWf}MVuTWSLXj6XdCfv9LEH@z@(d;o zu<#I=bcEJ$`}WV!6FG)c7G2Iju76t9yYf6L#k{}8Oeq497^Unun(q6Lf995Jh@`q% z`l7Q5gk#v1vLF9kDWs-jh9XrDaZ^EGgbMS2nTta>;3#BnTt_M=3{H&BW!!PTOzBeWeR z5T8yg%flLTQ63nkV9}xwi&hHOpA^R`xKt|sI{Ej1w3m&Wb95vPYA4{6*go<4sfppC zYJiEVzMoW$GW|axd=_30;uDPCudr$c+aAoP0n^Fkme))J;x+d$t9IHj@yQM=P*Ovy zWC>*VkY4dpc3tpADv1SzM)&!Jreo%ZFg#f;e7Xm8ZPKUvB%qsms3|z*V0QcDanR^y zxbQf8Gq#Nh$*$s|qU+75O)kB5adp7Yo7 zl|l=e=&^8By{)t0RTt28#&Lw^_n=${88jJtd?TaxJwfWEqvDyoFy9Dj-z{%w6n6=O(%673ch3d>(A=?=aPWKF2wiS_h944qW&<)0PB(b5n7?b{55d}nKnR82KaLwS z$X z&^ozo+hbOph-a>ATSd;njy%Q90HLR(Jfo`fvH_b6GMOypjWr4G?tx!_1baTFQ=+o zFsfJ01gNdKVNe8&cI9KoK0@0SNY;{!#Xw{*M3z$M;sZU5i##&QV&I zEVi_C*Ft+oa^Xc?vEn44N6pSi!O7Mm>qH4 zQe_%2Ka4=Gly5MlYq;eKfzBlJUUC-MjXUT({WydaNYlX1=1D*GJmIDDF=A1qt`S|i z*mtoi1YWtq@Ewm**tZWWog=npDS@sePO*$~6e6TSK=WgGYi&9w{6X6-l`*@LQ-1SB zW526&?}=&n940N(=Lw|e;shhOhKW`?XbTOQ9mPz0c=1lg{``GpUiTg%_xzT~?LQ~@ z%zYR;`wdp%w1Fsj)YJs$HU83D823P7=QEMl3lQbZ~zvhVPNBSZrbxr z9^UpvN;8rQ*4sCz>VHf}94d?r@%}#c#{}|&v z7chVOH%JcMi|}kJp?P>(aLT*fY`~``ede^r-@P?)1r67(KxP25py5@D1Ohrn(^%U; zrY0F`D;2V8z5jjkIv=nnhF_scR51-Xg)C}#;U0Wte)9u36d&qs^V^hZZlWQvI$1RG zgJ_j3xdo@Q|FjP=zT#ZWd=|Z&nY3n~uIWQz=KzIrvoW!*Nht)YfhToQ)7nX;YN>mwgXpS7R7S>#ty+v84dYFy zYFy>JdQIrK17+Wtj+!jm49Y_Is`AP7`UgDSJZaizFm2w12Ee0~=)u!!ymHlEBQ<0` zjhP!m1;XSmeJ#0{z7}))ZUUPgA$-qo2tM;LT6#ay^CrflI-|0Km0AEt`TM^;PvUtR zUfIK~D4tw#9I-`9II0BskqWo({T6rc_;1FFdr5_sU}zCM&#g|3eO51}!u5O)WeO%) zcE6Efb)}29j-A4>#YKRktQ9HgQ%-%_vKD{&99;?K+i~7BatbfYtl{e9Q~WZ%nGQEZ z!VTi!5f3cl@&0Q$asHb~g%?q<>H)Y>lPMH4fK)5yPF}fD7#;dY=@FxtO>-y?+6ccV@Ux=cFhHj0a*&5^B zXOZqYi;ltD=-vGz5<~Z5SUa(TeKbE}~44BuVuf#VZD_gj=n*SDz^soW>glG~i6lCnN=NNt9NxIH_5y=yd!YP)Z z=o^t~!2nL7NO^D!g-c~{46kCLn^Vda<+^xM(tGKdB#v7{u(uPTNj%G%(vx`#nKW>R zDpQ`}qySUa8w9rO^N|Ab`sXS<2Rjra*SieqwvIG3Ra7FZGDiPCe*%)~Cik){$X|K| zLb)Wq@@W$P^-0wH6heX!-XtK;MyA-tlz2*_Jc&}^c^a;(;dy?PE~#wac45QQ#LsZq zA|K)UCqB-$(R+vn`sj3EJ;wU+inyDmBY zOqQN-Hk}Jspio$aT-_vnCZ{)lNU3|&)g^^cVIQ6hFxqz^V|^Er8oY;&12+&KeS~mk zBPek6D6SqsX(7MdG+xn~5@uxLEz*QUrg!2T`wpzL{)#A&IO-nMFYa%0!`qs0G=h8! zRIEktI*z5P&RG-z&m(d2Yp5*0j6(P{^uebPxdFULFLg^3Z2`9ad|Du%6%(%>)c=tF zcx&g;i=znFrqFvFV{0#GWZfIFVjY;dG^U;NeY4NtK6!33{kUYi9=7XYHh49af)!9* zLpQbHs>Xt2#eHN-gAGl21oaMfkKf4A-S5KG;@EC}vKxm2?V?n|U9b>$$x^iEodydozYtiG8DMK{@;2ZNv!yvYL32v!^Td@!| zMrg|N5OE!?FNnLhgmM(xf*>-Yp(-_dSX$h~5drcR>6&d(iFHtpb)j3+IH0Mk%CAV~ z)5zR7NQt#-9@hMoI3O%Q?CNZIJs{Ph|)r3DFO&t4dTq(h%r!W*k zdcGpVaWF-Y`RAU%z2z_S*dzanhf8nNcj)A`GL~ZMb@Qr#?xEPH<#|PR9q$=E2ZTe~ zNF&vRaS_cxFbxx#I2XXUR>Tw)E=?ax!U^(;u6r4i76~_qAi$=fJ2-XmThN7pJB`J= zW0i@dx`}o5Q5YWrz_lu5hW29wf}H%CcQCSN8xQ>W8w~H<#Jcle#p3m+QOc$L^?S#n zZ`H9#sbQ50c#c!AaeINvbi=L^5}|B@g?%V#Fy317vFN%mmma|Flw@f}08Ho!bIc0RK> zuENyo(=;hhgesuxGSJglXe7V8Wo2Q#hk^Vf>=^$IC(L^XBgM>&jwog&u8WH3I4f6S zR;q3oTg}WBXhDYkKV?7SVAw?pDa;?rh()gdwRhCxf&HhMflZ1obx z9(|VBnxz=gi0@vtrY^TwCUN{~k|!SJhoj6Do9hz-&vEcFdH?oXSd=SQp)Cl2QmBH9 z))$!Cm(oHbaike}qv%$VvCj2aktAj@Gfm~~+Vp4HvI4T0Mi@RbNBHV-yxGmFC%(g4 zHRL4tPfP?F`z{R(-Qe~;pXLEE#KJ%ih8D*4ytd!<6qti2KzM@PMw%BFmh+yG^KfN} zoGc-gtm)Xy3})iEZknQep9i+^$eH7uo?FF-gv}>A9>7#O0WHp0v7c;tkcgSWbsBsI z)K=|z*ySQezxXxiW)S7Mc&j`ha1vj;FN^4bvw-cPI?fuRL z#H*dwi=$|Ep{nZl!PzsSl)8?goLo+^=Qy&9&Y_Z8follNe1_0yzwan!8b*GkRPD85 zyDkl3SkN_j3=^rEYu_>K-wL>$V?P;Q1Q1yzinVBxJ)hAlci^_sL=0BVq$49BbB*#T0)rRXKM%F3s| z0fnz_*ChvTJ!xALU1}O)Mlp z$u3fMa>Rp8bNza$`b0OwQFc9XAE~}2bS_?rT`BpFUJ|xqsz#re65Z2JcQ>UJqz26(zoL$ta#*aaidFp z5Say#Pg)%*LD-SV2}Mxu0EM-$$2$78=;=$L6}MCtQ`+) z-@sy$?mck1p$hh9rFkU?{3PY4qt0{M^!3n0Y!(F(61XgSj#h&$8 zkuH#+m5bCfK9w$Wd) zzVFS974v>bLJoS&1wf2vaMvA!vuqjq)-9;6?uIM;Z4*NIPE|%8-avHOLd;YGE0bk1 z6lCq&)v80Y0dtzQnFr0trvdWXYn);kEf^qm;yRps0k>RkZ3HByKBQUop2QzH7eb-%sEJx}`jd!s7$!6Nxzq z()t*((G}Jq0C_#A3oKlMT8VdM*7LYI%uYE%m!ng53P{nQ+iTHlGZJIV{Wr4VH{WO7 z`LCpR^|9Di8I;0vZ9;KBL~$`Q3h;sj^Mlul&ZVUPJ4&yDv?}P)^7^^{6w zKbE_Yh|Er+-6wO;nXly8o&P~Hv=S5;N?>?kcwo8$!xQKpNDoY*=#2Q=6*F0lCDGG} z1?Pd(Q39mr@W75ISydjVH)?|8P;ewgVGthOL}uwFYjwg$PZcB`6>)8g5%9{opTxy zr6TUK1=#0YfbrO)(A`sms;c%~Mh}OmjHTIs)7>n6(sp-u2H>Idltu$~dj zTP-Ee7Az<8W&z~2$x`CkHr9A%^1Qj+K{E2`^6J#db0{~fwr0u5C(i|DDa**bl@wF+ z2;|ds*&#hZA{-@R1}Io%#tS)ij2s|rYIKHz7*e1~i4@>^F6bUIfIl2IQjWSVwC-f1 zEl@j9t%Z3{IXJG%OV_@ewd*<<+W8~{`Rx>}G-LS@ET=?Qq>EUvgR)h>tfUm|r@-l@ zg`81ZPD#rkr(@-F0rECwC4#Ihk+M>}GQWaP8S>lu^pL13ao8V@FSzh;E}q^K0rMaJ&j#Q4ftMw?9!}bN%Gg8=t6xyM&bfv%n>+JIgfAcHg zIDQniS}?CFP?hImCKD8P_p|SJx3lmS7h!4=E1UP%j9Y>E9J*0g>_{;3Ip@ux&N;R7 zhiBw>eHDv7MXPux~4m?0k+LBLfT+GTiZ3|H%49 zi^=D6)xiP;2D+h(@|N>@ZT?N8TFc zKz0w$3_i%_!NI<^po#g#ol8+ z#EM7X?{9aLIwH3poDz2LiFBOzH{7tl#7qC$=4D!Qxxqq2tjUil)eQEIQeaV&GjGo43RG3FDW-pARAwQ)v#5$)sB%G25%J# zgko^wTmAya@$g*N2WjOJ3oPKFp>J|v= zfnn^^PQyCqe6$1mnr3Sg>nW;wy_rgoetI*ze)1daVu@gHS9Nc7BP!P(Ps7eV|NWdy zZ(@*b(yRSxyQV!Iu(bnaQLVG_f_8nFbvsiPv}Ug@YP(+hm_^HssdBY{qFp`sCJ$0G7_kN!101hFZ)`qC^_;+kYhT6R zUGzClp7#NMd56xO&vmnBID(;jB*HeHY0>AzIL7Ki$&wG|jcbSv=TkAB+o;#uf%#;R zXJ7KdqQg#bLLpAxG>HZ}aNOy^Ss?I~A~$>hp-DtFzIpA_I?~eo>m1Iuf1h_!)2a{z zb0Zu$>g^0Ie=OR!=G(z8@aL}{qeZ<7^q?-y+ zea9z0bs><5y8kBfqz2=Ai=6Vdx3cVvvl-j7iwO^Zh6t0f_Vdj6&j@OX<|nKK2+3gK zd18TH{`~Y`l22dGjt#qrFGw=7_bxth{nyY;-v$BY|D|(jV$m@Famkh7r)$Uo~Js)w7z}ktDxuH@mL>HR-1|p@oA4x;xN9 zfho21OkfW6R^D?0%fkrdbscL{=OMK-#W@cO$lLXy7RcvXUsV*KmkWfCyMX!2df7X$ zi%(tueO~j8f8u>t{|DFH^$WJ`-+^YBggg6)boOB;IzR|A<#LsRw`e++sOq9rO-rr+ z+JXISfgTjt6=XP!=;%f%usxf6CBs;8gyGCE0HcL*Dq}j&?&{>$r~CNbhIwq*nPNa$ zoT|F$b>b9-H6u7r0l8`q-i??vH3O*2_b17U`9+;I9jB5CcVf=~=-{uDC+01td)Yc) z!_wf(U^>7(9Dj#Tj%@976M=L~=#ItC<37Q7>?p+Qms5V-@34=46(JM8apO*ov%50Ofw@FpYuNh_g{ELwRS z<@6BIo*s5Rej`7B@Oq9})=Ah9lpHnFkTj$GzS%kWVQCvhlLCQQCxK2w3)SN!ii$J4 z;42}cnyik6EpAqQpz$upK z|Me~G`PuIndH6}3LJ=7-F_KZtjs$_O4rIXaJ+a|eTlek$A%VOJJzC`*Y&%mG%o@m* z=TE3ArFzEQRPNA$d_r`)g0WyFHySbi>bqa#6<_}_U-{j4*t&lw!9)kqzQshM2?Cmq zsQzfWlu#?gAXgrR))j+tp*<6yl(_+YtGd*98SR)8&{wQNWwW)FqiY(t z@bIqZAPn)Cg=x49rh`26d?$B5G9P1bo*&zwj)vEF(I?l_0C`JHY5?+vdIjKmInLDA z^2!CTC$DTg+{Q}k#C3hoRqHQ(1ItgjfJ#0)?e#A#d7*%J8xa~ZKY*o2$-VNI*cbj6 zp3vwh=NTIv<)5$nKKi047ayHxEN|d?&0sz;;fomE9LPV(Q^P+YVg&J&AKO7n$?(Vs z$G_ro&idQ8GPX5SjcGo?%xjrAbu7J+#ZT;K7l70xc0Pw&fy@5=>%`~JCwpMuBs-T% z$8rm7%KQc)jGFPhdh0@GxUiMg9T)Ka({7_X+(#~*;lkri$f`#$COL@)d7D zjt()k@2@%oYk?5T^Uxz(89sm z>Rz~vd?xUpv7M=tmO!qQzYo)~5aj|QJBAn^MvM+33VDdeAkjhV;1Y)q$id%g5($O4 zsaWCFKm0s5-11{eu0y1E5s`QYny8J$HT8ChDpS65+jHP4v<5>$FPlMMcP!e;XQKwo zlgwJspf*29pld{2>c z{{Foj_0m@{x_t*oiRXE^o&X``fXTm{~*qJFGo~LlfIS@H;{w>l14NQgvQ_P+zwWW*u14g0zqnH zOE)7{^*9{ik-a;}XR^cs4M78K3jye7T!^xu*?^}JoaYMk^>wIX0okjepLOw+Q=-YM z6nZ$sw$TIZ8y!FkhU@B30H#NWsc0m|Q+QmXmTYXk_Pn`Z`)k$IwMs~Ar;KgoXAVUw zK{E{YZG4Q~8}7q(DrmYv<1;<-(tfh_#{k^z#P$?@5sl8Uj$KUS*(JJCT?`Ek@r`?a z3GrS!!VbFDB0x%mcqpRAJoe`{ux0!f5@vLAoR*qKZfFo)*LcnU{)}i>h|Hb?=(;|| z%qIZ6svVU~u=5&KI}<~LVr3miza78~{U$F*!gTj0k}o9>HC^fYQ7E5;;EHctQ1V`W9rs#E3;O zlX1*cf)G-gbOHv~$q*?DCl;)f=1R!pCHPgsgwzrv=LwI3w32R7!~S7-DP$IX;Tar4h z`=M-)1d!wZE>T^>v1~p%G7eH;G+j}9+>B-cU58wTpKkCYd&!0lsazH;0Wjex)Jav%YTwX5=Vil3HqWMp7K@Dp7QAK>}KLe^i(KW{>wU3d>5q@adQFN(zo;c_^l+&lnj+c)>-U3gqsnE!+f>&VY2ih! zom4I2rLHsS&FJ?5*1P?s8kT?5g)j- zQ={YTE0zcwdR6^3Ju9y}R~{nS#r4lT%E<6A$#|m4IL<4U2)yeb&@Vm)Z_B9fS*tAz zZ)PGhgT05htwiuI{|4iv)A7c}{fW>-uJQ=Qqg?a&-E4mTNkYkvhHs;KCaOU%RLwok zJg2E1w*d0CY`*asHkX<9=N0&V+$$v(tUHmeC95eHGIO42|4Hga0Jf{>2ugyw!1nz2 z(GVKwf`7XHJ2>ef2&CwUIHV#D6pyQkeB+lwzpApEWOj39tM4 zZ_#v(@$LK2bZtt#4t0ibQc7?f#-1Ny#YLxa#m{fYh$R@`wH=}9lVI*CkFe}!U-2=v z=WZjW&%>)zc1z-6hiCSL=^qY3#O5=%{umTQ%&Da`y9(|fxZp~NCMXoM1o{^9v%7!6 z1J6A{q9f%`9snsN`E-_7pY~$TJN+_BLwkuOyBOQMg-_o2eb9AMLEUHR?({7E(7^og ziqm52nh+u)HEARoGxC*@IX9s22pL^iZl2q=zZcuB5HWfVE%c$Lq3sx;a^)*2{n>^93Xvu?*fk-0S9iDzS9_18Erxf18hi*Qdk3vba1 zkQ$zqL;@bR)BHiU0(1YT_DBX6u_b*oo5pS+Zua0Qw{8NgJeQ$8dsuzp z%XsrG50hH9h|x{^5ml@BNp=osnueXrGP-$`^>4nM*Zt})^k|&%9a|8Z<^y@nzIUB4 zn=`+q;0&RQ2~~P^JQMzx_V^A9W!r>$7jfr9H*x)A_Yh6Sr$AZ=#z)3D<*4=i+4)ys z4eTZyjDl6>lQ;bUfS@sDoLR6+AmCqL`VP=^%9RpE&qBU_>yLSE$5tZA4mv{;LlZb{ zUj9P|^TWr^fypg;wIYQGN?kK!jTwar|H5+=PdOxm%h{K`k2`mKfRGu&&_WHfusMoj zBhwWM|NJkwtByieRqp^|R&i5(QLcv;2%ty9c#Q@Hzi&o<(Czpq0v||lZRAkDpEF)% z+~XsNe8vavRtsvg6(Pa#kbAc=VQhG~fE@gnG$;f}$zKkQVA&24U7}hdSo671s?NSm zq7aD=K7Y&485kU-t7B>{4FFBU8yZ4iyo~5Iw<0u9+lLT_MAVw>&e-dkKOw+#aGx4R zKkFExSKka0R3=l;&RvgaGQo9^+`}VJ-A|xx}N%N+_DZwJNRS4*W^xB(A6E3~88B;CQ|&JfImM;B$9g z1C=tNKo~5Gg`FirX0xie9hgsuE(6$Zktc_LQgxy=r4sjn-Cyq>+PRay<4)www>`$1 zS6s}KlO|Ow1OLO|sFXG};FQq)VhiD{$%8v1o>%R>^M<_5ki8}l`ro#*7 zK>gS@Ap%2c!Y~`tOVjvqpG_B1!IeCD;F~`dTQs%x8nWQ@G2iEs?LV>4o86oR3~8V*4eDjY$K4LA~+Dl~U+t z5Zw&&{Jl4@f8*mw&A@ZrKdIUegV-)a1CmrgP^lU{xt>QycNf<`ayPd;d=sJGMdWf> zQr#(DysnS2LcQ}XReR6^%)xiLnlKl$BYg+EvX2ro`sy^PQ(M0TBipuNM3cPYhu8Cx zZ+@9js*B2a1|h)8q*;9K8NB8fw{rRiK2CmUko@3*x;67!b-N*AJeU0?8D}p68Kd_7 zQb5HnV%q^e|Jn~TZ^2@+<3mKc7xM6iJGkb)o2zT-6D(aaIyTCZ1&jF5OW%$=K7_6t zpzHj@ufL94u}MVYllM|~{4xJ?FMk(A6Xc6og1t+)?w((B*He!Wj3?*_Ndhfc`k}G& z!w=?wAKa!vq!2+Vh1TTub-KVTGj~Fv$pF#7Jnq@`5jG9oOlM?X^}!zG&FLE2)&o>t zeF?>nd^#V*4N?n=kYd=pbEL_^Y!blvuqc>(n3fD<0Jk= zKxl-%_!%NUxfv0OHi5ZPieMm!G!5SMgD=v*<5^;zeUqxg*7wnn)QV+KKi{cIZ=qhV zDN~oLYBJi0rs+scW7A#NvFq`BIPRryV&2;0DCg2`%lt`ZFG?sng90fO6FS6bFa(y% zhkyIO;5r1%5KelG_n!9>PF}Wys=%QOXs43l>Td1Cm77(%Pg`KCa4;!kKA z*?qeyj*f87pTCzA-}3=VgE_3sD4~uHUh=Jc*ps#!yec}C=>?A;?q?PKq?d@8Io8v zEd9{H{K!cw13oE4P-;?dV(7MaXlr3gd4%*1OfAaw&%cdbD9C zCoppm&qJlU&<^ZJd-yg8N2lrZ+(iK~O#=jP*gt@6+e8f=Z$|ZcTZEfDSAePOkVx^K z?|+fUcWj}%r^jcIla=|CFK=)V5l<5S+Rupm{07XozY(FCcw5HswvVCqkDAl`AO$d&Zha39J-WU zh?$Z^Kw`Q67w35%@l=wp-|-8cdHPKqf;dU^b}QYk<6^dcCp6+GBqZi6=X8$^~Bhx%abkaDblP-Ue38s=Bf>wskKlj(H-Y!P7wz1$kt^3A7cEDwISS)tml62LhY5Z2yM(WOkl@F@gj{nB z?(neB>>I#blNzbc4u0|QUA+H$|B9CE!Zb`Kx1qHK^Twh^;ch0nHRm7PzdDW!;oB2@B4zHsL? z5Q-p#L}kbL^ksibGB(1Nk*6_as6orpbU2mPkZ5Xg(v^Om8uo`s9ehSPzbRwkfezp~EA|O-seXQ$~@6fqYP()1E3jv=r`ZQDO+?W5_E<&tX4zl3k1x8mabo=5V{mXYeGZYEgy7e zYQ<9y@!&E__9(yF_2kyKF>pS^`SlUFvg8PN5!H(2+vjh?s=$a z9HL>2-(8K|_6(|{cXk%>vlO8ekzkNtjgRxW!9fhusEMaik319B>r;8tqFCLr=Q_lC z7m^treG+ZI(h9uyE*~oc?7~S%us}F58cWGKl)Fy!v|P&>?wrf9aIY0s$uG%WUf;C zs4WkY0ZH7HlTKtj&n23S^WS&=g6*3hBi1#a+~|ImtUi&qpLZHh9e5Z-P4x0Pg1JAD z@JN`8*gW=I`g6|`*1PeP*97DO>D!;!7J4K~?}?`qjzMbedMe|i)$0I69gt6`+ry%Z z9fjK%v7aZRb)uN^wNTq1O$I1fqm0PhCp7 zypN9Xl7k0zT}Sr!qmoIo*WH4B?uBUEo(IoG$R=e2076N;vgL1iJ6J~kLId*JJWZk! z9ccI6fbsM1fRw179v`q~V(ZESsiC@iKuC;h{}=6%+fj+G!^*srQpAHno-P!4eg8ht zBtdP$s=bkw*OhFnso}Uauq)RgwqObU1AAEiPjBV+XE)H<)kQQIYW^660HshPBY4$6 zRVg77DMVKvA{s}fGgEol^pr=98gX5ho@6JnWP-2Ud@Zl}!u!Dtl1O#oxvjpbcHlk@ zkk=NQ0Pn%n9e2Z(X1fxz+%Fx zo3Q96AmX^5GYRUN3Q%xH*_{6sx(J}EEWA}m4J}BvGC;u|pscmdR2*$H%x;wl0 z)XUxh*)gO5VjXH?l8&I9^Z`Jd{4_;=+x~}hR$0}F%?zf*9 zd7eku43O&VBwsG^&j0;aKKrw;Kr~Jw*@@>iPF`CMyC{688Lx_Ta(p00rLkPyBWO8F zPaZcv$~F|Pu`8~F&~yqXor@h!@Wju)&faGqVf`hqXQnCGW`;*kkbYGCb zXXhP3K}SGfRrj4sA&93E{NuG>*#o;c>!b_$;v4>!;o$>3c;IU|UIjx0 z+qTo**~}EHS11sYf-}s@#HE-rgrmyDjfI4?PBv$*=dJ_)%7OkzD36a&ET-|KM{M~@ zyqIKY|C8+AdpnP%zr}9v0lJN&=+IZ=coi(SKulZ6^ZDQKY~e>l^?6MXrM8O#LB%Pu zzW3#Hg%@C1c}`z>EI)nj5%%|QCEmS&k)0b!bo6n~F(*sCZM4awxBdqMzV8rX#rrQHXJuUn20 z595|A{$B1@-JP^VYnM06^rpP2lXgwat-gi~sX;V`92r1+=3zeoi{tp<91Nih6AaV$ z7N zg7qxVC-zNOJdax+xS0obZ(~K*JXSAWMkEr!saV*qGiQKO)w<)M2#Hh@Q#ZKw;oG_5 ztN+YhkK9IJ-eRJmNL9_=uCMj!3g4yUt0SEp7l=`rh^H_IAg@bmJeb9tNC#}I!j5Do zqGth=@+>+23|5?aAx@>_gZZEKn@=mV{c>F8D-GvIr0>!|`D*Za9lboceG~8c;b+j} zDc>n%DaTjd^pC7ryo_B#&++8&5701?LO*CQpZLd+5r)efi5Yzy+i@|vNHSR3$Q}DX z$vp%A#*np3%@+G+hP2HLl%Hf*;cjeIrc+-- z0LMT$zd~Dz;&B#4I{4`Wze5B=c!tR%yPo5!6E9(2PcMaHkxbb`Z-o`(0P6B#u@F#`P z{^7%a^O0zvqt1Qyqq~1jrZhN-3%8tvU%jUtn9pu?#L1fR=V1;IX<|m zp&UYBUH%f>a zsb}PEZ}nh-ywT}PFbsx?+`A2J^9HnCn~^&

2Bx`TSGpn>L_5_Xzrid(fV^7ddhO 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 $HJLrf(5m`ZmO&xFA8fTMttg(CcY-YLpE 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 z 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 z z1PO<-C52zs5}u_zJ_p;h>b7h6R5QmnMd&Zyf7z|+Le@z}7M6ZFFt~dWp`Q)+{d#{m z*BhD74FU9oPIB|u+u3pIaSn9<5E)kZ+4^4W$}lL*M0j!MXD}i@|MA3sB4tkyF&3r` ztvgVYD0-6as7ET~Gg~rh2ps}ap9I;1iv0$n@J|T$ZXg6Q&io_bfyx3UwEZG<ml&8DP*>%&Yz z&HZX;IgigFY}JWB*V>O*p)WLZe3S0VFqWP=l8nSJsc!2@bPzIaO5WK~w|RreTSqWA zfhis0<_w=X_F;Z;(-8f=CwXpo7e*cTAH!1QW)r9pgKIDSJXWE|7fyT#PnjgF8I(5a z4YDG*N{|fY=#CVa%BR4rx9}RECP8$dBfkRXZ3y=#poYu#aS@bJHTR*dE78_`Wu`-dlFx3^3uXVVE7&puZZcp9F6w!XD@g^e|7LpAOy+$WSPwM zf_c~f9H{#ZtugdcS&kM<;q|^P_#QTRW~#ucnG)yqMxM8Xt^uOl}_fil&hXMh@>qsp0FPX+j@K zPyEB4{%wC>-6nhuF$&E)zhzwT_-bBny^Y6!gi>cB8U7?YH)LXa!8V_^{&zB@)o%F;bJT>Z5XBuUc zZR&*3_RG-LmEaE{^b{b_qBF3si+DMAyTiFd=JOXg5=t{UvzuF=d^K;n=>IX3OIF#+ z#XNb}l6(1It$j?9;eny|lPmR;hzz5v?nNaeNjFPDmH5Q28@Z|fLS8p?4_8e-!ItbK zA+JP9N`}In+|#w2uWi1ZQ(e0dg=rFQwPe0{?n|9lqxRzDsMSD`i7W)MSO^fZr-xEvXFczVLc@gNbF^u*feu@3keGR1(bw|ANx8noHpXVDQg z$T^DfDv$MZjmRM=PhQXV?Lf;_s*09vPls4!P zql{QPc{Y3@2mG7K(6?wmAvLNXaYxFxSxIoH?*}C92|j)FcNr~gr#Ez>tX^y8oD^sW zjSnJv)XAgFj#>y#rrKl+tw^;>4WCJNP8SCwOT16+ANf3L>G2s^@EdOeF+ih*FCS~Uw6KYP$@&$cW?}oLMQ=d1e`4K%&9;!TO^s+o>QY-0!vBYOXVME)R(|E z1>TIy(-V1wIJa{7F9l8DaSf=h<|LhkERLzhJ#n-pBy>%)J%r4wH9^ z&31L#vEE4>)-RDmb92*LVw)x0o*1f8@e&c#!6-dvm33(*6cyV$9^r%gf0fT1{cRqZ zxsvYC2qB}egk9YYh+J4`*#oihSQe!^s(cF7!;ErqHv9B{(!-acD5a?j8%foYcOqoklg;+iG@%2`7P4Oee!sfSkdobfTRC#_sg-nf+OXaqx|XMR zhNbel`%6K#uN!SNmS%+kh39N2h`_$>3n-YxL(}~1zTe~9C*Q-ZBX1?|C+M`tsz_ax z9nwIH1lrh!mi-{Q%6Zny5;fp>2Hi26c-X}874{PIId{;CDmvJvv?LLpAYJU{6F>O_ zuHE%HF53JplA$47-=gS-@sxofd?Y2bp_s`Ja_8vVIWqEEOz9A@X3IVhy1MIzbC4*) zzO%x)*Z%Sgt@ zHlgD*gq{^WO}3;-h6R^x3vpYPIfEjGmV;>7AJiomaRQPrfzB-$!|^noQIn2{ z$*I{A_Bp8`U7ant7D`K!;Yo^KjN6`kFOQ5|!=9eI=#4!~)S5&Jmy#DIQ|e|sx0|C= zSCB4lC1Oot8pYtnOE)6l_Rf8I0|aCEA`NZO$@YLY3P8@16j%t_s* zgrQlFBf|laPv#U6ThMhHLeKK9ChuyxB9d!%+FY>7W^1R3UskzS%0fJ!h`fSO9qGIr zxcS#B>1RcR{<;@jKl#kqi4(i~wr;C#-_bLO5J61qT4RIASBKSHKC4h9+uuW>Geu-- z24zMT?PEk0#pf&v&)P(;&O^TZ7AiFO7Wh7UyYAzIv0vpor{2krCf?4BzLu^~0U;A; zthyv#4Nqy}wn2By;^bt3bA!=WPSVRCw@_+TT4Eb{>}Z~uLLYY>eLK=D5V2-3gom$e z3SJWBhp^2IiO^8F?#Xh+Zq|bxd?_^7m$VH|OcyyZQ)EkL$5~J4mC&<9ICuu1oAP*g z*yZsthuNYgZVP&1^9guXyR=q^o)uk1f5PO2J1j03u<1`2I37$_d#pbXiM)bP9s9ZG z`y*j1^z2IdSrMTFOy|>I0X|sWW*H{?2X^w<@QTJ>6*h=`b!f-sGaQFPcPH8Y9+E?& zxY5OgE^LiEWRiO%Oyp&?DO5Eep&+rX0nuf>mOQ!Wdua-`kJT4g3z<4#$EERCJ`zVxo)2{t_W($ z`wBLv3=VDzbFkm0Cnm|en#sI6r#;qJ0^4Y)ZvXa5)a}p$p-<&z|3qv3!CLqF1B1KP zjL8z@8lQa*K+^# z&v4u1uW>AY8MZ8vGKb3vOzK}Fr8T`VJ8+ESY*{4MipU$aFD5*J!jz>p&f#>}!B=vO zZqUAbUxoxq9?wkXIUA!MG+-M+=vm&;92s&rGVJoqgoo>El3_`AJBy`I4m~Rc5BQEw zlS7+q_Vrn$!UkDKF;OP+v*Y<(8-(qKv9^D_(!N$q=r2Eb)$p;2p_4m$2DenV@8}sM zYDdUBg_U;MG&YEQbvP}TPitm&Y(d!;LhHJvDUGBe`(Olp!a{WUkZrU$N^lGiE-&c$ zG%rYfntNv6&7IRf$I;w1Na2$-hcHEn+Vru$()7kHOe+Y#GUR$>NgCZu_=n?cnVp z*47BTRXccl`V!@~6VnAiA%#Gl1&fd-2tAA0f^<=H_wf=(hFp%%c%TDG-H`3Adgl6p z$GR;AdwVP{9JJZnYZ0{s>5^t5?{5%!9S8)WI@Q%Y-=7Ryp=Ilz*J8zl4ltgX`t**T z!QZZKlR~n$e;W^;c%qdqm&94{3_bsdybP;QWM=193f&zTMF%gu_~tYdKKZ9@vJZwy zyeR`2xx|yLL7Pwlq{pSb|Hh>q|Hgx}Z{^){F9UV9nUdjjiIVGMNP+U#_hJ;a zf?_FCdBy!F9UdNWI63QM3P_%Y(6dt6V?AOC4sWtKJZQ74%fc#$o=rHd)ggbrAn

    1zE%$|uXZ)>SOUus*Gbh>DlcB$%X##yviD>m(w9@DDkU@6qOW>PRbTOwQX zFeJF^%r8z8-0889z%~S<8J`~>b$M*mWi;axG6h|yA@r=^X>z4NZGYLepnU1}&VWub zC58Vy3_WWFVQaCvz5Fu#N3HbN5~08OvX{?3Gj`&c-F;j4RJU*I8X#hYD7d9Yhc<@U_B9d?N?oYTPyu7Xb*nd z#ftQmknwV~(uj!L)mNQ)E%oAK3a0Z8Q+b#EM2MohK61Kig3z;MNMcAhG2`*ba6sgf zIYqP_dRD!EJ5X>nc}LR|mt4F#2tC`9GJ|Yy#pieESu3a)uIBmv$!2Pw*F#H$4ltch z|0D3Hwe5$tp2ywK9%;4PbC=A|A*p0^B5 zEC0&Y_q>yzRzDA6FCgk>q;&{X@oq4rvkhtalP$N@86>e{*fMcJR}sMsHS{Zew4%(Mv+jaR$s5U8eFb+d3CVajZ2ep=Zgk zL}|^jsi5lF6Jsu!k|tJFETtW&T%Bx5Rw`z6#qs66Nb zh&aBn53_IqW9Pq}$vyiCrR!%Y^o31ajuK^3NTo${&F9lJS z+D&jIQkK|~xQD|7f5Urr{t?I&j%r6Nx~}_BgxqR`# zJpX=Qj(bi7we7p3l8`CdW*^rYW{ZlMf?^;kdFA;L-f?M+>-UC9gd|gWMa~HZ+aU6l zBhtXT-8QWid$(86vV{KOpL(x;a^%>3=MC(*w7R`Jo?=r+FT*qAP4%&$pG_hp$U2&dtlChiuM&ndu#Ls) zcE@)gvkfcTYQHTLI>1zJ_J0Cju5G_)>%L_PeS^qXkJEn%gQ6&4g6KpW{b<>T7Ab;q zqz*v_H;q-uF?7jGIR8ukfLSWy*LnN&LJ>N~PO|;`Ut#10*ASaM&fPQb6tM=cYYGIc=*^&c55O7;;x>GDVGL z2=?_^93HgU(_<30%2m&vN5xW3HzIYM;Q*9Uf7YnhRWn$X4(ZC>7yie1W@?eK^5Et@ zG_nDlv#NDqt<~$N2a2GKXbuRWaD2^FPT~4`gUH*6h`o4y@|AMJR_Noa>37vep_9{N zU#{1F-oTDUZR?%LVHHGq*4xP|(zZg&ew1-hK;q^_L6tL9uwB=WV359t7mjlL>Q@3R zR=HP3i6==89cAw~K8X`cqO?IsW*7)PP0>&C^^rg1BhUVbn@;{2L%9nB8@ufVp>E4T zNwDF9uA|_afppar**3ea9_cJ~Tq8oN-Q4UPnkCB$byt5{YToU7fjEtQ&3#-+U#pq# z!uEQx!tFw3BdM-f%d|o*s+5qnIv}{05P?7ooXu&1Kj@Py&t+@^PYFqO5_)AJ D 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
  1. Dcy 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 literal 0 HcmV?d00001 diff --git a/frontend/public/assets/home/research_based.png b/frontend/public/assets/home/research_based.png new file mode 100644 index 0000000000000000000000000000000000000000..a96d18ac4d02da731c310ebfd2a208589c7b21df GIT binary patch literal 67883 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 ZmEuQz)si$v1t$pj$w_^YtQI#6`acRmsD1zd literal 0 HcmV?d00001 diff --git a/frontend/public/assets/home/socially_relevant.png b/frontend/public/assets/home/socially_relevant.png new file mode 100644 index 0000000000000000000000000000000000000000..cb63c227b23f7a78813e453dd5227dbecf8675a2 GIT binary patch literal 87263 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 Date: Sat, 1 Mar 2025 22:19:25 +0100 Subject: [PATCH 45/80] fix: home route weg --- backend/src/app.ts | 4 ---- backend/src/controllers/home.ts | 41 --------------------------------- backend/src/routes/home.ts | 15 ------------ 3 files changed, 60 deletions(-) delete mode 100644 backend/src/controllers/home.ts delete mode 100644 backend/src/routes/home.ts diff --git a/backend/src/app.ts b/backend/src/app.ts index b0a889a6..b0f7afa2 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -12,8 +12,6 @@ import classRouter from './routes/class'; import questionRouter from './routes/question'; import loginRouter from './routes/login'; -import homeRouter from './routes/home.js'; - const app: Express = express(); const port: string | number = getNumericEnvVar(EnvVars.Port); @@ -35,8 +33,6 @@ app.use('/login', loginRouter); app.use('/theme', themeRoutes); -app.use('/home', homeRouter); - async function startServer() { await initORM(); diff --git a/backend/src/controllers/home.ts b/backend/src/controllers/home.ts deleted file mode 100644 index 6324b854..00000000 --- a/backend/src/controllers/home.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Request, Response } from 'express'; -import { loadTranslations } from '../util/translationHelper.js'; - -const BASE_IMAGE_URL = "https://www.dwengo.org/images/strengths/"; - -interface Translation { - strengths: { - title: string; - innovative: string; - research_based: string; - inclusive: string; - socially_relevant: string; - main: string; - }; -} - -export function getHomeScreenData(req: Request, res: Response): void { - try { - const language = (req.query.language as string) || 'nl'; - const translations = loadTranslations(language); - - const strengths = [ - { key: "innovative", image: "value-innovation.png" }, - { key: "research_based", image: "value-research.png" }, - { key: "inclusive", image: "value-inclusion.png" }, - { key: "socially_relevant", image: "value-society.png" }, - ].map(({ key, image }) => ({ - title: translations.strengths[key as keyof Translation["strengths"]], - image: `${BASE_IMAGE_URL}${image}` - })); - - res.json({ - title: translations.strengths.title, - description: translations.strengths.main, - strengths - }); - } catch (error) { - console.error("❌ Error getting data for homescreen:", error); - res.status(500).json({ error: "Internal server error" }); - } -} diff --git a/backend/src/routes/home.ts b/backend/src/routes/home.ts deleted file mode 100644 index 19dc8b38..00000000 --- a/backend/src/routes/home.ts +++ /dev/null @@ -1,15 +0,0 @@ -import express from 'express'; -import { getHomeScreenData } from '../controllers/home.js'; - -const router = express.Router(); - -/** - * @route GET /api/home - * @query {string} language - Taalcode (bijv. 'nl' of 'fr') - * @returns JSON object with homepage data (strengths) - * @example http://localhost:3000/home - * {title, description, strengths: {title, image}} - */ -router.get('/', getHomeScreenData); - -export default router; From 749ccb71257ebc0aa337cb83cd96123e9e9ce701 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 22:20:06 +0100 Subject: [PATCH 46/80] fix: vertaling helper functie fall back constante --- backend/config.ts | 10 ++++++++++ backend/src/util/translationHelper.ts | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 backend/config.ts diff --git a/backend/config.ts b/backend/config.ts new file mode 100644 index 00000000..8fd8ec3f --- /dev/null +++ b/backend/config.ts @@ -0,0 +1,10 @@ +// Can be placed in dotenv but found it redundant + +// Import dotenv from "dotenv"; + +// Load .env file +// Dotenv.config(); + +export const DWENGO_API_BASE = 'https://dwengo.org/backend/api'; + +export const FALLBACK_LANG = 'nl'; diff --git a/backend/src/util/translationHelper.ts b/backend/src/util/translationHelper.ts index 8bc4d7ca..f4443531 100644 --- a/backend/src/util/translationHelper.ts +++ b/backend/src/util/translationHelper.ts @@ -1,6 +1,7 @@ import fs from 'fs'; import path from 'path'; import yaml from 'js-yaml'; +import {FALLBACK_LANG} from "../../config"; export function loadTranslations(language: string): T { try { @@ -12,7 +13,7 @@ export function loadTranslations(language: string): T { `Cannot load translation for ${language}, fallen back to dutch` ); console.error(error); - const fallbackPath = path.join(process.cwd(), '_i18n', 'nl.yml'); + const fallbackPath = path.join(process.cwd(), '_i18n', `${FALLBACK_LANG}.yml`); return yaml.load(fs.readFileSync(fallbackPath, 'utf8')) as T; } } From 4642040315ed35687ee647b1d475bc6a428b8ffb Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sat, 1 Mar 2025 22:35:18 +0100 Subject: [PATCH 47/80] fix: .js toevoegen aan imports --- backend/src/app.ts | 14 +++++++------- backend/src/controllers/learningObjects.ts | 2 +- backend/src/controllers/themes.ts | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/backend/src/app.ts b/backend/src/app.ts index cd0e715b..b21bb9f1 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -6,13 +6,13 @@ import themeRoutes from './routes/themes.js'; import learningPathRoutes from './routes/learningPaths.js'; import learningObjectRoutes from './routes/learningObjects.js'; -import studentRouter from './routes/student'; -import groupRouter from './routes/group'; -import assignmentRouter from './routes/assignment'; -import submissionRouter from './routes/submission'; -import classRouter from './routes/class'; -import questionRouter from './routes/question'; -import loginRouter from './routes/login'; +import studentRouter from './routes/student.js'; +import groupRouter from './routes/group.js'; +import assignmentRouter from './routes/assignment.js'; +import submissionRouter from './routes/submission.js'; +import classRouter from './routes/class.js'; +import questionRouter from './routes/question.js'; +import loginRouter from './routes/login.js'; const app: Express = express(); const port: string | number = getNumericEnvVar(EnvVars.Port); diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index 2d733d97..d0df24fd 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express'; import { getLearningObjectsFromPath } from '../services/learningObjects.js'; -import { FALLBACK_LANG } from '../config'; +import { FALLBACK_LANG } from '../config.js'; export async function getAllLearningObjects( req: Request, diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 62564485..817464ab 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -3,7 +3,7 @@ import path from 'path'; import yaml from 'js-yaml'; import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import { FALLBACK_LANG } from '../config'; +import { FALLBACK_LANG } from '../config.js'; interface Translations { curricula_page: { From 79009de80cc6700aedfd3b64f8f6e3c6e07020cf Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sat, 1 Mar 2025 22:40:42 +0100 Subject: [PATCH 48/80] fix: voeg js toe bij config import --- backend/src/controllers/learningObjects.ts | 2 +- backend/src/controllers/themes.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index 2d733d97..d0df24fd 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express'; import { getLearningObjectsFromPath } from '../services/learningObjects.js'; -import { FALLBACK_LANG } from '../config'; +import { FALLBACK_LANG } from '../config.js'; export async function getAllLearningObjects( req: Request, diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 62564485..817464ab 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -3,7 +3,7 @@ import path from 'path'; import yaml from 'js-yaml'; import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import { FALLBACK_LANG } from '../config'; +import { FALLBACK_LANG } from '../config.js'; interface Translations { curricula_page: { From 484120ab50a05288f3b03072c5e25b7378a9f8d8 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sun, 2 Mar 2025 11:04:30 +0100 Subject: [PATCH 49/80] feat: extra learning object routes --- backend/src/routes/learningObjects.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/backend/src/routes/learningObjects.ts b/backend/src/routes/learningObjects.ts index ec702c6d..42e72bca 100644 --- a/backend/src/routes/learningObjects.ts +++ b/backend/src/routes/learningObjects.ts @@ -1,14 +1,25 @@ import express from 'express'; -import { getAllLearningObjects } from '../controllers/learningObjects.js'; +import {getAllLearningObjects, getLearningObject} from '../controllers/learningObjects.js'; const router = express.Router(); // DWENGO learning objects -// Arg: hruid learningPath -// Query: language +// Queries: hruid(path), full, language // Route to fetch list of learning objects based on hruid of learning path -// Example: http://localhost:3000/learningObject/un_artificiele_intelligentie -router.get('/:hruid', getAllLearningObjects); + +// Route 1: list of object hruids +// Example 1: http://localhost:3000/learningObject?hruid=un_artificiele_intelligentie + +// Route 2: list of object data +// Example 2: http://localhost:3000/learningObject?full=true&hruid=un_artificiele_intelligentie +router.get('/', getAllLearningObjects); + + +// Parameter: hruid of learning object +// Query: language +// Route to fetch data of one learning object based on its hruid +// Example: http://localhost:3000/learningObject/un_ai7 +router.get('/:hruid', getLearningObject); export default router; From 3b689d8e09cd791e864387e0b5f4034aca12a13c Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sun, 2 Mar 2025 11:05:06 +0100 Subject: [PATCH 50/80] fix: afsplitsing functies objects --- backend/src/controllers/learningObjects.ts | 52 +++++++++--- backend/src/services/learningObjects.ts | 93 ++++++++++++++-------- 2 files changed, 100 insertions(+), 45 deletions(-) diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index d0df24fd..026d37ef 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -1,29 +1,57 @@ import { Request, Response } from 'express'; -import { getLearningObjectsFromPath } from '../services/learningObjects.js'; +import { + getLearningObjectById, + getLearningObjectIdsFromPath, + getLearningObjectsFromPath +} from '../services/learningObjects.js'; import { FALLBACK_LANG } from '../config.js'; +import {FilteredLearningObject} from "../interfaces/learningPath"; export async function getAllLearningObjects( req: Request, res: Response +): Promise { + try { + const hruid = (req.query.hruid as string); + const full = req.query.full === 'true'; + const language = (req.query.language as string) || FALLBACK_LANG; + + if (!hruid) { + res.status(400).json({ error: 'HRUID query is required.' }); + return; + } + + let learningObjects: FilteredLearningObject[] | string[]; + if (full) + learningObjects = await getLearningObjectsFromPath(hruid,language); + else + learningObjects = await getLearningObjectIdsFromPath(hruid, language) + + res.json(learningObjects); + } catch (error) { + console.error('Error fetching learning objects:', error); + res.status(500).json({ error: 'Internal server error' }); + } +} + + +export async function getLearningObject( + req: Request, + res: Response ): Promise { try { const { hruid } = req.params; const language = (req.query.language as string) || FALLBACK_LANG; - if (!language) { - res.status(400).json({ - error: 'Language query parameter is required.', - }); + if (!hruid) { + res.status(400).json({ error: 'HRUID parameter is required.' }); return; } - const learningObjects = await getLearningObjectsFromPath( - hruid, - language - ); - res.json(learningObjects); - } catch (error) { - console.error('Error fetching learning objects:', error); + const learningObject = await getLearningObjectById(hruid, language); + res.json(learningObject); + } catch (error){ + console.error('Error fetching learning object:', error); res.status(500).json({ error: 'Internal server error' }); } } diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index a2243a9a..b184f1fd 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -3,11 +3,11 @@ import { fetchWithLogging } from '../util/apiHelper.js'; import { FilteredLearningObject, LearningObjectMetadata, - LearningObjectNode, + LearningObjectNode, LearningPathResponse, } from '../interfaces/learningPath.js'; import { fetchLearningPaths } from './learningPaths.js'; -function filterLearningObjectMetadata( +function filterData( data: LearningObjectMetadata, htmlUrl: string ): FilteredLearningObject { @@ -34,52 +34,79 @@ function filterLearningObjectMetadata( }; } -export async function getLearningObjectsFromPath( +/** + * Fetches a single learning object by its HRUID + */ +export async function getLearningObjectById( hruid: string, language: string -): Promise { +): Promise { + const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${hruid}&language=${language}`; + const metadata = await fetchWithLogging( + metadataUrl, + `Metadata for Learning Object HRUID "${hruid}" (language ${language})` + ); + + if (!metadata) { + console.error(`⚠️ WARNING: Learning object "${hruid}" not found.`); + return null; + } + + const htmlUrl = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${hruid}&language=${language}`; + return filterData(metadata, htmlUrl); +} + +/** + * Generic function to fetch learning objects (full data or just HRUIDs) + */ +async function fetchLearningObjects( + hruid: string, + full: boolean, + language: string +): Promise { try { - const learningPathResponse = await fetchLearningPaths( + const learningPathResponse: LearningPathResponse = await fetchLearningPaths( [hruid], language, `Learning path for HRUID "${hruid}"` ); - if ( - !learningPathResponse.success || - !learningPathResponse.data || - learningPathResponse.data.length === 0 - ) { - console.error( - `⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.` - ); + if (!learningPathResponse.success || !learningPathResponse.data?.length) { + console.error(`⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.`); return []; } const nodes: LearningObjectNode[] = learningPathResponse.data[0].nodes; + if (!full) { + return nodes.map(node => node.learningobject_hruid); + } + return await Promise.all( - nodes.map(async (node) => { - const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; - const metadata = await fetchWithLogging( - metadataUrl, - `Metadata for Learning Object HRUID "${node.learningobject_hruid}" (version ${node.version}, language ${language})` - ); - - if (!metadata) { - return null; - } - - const htmlUrl = `${DWENGO_API_BASE}/learningObject/getRaw?hruid=${node.learningobject_hruid}&version=${node.version}&language=${language}`; - return filterLearningObjectMetadata(metadata, htmlUrl); - }) - ).then((objects) => { - return objects.filter((obj): obj is FilteredLearningObject => { - return obj !== null; - }); - }); + nodes.map(async (node) => getLearningObjectById(node.learningobject_hruid, language)) + ).then((objects) => objects.filter((obj): obj is FilteredLearningObject => obj !== null)); } catch (error) { - console.error('Error fetching learning objects:', error); + console.error('❌ Error fetching learning objects:', error); return []; } } + +/** + * Fetch full learning object data (metadata) + */ +export async function getLearningObjectsFromPath( + hruid: string, + language: string +): Promise { + return await fetchLearningObjects(hruid, true, language) as FilteredLearningObject[]; +} + +/** + * Fetch only learning object HRUIDs + */ +export async function getLearningObjectIdsFromPath( + hruid: string, + language: string +): Promise { + return await fetchLearningObjects(hruid, false, language) as string[]; +} From 6bf4193da9015efb162ccbca1ce1da9784f71221 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sun, 2 Mar 2025 12:10:59 +0100 Subject: [PATCH 51/80] fix: queries in routes van leer paden --- backend/src/routes/learningPaths.ts | 40 ++++++++++++----------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/backend/src/routes/learningPaths.ts b/backend/src/routes/learningPaths.ts index e196c0d3..ce580745 100644 --- a/backend/src/routes/learningPaths.ts +++ b/backend/src/routes/learningPaths.ts @@ -1,33 +1,27 @@ import express from 'express'; -import { - getLearningPaths, - getLearningPathsByTheme, - searchLearningPaths, -} from '../controllers/learningPaths.js'; +import { getLearningPaths } from '../controllers/learningPaths.js'; const router = express.Router(); // DWENGO learning paths -// Unified route for fetching learning paths -// Route 1: Query: hruid (list), language -// Fetch learning paths based on hruid list -// Example 1: http://localhost:3000/learningPath?hruids=pn_werking&hruids=art1 - -// Route 2: no query +// Route 1: no query // Fetch all learning paths -// Example 2: http://localhost:3000/learningPath ( +// Example 1: http://localhost:3000/learningPath + +// Unified route for fetching learning paths +// Route 2: Query: hruid (list), language +// Fetch learning paths based on hruid list +// Example 2: http://localhost:3000/learningPath?hruid=pn_werking&hruid=art1 + +// Query: search, language +// Route to fetch learning paths based on a searchterm +// Example 3: http://localhost:3000/learningPath?search=robot + +// Query: theme, anguage +// Route to fetch learning paths based on a theme +// Example: http://localhost:3000/learningPath?theme=kiks + router.get('/', getLearningPaths); -// Query: language -// Route to fetch learning paths based on a searchterm -// Example: http://localhost:3000/learningPath/search?query=robot -router.get('/search', searchLearningPaths); - -// Arg: theme id -// Query: language -// Route to fetch learning paths based on a theme -// Example: http://localhost:3000/learningPath/theme/kiks -router.get('/theme/:theme', getLearningPathsByTheme); - export default router; From 308661d72b817ab69dee830bdb2b1d01bff4c542 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sun, 2 Mar 2025 12:11:32 +0100 Subject: [PATCH 52/80] fix: splits controller en service beter op met querries --- backend/src/controllers/learningPaths.ts | 117 +++++------------------ backend/src/services/learningPaths.ts | 12 +++ 2 files changed, 36 insertions(+), 93 deletions(-) diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index c819b072..8868d7de 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,113 +1,44 @@ import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import { DWENGO_API_BASE, FALLBACK_LANG } from '../config.js'; -import { fetchWithLogging } from '../util/apiHelper.js'; -import { fetchLearningPaths } from '../services/learningPaths.js'; -import { LearningPath } from '../interfaces/learningPath'; - +import { FALLBACK_LANG } from '../config.js'; +import { fetchLearningPaths, searchLearningPaths } from '../services/learningPaths.js'; /** - * Fetch learning paths based on HRUIDs or return all if no HRUIDs are provided. - * - If `hruids` are given -> fetch specific learning paths. - * - If `hruids` is missing -> return all available learning paths. + * Fetch learning paths based on query parameters. */ export async function getLearningPaths( req: Request, res: Response -): Promise { +): Promise { try { - const hruids = req.query.hruids; // Can be string or array + const hruids = req.query.hruid; + const themeKey = (req.query.theme as string); + const searchQuery = (req.query.search as string); const language = (req.query.language as string) || FALLBACK_LANG; - let hruidList: string[]; + let hruidList = []; if (hruids) { - hruidList = Array.isArray(hruids) - ? hruids.map(String) - : [String(hruids)]; + hruidList = Array.isArray(hruids) ? hruids.map(String) : [String(hruids)]; + } else if (themeKey) { + const theme = themes.find((t) => t.title === themeKey); + if (theme) { + hruidList = theme.hruids; + } else { + res.status(404).json({ error: `Theme "${themeKey}" not found.` }); + return; + } + } else if (searchQuery) { + const searchResults = await searchLearningPaths(searchQuery, language); + res.json(searchResults); + return; } else { - // If no hruids are provided, fetch ALL learning paths - hruidList = themes.flatMap((theme) => { - return theme.hruids; - }); + hruidList = themes.flatMap((theme) => theme.hruids); } - const learningPaths = await fetchLearningPaths( - hruidList, - language, - `HRUIDs: ${hruidList.join(', ')}` - ); - - res.json(learningPaths); + const learningPaths = await fetchLearningPaths(hruidList, language, `HRUIDs: ${hruidList.join(', ')}`); + res.json(learningPaths.data); } catch (error) { console.error('❌ Unexpected error fetching learning paths:', error); res.status(500).json({ error: 'Internal server error' }); } } - -/** - * Fetch all learning paths for a specific theme. - */ -export async function getLearningPathsByTheme( - req: Request, - res: Response -): Promise { - try { - const themeKey = req.params.theme; - const language = (req.query.language as string) || FALLBACK_LANG; - - const theme = themes.find((t) => { - return t.title === themeKey; - }); - if (!theme) { - console.error(`⚠️ WARNING: Theme "${themeKey}" not found.`); - res.status(404).json({ error: 'Theme not found' }); - return; - } - - const response = await fetchLearningPaths( - theme.hruids, - language, - `theme "${themeKey}"` - ); - res.json({ - theme: themeKey, - hruids: theme.hruids, - ...response, - }); - } catch (error) { - console.error( - '❌ Unexpected error fetching learning paths by theme:', - error - ); - } -} - -/** - * Search learning paths by query. - */ -export async function searchLearningPaths( - req: Request, - res: Response -): Promise { - try { - const query = req.query.query as string; - const language = (req.query.language as string) || FALLBACK_LANG; - - if (!query) { - res.status(400).json({ error: 'Missing search query' }); - return; - } - - const apiUrl = `${DWENGO_API_BASE}/learningPath/search`; - const params = { all: query, language }; - - const searchResults = await fetchWithLogging( - apiUrl, - `Search learning paths with query "${query}"`, - params - ); - res.json(searchResults ?? []); - } catch (error) { - console.error('❌ Unexpected error searching learning paths:', error); - } -} diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 734207db..d8ad90a2 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -44,3 +44,15 @@ export async function fetchLearningPaths( data: learningPaths, }; } + + +export async function searchLearningPaths( + query: string, + language: string +): Promise { + const apiUrl = `${DWENGO_API_BASE}/learningPath/search`; + const params = { all: query, language }; + + const searchResults = await fetchWithLogging(apiUrl, `Search learning paths with query "${query}"`, params); + return searchResults ?? []; +} From e762621287808422337ba5aa59fc2f88e60defe7 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Sun, 2 Mar 2025 12:18:08 +0100 Subject: [PATCH 53/80] fix: format + lint --- backend/src/controllers/learningObjects.ts | 21 +++++---- backend/src/controllers/learningPaths.ts | 40 ++++++++++++----- backend/src/routes/learningObjects.ts | 6 ++- backend/src/services/learningObjects.ts | 50 ++++++++++++++++------ backend/src/services/learningPaths.ts | 9 ++-- 5 files changed, 87 insertions(+), 39 deletions(-) diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index 026d37ef..4295326a 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -2,17 +2,17 @@ import { Request, Response } from 'express'; import { getLearningObjectById, getLearningObjectIdsFromPath, - getLearningObjectsFromPath + getLearningObjectsFromPath, } from '../services/learningObjects.js'; import { FALLBACK_LANG } from '../config.js'; -import {FilteredLearningObject} from "../interfaces/learningPath"; +import { FilteredLearningObject } from '../interfaces/learningPath'; export async function getAllLearningObjects( req: Request, res: Response ): Promise { try { - const hruid = (req.query.hruid as string); + const hruid = req.query.hruid as string; const full = req.query.full === 'true'; const language = (req.query.language as string) || FALLBACK_LANG; @@ -22,10 +22,14 @@ export async function getAllLearningObjects( } let learningObjects: FilteredLearningObject[] | string[]; - if (full) - learningObjects = await getLearningObjectsFromPath(hruid,language); - else - learningObjects = await getLearningObjectIdsFromPath(hruid, language) + if (full) { + learningObjects = await getLearningObjectsFromPath(hruid, language); + } else { + learningObjects = await getLearningObjectIdsFromPath( + hruid, + language + ); + } res.json(learningObjects); } catch (error) { @@ -34,7 +38,6 @@ export async function getAllLearningObjects( } } - export async function getLearningObject( req: Request, res: Response @@ -50,7 +53,7 @@ export async function getLearningObject( const learningObject = await getLearningObjectById(hruid, language); res.json(learningObject); - } catch (error){ + } catch (error) { console.error('Error fetching learning object:', error); res.status(500).json({ error: 'Internal server error' }); } diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 8868d7de..903451be 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,41 +1,59 @@ import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; import { FALLBACK_LANG } from '../config.js'; -import { fetchLearningPaths, searchLearningPaths } from '../services/learningPaths.js'; +import { + fetchLearningPaths, + searchLearningPaths, +} from '../services/learningPaths.js'; /** * Fetch learning paths based on query parameters. */ export async function getLearningPaths( req: Request, res: Response -): Promise { +): Promise { try { const hruids = req.query.hruid; - const themeKey = (req.query.theme as string); - const searchQuery = (req.query.search as string); + const themeKey = req.query.theme as string; + const searchQuery = req.query.search as string; const language = (req.query.language as string) || FALLBACK_LANG; - let hruidList = []; + let hruidList; if (hruids) { - hruidList = Array.isArray(hruids) ? hruids.map(String) : [String(hruids)]; + hruidList = Array.isArray(hruids) + ? hruids.map(String) + : [String(hruids)]; } else if (themeKey) { - const theme = themes.find((t) => t.title === themeKey); + const theme = themes.find((t) => { + return t.title === themeKey; + }); if (theme) { hruidList = theme.hruids; } else { - res.status(404).json({ error: `Theme "${themeKey}" not found.` }); + res.status(404).json({ + error: `Theme "${themeKey}" not found.`, + }); return; } } else if (searchQuery) { - const searchResults = await searchLearningPaths(searchQuery, language); + const searchResults = await searchLearningPaths( + searchQuery, + language + ); res.json(searchResults); return; } else { - hruidList = themes.flatMap((theme) => theme.hruids); + hruidList = themes.flatMap((theme) => { + return theme.hruids; + }); } - const learningPaths = await fetchLearningPaths(hruidList, language, `HRUIDs: ${hruidList.join(', ')}`); + const learningPaths = await fetchLearningPaths( + hruidList, + language, + `HRUIDs: ${hruidList.join(', ')}` + ); res.json(learningPaths.data); } catch (error) { console.error('❌ Unexpected error fetching learning paths:', error); diff --git a/backend/src/routes/learningObjects.ts b/backend/src/routes/learningObjects.ts index 42e72bca..416602b5 100644 --- a/backend/src/routes/learningObjects.ts +++ b/backend/src/routes/learningObjects.ts @@ -1,5 +1,8 @@ import express from 'express'; -import {getAllLearningObjects, getLearningObject} from '../controllers/learningObjects.js'; +import { + getAllLearningObjects, + getLearningObject, +} from '../controllers/learningObjects.js'; const router = express.Router(); @@ -15,7 +18,6 @@ const router = express.Router(); // Example 2: http://localhost:3000/learningObject?full=true&hruid=un_artificiele_intelligentie router.get('/', getAllLearningObjects); - // Parameter: hruid of learning object // Query: language // Route to fetch data of one learning object based on its hruid diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index b184f1fd..d1d34ad2 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -3,7 +3,8 @@ import { fetchWithLogging } from '../util/apiHelper.js'; import { FilteredLearningObject, LearningObjectMetadata, - LearningObjectNode, LearningPathResponse, + LearningObjectNode, + LearningPathResponse, } from '../interfaces/learningPath.js'; import { fetchLearningPaths } from './learningPaths.js'; @@ -40,7 +41,7 @@ function filterData( export async function getLearningObjectById( hruid: string, language: string -): Promise { +): Promise { const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${hruid}&language=${language}`; const metadata = await fetchWithLogging( metadataUrl, @@ -65,26 +66,43 @@ async function fetchLearningObjects( language: string ): Promise { try { - const learningPathResponse: LearningPathResponse = await fetchLearningPaths( - [hruid], - language, - `Learning path for HRUID "${hruid}"` - ); + const learningPathResponse: LearningPathResponse = + await fetchLearningPaths( + [hruid], + language, + `Learning path for HRUID "${hruid}"` + ); - if (!learningPathResponse.success || !learningPathResponse.data?.length) { - console.error(`⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.`); + if ( + !learningPathResponse.success || + !learningPathResponse.data?.length + ) { + console.error( + `⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.` + ); return []; } const nodes: LearningObjectNode[] = learningPathResponse.data[0].nodes; if (!full) { - return nodes.map(node => node.learningobject_hruid); + return nodes.map((node) => { + return node.learningobject_hruid; + }); } return await Promise.all( - nodes.map(async (node) => getLearningObjectById(node.learningobject_hruid, language)) - ).then((objects) => objects.filter((obj): obj is FilteredLearningObject => obj !== null)); + nodes.map(async (node) => { + return getLearningObjectById( + node.learningobject_hruid, + language + ); + }) + ).then((objects) => { + return objects.filter((obj): obj is FilteredLearningObject => { + return obj !== null; + }); + }); } catch (error) { console.error('❌ Error fetching learning objects:', error); return []; @@ -98,7 +116,11 @@ export async function getLearningObjectsFromPath( hruid: string, language: string ): Promise { - return await fetchLearningObjects(hruid, true, language) as FilteredLearningObject[]; + return (await fetchLearningObjects( + hruid, + true, + language + )) as FilteredLearningObject[]; } /** @@ -108,5 +130,5 @@ export async function getLearningObjectIdsFromPath( hruid: string, language: string ): Promise { - return await fetchLearningObjects(hruid, false, language) as string[]; + return (await fetchLearningObjects(hruid, false, language)) as string[]; } diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index d8ad90a2..2a9f15a3 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -45,14 +45,17 @@ export async function fetchLearningPaths( }; } - export async function searchLearningPaths( query: string, language: string -): Promise { +): Promise { const apiUrl = `${DWENGO_API_BASE}/learningPath/search`; const params = { all: query, language }; - const searchResults = await fetchWithLogging(apiUrl, `Search learning paths with query "${query}"`, params); + const searchResults = await fetchWithLogging( + apiUrl, + `Search learning paths with query "${query}"`, + params + ); return searchResults ?? []; } From e6c03c1acaa216f5dc3115a45506700bab49f4fa Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 13:58:08 +0100 Subject: [PATCH 54/80] chore(backend): Definieer logger voor MikroORM Maak gebruik van juiste logging niveau voor elke taak (namespace) --- backend/src/logging/mikroOrmLogger.ts | 88 +++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 backend/src/logging/mikroOrmLogger.ts diff --git a/backend/src/logging/mikroOrmLogger.ts b/backend/src/logging/mikroOrmLogger.ts new file mode 100644 index 00000000..4fbadb96 --- /dev/null +++ b/backend/src/logging/mikroOrmLogger.ts @@ -0,0 +1,88 @@ +import { DefaultLogger, LogContext, LoggerNamespace } from '@mikro-orm/core'; +import { Logger } from 'winston'; +import { getLogger } from './initalize'; +import { LokiLabels } from 'loki-logger-ts'; + +export class MikroOrmLogger extends DefaultLogger { + private logger: Logger = getLogger(); + + log(namespace: LoggerNamespace, message: string, context?: LogContext) { + if (!this.isEnabled(namespace, context)) { + return; + } + + switch (namespace) { + case 'query': + this.logger.debug( + this.createMessage(namespace, message, context) + ); + break; + case 'query-params': + // TODO Which log level should this be? + this.logger.info( + this.createMessage(namespace, message, context) + ); + break; + case 'schema': + this.logger.info( + this.createMessage(namespace, message, context) + ); + break; + case 'discovery': + this.logger.debug( + this.createMessage(namespace, message, context) + ); + break; + case 'info': + this.logger.info( + this.createMessage(namespace, message, context) + ); + break; + case 'deprecated': + this.logger.warn( + this.createMessage(namespace, message, context) + ); + break; + default: + switch (context?.level) { + case 'info': + this.logger.info( + this.createMessage(namespace, message, context) + ); + break; + case 'warning': + this.logger.warn(message); + break; + case 'error': + this.logger.error(message); + break; + default: + this.logger.debug(message); + break; + } + } + } + + private createMessage( + namespace: LoggerNamespace, + messageArg: string, + context?: LogContext + ) { + const labels: LokiLabels = { + service: 'ORM', + }; + + let message: string; + if (context?.label) { + message = `[${namespace}] (${context?.label}) ${messageArg}`; + } else { + message = `[${namespace}] ${messageArg}`; + } + + return { + message: message, + labels: labels, + context: context, + }; + } +} From eca8d897122021a1f3054f4e9446344900aebdcf Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 13:59:38 +0100 Subject: [PATCH 55/80] chore(backend): Duidelijkere MikroORM logging Zorgt voor beter formaat en juiste labels --- backend/.env.example | 12 +++++++++++- backend/src/config.ts | 6 ++++++ backend/src/logging/initalize.ts | 20 +++++++++++--------- backend/src/logging/responseTimeLogger.ts | 1 - backend/src/mikro-orm.config.ts | 12 ++++++++++-- 5 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 backend/src/config.ts diff --git a/backend/.env.example b/backend/.env.example index c0c68b1c..165b7a29 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -1 +1,11 @@ -PORT=3000 \ No newline at end of file +# +# Basic configuration +# + +PORT=3000 # The port the backend will listen on + +# +# Advanced configuration +# + +# LOKI_HOST=http://localhost:3102 # The address of the Loki instance, used for logging diff --git a/backend/src/config.ts b/backend/src/config.ts new file mode 100644 index 00000000..9edd1437 --- /dev/null +++ b/backend/src/config.ts @@ -0,0 +1,6 @@ +// Logging + +export const LOG_LEVEL: string = + 'development' === process.env.NODE_ENV ? 'debug' : 'info'; +export const LOKI_HOST: string = + process.env.LOKI_HOST || 'http://localhost:3102'; diff --git a/backend/src/logging/initalize.ts b/backend/src/logging/initalize.ts index 6a4d52c5..5da786fe 100644 --- a/backend/src/logging/initalize.ts +++ b/backend/src/logging/initalize.ts @@ -1,43 +1,45 @@ import { createLogger, format, Logger, transports } from 'winston'; import LokiTransport from 'winston-loki'; import { LokiLabels } from 'loki-logger-ts'; +import { LOG_LEVEL, LOKI_HOST } from '../config.js'; -const LoggingLevel = 'development' === process.env.NODE_ENV ? 'debug' : 'info'; -const Host = 'http://localhost:3102'; const Labels: LokiLabels = { source: 'Dwengo-Backend', - job: 'Dwengo-Backend', + service: 'API', host: 'localhost', }; let logger: Logger; -function initializeLogger() { +function initializeLogger(): Logger { if (logger !== undefined) { return logger; } const lokiTransport: LokiTransport = new LokiTransport({ - host: Host, + host: LOKI_HOST, labels: Labels, - level: LoggingLevel, + level: LOG_LEVEL, json: true, format: format.combine(format.timestamp(), format.json()), onConnectionError: (err) => { + // eslint-disable-next-line no-console console.error(`Connection error: ${err}`); }, }); const consoleTransport = new transports.Console({ - level: LoggingLevel, - format: format.combine(format.simple(), format.colorize()), + level: LOG_LEVEL, + format: format.combine(format.cli(), format.colorize()), }); logger = createLogger({ transports: [lokiTransport, consoleTransport], }); - logger.debug('Logger initialized'); + logger.debug( + `Logger initialized with level ${LOG_LEVEL}, Loki host ${LOKI_HOST}` + ); return logger; } diff --git a/backend/src/logging/responseTimeLogger.ts b/backend/src/logging/responseTimeLogger.ts index 5baf63f4..85723e5e 100644 --- a/backend/src/logging/responseTimeLogger.ts +++ b/backend/src/logging/responseTimeLogger.ts @@ -16,7 +16,6 @@ export function responseTimeLogger(req: Request, res: Response, time: number) { status: status, responseTime: Number(time), labels: { - origin: 'api', type: 'responseTime', }, }); diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index c4302a37..1beec07b 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -1,12 +1,20 @@ -import { Options } from '@mikro-orm/core'; +import { LoggerOptions, Options } from '@mikro-orm/core'; import { PostgreSqlDriver } from '@mikro-orm/postgresql'; +import { MikroOrmLogger } from './logging/mikroOrmLogger.js'; +import { LOG_LEVEL } from './config.js'; const config: Options = { driver: PostgreSqlDriver, dbName: 'dwengo', + password: 'postgres', entities: ['dist/**/*.entity.js'], entitiesTs: ['src/**/*.entity.ts'], - debug: true, + + // Logging + debug: LOG_LEVEL === 'debug', + loggerFactory: (options: LoggerOptions) => { + return new MikroOrmLogger(options); + }, }; export default config; From ebf741a0d0e65580b52867f405457bab4dd3e31c Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 14:08:21 +0100 Subject: [PATCH 56/80] fix(backend): Ontbrekende .js in imports --- backend/src/logging/mikroOrmLogger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/logging/mikroOrmLogger.ts b/backend/src/logging/mikroOrmLogger.ts index 4fbadb96..49818427 100644 --- a/backend/src/logging/mikroOrmLogger.ts +++ b/backend/src/logging/mikroOrmLogger.ts @@ -1,6 +1,6 @@ import { DefaultLogger, LogContext, LoggerNamespace } from '@mikro-orm/core'; import { Logger } from 'winston'; -import { getLogger } from './initalize'; +import { getLogger } from './initalize.js'; import { LokiLabels } from 'loki-logger-ts'; export class MikroOrmLogger extends DefaultLogger { From 4b40653a1c0962e67ccf5fe53b818e07c8dd66ef Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 14:10:31 +0100 Subject: [PATCH 57/80] fix(backend): Verander Grafana poort Verander grafana poort naar 3100 om conflict met standaard poort 3000 van backend te vermijden. --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1f8a4c98..a348d23d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,7 +25,7 @@ services: dashboards: image: grafana/grafana:latest ports: - - '3000:3000' + - '3100:3000' volumes: - dwengo_grafana_data:/var/lib/grafana restart: unless-stopped From c2e3886f3f10ea01551b3c1cef7f3668ab6ab462 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 15:14:26 +0100 Subject: [PATCH 58/80] chore(backend): Switch console naar logger Maak gebruik van custom logger --- backend/src/controllers/learningObjects.ts | 5 +++-- backend/src/controllers/learningPaths.ts | 3 ++- backend/src/controllers/themes.ts | 8 ++++++-- backend/src/services/learningObjects.ts | 10 +++++++--- backend/src/services/learningPaths.ts | 6 +++++- backend/src/util/apiHelper.ts | 10 ++++++---- 6 files changed, 29 insertions(+), 13 deletions(-) diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index 4295326a..90cd3f13 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -6,6 +6,7 @@ import { } from '../services/learningObjects.js'; import { FALLBACK_LANG } from '../config.js'; import { FilteredLearningObject } from '../interfaces/learningPath'; +import { getLogger } from '../logging/initalize'; export async function getAllLearningObjects( req: Request, @@ -33,7 +34,7 @@ export async function getAllLearningObjects( res.json(learningObjects); } catch (error) { - console.error('Error fetching learning objects:', error); + getLogger().error('Error fetching learning objects:', error); res.status(500).json({ error: 'Internal server error' }); } } @@ -54,7 +55,7 @@ export async function getLearningObject( const learningObject = await getLearningObjectById(hruid, language); res.json(learningObject); } catch (error) { - console.error('Error fetching learning object:', error); + getLogger().error('Error fetching learning object:', error); res.status(500).json({ error: 'Internal server error' }); } } diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 903451be..86878bfd 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -5,6 +5,7 @@ import { fetchLearningPaths, searchLearningPaths, } from '../services/learningPaths.js'; +import { getLogger } from '../logging/initalize.js'; /** * Fetch learning paths based on query parameters. */ @@ -56,7 +57,7 @@ export async function getLearningPaths( ); res.json(learningPaths.data); } catch (error) { - console.error('❌ Unexpected error fetching learning paths:', error); + getLogger().error('❌ Unexpected error fetching learning paths:', error); res.status(500).json({ error: 'Internal server error' }); } } diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 817464ab..c10f1b98 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -1,9 +1,13 @@ import fs from 'fs'; import path from 'path'; import yaml from 'js-yaml'; +import { Logger } from 'winston'; import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; import { FALLBACK_LANG } from '../config.js'; +import { getLogger } from '../logging/initalize.js'; + +const logger: Logger = getLogger(); interface Translations { curricula_page: { @@ -17,10 +21,10 @@ function loadTranslations(language: string): Translations { const yamlFile = fs.readFileSync(filePath, 'utf8'); return yaml.load(yamlFile) as Translations; } catch (error) { - console.error( + logger.error( `Cannot load translation for: ${language}, fallen back to Dutch` ); - console.error(error); + logger.error(error); const fallbackPath = path.join(process.cwd(), '_i18n', 'nl.yml'); return yaml.load(fs.readFileSync(fallbackPath, 'utf8')) as Translations; } diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index d1d34ad2..90370fe6 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -7,6 +7,10 @@ import { LearningPathResponse, } from '../interfaces/learningPath.js'; import { fetchLearningPaths } from './learningPaths.js'; +import { getLogger } from '../logging/initalize.js'; +import { Logger } from 'winston'; + +const logger: Logger = getLogger(); function filterData( data: LearningObjectMetadata, @@ -49,7 +53,7 @@ export async function getLearningObjectById( ); if (!metadata) { - console.error(`⚠️ WARNING: Learning object "${hruid}" not found.`); + logger.error(`⚠️ WARNING: Learning object "${hruid}" not found.`); return null; } @@ -77,7 +81,7 @@ async function fetchLearningObjects( !learningPathResponse.success || !learningPathResponse.data?.length ) { - console.error( + logger.error( `⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.` ); return []; @@ -104,7 +108,7 @@ async function fetchLearningObjects( }); }); } catch (error) { - console.error('❌ Error fetching learning objects:', error); + logger.error('❌ Error fetching learning objects:', error); return []; } } diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 2a9f15a3..7c445806 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -4,6 +4,10 @@ import { LearningPath, LearningPathResponse, } from '../interfaces/learningPath.js'; +import { getLogger } from '../logging/initalize.js'; +import { Logger } from 'winston'; + +const logger: Logger = getLogger(); export async function fetchLearningPaths( hruids: string[], @@ -29,7 +33,7 @@ export async function fetchLearningPaths( ); if (!learningPaths || learningPaths.length === 0) { - console.error(`⚠️ WARNING: No learning paths found for ${source}.`); + logger.error(`⚠️ WARNING: No learning paths found for ${source}.`); return { success: false, source, diff --git a/backend/src/util/apiHelper.ts b/backend/src/util/apiHelper.ts index 76d166c8..4a1cae7f 100644 --- a/backend/src/util/apiHelper.ts +++ b/backend/src/util/apiHelper.ts @@ -1,6 +1,8 @@ import axios, { AxiosRequestConfig } from 'axios'; +import { getLogger } from '../logging/initalize.js'; +import { Logger } from 'winston'; -// !!!! when logger is done -> change +const logger: Logger = getLogger(); /** * Utility function to fetch data from an API endpoint with error handling. @@ -24,16 +26,16 @@ export async function fetchWithLogging( } catch (error: any) { if (error.response) { if (error.response.status === 404) { - console.error( + logger.error( `❌ ERROR: ${description} not found (404) at "${url}".` ); } else { - console.error( + logger.error( `❌ ERROR: Failed to fetch ${description}. Status: ${error.response.status} - ${error.response.statusText} (URL: "${url}")` ); } } else { - console.error( + logger.error( `❌ ERROR: Network or unexpected error when fetching ${description}:`, error.message ); From c37d4d8e0437daa0b8f0f01b0a7e759dc3d8b65e Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 15:20:57 +0100 Subject: [PATCH 59/80] chore(backend): Export Logger class --- backend/src/app.ts | 3 +-- backend/src/controllers/themes.ts | 3 +-- backend/src/logging/initalize.ts | 13 ++++++++++++- backend/src/logging/mikroOrmLogger.ts | 3 +-- backend/src/logging/responseTimeLogger.ts | 3 +-- backend/src/orm.ts | 3 +-- backend/src/services/learningObjects.ts | 3 +-- backend/src/services/learningPaths.ts | 8 ++------ backend/src/util/apiHelper.ts | 3 +-- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/backend/src/app.ts b/backend/src/app.ts index 2161666f..652c27d1 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -12,10 +12,9 @@ import submissionRouter from './routes/submission.js'; import classRouter from './routes/class.js'; import questionRouter from './routes/question.js'; import loginRouter from './routes/login.js'; -import { getLogger } from './logging/initalize.js'; +import { getLogger, Logger } from './logging/initalize.js'; import { responseTimeLogger } from './logging/responseTimeLogger.js'; import responseTime from 'response-time'; -import { Logger } from 'winston'; import { EnvVars, getNumericEnvVar } from './util/envvars.js'; const logger: Logger = getLogger(); diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index c10f1b98..e60502ed 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -1,11 +1,10 @@ import fs from 'fs'; import path from 'path'; import yaml from 'js-yaml'; -import { Logger } from 'winston'; import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; import { FALLBACK_LANG } from '../config.js'; -import { getLogger } from '../logging/initalize.js'; +import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); diff --git a/backend/src/logging/initalize.ts b/backend/src/logging/initalize.ts index 5da786fe..18166408 100644 --- a/backend/src/logging/initalize.ts +++ b/backend/src/logging/initalize.ts @@ -1,8 +1,19 @@ -import { createLogger, format, Logger, transports } from 'winston'; +import { + createLogger, + format, + Logger as WinstonLogger, + transports, +} from 'winston'; import LokiTransport from 'winston-loki'; import { LokiLabels } from 'loki-logger-ts'; import { LOG_LEVEL, LOKI_HOST } from '../config.js'; +export class Logger extends WinstonLogger { + constructor() { + super(); + } +} + const Labels: LokiLabels = { source: 'Dwengo-Backend', service: 'API', diff --git a/backend/src/logging/mikroOrmLogger.ts b/backend/src/logging/mikroOrmLogger.ts index 49818427..e8bc1fad 100644 --- a/backend/src/logging/mikroOrmLogger.ts +++ b/backend/src/logging/mikroOrmLogger.ts @@ -1,6 +1,5 @@ import { DefaultLogger, LogContext, LoggerNamespace } from '@mikro-orm/core'; -import { Logger } from 'winston'; -import { getLogger } from './initalize.js'; +import { getLogger, Logger } from './initalize.js'; import { LokiLabels } from 'loki-logger-ts'; export class MikroOrmLogger extends DefaultLogger { diff --git a/backend/src/logging/responseTimeLogger.ts b/backend/src/logging/responseTimeLogger.ts index 85723e5e..c1bb1e33 100644 --- a/backend/src/logging/responseTimeLogger.ts +++ b/backend/src/logging/responseTimeLogger.ts @@ -1,5 +1,4 @@ -import { getLogger } from './initalize.js'; -import { Logger } from 'winston'; +import { getLogger, Logger } from './initalize.js'; import { Request, Response } from 'express'; export function responseTimeLogger(req: Request, res: Response, time: number) { diff --git a/backend/src/orm.ts b/backend/src/orm.ts index 2205fe89..88decd92 100644 --- a/backend/src/orm.ts +++ b/backend/src/orm.ts @@ -1,8 +1,7 @@ import { EntityManager, MikroORM } from '@mikro-orm/core'; import config from './mikro-orm.config.js'; import { EnvVars, getEnvVar } from './util/envvars.js'; -import { getLogger } from './logging/initalize.js'; -import { Logger } from 'winston'; +import { getLogger, Logger } from './logging/initalize.js'; let orm: MikroORM | undefined; export async function initORM(testingMode: boolean = false) { diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 90370fe6..709c3298 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -7,8 +7,7 @@ import { LearningPathResponse, } from '../interfaces/learningPath.js'; import { fetchLearningPaths } from './learningPaths.js'; -import { getLogger } from '../logging/initalize.js'; -import { Logger } from 'winston'; +import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 7c445806..58703215 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -1,11 +1,7 @@ import { fetchWithLogging } from '../util/apiHelper.js'; import { DWENGO_API_BASE } from '../config.js'; -import { - LearningPath, - LearningPathResponse, -} from '../interfaces/learningPath.js'; -import { getLogger } from '../logging/initalize.js'; -import { Logger } from 'winston'; +import { LearningPath, LearningPathResponse } from '../interfaces/learningPath.js'; +import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); diff --git a/backend/src/util/apiHelper.ts b/backend/src/util/apiHelper.ts index 4a1cae7f..09492615 100644 --- a/backend/src/util/apiHelper.ts +++ b/backend/src/util/apiHelper.ts @@ -1,6 +1,5 @@ import axios, { AxiosRequestConfig } from 'axios'; -import { getLogger } from '../logging/initalize.js'; -import { Logger } from 'winston'; +import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); From ddee299b4ab3a325abc19ced529abf9fa47d9b04 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 15:21:27 +0100 Subject: [PATCH 60/80] style(backend): Format --- backend/src/app.ts | 1 - backend/src/config.ts | 4 +- backend/src/controllers/learningPaths.ts | 5 ++- .../entities/assignments/assignment.entity.ts | 20 ++++++++-- .../src/entities/assignments/group.entity.ts | 13 ++++++- .../entities/assignments/submission.entity.ts | 20 ++++++++-- .../classes/class-join-request.entity.ts | 18 +++++++-- backend/src/entities/classes/class.entity.ts | 8 +++- .../classes/teacher-invitation.entity.ts | 21 ++++++++-- .../src/entities/content/attachment.entity.ts | 7 +++- .../content/learning-object.entity.ts | 33 +++++++++++++--- .../entities/content/learning-path.entity.ts | 39 ++++++++++++++++--- .../src/entities/questions/answer.entity.ts | 14 ++++++- .../src/entities/questions/question.entity.ts | 13 ++++++- backend/src/entities/users/student.entity.ts | 14 +++++-- backend/src/entities/users/teacher.entity.ts | 4 +- backend/src/routes/assignment.ts | 25 ++++-------- backend/src/routes/class.ts | 37 +++++++----------- backend/src/routes/group.ts | 21 +++++----- backend/src/routes/login.ts | 6 +-- backend/src/routes/question.ts | 24 +++++------- backend/src/routes/student.ts | 28 ++++++------- backend/src/routes/submission.ts | 11 ++---- backend/src/routes/teacher.ts | 24 ++++-------- backend/src/services/learningPaths.ts | 5 ++- 25 files changed, 265 insertions(+), 150 deletions(-) diff --git a/backend/src/app.ts b/backend/src/app.ts index 652c27d1..5769e360 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -22,7 +22,6 @@ const logger: Logger = getLogger(); const app: Express = express(); const port: string | number = getNumericEnvVar(EnvVars.Port); - app.use(express.json()); app.use(responseTime(responseTimeLogger)); diff --git a/backend/src/config.ts b/backend/src/config.ts index 831670a9..b972a1bd 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -7,6 +7,6 @@ export const DWENGO_API_BASE: string = 'https://dwengo.org/backend/api'; // Logging export const LOG_LEVEL: string = - 'development' === process.env.NODE_ENV ? 'debug' : 'info'; + 'development' === process.env.NODE_ENV ? 'debug' : 'info'; export const LOKI_HOST: string = - process.env.LOKI_HOST || 'http://localhost:3102'; + process.env.LOKI_HOST || 'http://localhost:3102'; diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 86878bfd..247877e7 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -57,7 +57,10 @@ export async function getLearningPaths( ); res.json(learningPaths.data); } catch (error) { - getLogger().error('❌ Unexpected error fetching learning paths:', error); + getLogger().error( + '❌ Unexpected error fetching learning paths:', + error + ); res.status(500).json({ error: 'Internal server error' }); } } diff --git a/backend/src/entities/assignments/assignment.entity.ts b/backend/src/entities/assignments/assignment.entity.ts index 7909b107..89952c64 100644 --- a/backend/src/entities/assignments/assignment.entity.ts +++ b/backend/src/entities/assignments/assignment.entity.ts @@ -12,7 +12,12 @@ import { Language } from '../content/language.js'; @Entity() export class Assignment { - @ManyToOne({ entity: () => {return Class}, primary: true }) + @ManyToOne({ + entity: () => { + return Class; + }, + primary: true, + }) within!: Class; @PrimaryKey({ type: 'number' }) @@ -27,9 +32,18 @@ export class Assignment { @Property({ type: 'string' }) learningPathHruid!: string; - @Enum({ items: () => {return Language} }) + @Enum({ + items: () => { + return Language; + }, + }) learningPathLanguage!: Language; - @OneToMany({ entity: () => {return Group}, mappedBy: 'assignment' }) + @OneToMany({ + entity: () => { + return Group; + }, + mappedBy: 'assignment', + }) groups!: Group[]; } diff --git a/backend/src/entities/assignments/group.entity.ts b/backend/src/entities/assignments/group.entity.ts index a68eb5a0..5b224087 100644 --- a/backend/src/entities/assignments/group.entity.ts +++ b/backend/src/entities/assignments/group.entity.ts @@ -4,12 +4,21 @@ import { Student } from '../users/student.entity.js'; @Entity() export class Group { - @ManyToOne({ entity: () => {return Assignment}, primary: true }) + @ManyToOne({ + entity: () => { + return Assignment; + }, + primary: true, + }) assignment!: Assignment; @PrimaryKey({ type: 'integer' }) groupNumber!: number; - @ManyToMany({ entity: () => {return Student} }) + @ManyToMany({ + entity: () => { + return Student; + }, + }) members!: Student[]; } diff --git a/backend/src/entities/assignments/submission.entity.ts b/backend/src/entities/assignments/submission.entity.ts index bd0936a1..1bc28add 100644 --- a/backend/src/entities/assignments/submission.entity.ts +++ b/backend/src/entities/assignments/submission.entity.ts @@ -8,7 +8,12 @@ export class Submission { @PrimaryKey({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) learningObjectLanguage!: Language; @PrimaryKey({ type: 'string' }) @@ -17,13 +22,22 @@ export class Submission { @PrimaryKey({ type: 'integer' }) submissionNumber!: number; - @ManyToOne({ entity: () => {return Student} }) + @ManyToOne({ + entity: () => { + return Student; + }, + }) submitter!: Student; @Property({ type: 'datetime' }) submissionTime!: Date; - @ManyToOne({ entity: () => {return Group}, nullable: true }) + @ManyToOne({ + entity: () => { + return Group; + }, + nullable: true, + }) onBehalfOf?: Group; @Property({ type: 'json' }) diff --git a/backend/src/entities/classes/class-join-request.entity.ts b/backend/src/entities/classes/class-join-request.entity.ts index 86a30e3e..0ae38cd1 100644 --- a/backend/src/entities/classes/class-join-request.entity.ts +++ b/backend/src/entities/classes/class-join-request.entity.ts @@ -4,13 +4,25 @@ import { Class } from './class.entity.js'; @Entity() export class ClassJoinRequest { - @ManyToOne({ entity: () => {return Student}, primary: true }) + @ManyToOne({ + entity: () => { + return Student; + }, + primary: true, + }) requester!: Student; - @ManyToOne({ entity: () => {return Class}, primary: true }) + @ManyToOne({ + entity: () => { + return Class; + }, + primary: true, + }) class!: Class; - @Enum(() => {return ClassJoinRequestStatus}) + @Enum(() => { + return ClassJoinRequestStatus; + }) status!: ClassJoinRequestStatus; } diff --git a/backend/src/entities/classes/class.entity.ts b/backend/src/entities/classes/class.entity.ts index 2ad98c84..ecc11748 100644 --- a/backend/src/entities/classes/class.entity.ts +++ b/backend/src/entities/classes/class.entity.ts @@ -17,9 +17,13 @@ export class Class { @Property({ type: 'string' }) displayName!: string; - @ManyToMany(() => {return Teacher}) + @ManyToMany(() => { + return Teacher; + }) teachers!: Collection; - @ManyToMany(() => {return Student}) + @ManyToMany(() => { + return Student; + }) students!: Collection; } diff --git a/backend/src/entities/classes/teacher-invitation.entity.ts b/backend/src/entities/classes/teacher-invitation.entity.ts index feba8fc3..98d2bdd4 100644 --- a/backend/src/entities/classes/teacher-invitation.entity.ts +++ b/backend/src/entities/classes/teacher-invitation.entity.ts @@ -7,12 +7,27 @@ import { Class } from './class.entity.js'; */ @Entity() export class TeacherInvitation { - @ManyToOne({ entity: () => {return Teacher}, primary: true }) + @ManyToOne({ + entity: () => { + return Teacher; + }, + primary: true, + }) sender!: Teacher; - @ManyToOne({ entity: () => {return Teacher}, primary: true }) + @ManyToOne({ + entity: () => { + return Teacher; + }, + primary: true, + }) receiver!: Teacher; - @ManyToOne({ entity: () => {return Class}, primary: true }) + @ManyToOne({ + entity: () => { + return Class; + }, + primary: true, + }) class!: Class; } diff --git a/backend/src/entities/content/attachment.entity.ts b/backend/src/entities/content/attachment.entity.ts index 2ead7262..7a9dd946 100644 --- a/backend/src/entities/content/attachment.entity.ts +++ b/backend/src/entities/content/attachment.entity.ts @@ -3,7 +3,12 @@ import { LearningObject } from './learning-object.entity.js'; @Entity() export class Attachment { - @ManyToOne({ entity: () => {return LearningObject}, primary: true }) + @ManyToOne({ + entity: () => { + return LearningObject; + }, + primary: true, + }) learningObject!: LearningObject; @PrimaryKey({ type: 'integer' }) diff --git a/backend/src/entities/content/learning-object.entity.ts b/backend/src/entities/content/learning-object.entity.ts index c5bfe08f..bf499e8a 100644 --- a/backend/src/entities/content/learning-object.entity.ts +++ b/backend/src/entities/content/learning-object.entity.ts @@ -17,13 +17,22 @@ export class LearningObject { @PrimaryKey({ type: 'string' }) hruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) language!: Language; @PrimaryKey({ type: 'string' }) version: string = '1'; - @ManyToMany({ entity: () => {return Teacher} }) + @ManyToMany({ + entity: () => { + return Teacher; + }, + }) admins!: Teacher[]; @Property({ type: 'string' }) @@ -47,7 +56,12 @@ export class LearningObject { @Property({ type: 'array' }) skosConcepts!: string[]; - @Embedded({ entity: () => {return EducationalGoal}, array: true }) + @Embedded({ + entity: () => { + return EducationalGoal; + }, + array: true, + }) educationalGoals: EducationalGoal[] = []; @Property({ type: 'string' }) @@ -62,7 +76,11 @@ export class LearningObject { @Property({ type: 'integer' }) estimatedTime!: number; - @Embedded({ entity: () => {return ReturnValue} }) + @Embedded({ + entity: () => { + return ReturnValue; + }, + }) returnValue!: ReturnValue; @Property({ type: 'bool' }) @@ -71,7 +89,12 @@ export class LearningObject { @Property({ type: 'string', nullable: true }) contentLocation?: string; - @OneToMany({ entity: () => {return Attachment}, mappedBy: 'learningObject' }) + @OneToMany({ + entity: () => { + return Attachment; + }, + mappedBy: 'learningObject', + }) attachments: Attachment[] = []; @Property({ type: 'blob' }) diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index f758dace..28d3cadd 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -16,10 +16,19 @@ export class LearningPath { @PrimaryKey({ type: 'string' }) hruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) language!: Language; - @ManyToMany({ entity: () => {return Teacher} }) + @ManyToMany({ + entity: () => { + return Teacher; + }, + }) admins!: Teacher[]; @Property({ type: 'string' }) @@ -31,7 +40,12 @@ export class LearningPath { @Property({ type: 'blob' }) image!: string; - @Embedded({ entity: () => {return LearningPathNode}, array: true }) + @Embedded({ + entity: () => { + return LearningPathNode; + }, + array: true, + }) nodes: LearningPathNode[] = []; } @@ -40,7 +54,11 @@ export class LearningPathNode { @Property({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => {return Language} }) + @Enum({ + items: () => { + return Language; + }, + }) language!: Language; @Property({ type: 'string' }) @@ -52,7 +70,12 @@ export class LearningPathNode { @Property({ type: 'bool' }) startNode!: boolean; - @Embedded({ entity: () => {return LearningPathTransition}, array: true }) + @Embedded({ + entity: () => { + return LearningPathTransition; + }, + array: true, + }) transitions!: LearningPathTransition[]; } @@ -61,6 +84,10 @@ export class LearningPathTransition { @Property({ type: 'string' }) condition!: string; - @OneToOne({ entity: () => {return LearningPathNode} }) + @OneToOne({ + entity: () => { + return LearningPathNode; + }, + }) next!: LearningPathNode; } diff --git a/backend/src/entities/questions/answer.entity.ts b/backend/src/entities/questions/answer.entity.ts index 2690d50d..34558612 100644 --- a/backend/src/entities/questions/answer.entity.ts +++ b/backend/src/entities/questions/answer.entity.ts @@ -4,10 +4,20 @@ import { Teacher } from '../users/teacher.entity'; @Entity() export class Answer { - @ManyToOne({ entity: () => {return Teacher}, primary: true }) + @ManyToOne({ + entity: () => { + return Teacher; + }, + primary: true, + }) author!: Teacher; - @ManyToOne({ entity: () => {return Question}, primary: true }) + @ManyToOne({ + entity: () => { + return Question; + }, + primary: true, + }) toQuestion!: Question; @PrimaryKey({ type: 'integer' }) diff --git a/backend/src/entities/questions/question.entity.ts b/backend/src/entities/questions/question.entity.ts index 5830c816..444d2179 100644 --- a/backend/src/entities/questions/question.entity.ts +++ b/backend/src/entities/questions/question.entity.ts @@ -7,7 +7,12 @@ export class Question { @PrimaryKey({ type: 'string' }) learningObjectHruid!: string; - @Enum({ items: () => {return Language}, primary: true }) + @Enum({ + items: () => { + return Language; + }, + primary: true, + }) learningObjectLanguage!: Language; @PrimaryKey({ type: 'string' }) @@ -16,7 +21,11 @@ export class Question { @PrimaryKey({ type: 'integer' }) sequenceNumber!: number; - @ManyToOne({ entity: () => {return Student} }) + @ManyToOne({ + entity: () => { + return Student; + }, + }) author!: Student; @Property({ type: 'datetime' }) diff --git a/backend/src/entities/users/student.entity.ts b/backend/src/entities/users/student.entity.ts index ccfa7dfc..c5632e84 100644 --- a/backend/src/entities/users/student.entity.ts +++ b/backend/src/entities/users/student.entity.ts @@ -4,12 +4,20 @@ import { Class } from '../classes/class.entity.js'; import { Group } from '../assignments/group.entity.js'; import { StudentRepository } from '../../data/users/student-repository.js'; -@Entity({ repository: () => {return StudentRepository} }) +@Entity({ + repository: () => { + return StudentRepository; + }, +}) export class Student extends User { - @ManyToMany(() => {return Class}) + @ManyToMany(() => { + return Class; + }) classes!: Collection; - @ManyToMany(() => {return Group}) + @ManyToMany(() => { + return Group; + }) groups!: Collection; constructor( diff --git a/backend/src/entities/users/teacher.entity.ts b/backend/src/entities/users/teacher.entity.ts index eaaa8327..9f11a3b0 100644 --- a/backend/src/entities/users/teacher.entity.ts +++ b/backend/src/entities/users/teacher.entity.ts @@ -4,6 +4,8 @@ import { Class } from '../classes/class.entity.js'; @Entity() export class Teacher extends User { - @ManyToMany(() => {return Class}) + @ManyToMany(() => { + return Class; + }) classes!: Collection; } diff --git a/backend/src/routes/assignment.ts b/backend/src/routes/assignment.ts index eb49144f..4ae5756d 100644 --- a/backend/src/routes/assignment.ts +++ b/backend/src/routes/assignment.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - assignments: [ - '0', - '1', - ] + assignments: ['0', '1'], }); }); @@ -17,7 +14,7 @@ router.get('/:id', (req, res) => { id: req.params.id, title: 'Dit is een test assignment', description: 'Een korte beschrijving', - groups: [ '0' ], + groups: ['0'], learningPath: '0', class: '0', links: { @@ -25,30 +22,24 @@ router.get('/:id', (req, res) => { submissions: `${req.baseUrl}/${req.params.id}`, }, }); -}) +}); router.get('/:id/submissions', (req, res) => { res.json({ - submissions: [ - '0' - ], + submissions: ['0'], }); }); router.get('/:id/groups', (req, res) => { res.json({ - groups: [ - '0' - ], + groups: ['0'], }); }); router.get('/:id/questions', (req, res) => { res.json({ - questions: [ - '0' - ], + questions: ['0'], }); }); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/class.ts b/backend/src/routes/class.ts index fa7a2310..6f8f324e 100644 --- a/backend/src/routes/class.ts +++ b/backend/src/routes/class.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - classes: [ - '0', - '1', - ] + classes: ['0', '1'], }); }); @@ -16,40 +13,34 @@ router.get('/:id', (req, res) => { res.json({ id: req.params.id, displayName: 'Klas 4B', - teachers: [ '0' ], - students: [ '0' ], - joinRequests: [ '0' ], + teachers: ['0'], + students: ['0'], + joinRequests: ['0'], links: { self: `${req.baseUrl}/${req.params.id}`, classes: `${req.baseUrl}/${req.params.id}/invitations`, questions: `${req.baseUrl}/${req.params.id}/assignments`, students: `${req.baseUrl}/${req.params.id}/students`, - } + }, }); -}) +}); router.get('/:id/invitations', (req, res) => { res.json({ - invitations: [ - '0' - ], + invitations: ['0'], }); -}) +}); router.get('/:id/assignments', (req, res) => { res.json({ - assignments: [ - '0' - ], + assignments: ['0'], }); -}) +}); router.get('/:id/students', (req, res) => { res.json({ - students: [ - '0' - ], + students: ['0'], }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/group.ts b/backend/src/routes/group.ts index e951a8a7..303f5215 100644 --- a/backend/src/routes/group.ts +++ b/backend/src/routes/group.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - groups: [ - '0', - '1', - ] + groups: ['0', '1'], }); }); @@ -16,19 +13,19 @@ router.get('/:id', (req, res) => { res.json({ id: req.params.id, assignment: '0', - students: [ '0' ], - submissions: [ '0' ], + students: ['0'], + submissions: ['0'], // Reference to other endpoint // Should be less hardcoded - questions: `/group/${req.params.id}/question`, + questions: `/group/${req.params.id}/question`, }); -}) +}); // The list of questions a group has made router.get('/:id/question', (req, res) => { res.json({ - questions: [ '0' ], + questions: ['0'], }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/login.ts b/backend/src/routes/login.ts index bc2ed3d8..33d5e6c3 100644 --- a/backend/src/routes/login.ts +++ b/backend/src/routes/login.ts @@ -1,4 +1,4 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Returns login paths for IDP @@ -9,6 +9,6 @@ router.get('/', (req, res) => { leerkracht: '/login-leerkracht', leerling: '/login-leerling', }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/question.ts b/backend/src/routes/question.ts index 040f742d..f683d998 100644 --- a/backend/src/routes/question.ts +++ b/backend/src/routes/question.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - questions: [ - '0', - '1', - ] + questions: ['0', '1'], }); }); @@ -18,21 +15,20 @@ router.get('/:id', (req, res) => { student: '0', group: '0', time: new Date(2025, 1, 1), - content: 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????', + content: + 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????', learningObject: '0', links: { self: `${req.baseUrl}/${req.params.id}`, answers: `${req.baseUrl}/${req.params.id}/answers`, - } + }, }); -}) +}); router.get('/:id/answers', (req, res) => { res.json({ - answers: [ - '0' - ], - }) -}) + answers: ['0'], + }); +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/student.ts b/backend/src/routes/student.ts index bc3f588b..9cb0cdee 100644 --- a/backend/src/routes/student.ts +++ b/backend/src/routes/student.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - students: [ - '0', - '1', - ] + students: ['0', '1'], }); }); @@ -30,30 +27,29 @@ router.get('/:id', (req, res) => { // The list of classes a student is in router.get('/:id/classes', (req, res) => { res.json({ - classes: [ '0' ], + classes: ['0'], }); -}) +}); // The list of submissions a student has made router.get('/:id/submissions', (req, res) => { res.json({ - submissions: [ '0' ], + submissions: ['0'], }); -}) +}); - // The list of assignments a student has router.get('/:id/assignments', (req, res) => { res.json({ - assignments: [ '0' ], + assignments: ['0'], }); -}) - +}); + // The list of groups a student is in router.get('/:id/groups', (req, res) => { res.json({ - groups: [ '0' ], + groups: ['0'], }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/submission.ts b/backend/src/routes/submission.ts index 98acc842..cb4d3e85 100644 --- a/backend/src/routes/submission.ts +++ b/backend/src/routes/submission.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - submissions: [ - '0', - '1', - ] + submissions: ['0', '1'], }); }); @@ -21,6 +18,6 @@ router.get('/:id', (req, res) => { content: 'Wortel 2 is rationeel', learningObject: '0', }); -}) +}); -export default router \ No newline at end of file +export default router; diff --git a/backend/src/routes/teacher.ts b/backend/src/routes/teacher.ts index f9de3aa5..a7c60bc9 100644 --- a/backend/src/routes/teacher.ts +++ b/backend/src/routes/teacher.ts @@ -1,13 +1,10 @@ -import express from 'express' +import express from 'express'; const router = express.Router(); // Root endpoint used to search objects router.get('/', (req, res) => { res.json({ - teachers: [ - '0', - '1', - ] + teachers: ['0', '1'], }); }); @@ -25,34 +22,27 @@ router.get('/:id', (req, res) => { invitations: `${req.baseUrl}/${req.params.id}/invitations`, }, }); -}) +}); // The questions students asked a teacher router.get('/:id/questions', (req, res) => { res.json({ - questions: [ - '0' - ], + questions: ['0'], }); }); // Invitations to other classes a teacher received router.get('/:id/invitations', (req, res) => { res.json({ - invitations: [ - '0' - ], + invitations: ['0'], }); }); // A list with ids of classes a teacher is in router.get('/:id/classes', (req, res) => { res.json({ - classes: [ - '0' - ], + classes: ['0'], }); }); - -export default router \ No newline at end of file +export default router; diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 58703215..6baf74c7 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -1,6 +1,9 @@ import { fetchWithLogging } from '../util/apiHelper.js'; import { DWENGO_API_BASE } from '../config.js'; -import { LearningPath, LearningPathResponse } from '../interfaces/learningPath.js'; +import { + LearningPath, + LearningPathResponse, +} from '../interfaces/learningPath.js'; import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); From 74ecd3453887cf07f6dfa7f434a20a17d868b29d Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 2 Mar 2025 15:25:27 +0100 Subject: [PATCH 61/80] fix: .js toevoegen aan imports --- backend/src/controllers/learningObjects.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index 90cd3f13..6fde1208 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -5,8 +5,8 @@ import { getLearningObjectsFromPath, } from '../services/learningObjects.js'; import { FALLBACK_LANG } from '../config.js'; -import { FilteredLearningObject } from '../interfaces/learningPath'; -import { getLogger } from '../logging/initalize'; +import { FilteredLearningObject } from '../interfaces/learningPath.js'; +import { getLogger } from '../logging/initalize.js'; export async function getAllLearningObjects( req: Request, From 57a16acbdd617da0fd1f892c0611a2d4747d9fc4 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Tue, 4 Mar 2025 16:33:37 +0100 Subject: [PATCH 62/80] chore(backend): Verander API call logging niveau Als de Dwengo API fouten geeft, dan hoeft dit maar als warning afgehandeld worden, niet als error. --- backend/src/services/learningObjects.ts | 4 ++-- backend/src/services/learningPaths.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 709c3298..59cf6d31 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -52,7 +52,7 @@ export async function getLearningObjectById( ); if (!metadata) { - logger.error(`⚠️ WARNING: Learning object "${hruid}" not found.`); + logger.warn(`⚠️ WARNING: Learning object "${hruid}" not found.`); return null; } @@ -80,7 +80,7 @@ async function fetchLearningObjects( !learningPathResponse.success || !learningPathResponse.data?.length ) { - logger.error( + logger.warn( `⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.` ); return []; diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 6baf74c7..52b168ee 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -32,7 +32,7 @@ export async function fetchLearningPaths( ); if (!learningPaths || learningPaths.length === 0) { - logger.error(`⚠️ WARNING: No learning paths found for ${source}.`); + logger.warn(`⚠️ WARNING: No learning paths found for ${source}.`); return { success: false, source, From 703e00efc7f6e742a2faf32b0cec400642713a7e Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Tue, 4 Mar 2025 16:35:50 +0100 Subject: [PATCH 63/80] chore(backend): Log apiHelper op debug niveau --- backend/src/util/apiHelper.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/util/apiHelper.ts b/backend/src/util/apiHelper.ts index 09492615..83c3e975 100644 --- a/backend/src/util/apiHelper.ts +++ b/backend/src/util/apiHelper.ts @@ -25,16 +25,16 @@ export async function fetchWithLogging( } catch (error: any) { if (error.response) { if (error.response.status === 404) { - logger.error( + logger.debug( `❌ ERROR: ${description} not found (404) at "${url}".` ); } else { - logger.error( + logger.debug( `❌ ERROR: Failed to fetch ${description}. Status: ${error.response.status} - ${error.response.statusText} (URL: "${url}")` ); } } else { - logger.error( + logger.debug( `❌ ERROR: Network or unexpected error when fetching ${description}:`, error.message ); From 55ab0c0b47222de7390fcdb86bc5f8ca163902b6 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Tue, 4 Mar 2025 16:53:39 +0100 Subject: [PATCH 64/80] chore(backend): translationHelper logger --- backend/src/controllers/themes.ts | 3 +-- backend/src/util/translationHelper.ts | 11 +++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 4b59751e..a85cac21 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -1,7 +1,6 @@ import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import { loadTranslations } from "../util/translationHelper.js"; -import { FALLBACK_LANG } from '../config.js'; +import { loadTranslations } from '../util/translationHelper.js'; interface Translations { curricula_page: { diff --git a/backend/src/util/translationHelper.ts b/backend/src/util/translationHelper.ts index f4443531..eaeced49 100644 --- a/backend/src/util/translationHelper.ts +++ b/backend/src/util/translationHelper.ts @@ -1,7 +1,10 @@ import fs from 'fs'; import path from 'path'; import yaml from 'js-yaml'; -import {FALLBACK_LANG} from "../../config"; +import {FALLBACK_LANG} from "../../config.js"; +import { getLogger, Logger } from '../logging/initalize.js'; + +const logger: Logger = getLogger(); export function loadTranslations(language: string): T { try { @@ -9,10 +12,10 @@ export function loadTranslations(language: string): T { const yamlFile = fs.readFileSync(filePath, 'utf8'); return yaml.load(yamlFile) as T; } catch (error) { - console.error( - `Cannot load translation for ${language}, fallen back to dutch` + logger.warn( + `Cannot load translation for ${language}, fallen back to dutch`, + error ); - console.error(error); const fallbackPath = path.join(process.cwd(), '_i18n', `${FALLBACK_LANG}.yml`); return yaml.load(fs.readFileSync(fallbackPath, 'utf8')) as T; } From 3a68fb3913e7d408e7bc74cd328177468ede06d8 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Tue, 4 Mar 2025 20:46:24 +0000 Subject: [PATCH 65/80] style: fix linting issues met ESLint --- backend/src/mikro-orm.config.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index 5a4bcabf..8f21745f 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -37,11 +37,11 @@ function config(testingMode: boolean = false): Options { driver: SqliteDriver, dbName: getEnvVar(EnvVars.DbName), entities: entities, - // entitiesTs: entitiesTs, + // EntitiesTs: entitiesTs, // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) - dynamicImportProvider: (id) => import(id), + dynamicImportProvider: (id) => {return import(id)}, }; } return { @@ -52,7 +52,7 @@ function config(testingMode: boolean = false): Options { user: getEnvVar(EnvVars.DbUsername), password: getEnvVar(EnvVars.DbPassword), entities: entities, - //entitiesTs: entitiesTs, + //EntitiesTs: entitiesTs, debug: true, }; } From 5edf23c76711876c3c71b2a9f97e2bf8f8207f8d Mon Sep 17 00:00:00 2001 From: Lint Action Date: Tue, 4 Mar 2025 20:46:27 +0000 Subject: [PATCH 66/80] style: fix linting issues met Prettier --- backend/_i18n/en.yml | 1 - backend/_i18n/nl.yml | 2 +- backend/src/controllers/themes.ts | 2 +- backend/src/mikro-orm.config.ts | 23 +++++++++++++++------ backend/src/util/translationHelper.ts | 8 +++++-- frontend/src/utils/base64ToImage.ts | 4 +--- frontend/tests/base64/base64ToImage.test.ts | 19 ++++++++--------- 7 files changed, 35 insertions(+), 24 deletions(-) diff --git a/backend/_i18n/en.yml b/backend/_i18n/en.yml index 1f898c46..20a34e77 100644 --- a/backend/_i18n/en.yml +++ b/backend/_i18n/en.yml @@ -17,7 +17,6 @@ strengths: name: Matthias and Bruno affiliation: Grade 10 - curricula_page: title: Our teaching topics read_more: Read more diff --git a/backend/_i18n/nl.yml b/backend/_i18n/nl.yml index 1c1482aa..3a29c50a 100644 --- a/backend/_i18n/nl.yml +++ b/backend/_i18n/nl.yml @@ -10,7 +10,7 @@ strengths: research_based_text: Alle lespakketten van Dwengo vzw zijn gebaseerd op gedegen wetenschappelijk onderzoek. inclusive_text: We richten ons op alle kinderen en jongeren met een specifieke aandacht voor het evenwicht tussen meisjes en jongens en leerlingen uit kansengroepen. socially_relevant_text: We zoeken projecten uit die passen binnen de actualiteit en maatschappelijke thema's. - summary: "" + summary: '' main: Al onze pakketten zijn gebruiksvriendelijk, maatschappelijk relevant, wetenschappelijk onderbouwd, én inclusief. Leerkrachten over de hele wereld gingen hiermee reeds aan de slag. Jij ook? Verken de lesthema's op onze website! quote: text: Je maakt iets praktisch, je leert werken met hardware en je kan zelf iets nieuws creëren. diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 4b59751e..8d2e34d7 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; -import { loadTranslations } from "../util/translationHelper.js"; +import { loadTranslations } from '../util/translationHelper.js'; import { FALLBACK_LANG } from '../config.js'; interface Translations { diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index 8f21745f..05b68fef 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -24,11 +24,20 @@ import { Answer } from './entities/questions/answer.entity.js'; import { Question } from './entities/questions/question.entity.js'; const entities = [ - User, Student, Teacher, - Assignment, Group, Submission, - Class, ClassJoinRequest, TeacherInvitation, - Attachment, LearningObject, LearningPath, - Answer, Question + User, + Student, + Teacher, + Assignment, + Group, + Submission, + Class, + ClassJoinRequest, + TeacherInvitation, + Attachment, + LearningObject, + LearningPath, + Answer, + Question, ]; function config(testingMode: boolean = false): Options { @@ -41,7 +50,9 @@ function config(testingMode: boolean = false): Options { // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) - dynamicImportProvider: (id) => {return import(id)}, + dynamicImportProvider: (id) => { + return import(id); + }, }; } return { diff --git a/backend/src/util/translationHelper.ts b/backend/src/util/translationHelper.ts index f4443531..6ac590e6 100644 --- a/backend/src/util/translationHelper.ts +++ b/backend/src/util/translationHelper.ts @@ -1,7 +1,7 @@ import fs from 'fs'; import path from 'path'; import yaml from 'js-yaml'; -import {FALLBACK_LANG} from "../../config"; +import { FALLBACK_LANG } from '../../config'; export function loadTranslations(language: string): T { try { @@ -13,7 +13,11 @@ export function loadTranslations(language: string): T { `Cannot load translation for ${language}, fallen back to dutch` ); console.error(error); - const fallbackPath = path.join(process.cwd(), '_i18n', `${FALLBACK_LANG}.yml`); + const fallbackPath = path.join( + process.cwd(), + '_i18n', + `${FALLBACK_LANG}.yml` + ); return yaml.load(fs.readFileSync(fallbackPath, 'utf8')) as T; } } diff --git a/frontend/src/utils/base64ToImage.ts b/frontend/src/utils/base64ToImage.ts index 9ec9ac34..a5540ce5 100644 --- a/frontend/src/utils/base64ToImage.ts +++ b/frontend/src/utils/base64ToImage.ts @@ -14,7 +14,5 @@ * Learning Path Image */ export function convertBase64ToImageSrc(base64String: string): string { - return base64String.startsWith("data:image") - ? base64String - : `data:image/png;base64,${base64String}`; + return base64String.startsWith("data:image") ? base64String : `data:image/png;base64,${base64String}`; } diff --git a/frontend/tests/base64/base64ToImage.test.ts b/frontend/tests/base64/base64ToImage.test.ts index 3bf1abb9..d2ab4364 100644 --- a/frontend/tests/base64/base64ToImage.test.ts +++ b/frontend/tests/base64/base64ToImage.test.ts @@ -1,24 +1,23 @@ -import { describe, it, expect, beforeAll } from 'vitest'; -import { convertBase64ToImageSrc } from '../../src/utils/base64ToImage.js'; -import fs from 'fs'; -import path from 'path'; +import { describe, it, expect, beforeAll } from "vitest"; +import { convertBase64ToImageSrc } from "../../src/utils/base64ToImage.js"; +import fs from "fs"; +import path from "path"; let sampleBase64: string; beforeAll(() => { // Load base64 sample from text file - const filePath = path.resolve(__dirname, 'base64Sample.txt'); - sampleBase64 = fs.readFileSync(filePath, 'utf8').trim(); + const filePath = path.resolve(__dirname, "base64Sample.txt"); + sampleBase64 = fs.readFileSync(filePath, "utf8").trim(); }); -describe('convertBase64ToImageSrc', () => { - it('should return the same string if it is already a valid data URL', () => { +describe("convertBase64ToImageSrc", () => { + it("should return the same string if it is already a valid data URL", () => { const base64Image = `data:image/png;base64,${sampleBase64}`; expect(convertBase64ToImageSrc(base64Image)).toBe(base64Image); }); - it('should correctly format a raw Base64 string as a PNG image URL', () => { + it("should correctly format a raw Base64 string as a PNG image URL", () => { expect(convertBase64ToImageSrc(sampleBase64)).toBe(`data:image/png;base64,${sampleBase64}`); }); - }); From 8d4cbb5529f6d162a625637d46d3005b5a1c9bed Mon Sep 17 00:00:00 2001 From: Lint Action Date: Thu, 6 Mar 2025 11:12:46 +0000 Subject: [PATCH 67/80] style: fix linting issues met ESLint --- backend/src/mikro-orm.config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index 83863c51..f9629bef 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -48,7 +48,7 @@ function config(testingMode: boolean = false): Options { driver: SqliteDriver, dbName: getEnvVar(EnvVars.DbName), entities: entities, - // entitiesTs: entitiesTs, + // EntitiesTs: entitiesTs, // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) @@ -66,7 +66,7 @@ function config(testingMode: boolean = false): Options { user: getEnvVar(EnvVars.DbUsername), password: getEnvVar(EnvVars.DbPassword), entities: entities, - // entitiesTs: entitiesTs, + // EntitiesTs: entitiesTs, // Logging debug: LOG_LEVEL === 'debug', From 3e3c8e0587e86578dfff4a843e07b014397fe4b6 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Thu, 6 Mar 2025 11:12:49 +0000 Subject: [PATCH 68/80] style: fix linting issues met Prettier --- backend/tests/data/users.test.ts | 6 ++++-- config/loki/config.yml | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/tests/data/users.test.ts b/backend/tests/data/users.test.ts index b066b059..887748a2 100644 --- a/backend/tests/data/users.test.ts +++ b/backend/tests/data/users.test.ts @@ -20,7 +20,8 @@ describe('StudentRepository', () => { new Student(username, firstName, lastName) ); - const retrievedStudent = await studentRepository.findByUsername(username); + const retrievedStudent = + await studentRepository.findByUsername(username); expect(retrievedStudent).toBeTruthy(); expect(retrievedStudent?.firstName).toBe(firstName); expect(retrievedStudent?.lastName).toBe(lastName); @@ -29,7 +30,8 @@ describe('StudentRepository', () => { it('should no longer return the queried student after he was removed again', async () => { await studentRepository.deleteByUsername(username); - const retrievedStudent = await studentRepository.findByUsername(username); + const retrievedStudent = + await studentRepository.findByUsername(username); expect(retrievedStudent).toBeNull(); }); }); diff --git a/config/loki/config.yml b/config/loki/config.yml index f5ba3799..b84377bd 100644 --- a/config/loki/config.yml +++ b/config/loki/config.yml @@ -1,4 +1,3 @@ - # This is a complete configuration to deploy Loki backed by the filesystem. # The index will be shipped to the storage via tsdb-shipper. From 7a0d17652c824f37b80e90815cdd8437793afc41 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 14:00:59 +0100 Subject: [PATCH 69/80] fix(backend): Rogue config.ts verwijderd/verplaatst --- backend/config.ts | 10 ---------- backend/src/util/translationHelper.ts | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 backend/config.ts diff --git a/backend/config.ts b/backend/config.ts deleted file mode 100644 index 8fd8ec3f..00000000 --- a/backend/config.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Can be placed in dotenv but found it redundant - -// Import dotenv from "dotenv"; - -// Load .env file -// Dotenv.config(); - -export const DWENGO_API_BASE = 'https://dwengo.org/backend/api'; - -export const FALLBACK_LANG = 'nl'; diff --git a/backend/src/util/translationHelper.ts b/backend/src/util/translationHelper.ts index 650d9843..815a685a 100644 --- a/backend/src/util/translationHelper.ts +++ b/backend/src/util/translationHelper.ts @@ -1,7 +1,7 @@ import fs from 'fs'; import path from 'path'; import yaml from 'js-yaml'; -import { FALLBACK_LANG } from '../../config.js'; +import { FALLBACK_LANG } from '../config.js'; import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); From a240e31d6e7326076fdec40f22d7400fca8372b2 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 14:13:51 +0100 Subject: [PATCH 70/80] fix: Verhoog printWidth Co-authored-by: Gerald Schmittinger --- backend/src/data/repositories.ts | 64 +++++++------------------------- prettier.config.js | 2 +- 2 files changed, 15 insertions(+), 51 deletions(-) diff --git a/backend/src/data/repositories.ts b/backend/src/data/repositories.ts index 843eb1ac..8f5e90cb 100644 --- a/backend/src/data/repositories.ts +++ b/backend/src/data/repositories.ts @@ -44,7 +44,7 @@ export function transactional(f: () => Promise) { } function repositoryGetter>( - entity: EntityName + entity: EntityName, ): () => R { let cachedRepo: R | undefined; return (): R => { @@ -60,60 +60,24 @@ function repositoryGetter>( /* Users */ export const getUserRepository = repositoryGetter(User); -export const getStudentRepository = repositoryGetter< - Student, - StudentRepository ->(Student); -export const getTeacherRepository = repositoryGetter< - Teacher, - TeacherRepository ->(Teacher); +export const getStudentRepository = repositoryGetter(Student); +export const getTeacherRepository = repositoryGetter(Teacher); /* Classes */ -export const getClassRepository = repositoryGetter( - Class -); -export const getClassJoinRequestRepository = repositoryGetter< - ClassJoinRequest, - ClassJoinRequestRepository ->(ClassJoinRequest); -export const getTeacherInvitationRepository = repositoryGetter< - TeacherInvitation, - TeacherInvitationRepository ->(TeacherInvitationRepository); +export const getClassRepository = repositoryGetter(Class); +export const getClassJoinRequestRepository = repositoryGetter(ClassJoinRequest); +export const getTeacherInvitationRepository = repositoryGetter(TeacherInvitationRepository); /* Assignments */ -export const getAssignmentRepository = repositoryGetter< - Assignment, - AssignmentRepository ->(Assignment); -export const getGroupRepository = repositoryGetter( - Group -); -export const getSubmissionRepository = repositoryGetter< - Submission, - SubmissionRepository ->(Submission); +export const getAssignmentRepository = repositoryGetter(Assignment); +export const getGroupRepository = repositoryGetter(Group); +export const getSubmissionRepository = repositoryGetter(Submission); /* Questions and answers */ -export const getQuestionRepository = repositoryGetter< - Question, - QuestionRepository ->(Question); -export const getAnswerRepository = repositoryGetter( - Answer -); +export const getQuestionRepository = repositoryGetter(Question); +export const getAnswerRepository = repositoryGetter(Answer); /* Learning content */ -export const getLearningObjectRepository = repositoryGetter< - LearningObject, - LearningObjectRepository ->(LearningObject); -export const getLearningPathRepository = repositoryGetter< - LearningPath, - LearningPathRepository ->(LearningPath); -export const getAttachmentRepository = repositoryGetter< - Attachment, - AttachmentRepository ->(Assignment); +export const getLearningObjectRepository = repositoryGetter(LearningObject); +export const getLearningPathRepository = repositoryGetter(LearningPath); +export const getAttachmentRepository = repositoryGetter(Assignment); diff --git a/prettier.config.js b/prettier.config.js index 8be1cdc4..175599a4 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -2,7 +2,7 @@ * @type {import("prettier").Options} */ export default { - printWidth: 80, + printWidth: 150, semi: true, singleQuote: true, trailingComma: 'es5', From 96d650707309e9ab4000a6cb28ebba7922c52532 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 14:19:42 +0100 Subject: [PATCH 71/80] fix: Zet `arrow-body-style` naar `as-needed` Co-authored-by: Gerald Schmittinger --- .../entities/assignments/assignment.entity.ts | 20 +++---------------- eslint.config.ts | 2 +- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/backend/src/entities/assignments/assignment.entity.ts b/backend/src/entities/assignments/assignment.entity.ts index 89952c64..e883632b 100644 --- a/backend/src/entities/assignments/assignment.entity.ts +++ b/backend/src/entities/assignments/assignment.entity.ts @@ -12,12 +12,7 @@ import { Language } from '../content/language.js'; @Entity() export class Assignment { - @ManyToOne({ - entity: () => { - return Class; - }, - primary: true, - }) + @ManyToOne({ entity: () => Class, primary: true }) within!: Class; @PrimaryKey({ type: 'number' }) @@ -32,18 +27,9 @@ export class Assignment { @Property({ type: 'string' }) learningPathHruid!: string; - @Enum({ - items: () => { - return Language; - }, - }) + @Enum({ items: () => Language }) learningPathLanguage!: Language; - @OneToMany({ - entity: () => { - return Group; - }, - mappedBy: 'assignment', - }) + @OneToMany({ entity: () => Group, mappedBy: 'assignment' }) groups!: Group[]; } diff --git a/eslint.config.ts b/eslint.config.ts index b838d8c5..91aa3ffa 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -44,7 +44,7 @@ export default [ 'no-use-before-define': 'error', 'no-useless-assignment': 'error', - 'arrow-body-style': ['warn', 'always'], + 'arrow-body-style': ['warn', 'as-needed'], 'block-scoped-var': 'warn', camelcase: 'warn', 'capitalized-comments': 'warn', From 710adcaa342b23648328e01727435d7c16873ec4 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 14:36:50 +0100 Subject: [PATCH 72/80] fix: ESLint + Vue no-useless-assingment --- eslint.config.ts | 1 + frontend/eslint.config.ts | 3 +++ 2 files changed, 4 insertions(+) diff --git a/eslint.config.ts b/eslint.config.ts index 91aa3ffa..0ec7d58a 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -43,6 +43,7 @@ export default [ 'no-unreachable-loop': 'warn', 'no-use-before-define': 'error', 'no-useless-assignment': 'error', + 'no-unused-vars': 'error', 'arrow-body-style': ['warn', 'as-needed'], 'block-scoped-var': 'warn', diff --git a/frontend/eslint.config.ts b/frontend/eslint.config.ts index 9e68e9c0..76822361 100644 --- a/frontend/eslint.config.ts +++ b/frontend/eslint.config.ts @@ -14,6 +14,9 @@ const vueConfig = defineConfigWithVueTs( { name: "app/files-to-lint", files: ["**/*.{ts,mts,tsx,vue}"], + rules: { + 'no-useless-assignment': 'off' // Depend on `no-unused-vars` to catch this + } }, { From b8aae0ab1bfbb96853ec1aee33385304327a905f Mon Sep 17 00:00:00 2001 From: Lint Action Date: Thu, 6 Mar 2025 13:37:39 +0000 Subject: [PATCH 73/80] style: fix linting issues met ESLint --- backend/src/controllers/learningPaths.ts | 8 ++----- backend/src/controllers/themes.ts | 10 +++----- .../src/entities/assignments/group.entity.ts | 8 ++----- .../entities/assignments/submission.entity.ts | 12 +++------- .../classes/class-join-request.entity.ts | 12 +++------- backend/src/entities/classes/class.entity.ts | 8 ++----- .../classes/teacher-invitation.entity.ts | 12 +++------- .../src/entities/content/attachment.entity.ts | 4 +--- .../content/learning-object.entity.ts | 20 ++++------------ .../entities/content/learning-path.entity.ts | 24 +++++-------------- .../src/entities/questions/answer.entity.ts | 8 ++----- .../src/entities/questions/question.entity.ts | 8 ++----- backend/src/entities/users/student.entity.ts | 12 +++------- backend/src/entities/users/teacher.entity.ts | 4 +--- backend/src/mikro-orm.config.ts | 8 ++----- backend/src/services/learningObjects.ts | 16 ++++--------- frontend/src/router/index.ts | 8 ++----- 17 files changed, 46 insertions(+), 136 deletions(-) diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 247877e7..acf76f60 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -26,9 +26,7 @@ export async function getLearningPaths( ? hruids.map(String) : [String(hruids)]; } else if (themeKey) { - const theme = themes.find((t) => { - return t.title === themeKey; - }); + const theme = themes.find((t) => t.title === themeKey); if (theme) { hruidList = theme.hruids; } else { @@ -45,9 +43,7 @@ export async function getLearningPaths( res.json(searchResults); return; } else { - hruidList = themes.flatMap((theme) => { - return theme.hruids; - }); + hruidList = themes.flatMap((theme) => theme.hruids); } const learningPaths = await fetchLearningPaths( diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index a85cac21..62fd1e79 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -11,24 +11,20 @@ interface Translations { export function getThemes(req: Request, res: Response) { const language = (req.query.language as string)?.toLowerCase() || 'nl'; const translations = loadTranslations(language); - const themeList = themes.map((theme) => { - return { + const themeList = themes.map((theme) => ({ key: theme.title, title: translations.curricula_page[theme.title]?.title || theme.title, description: translations.curricula_page[theme.title]?.description, image: `https://dwengo.org/images/curricula/logo_${theme.title}.png`, - }; - }); + })); res.json(themeList); } export function getThemeByTitle(req: Request, res: Response) { const themeKey = req.params.theme; - const theme = themes.find((t) => { - return t.title === themeKey; - }); + const theme = themes.find((t) => t.title === themeKey); if (theme) { res.json(theme.hruids); diff --git a/backend/src/entities/assignments/group.entity.ts b/backend/src/entities/assignments/group.entity.ts index 5b224087..d8142bdb 100644 --- a/backend/src/entities/assignments/group.entity.ts +++ b/backend/src/entities/assignments/group.entity.ts @@ -5,9 +5,7 @@ import { Student } from '../users/student.entity.js'; @Entity() export class Group { @ManyToOne({ - entity: () => { - return Assignment; - }, + entity: () => Assignment, primary: true, }) assignment!: Assignment; @@ -16,9 +14,7 @@ export class Group { groupNumber!: number; @ManyToMany({ - entity: () => { - return Student; - }, + entity: () => Student, }) members!: Student[]; } diff --git a/backend/src/entities/assignments/submission.entity.ts b/backend/src/entities/assignments/submission.entity.ts index 1bc28add..77e01da8 100644 --- a/backend/src/entities/assignments/submission.entity.ts +++ b/backend/src/entities/assignments/submission.entity.ts @@ -9,9 +9,7 @@ export class Submission { learningObjectHruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) learningObjectLanguage!: Language; @@ -23,9 +21,7 @@ export class Submission { submissionNumber!: number; @ManyToOne({ - entity: () => { - return Student; - }, + entity: () => Student, }) submitter!: Student; @@ -33,9 +29,7 @@ export class Submission { submissionTime!: Date; @ManyToOne({ - entity: () => { - return Group; - }, + entity: () => Group, nullable: true, }) onBehalfOf?: Group; diff --git a/backend/src/entities/classes/class-join-request.entity.ts b/backend/src/entities/classes/class-join-request.entity.ts index 0ae38cd1..06e4095b 100644 --- a/backend/src/entities/classes/class-join-request.entity.ts +++ b/backend/src/entities/classes/class-join-request.entity.ts @@ -5,24 +5,18 @@ import { Class } from './class.entity.js'; @Entity() export class ClassJoinRequest { @ManyToOne({ - entity: () => { - return Student; - }, + entity: () => Student, primary: true, }) requester!: Student; @ManyToOne({ - entity: () => { - return Class; - }, + entity: () => Class, primary: true, }) class!: Class; - @Enum(() => { - return ClassJoinRequestStatus; - }) + @Enum(() => ClassJoinRequestStatus) status!: ClassJoinRequestStatus; } diff --git a/backend/src/entities/classes/class.entity.ts b/backend/src/entities/classes/class.entity.ts index ecc11748..1f5835d2 100644 --- a/backend/src/entities/classes/class.entity.ts +++ b/backend/src/entities/classes/class.entity.ts @@ -17,13 +17,9 @@ export class Class { @Property({ type: 'string' }) displayName!: string; - @ManyToMany(() => { - return Teacher; - }) + @ManyToMany(() => Teacher) teachers!: Collection; - @ManyToMany(() => { - return Student; - }) + @ManyToMany(() => Student) students!: Collection; } diff --git a/backend/src/entities/classes/teacher-invitation.entity.ts b/backend/src/entities/classes/teacher-invitation.entity.ts index 98d2bdd4..a09d71d0 100644 --- a/backend/src/entities/classes/teacher-invitation.entity.ts +++ b/backend/src/entities/classes/teacher-invitation.entity.ts @@ -8,25 +8,19 @@ import { Class } from './class.entity.js'; @Entity() export class TeacherInvitation { @ManyToOne({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, primary: true, }) sender!: Teacher; @ManyToOne({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, primary: true, }) receiver!: Teacher; @ManyToOne({ - entity: () => { - return Class; - }, + entity: () => Class, primary: true, }) class!: Class; diff --git a/backend/src/entities/content/attachment.entity.ts b/backend/src/entities/content/attachment.entity.ts index 7a9dd946..9e4c6275 100644 --- a/backend/src/entities/content/attachment.entity.ts +++ b/backend/src/entities/content/attachment.entity.ts @@ -4,9 +4,7 @@ import { LearningObject } from './learning-object.entity.js'; @Entity() export class Attachment { @ManyToOne({ - entity: () => { - return LearningObject; - }, + entity: () => LearningObject, primary: true, }) learningObject!: LearningObject; diff --git a/backend/src/entities/content/learning-object.entity.ts b/backend/src/entities/content/learning-object.entity.ts index bf499e8a..71f8e69d 100644 --- a/backend/src/entities/content/learning-object.entity.ts +++ b/backend/src/entities/content/learning-object.entity.ts @@ -18,9 +18,7 @@ export class LearningObject { hruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) language!: Language; @@ -29,9 +27,7 @@ export class LearningObject { version: string = '1'; @ManyToMany({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, }) admins!: Teacher[]; @@ -57,9 +53,7 @@ export class LearningObject { skosConcepts!: string[]; @Embedded({ - entity: () => { - return EducationalGoal; - }, + entity: () => EducationalGoal, array: true, }) educationalGoals: EducationalGoal[] = []; @@ -77,9 +71,7 @@ export class LearningObject { estimatedTime!: number; @Embedded({ - entity: () => { - return ReturnValue; - }, + entity: () => ReturnValue, }) returnValue!: ReturnValue; @@ -90,9 +82,7 @@ export class LearningObject { contentLocation?: string; @OneToMany({ - entity: () => { - return Attachment; - }, + entity: () => Attachment, mappedBy: 'learningObject', }) attachments: Attachment[] = []; diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index 28d3cadd..4048daa6 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -17,17 +17,13 @@ export class LearningPath { hruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) language!: Language; @ManyToMany({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, }) admins!: Teacher[]; @@ -41,9 +37,7 @@ export class LearningPath { image!: string; @Embedded({ - entity: () => { - return LearningPathNode; - }, + entity: () => LearningPathNode, array: true, }) nodes: LearningPathNode[] = []; @@ -55,9 +49,7 @@ export class LearningPathNode { learningObjectHruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, }) language!: Language; @@ -71,9 +63,7 @@ export class LearningPathNode { startNode!: boolean; @Embedded({ - entity: () => { - return LearningPathTransition; - }, + entity: () => LearningPathTransition, array: true, }) transitions!: LearningPathTransition[]; @@ -85,9 +75,7 @@ export class LearningPathTransition { condition!: string; @OneToOne({ - entity: () => { - return LearningPathNode; - }, + entity: () => LearningPathNode, }) next!: LearningPathNode; } diff --git a/backend/src/entities/questions/answer.entity.ts b/backend/src/entities/questions/answer.entity.ts index f0b67a54..627a49d0 100644 --- a/backend/src/entities/questions/answer.entity.ts +++ b/backend/src/entities/questions/answer.entity.ts @@ -5,17 +5,13 @@ import { Teacher } from '../users/teacher.entity.js'; @Entity() export class Answer { @ManyToOne({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, primary: true, }) author!: Teacher; @ManyToOne({ - entity: () => { - return Question; - }, + entity: () => Question, primary: true, }) toQuestion!: Question; diff --git a/backend/src/entities/questions/question.entity.ts b/backend/src/entities/questions/question.entity.ts index 444d2179..854a4512 100644 --- a/backend/src/entities/questions/question.entity.ts +++ b/backend/src/entities/questions/question.entity.ts @@ -8,9 +8,7 @@ export class Question { learningObjectHruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) learningObjectLanguage!: Language; @@ -22,9 +20,7 @@ export class Question { sequenceNumber!: number; @ManyToOne({ - entity: () => { - return Student; - }, + entity: () => Student, }) author!: Student; diff --git a/backend/src/entities/users/student.entity.ts b/backend/src/entities/users/student.entity.ts index c5632e84..da5b4367 100644 --- a/backend/src/entities/users/student.entity.ts +++ b/backend/src/entities/users/student.entity.ts @@ -5,19 +5,13 @@ import { Group } from '../assignments/group.entity.js'; import { StudentRepository } from '../../data/users/student-repository.js'; @Entity({ - repository: () => { - return StudentRepository; - }, + repository: () => StudentRepository, }) export class Student extends User { - @ManyToMany(() => { - return Class; - }) + @ManyToMany(() => Class) classes!: Collection; - @ManyToMany(() => { - return Group; - }) + @ManyToMany(() => Group) groups!: Collection; constructor( diff --git a/backend/src/entities/users/teacher.entity.ts b/backend/src/entities/users/teacher.entity.ts index 9f11a3b0..2327527c 100644 --- a/backend/src/entities/users/teacher.entity.ts +++ b/backend/src/entities/users/teacher.entity.ts @@ -4,8 +4,6 @@ import { Class } from '../classes/class.entity.js'; @Entity() export class Teacher extends User { - @ManyToMany(() => { - return Class; - }) + @ManyToMany(() => Class) classes!: Collection; } diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index f9629bef..56221473 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -52,9 +52,7 @@ function config(testingMode: boolean = false): Options { // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) - dynamicImportProvider: (id) => { - return import(id); - }, + dynamicImportProvider: (id) => import(id), }; } @@ -70,9 +68,7 @@ function config(testingMode: boolean = false): Options { // Logging debug: LOG_LEVEL === 'debug', - loggerFactory: (options: LoggerOptions) => { - return new MikroOrmLogger(options); - }, + loggerFactory: (options: LoggerOptions) => new MikroOrmLogger(options), }; } diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 59cf6d31..4bfed3dc 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -89,23 +89,15 @@ async function fetchLearningObjects( const nodes: LearningObjectNode[] = learningPathResponse.data[0].nodes; if (!full) { - return nodes.map((node) => { - return node.learningobject_hruid; - }); + return nodes.map((node) => node.learningobject_hruid); } return await Promise.all( - nodes.map(async (node) => { - return getLearningObjectById( + nodes.map(async (node) => getLearningObjectById( node.learningobject_hruid, language - ); - }) - ).then((objects) => { - return objects.filter((obj): obj is FilteredLearningObject => { - return obj !== null; - }); - }); + )) + ).then((objects) => objects.filter((obj): obj is FilteredLearningObject => obj !== null)); } catch (error) { logger.error('❌ Error fetching learning objects:', error); return []; diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 558d88e7..eaefcd6c 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -22,16 +22,12 @@ const router = createRouter({ { path: "/", name: "home", - component: () => { - return import("../views/HomePage.vue"); - }, + component: () => import("../views/HomePage.vue"), }, { path: "/login", name: "LoginPage", - component: () => { - return import("../views/LoginPage.vue"); - }, + component: () => import("../views/LoginPage.vue"), }, { path: "/student/:id", From f347ec247dadf2f934342ef552984b79a9e790d4 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Thu, 6 Mar 2025 13:37:42 +0000 Subject: [PATCH 74/80] style: fix linting issues met Prettier --- backend/src/config.ts | 6 +- backend/src/controllers/learningObjects.ts | 21 ++---- backend/src/controllers/learningPaths.ts | 30 ++------- backend/src/controllers/themes.ts | 11 ++-- .../data/assignments/assignment-repository.ts | 5 +- .../src/data/assignments/group-repository.ts | 14 +--- .../data/assignments/submission-repository.ts | 20 ++---- .../classes/teacher-invitation-repository.ts | 14 +--- .../src/data/content/attachment-repository.ts | 5 +- .../content/learning-object-repository.ts | 4 +- .../data/content/learning-path-repository.ts | 5 +- backend/src/data/dwengo-entity-repository.ts | 4 +- .../src/data/questions/answer-repository.ts | 11 +--- .../src/data/questions/question-repository.ts | 15 +---- backend/src/data/repositories.ts | 11 +--- backend/src/data/themes.ts | 36 ++--------- .../entities/assignments/assignment.entity.ts | 9 +-- backend/src/entities/classes/class.entity.ts | 8 +-- .../content/learning-object.entity.ts | 11 +--- .../entities/content/learning-path.entity.ts | 11 +--- backend/src/logging/initalize.ts | 11 +--- backend/src/logging/mikroOrmLogger.ts | 34 +++------- backend/src/orm.ts | 4 +- backend/src/routes/learningObjects.ts | 5 +- backend/src/routes/question.ts | 3 +- backend/src/services/learningObjects.ts | 64 ++++--------------- backend/src/services/learningPaths.ts | 28 ++------ backend/src/util/apiHelper.ts | 15 +---- backend/src/util/envvars.ts | 4 +- backend/src/util/translationHelper.ts | 11 +--- backend/tests/data/users.test.ts | 10 +-- eslint.config.ts | 7 +- frontend/eslint.config.ts | 4 +- 33 files changed, 90 insertions(+), 361 deletions(-) diff --git a/backend/src/config.ts b/backend/src/config.ts index b972a1bd..ad8cf0be 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -6,7 +6,5 @@ export const DWENGO_API_BASE: string = 'https://dwengo.org/backend/api'; // Logging -export const LOG_LEVEL: string = - 'development' === process.env.NODE_ENV ? 'debug' : 'info'; -export const LOKI_HOST: string = - process.env.LOKI_HOST || 'http://localhost:3102'; +export const LOG_LEVEL: string = 'development' === process.env.NODE_ENV ? 'debug' : 'info'; +export const LOKI_HOST: string = process.env.LOKI_HOST || 'http://localhost:3102'; diff --git a/backend/src/controllers/learningObjects.ts b/backend/src/controllers/learningObjects.ts index 6fde1208..0d41044b 100644 --- a/backend/src/controllers/learningObjects.ts +++ b/backend/src/controllers/learningObjects.ts @@ -1,17 +1,10 @@ import { Request, Response } from 'express'; -import { - getLearningObjectById, - getLearningObjectIdsFromPath, - getLearningObjectsFromPath, -} from '../services/learningObjects.js'; +import { getLearningObjectById, getLearningObjectIdsFromPath, getLearningObjectsFromPath } from '../services/learningObjects.js'; import { FALLBACK_LANG } from '../config.js'; import { FilteredLearningObject } from '../interfaces/learningPath.js'; import { getLogger } from '../logging/initalize.js'; -export async function getAllLearningObjects( - req: Request, - res: Response -): Promise { +export async function getAllLearningObjects(req: Request, res: Response): Promise { try { const hruid = req.query.hruid as string; const full = req.query.full === 'true'; @@ -26,10 +19,7 @@ export async function getAllLearningObjects( if (full) { learningObjects = await getLearningObjectsFromPath(hruid, language); } else { - learningObjects = await getLearningObjectIdsFromPath( - hruid, - language - ); + learningObjects = await getLearningObjectIdsFromPath(hruid, language); } res.json(learningObjects); @@ -39,10 +29,7 @@ export async function getAllLearningObjects( } } -export async function getLearningObject( - req: Request, - res: Response -): Promise { +export async function getLearningObject(req: Request, res: Response): Promise { try { const { hruid } = req.params; const language = (req.query.language as string) || FALLBACK_LANG; diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index acf76f60..50299d0f 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -1,18 +1,12 @@ import { Request, Response } from 'express'; import { themes } from '../data/themes.js'; import { FALLBACK_LANG } from '../config.js'; -import { - fetchLearningPaths, - searchLearningPaths, -} from '../services/learningPaths.js'; +import { fetchLearningPaths, searchLearningPaths } from '../services/learningPaths.js'; import { getLogger } from '../logging/initalize.js'; /** * Fetch learning paths based on query parameters. */ -export async function getLearningPaths( - req: Request, - res: Response -): Promise { +export async function getLearningPaths(req: Request, res: Response): Promise { try { const hruids = req.query.hruid; const themeKey = req.query.theme as string; @@ -22,9 +16,7 @@ export async function getLearningPaths( let hruidList; if (hruids) { - hruidList = Array.isArray(hruids) - ? hruids.map(String) - : [String(hruids)]; + hruidList = Array.isArray(hruids) ? hruids.map(String) : [String(hruids)]; } else if (themeKey) { const theme = themes.find((t) => t.title === themeKey); if (theme) { @@ -36,27 +28,17 @@ export async function getLearningPaths( return; } } else if (searchQuery) { - const searchResults = await searchLearningPaths( - searchQuery, - language - ); + const searchResults = await searchLearningPaths(searchQuery, language); res.json(searchResults); return; } else { hruidList = themes.flatMap((theme) => theme.hruids); } - const learningPaths = await fetchLearningPaths( - hruidList, - language, - `HRUIDs: ${hruidList.join(', ')}` - ); + const learningPaths = await fetchLearningPaths(hruidList, language, `HRUIDs: ${hruidList.join(', ')}`); res.json(learningPaths.data); } catch (error) { - getLogger().error( - '❌ Unexpected error fetching learning paths:', - error - ); + getLogger().error('❌ Unexpected error fetching learning paths:', error); res.status(500).json({ error: 'Internal server error' }); } } diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index 62fd1e79..fe1eb818 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -12,12 +12,11 @@ export function getThemes(req: Request, res: Response) { const language = (req.query.language as string)?.toLowerCase() || 'nl'; const translations = loadTranslations(language); const themeList = themes.map((theme) => ({ - key: theme.title, - title: - translations.curricula_page[theme.title]?.title || theme.title, - description: translations.curricula_page[theme.title]?.description, - image: `https://dwengo.org/images/curricula/logo_${theme.title}.png`, - })); + key: theme.title, + title: translations.curricula_page[theme.title]?.title || theme.title, + description: translations.curricula_page[theme.title]?.description, + image: `https://dwengo.org/images/curricula/logo_${theme.title}.png`, + })); res.json(themeList); } diff --git a/backend/src/data/assignments/assignment-repository.ts b/backend/src/data/assignments/assignment-repository.ts index c55bee00..c3c457d3 100644 --- a/backend/src/data/assignments/assignment-repository.ts +++ b/backend/src/data/assignments/assignment-repository.ts @@ -3,10 +3,7 @@ import { Assignment } from '../../entities/assignments/assignment.entity.js'; import { Class } from '../../entities/classes/class.entity.js'; export class AssignmentRepository extends DwengoEntityRepository { - public findByClassAndId( - within: Class, - id: number - ): Promise { + public findByClassAndId(within: Class, id: number): Promise { return this.findOne({ within: within, id: id }); } public findAllAssignmentsInClass(within: Class): Promise { diff --git a/backend/src/data/assignments/group-repository.ts b/backend/src/data/assignments/group-repository.ts index ff8ca507..df92eaae 100644 --- a/backend/src/data/assignments/group-repository.ts +++ b/backend/src/data/assignments/group-repository.ts @@ -3,24 +3,16 @@ import { Group } from '../../entities/assignments/group.entity.js'; import { Assignment } from '../../entities/assignments/assignment.entity.js'; export class GroupRepository extends DwengoEntityRepository { - public findByAssignmentAndGroupNumber( - assignment: Assignment, - groupNumber: number - ): Promise { + public findByAssignmentAndGroupNumber(assignment: Assignment, groupNumber: number): Promise { return this.findOne({ assignment: assignment, groupNumber: groupNumber, }); } - public findAllGroupsForAssignment( - assignment: Assignment - ): Promise { + public findAllGroupsForAssignment(assignment: Assignment): Promise { return this.findAll({ where: { assignment: assignment } }); } - public deleteByAssignmentAndGroupNumber( - assignment: Assignment, - groupNumber: number - ) { + public deleteByAssignmentAndGroupNumber(assignment: Assignment, groupNumber: number) { return this.deleteWhere({ assignment: assignment, groupNumber: groupNumber, diff --git a/backend/src/data/assignments/submission-repository.ts b/backend/src/data/assignments/submission-repository.ts index 5332d050..faa9fef1 100644 --- a/backend/src/data/assignments/submission-repository.ts +++ b/backend/src/data/assignments/submission-repository.ts @@ -5,10 +5,7 @@ import { LearningObjectIdentifier } from '../../entities/content/learning-object import { Student } from '../../entities/users/student.entity.js'; export class SubmissionRepository extends DwengoEntityRepository { - public findSubmissionByLearningObjectAndSubmissionNumber( - loId: LearningObjectIdentifier, - submissionNumber: number - ): Promise { + public findSubmissionByLearningObjectAndSubmissionNumber(loId: LearningObjectIdentifier, submissionNumber: number): Promise { return this.findOne({ learningObjectHruid: loId.hruid, learningObjectLanguage: loId.language, @@ -17,10 +14,7 @@ export class SubmissionRepository extends DwengoEntityRepository { }); } - public findMostRecentSubmissionForStudent( - loId: LearningObjectIdentifier, - submitter: Student - ): Promise { + public findMostRecentSubmissionForStudent(loId: LearningObjectIdentifier, submitter: Student): Promise { return this.findOne( { learningObjectHruid: loId.hruid, @@ -32,10 +26,7 @@ export class SubmissionRepository extends DwengoEntityRepository { ); } - public findMostRecentSubmissionForGroup( - loId: LearningObjectIdentifier, - group: Group - ): Promise { + public findMostRecentSubmissionForGroup(loId: LearningObjectIdentifier, group: Group): Promise { return this.findOne( { learningObjectHruid: loId.hruid, @@ -47,10 +38,7 @@ export class SubmissionRepository extends DwengoEntityRepository { ); } - public deleteSubmissionByLearningObjectAndSubmissionNumber( - loId: LearningObjectIdentifier, - submissionNumber: number - ): Promise { + public deleteSubmissionByLearningObjectAndSubmissionNumber(loId: LearningObjectIdentifier, submissionNumber: number): Promise { return this.deleteWhere({ learningObjectHruid: loId.hruid, learningObjectLanguage: loId.language, diff --git a/backend/src/data/classes/teacher-invitation-repository.ts b/backend/src/data/classes/teacher-invitation-repository.ts index ae2713c8..6b94deec 100644 --- a/backend/src/data/classes/teacher-invitation-repository.ts +++ b/backend/src/data/classes/teacher-invitation-repository.ts @@ -4,24 +4,16 @@ import { TeacherInvitation } from '../../entities/classes/teacher-invitation.ent import { Teacher } from '../../entities/users/teacher.entity.js'; export class TeacherInvitationRepository extends DwengoEntityRepository { - public findAllInvitationsForClass( - clazz: Class - ): Promise { + public findAllInvitationsForClass(clazz: Class): Promise { return this.findAll({ where: { class: clazz } }); } public findAllInvitationsBy(sender: Teacher): Promise { return this.findAll({ where: { sender: sender } }); } - public findAllInvitationsFor( - receiver: Teacher - ): Promise { + public findAllInvitationsFor(receiver: Teacher): Promise { return this.findAll({ where: { receiver: receiver } }); } - public deleteBy( - clazz: Class, - sender: Teacher, - receiver: Teacher - ): Promise { + public deleteBy(clazz: Class, sender: Teacher, receiver: Teacher): Promise { return this.deleteWhere({ sender: sender, receiver: receiver, diff --git a/backend/src/data/content/attachment-repository.ts b/backend/src/data/content/attachment-repository.ts index 3268be90..bec874c9 100644 --- a/backend/src/data/content/attachment-repository.ts +++ b/backend/src/data/content/attachment-repository.ts @@ -3,10 +3,7 @@ import { Attachment } from '../../entities/content/attachment.entity.js'; import { LearningObject } from '../../entities/content/learning-object.entity.js'; export class AttachmentRepository extends DwengoEntityRepository { - public findByLearningObjectAndNumber( - learningObject: LearningObject, - sequenceNumber: number - ) { + public findByLearningObjectAndNumber(learningObject: LearningObject, sequenceNumber: number) { return this.findOne({ learningObject: learningObject, sequenceNumber: sequenceNumber, diff --git a/backend/src/data/content/learning-object-repository.ts b/backend/src/data/content/learning-object-repository.ts index 5d30b956..a0d74184 100644 --- a/backend/src/data/content/learning-object-repository.ts +++ b/backend/src/data/content/learning-object-repository.ts @@ -3,9 +3,7 @@ import { LearningObject } from '../../entities/content/learning-object.entity.js import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier.js'; export class LearningObjectRepository extends DwengoEntityRepository { - public findByIdentifier( - identifier: LearningObjectIdentifier - ): Promise { + public findByIdentifier(identifier: LearningObjectIdentifier): Promise { return this.findOne({ hruid: identifier.hruid, language: identifier.language, diff --git a/backend/src/data/content/learning-path-repository.ts b/backend/src/data/content/learning-path-repository.ts index 3ffb1e7f..ab1f1b46 100644 --- a/backend/src/data/content/learning-path-repository.ts +++ b/backend/src/data/content/learning-path-repository.ts @@ -3,10 +3,7 @@ import { LearningPath } from '../../entities/content/learning-path.entity.js'; import { Language } from '../../entities/content/language.js'; export class LearningPathRepository extends DwengoEntityRepository { - public findByHruidAndLanguage( - hruid: string, - language: Language - ): Promise { + public findByHruidAndLanguage(hruid: string, language: Language): Promise { return this.findOne({ hruid: hruid, language: language }); } // This repository is read-only for now since creating own learning object is an extension feature. diff --git a/backend/src/data/dwengo-entity-repository.ts b/backend/src/data/dwengo-entity-repository.ts index e29d9ede..6538d6f5 100644 --- a/backend/src/data/dwengo-entity-repository.ts +++ b/backend/src/data/dwengo-entity-repository.ts @@ -1,8 +1,6 @@ import { EntityRepository, FilterQuery } from '@mikro-orm/core'; -export abstract class DwengoEntityRepository< - T extends object, -> extends EntityRepository { +export abstract class DwengoEntityRepository extends EntityRepository { public async save(entity: T) { const em = this.getEntityManager(); em.persist(entity); diff --git a/backend/src/data/questions/answer-repository.ts b/backend/src/data/questions/answer-repository.ts index 6c45211c..bab34a65 100644 --- a/backend/src/data/questions/answer-repository.ts +++ b/backend/src/data/questions/answer-repository.ts @@ -4,11 +4,7 @@ import { Question } from '../../entities/questions/question.entity.js'; import { Teacher } from '../../entities/users/teacher.entity.js'; export class AnswerRepository extends DwengoEntityRepository { - public createAnswer(answer: { - toQuestion: Question; - author: Teacher; - content: string; - }): Promise { + public createAnswer(answer: { toQuestion: Question; author: Teacher; content: string }): Promise { const answerEntity = new Answer(); answerEntity.toQuestion = answer.toQuestion; answerEntity.author = answer.author; @@ -21,10 +17,7 @@ export class AnswerRepository extends DwengoEntityRepository { orderBy: { sequenceNumber: 'ASC' }, }); } - public removeAnswerByQuestionAndSequenceNumber( - question: Question, - sequenceNumber: number - ): Promise { + public removeAnswerByQuestionAndSequenceNumber(question: Question, sequenceNumber: number): Promise { return this.deleteWhere({ toQuestion: question, sequenceNumber: sequenceNumber, diff --git a/backend/src/data/questions/question-repository.ts b/backend/src/data/questions/question-repository.ts index 8852a9ba..d41cc490 100644 --- a/backend/src/data/questions/question-repository.ts +++ b/backend/src/data/questions/question-repository.ts @@ -4,11 +4,7 @@ import { LearningObjectIdentifier } from '../../entities/content/learning-object import { Student } from '../../entities/users/student.entity.js'; export class QuestionRepository extends DwengoEntityRepository { - public createQuestion(question: { - loId: LearningObjectIdentifier; - author: Student; - content: string; - }): Promise { + public createQuestion(question: { loId: LearningObjectIdentifier; author: Student; content: string }): Promise { const questionEntity = new Question(); questionEntity.learningObjectHruid = question.loId.hruid; questionEntity.learningObjectLanguage = question.loId.language; @@ -17,9 +13,7 @@ export class QuestionRepository extends DwengoEntityRepository { questionEntity.content = question.content; return this.insert(questionEntity); } - public findAllQuestionsAboutLearningObject( - loId: LearningObjectIdentifier - ): Promise { + public findAllQuestionsAboutLearningObject(loId: LearningObjectIdentifier): Promise { return this.findAll({ where: { learningObjectHruid: loId.hruid, @@ -31,10 +25,7 @@ export class QuestionRepository extends DwengoEntityRepository { }, }); } - public removeQuestionByLearningObjectAndSequenceNumber( - loId: LearningObjectIdentifier, - sequenceNumber: number - ): Promise { + public removeQuestionByLearningObjectAndSequenceNumber(loId: LearningObjectIdentifier, sequenceNumber: number): Promise { return this.deleteWhere({ learningObjectHruid: loId.hruid, learningObjectLanguage: loId.language, diff --git a/backend/src/data/repositories.ts b/backend/src/data/repositories.ts index 8f5e90cb..6d67a693 100644 --- a/backend/src/data/repositories.ts +++ b/backend/src/data/repositories.ts @@ -1,9 +1,4 @@ -import { - AnyEntity, - EntityManager, - EntityName, - EntityRepository, -} from '@mikro-orm/core'; +import { AnyEntity, EntityManager, EntityName, EntityRepository } from '@mikro-orm/core'; import { forkEntityManager } from '../orm.js'; import { StudentRepository } from './users/student-repository.js'; import { Student } from '../entities/users/student.entity.js'; @@ -43,9 +38,7 @@ export function transactional(f: () => Promise) { entityManager?.transactional(f); } -function repositoryGetter>( - entity: EntityName, -): () => R { +function repositoryGetter>(entity: EntityName): () => R { let cachedRepo: R | undefined; return (): R => { if (!cachedRepo) { diff --git a/backend/src/data/themes.ts b/backend/src/data/themes.ts index dd79400c..b0fc930c 100644 --- a/backend/src/data/themes.ts +++ b/backend/src/data/themes.ts @@ -23,13 +23,7 @@ export const themes: Theme[] = [ }, { title: 'art', - hruids: [ - 'pn_werking', - 'un_artificiele_intelligentie', - 'art1', - 'art2', - 'art3', - ], + hruids: ['pn_werking', 'un_artificiele_intelligentie', 'art1', 'art2', 'art3'], }, { title: 'socialrobot', @@ -37,12 +31,7 @@ export const themes: Theme[] = [ }, { title: 'agriculture', - hruids: [ - 'pn_werking', - 'un_artificiele_intelligentie', - 'agri_landbouw', - 'agri_lopendeband', - ], + hruids: ['pn_werking', 'un_artificiele_intelligentie', 'agri_landbouw', 'agri_lopendeband'], }, { title: 'wegostem', @@ -83,16 +72,7 @@ export const themes: Theme[] = [ }, { title: 'python_programming', - hruids: [ - 'pn_werking', - 'pn_datatypes', - 'pn_operatoren', - 'pn_structuren', - 'pn_functies', - 'art2', - 'stem_insectbooks', - 'un_algoenprog', - ], + hruids: ['pn_werking', 'pn_datatypes', 'pn_operatoren', 'pn_structuren', 'pn_functies', 'art2', 'stem_insectbooks', 'un_algoenprog'], }, { title: 'stem', @@ -110,15 +90,7 @@ export const themes: Theme[] = [ }, { title: 'care', - hruids: [ - 'pn_werking', - 'un_artificiele_intelligentie', - 'aiz1_zorg', - 'aiz2_grafen', - 'aiz3_unplugged', - 'aiz4_eindtermen', - 'aiz5_triage', - ], + hruids: ['pn_werking', 'un_artificiele_intelligentie', 'aiz1_zorg', 'aiz2_grafen', 'aiz3_unplugged', 'aiz4_eindtermen', 'aiz5_triage'], }, { title: 'chatbot', diff --git a/backend/src/entities/assignments/assignment.entity.ts b/backend/src/entities/assignments/assignment.entity.ts index e883632b..d1a04c5d 100644 --- a/backend/src/entities/assignments/assignment.entity.ts +++ b/backend/src/entities/assignments/assignment.entity.ts @@ -1,11 +1,4 @@ -import { - Entity, - Enum, - ManyToOne, - OneToMany, - PrimaryKey, - Property, -} from '@mikro-orm/core'; +import { Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'; import { Class } from '../classes/class.entity.js'; import { Group } from './group.entity.js'; import { Language } from '../content/language.js'; diff --git a/backend/src/entities/classes/class.entity.ts b/backend/src/entities/classes/class.entity.ts index 1f5835d2..88d2660c 100644 --- a/backend/src/entities/classes/class.entity.ts +++ b/backend/src/entities/classes/class.entity.ts @@ -1,10 +1,4 @@ -import { - Collection, - Entity, - ManyToMany, - PrimaryKey, - Property, -} from '@mikro-orm/core'; +import { Collection, Entity, ManyToMany, PrimaryKey, Property } from '@mikro-orm/core'; import { v4 } from 'uuid'; import { Teacher } from '../users/teacher.entity.js'; import { Student } from '../users/student.entity.js'; diff --git a/backend/src/entities/content/learning-object.entity.ts b/backend/src/entities/content/learning-object.entity.ts index 71f8e69d..2b7d7684 100644 --- a/backend/src/entities/content/learning-object.entity.ts +++ b/backend/src/entities/content/learning-object.entity.ts @@ -1,13 +1,4 @@ -import { - Embeddable, - Embedded, - Entity, - Enum, - ManyToMany, - OneToMany, - PrimaryKey, - Property, -} from '@mikro-orm/core'; +import { Embeddable, Embedded, Entity, Enum, ManyToMany, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'; import { Language } from './language.js'; import { Attachment } from './attachment.entity.js'; import { Teacher } from '../users/teacher.entity.js'; diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index 4048daa6..8dead69d 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -1,13 +1,4 @@ -import { - Embeddable, - Embedded, - Entity, - Enum, - ManyToMany, - OneToOne, - PrimaryKey, - Property, -} from '@mikro-orm/core'; +import { Embeddable, Embedded, Entity, Enum, ManyToMany, OneToOne, PrimaryKey, Property } from '@mikro-orm/core'; import { Language } from './language.js'; import { Teacher } from '../users/teacher.entity.js'; diff --git a/backend/src/logging/initalize.ts b/backend/src/logging/initalize.ts index 18166408..1ff761c9 100644 --- a/backend/src/logging/initalize.ts +++ b/backend/src/logging/initalize.ts @@ -1,9 +1,4 @@ -import { - createLogger, - format, - Logger as WinstonLogger, - transports, -} from 'winston'; +import { createLogger, format, Logger as WinstonLogger, transports } from 'winston'; import LokiTransport from 'winston-loki'; import { LokiLabels } from 'loki-logger-ts'; import { LOG_LEVEL, LOKI_HOST } from '../config.js'; @@ -48,9 +43,7 @@ function initializeLogger(): Logger { transports: [lokiTransport, consoleTransport], }); - logger.debug( - `Logger initialized with level ${LOG_LEVEL}, Loki host ${LOKI_HOST}` - ); + logger.debug(`Logger initialized with level ${LOG_LEVEL}, Loki host ${LOKI_HOST}`); return logger; } diff --git a/backend/src/logging/mikroOrmLogger.ts b/backend/src/logging/mikroOrmLogger.ts index e8bc1fad..25bbac13 100644 --- a/backend/src/logging/mikroOrmLogger.ts +++ b/backend/src/logging/mikroOrmLogger.ts @@ -12,42 +12,28 @@ export class MikroOrmLogger extends DefaultLogger { switch (namespace) { case 'query': - this.logger.debug( - this.createMessage(namespace, message, context) - ); + this.logger.debug(this.createMessage(namespace, message, context)); break; case 'query-params': // TODO Which log level should this be? - this.logger.info( - this.createMessage(namespace, message, context) - ); + this.logger.info(this.createMessage(namespace, message, context)); break; case 'schema': - this.logger.info( - this.createMessage(namespace, message, context) - ); + this.logger.info(this.createMessage(namespace, message, context)); break; case 'discovery': - this.logger.debug( - this.createMessage(namespace, message, context) - ); + this.logger.debug(this.createMessage(namespace, message, context)); break; case 'info': - this.logger.info( - this.createMessage(namespace, message, context) - ); + this.logger.info(this.createMessage(namespace, message, context)); break; case 'deprecated': - this.logger.warn( - this.createMessage(namespace, message, context) - ); + this.logger.warn(this.createMessage(namespace, message, context)); break; default: switch (context?.level) { case 'info': - this.logger.info( - this.createMessage(namespace, message, context) - ); + this.logger.info(this.createMessage(namespace, message, context)); break; case 'warning': this.logger.warn(message); @@ -62,11 +48,7 @@ export class MikroOrmLogger extends DefaultLogger { } } - private createMessage( - namespace: LoggerNamespace, - messageArg: string, - context?: LogContext - ) { + private createMessage(namespace: LoggerNamespace, messageArg: string, context?: LogContext) { const labels: LokiLabels = { service: 'ORM', }; diff --git a/backend/src/orm.ts b/backend/src/orm.ts index 88decd92..93feea7a 100644 --- a/backend/src/orm.ts +++ b/backend/src/orm.ts @@ -28,9 +28,7 @@ export async function initORM(testingMode: boolean = false) { } export function forkEntityManager(): EntityManager { if (!orm) { - throw Error( - 'Accessing the Entity Manager before the ORM is fully initialized.' - ); + throw Error('Accessing the Entity Manager before the ORM is fully initialized.'); } return orm.em.fork(); } diff --git a/backend/src/routes/learningObjects.ts b/backend/src/routes/learningObjects.ts index 416602b5..681baa2f 100644 --- a/backend/src/routes/learningObjects.ts +++ b/backend/src/routes/learningObjects.ts @@ -1,8 +1,5 @@ import express from 'express'; -import { - getAllLearningObjects, - getLearningObject, -} from '../controllers/learningObjects.js'; +import { getAllLearningObjects, getLearningObject } from '../controllers/learningObjects.js'; const router = express.Router(); diff --git a/backend/src/routes/question.ts b/backend/src/routes/question.ts index f683d998..2e5db624 100644 --- a/backend/src/routes/question.ts +++ b/backend/src/routes/question.ts @@ -15,8 +15,7 @@ router.get('/:id', (req, res) => { student: '0', group: '0', time: new Date(2025, 1, 1), - content: - 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????', + content: 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????', learningObject: '0', links: { self: `${req.baseUrl}/${req.params.id}`, diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 4bfed3dc..5ea9f3aa 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -1,20 +1,12 @@ import { DWENGO_API_BASE } from '../config.js'; import { fetchWithLogging } from '../util/apiHelper.js'; -import { - FilteredLearningObject, - LearningObjectMetadata, - LearningObjectNode, - LearningPathResponse, -} from '../interfaces/learningPath.js'; +import { FilteredLearningObject, LearningObjectMetadata, LearningObjectNode, LearningPathResponse } from '../interfaces/learningPath.js'; import { fetchLearningPaths } from './learningPaths.js'; import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); -function filterData( - data: LearningObjectMetadata, - htmlUrl: string -): FilteredLearningObject { +function filterData(data: LearningObjectMetadata, htmlUrl: string): FilteredLearningObject { return { key: data.hruid, // Hruid learningObject (not path) _id: data._id, @@ -41,10 +33,7 @@ function filterData( /** * Fetches a single learning object by its HRUID */ -export async function getLearningObjectById( - hruid: string, - language: string -): Promise { +export async function getLearningObjectById(hruid: string, language: string): Promise { const metadataUrl = `${DWENGO_API_BASE}/learningObject/getMetadata?hruid=${hruid}&language=${language}`; const metadata = await fetchWithLogging( metadataUrl, @@ -63,26 +52,12 @@ export async function getLearningObjectById( /** * Generic function to fetch learning objects (full data or just HRUIDs) */ -async function fetchLearningObjects( - hruid: string, - full: boolean, - language: string -): Promise { +async function fetchLearningObjects(hruid: string, full: boolean, language: string): Promise { try { - const learningPathResponse: LearningPathResponse = - await fetchLearningPaths( - [hruid], - language, - `Learning path for HRUID "${hruid}"` - ); + const learningPathResponse: LearningPathResponse = await fetchLearningPaths([hruid], language, `Learning path for HRUID "${hruid}"`); - if ( - !learningPathResponse.success || - !learningPathResponse.data?.length - ) { - logger.warn( - `⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.` - ); + if (!learningPathResponse.success || !learningPathResponse.data?.length) { + logger.warn(`⚠️ WARNING: Learning path "${hruid}" exists but contains no learning objects.`); return []; } @@ -92,12 +67,9 @@ async function fetchLearningObjects( return nodes.map((node) => node.learningobject_hruid); } - return await Promise.all( - nodes.map(async (node) => getLearningObjectById( - node.learningobject_hruid, - language - )) - ).then((objects) => objects.filter((obj): obj is FilteredLearningObject => obj !== null)); + return await Promise.all(nodes.map(async (node) => getLearningObjectById(node.learningobject_hruid, language))).then((objects) => + objects.filter((obj): obj is FilteredLearningObject => obj !== null) + ); } catch (error) { logger.error('❌ Error fetching learning objects:', error); return []; @@ -107,23 +79,13 @@ async function fetchLearningObjects( /** * Fetch full learning object data (metadata) */ -export async function getLearningObjectsFromPath( - hruid: string, - language: string -): Promise { - return (await fetchLearningObjects( - hruid, - true, - language - )) as FilteredLearningObject[]; +export async function getLearningObjectsFromPath(hruid: string, language: string): Promise { + return (await fetchLearningObjects(hruid, true, language)) as FilteredLearningObject[]; } /** * Fetch only learning object HRUIDs */ -export async function getLearningObjectIdsFromPath( - hruid: string, - language: string -): Promise { +export async function getLearningObjectIdsFromPath(hruid: string, language: string): Promise { return (await fetchLearningObjects(hruid, false, language)) as string[]; } diff --git a/backend/src/services/learningPaths.ts b/backend/src/services/learningPaths.ts index 52b168ee..7a32cd7b 100644 --- a/backend/src/services/learningPaths.ts +++ b/backend/src/services/learningPaths.ts @@ -1,18 +1,11 @@ import { fetchWithLogging } from '../util/apiHelper.js'; import { DWENGO_API_BASE } from '../config.js'; -import { - LearningPath, - LearningPathResponse, -} from '../interfaces/learningPath.js'; +import { LearningPath, LearningPathResponse } from '../interfaces/learningPath.js'; import { getLogger, Logger } from '../logging/initalize.js'; const logger: Logger = getLogger(); -export async function fetchLearningPaths( - hruids: string[], - language: string, - source: string -): Promise { +export async function fetchLearningPaths(hruids: string[], language: string, source: string): Promise { if (hruids.length === 0) { return { success: false, @@ -25,11 +18,7 @@ export async function fetchLearningPaths( const apiUrl = `${DWENGO_API_BASE}/learningPath/getPathsFromIdList`; const params = { pathIdList: JSON.stringify({ hruids }), language }; - const learningPaths = await fetchWithLogging( - apiUrl, - `Learning paths for ${source}`, - params - ); + const learningPaths = await fetchWithLogging(apiUrl, `Learning paths for ${source}`, params); if (!learningPaths || learningPaths.length === 0) { logger.warn(`⚠️ WARNING: No learning paths found for ${source}.`); @@ -48,17 +37,10 @@ export async function fetchLearningPaths( }; } -export async function searchLearningPaths( - query: string, - language: string -): Promise { +export async function searchLearningPaths(query: string, language: string): Promise { const apiUrl = `${DWENGO_API_BASE}/learningPath/search`; const params = { all: query, language }; - const searchResults = await fetchWithLogging( - apiUrl, - `Search learning paths with query "${query}"`, - params - ); + const searchResults = await fetchWithLogging(apiUrl, `Search learning paths with query "${query}"`, params); return searchResults ?? []; } diff --git a/backend/src/util/apiHelper.ts b/backend/src/util/apiHelper.ts index 83c3e975..b8c1b943 100644 --- a/backend/src/util/apiHelper.ts +++ b/backend/src/util/apiHelper.ts @@ -12,11 +12,7 @@ const logger: Logger = getLogger(); * @param params * @returns The response data if successful, or null if an error occurs. */ -export async function fetchWithLogging( - url: string, - description: string, - params?: Record -): Promise { +export async function fetchWithLogging(url: string, description: string, params?: Record): Promise { try { const config: AxiosRequestConfig = params ? { params } : {}; @@ -25,19 +21,14 @@ export async function fetchWithLogging( } catch (error: any) { if (error.response) { if (error.response.status === 404) { - logger.debug( - `❌ ERROR: ${description} not found (404) at "${url}".` - ); + logger.debug(`❌ ERROR: ${description} not found (404) at "${url}".`); } else { logger.debug( `❌ ERROR: Failed to fetch ${description}. Status: ${error.response.status} - ${error.response.statusText} (URL: "${url}")` ); } } else { - logger.debug( - `❌ ERROR: Network or unexpected error when fetching ${description}:`, - error.message - ); + logger.debug(`❌ ERROR: Network or unexpected error when fetching ${description}:`, error.message); } return null; } diff --git a/backend/src/util/envvars.ts b/backend/src/util/envvars.ts index 5a06ac22..6d10e296 100644 --- a/backend/src/util/envvars.ts +++ b/backend/src/util/envvars.ts @@ -36,9 +36,7 @@ export function getNumericEnvVar(envVar: EnvVar): number { const valueString = getEnvVar(envVar); const value = parseInt(valueString); if (isNaN(value)) { - throw new Error( - `Invalid value for environment variable ${envVar.key}: ${valueString}. Expected a number.` - ); + throw new Error(`Invalid value for environment variable ${envVar.key}: ${valueString}. Expected a number.`); } else { return value; } diff --git a/backend/src/util/translationHelper.ts b/backend/src/util/translationHelper.ts index 815a685a..d0a83b02 100644 --- a/backend/src/util/translationHelper.ts +++ b/backend/src/util/translationHelper.ts @@ -12,15 +12,8 @@ export function loadTranslations(language: string): T { const yamlFile = fs.readFileSync(filePath, 'utf8'); return yaml.load(yamlFile) as T; } catch (error) { - logger.warn( - `Cannot load translation for ${language}, fallen back to dutch`, - error - ); - const fallbackPath = path.join( - process.cwd(), - '_i18n', - `${FALLBACK_LANG}.yml` - ); + logger.warn(`Cannot load translation for ${language}, fallen back to dutch`, error); + const fallbackPath = path.join(process.cwd(), '_i18n', `${FALLBACK_LANG}.yml`); return yaml.load(fs.readFileSync(fallbackPath, 'utf8')) as T; } } diff --git a/backend/tests/data/users.test.ts b/backend/tests/data/users.test.ts index 887748a2..87149050 100644 --- a/backend/tests/data/users.test.ts +++ b/backend/tests/data/users.test.ts @@ -16,12 +16,9 @@ describe('StudentRepository', () => { }); it('should return the queried student after he was added', async () => { - await studentRepository.insert( - new Student(username, firstName, lastName) - ); + await studentRepository.insert(new Student(username, firstName, lastName)); - const retrievedStudent = - await studentRepository.findByUsername(username); + const retrievedStudent = await studentRepository.findByUsername(username); expect(retrievedStudent).toBeTruthy(); expect(retrievedStudent?.firstName).toBe(firstName); expect(retrievedStudent?.lastName).toBe(lastName); @@ -30,8 +27,7 @@ describe('StudentRepository', () => { it('should no longer return the queried student after he was removed again', async () => { await studentRepository.deleteByUsername(username); - const retrievedStudent = - await studentRepository.findByUsername(username); + const retrievedStudent = await studentRepository.findByUsername(username); expect(retrievedStudent).toBeNull(); }); }); diff --git a/eslint.config.ts b/eslint.config.ts index 0ec7d58a..6a59a583 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -16,12 +16,7 @@ export default [ prettierConfig, includeIgnoreFile(gitignorePath), { - ignores: [ - '**/dist/**', - '**/.node_modules/**', - '**/coverage/**', - '**/.github/**', - ], + ignores: ['**/dist/**', '**/.node_modules/**', '**/coverage/**', '**/.github/**'], files: ['**/*.ts', '**/*.cts', '**.*.mts', '**/*.ts'], }, { diff --git a/frontend/eslint.config.ts b/frontend/eslint.config.ts index 76822361..e9359af7 100644 --- a/frontend/eslint.config.ts +++ b/frontend/eslint.config.ts @@ -15,8 +15,8 @@ const vueConfig = defineConfigWithVueTs( name: "app/files-to-lint", files: ["**/*.{ts,mts,tsx,vue}"], rules: { - 'no-useless-assignment': 'off' // Depend on `no-unused-vars` to catch this - } + "no-useless-assignment": "off", // Depend on `no-unused-vars` to catch this + }, }, { From a6359539dcfcd8fb247a9735b8f479d8ddc3c298 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 15:26:19 +0100 Subject: [PATCH 75/80] docs: Voeg installatiehandleiding toe --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index db5b63a4..1252cd04 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,10 @@ en lessen kunnen samenstellen hun leerlingen en hun vooruitgang kunnen opvolgen. ## Installatie +Om de applicatie in te stellen voor een productieomgeving, volg de [installatiehandleiding](https://github.com/SELab-2/Dwengo-1/wiki/Administrator:-Productie-omgeving). + +Alternatief kan je één van de volgende methodes gebruiken om de applicatie lokaal te draaien. + ### Quick start 1. Installeer Docker en Docker Compose op je systeem (zie [Docker](https://docs.docker.com/get-docker/) en [Docker Compose](https://docs.docker.com/compose/)). @@ -47,7 +51,7 @@ De tech-stack bestaat uit: - **Frontend**: TypeScript + Vue.js + Vuetify - **Backend**: TypeScript + Node.js + Express.js + TypeORM + PostgreSQL -Voor meer informatie over de keuze van deze tech-stack, zie [designkeuzes](https://github.com/SELab-2/Dwengo-1/wiki/Design-keuzes). +Voor meer informatie over de keuze van deze tech-stack, zie [designkeuzes](https://github.com/SELab-2/Dwengo-1/wiki/Developer:-Design-keuzes). ## Bijdragen aan Dwengo-1 From 9814c388867f43da6785caa55da7df0f28f74ac3 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 16:26:00 +0100 Subject: [PATCH 76/80] docs: Voeg Keycloak aan architectuur-overzicht toe --- README.md | 1 + assets/img/keycloak.png | Bin 0 -> 7970 bytes docs/architecture/schema.png | Bin 107430 -> 120950 bytes docs/architecture/schema.py | 53 ++++++++++++++++++++++++----------- 4 files changed, 37 insertions(+), 17 deletions(-) create mode 100644 assets/img/keycloak.png diff --git a/README.md b/README.md index 1252cd04..8dcac4b8 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ De tech-stack bestaat uit: - **Frontend**: TypeScript + Vue.js + Vuetify - **Backend**: TypeScript + Node.js + Express.js + TypeORM + PostgreSQL +- **Identity provider**: Keycloak Voor meer informatie over de keuze van deze tech-stack, zie [designkeuzes](https://github.com/SELab-2/Dwengo-1/wiki/Developer:-Design-keuzes). diff --git a/assets/img/keycloak.png b/assets/img/keycloak.png new file mode 100644 index 0000000000000000000000000000000000000000..6a79a7a2c51f863d75ad282f83203d0af7d266d2 GIT binary patch literal 7970 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≧Gmk-Jl_G(6SVE4I%rZsMOoTCz^f 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

    PLzV_nMcyS{Ln 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 diff --git a/docs/architecture/schema.py b/docs/architecture/schema.py index 87a59f9a..7aa4cefd 100644 --- a/docs/architecture/schema.py +++ b/docs/architecture/schema.py @@ -1,30 +1,49 @@ -from diagrams import Cluster, Diagram +from diagrams import Cluster, Diagram, Edge from diagrams.custom import Custom from diagrams.onprem.certificates import LetsEncrypt -from diagrams.onprem.container import Docker from diagrams.onprem.database import PostgreSQL from diagrams.onprem.logging import Loki from diagrams.onprem.monitoring import Grafana from diagrams.onprem.network import Nginx +from diagrams.programming.flowchart import InputOutput from diagrams.programming.framework import Vue from diagrams.programming.language import Nodejs -from diagrams.programming.flowchart import InputOutput with Diagram("Dwengo-1 architectuur", filename="docs/architecture/schema", show=False): - reverse_proxy = Nginx("reverse proxy") - reverse_proxy >> LetsEncrypt("SSL") + ingress = Nginx("Reverse Proxy") + certificates = LetsEncrypt("SSL") - with Cluster("Docker"): - Docker() - - frontend = Vue("/") - backend = Nodejs("/api") - reverse_proxy >> frontend - frontend >> backend >> InputOutput("MikroORM") >> PostgreSQL() - - backend >> Loki("logging") >> Grafana("monitoring") - - with Cluster("Dwengo"): + with Cluster("Dwengo VZW"): dwengo = Custom("Dwengo", "../../assets/img/dwengo-groen-zwart.png") - backend >> dwengo + with Cluster("Dwengo-1"): + frontend = Vue("/") + backend = Nodejs("/api") + identity_provider = Custom("IDP", "../../assets/img/keycloak.png") + + database = PostgreSQL("Database") + orm = InputOutput("MikroORM") + orm >> Edge(label="map") << database + + with Cluster("Observability"): + logging = Loki("Logging") + logging << Edge(color="firebrick", style="dashed") << Grafana("Monitoring") + + dependencies = [ + dwengo, + logging, + orm + ] + + backend >> dependencies + + service = [ + frontend, + backend, + identity_provider, + certificates + ] + + ingress \ + >> Edge(color="darkgreen") \ + << service From dbb7fd186592ecad1f37b7cb48f22cb9528ae0cc Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 16:32:50 +0100 Subject: [PATCH 77/80] docs: Breidt installatiestappen uit --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8dcac4b8..57341aa7 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,20 @@ Alternatief kan je één van de volgende methodes gebruiken om de applicatie lok 1. Installeer Docker en Docker Compose op je systeem (zie [Docker](https://docs.docker.com/get-docker/) en [Docker Compose](https://docs.docker.com/compose/)). 2. Clone deze repository. +3. In de backend, kopieer `.env.example` (of `.env.development.example`) naar `.env` en pas de variabelen aan waar nodig. 3. Voer `docker compose up` uit in de root van de repository. +4. Optioneel: Configureer de applicatie aan de hand van de [configuratiehandleiding](https://github.com/SELab-2/Dwengo-1/wiki/Administrator:-Productie-omgeving#dwengo-1-configuratie). ```bash docker compose version git clone https://github.com/SELab-2/Dwengo-1.git -cd Dwengo-1 +cd Dwengo-1/backend +cp .env.example .env +# Pas .env aan +nano .env +cd .. docker compose up +# Configureer de applicatie ``` ### Handmatige installatie From 763b72ad8c9da9c99f2904aebfae0d01cbd50f07 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 6 Mar 2025 16:43:35 +0100 Subject: [PATCH 78/80] docs(backend): Voeg keycloak configuratiestap toe --- backend/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/README.md b/backend/README.md index 76bc8eae..4b2083b6 100644 --- a/backend/README.md +++ b/backend/README.md @@ -20,3 +20,10 @@ npm run dev npm run build npm run start ``` + +## Keycloak configuratie + +Tijdens development is het voldoende om gebruik te maken van de keycloak configuratie die automatisch ingeladen wordt. + +Voor productie is het ten sterkste aangeraden om keycloak manueel te configureren. +Voor meer informatie, zie de [administrator-handleiding](https://github.com/SELab-2/Dwengo-1/wiki/Administrator:-Productie-omgeving#installatie-en-server-configuratie). From 6c1f90c19a5b52cafaa73b824a2ee4d71f5fd84a Mon Sep 17 00:00:00 2001 From: Lint Action Date: Thu, 6 Mar 2025 15:44:25 +0000 Subject: [PATCH 79/80] style: fix linting issues met Prettier --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 57341aa7..9c305a9b 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,8 @@ Alternatief kan je één van de volgende methodes gebruiken om de applicatie lok 1. Installeer Docker en Docker Compose op je systeem (zie [Docker](https://docs.docker.com/get-docker/) en [Docker Compose](https://docs.docker.com/compose/)). 2. Clone deze repository. 3. In de backend, kopieer `.env.example` (of `.env.development.example`) naar `.env` en pas de variabelen aan waar nodig. -3. Voer `docker compose up` uit in de root van de repository. -4. Optioneel: Configureer de applicatie aan de hand van de [configuratiehandleiding](https://github.com/SELab-2/Dwengo-1/wiki/Administrator:-Productie-omgeving#dwengo-1-configuratie). +4. Voer `docker compose up` uit in de root van de repository. +5. Optioneel: Configureer de applicatie aan de hand van de [configuratiehandleiding](https://github.com/SELab-2/Dwengo-1/wiki/Administrator:-Productie-omgeving#dwengo-1-configuratie). ```bash docker compose version From 1ed35123460aaefe5f7fa0265f58c663d2f22fd6 Mon Sep 17 00:00:00 2001 From: Gabriellvl <91496499+Gabriellvl@users.noreply.github.com> Date: Fri, 7 Mar 2025 21:06:58 +0100 Subject: [PATCH 80/80] fix: Update README.md toevoeging van mijn 2de naam --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c305a9b..fcc4d3ba 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Projectopgave