Update deps

This commit is contained in:
Darren Clarke 2024-03-03 18:13:26 +01:00
parent 6663e8ed1e
commit 486f989494
33 changed files with 776 additions and 695 deletions

1
.gitignore vendored
View file

@ -25,3 +25,4 @@ signald-state/*
!./signald-state/.gitkeep !./signald-state/.gitkeep
baileys-state baileys-state
signald-state signald-state
project.org

View file

@ -14,17 +14,17 @@
}, },
"dependencies": { "dependencies": {
"@emotion/cache": "^11.11.0", "@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.3", "@emotion/react": "^11.11.4",
"@emotion/server": "^11.11.0", "@emotion/server": "^11.11.0",
"@emotion/styled": "^11.11.0", "@emotion/styled": "^11.11.0",
"@fontsource/playfair-display": "^5.0.19", "@fontsource/playfair-display": "^5.0.20",
"@fontsource/poppins": "^5.0.8", "@fontsource/poppins": "^5.0.8",
"@fontsource/roboto": "^5.0.8", "@fontsource/roboto": "^5.0.8",
"@mui/icons-material": "^5", "@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.165", "@mui/lab": "^5.0.0-alpha.166",
"@mui/material": "^5", "@mui/material": "^5",
"@mui/x-data-grid-pro": "^6.19.4", "@mui/x-data-grid-pro": "^6.19.5",
"@mui/x-date-pickers-pro": "^6.19.4", "@mui/x-date-pickers-pro": "^6.19.5",
"@opensearch-project/opensearch": "^2.5.0", "@opensearch-project/opensearch": "^2.5.0",
"cryptr": "^6.3.0", "cryptr": "^6.3.0",
"date-fns": "^3.3.1", "date-fns": "^3.3.1",
@ -32,28 +32,28 @@
"leafcutter-common": "*", "leafcutter-common": "*",
"material-ui-popup-state": "^5.0.10", "material-ui-popup-state": "^5.0.10",
"next": "14.1.0", "next": "14.1.0",
"next-auth": "^4.24.5", "next-auth": "^4.24.6",
"next-http-proxy-middleware": "^1.2.6", "next-http-proxy-middleware": "^1.2.6",
"nodemailer": "^6.9.9", "nodemailer": "^6.9.10",
"react": "18.2.0", "react": "18.2.0",
"react-cookie": "^7.0.2", "react-cookie": "^7.1.0",
"react-cookie-consent": "^9.0.0", "react-cookie-consent": "^9.0.0",
"react-dom": "18.2.0", "react-dom": "18.2.0",
"react-iframe": "^1.8.5", "react-iframe": "^1.8.5",
"react-markdown": "^9.0.1", "react-markdown": "^9.0.1",
"react-polyglot": "^0.7.2", "react-polyglot": "^0.7.2",
"sharp": "^0.33.2", "sharp": "^0.33.2",
"swr": "^2.2.4", "swr": "^2.2.5",
"tss-react": "^4.9.4", "tss-react": "^4.9.4",
"uuid": "^9.0.1" "uuid": "^9.0.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.23.9", "@babel/core": "^7.23.9",
"@types/node": "^20.11.17", "@types/node": "^20.11.21",
"@types/react": "18.2.55", "@types/react": "18.2.60",
"@types/uuid": "^9.0.8", "@types/uuid": "^9.0.8",
"babel-loader": "^9.1.3", "babel-loader": "^9.1.3",
"eslint": "^8.56.0", "eslint": "^8.57.0",
"eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb": "^19.0.4",
"eslint-config-next": "^14.1.0", "eslint-config-next": "^14.1.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",

View file

@ -9,6 +9,7 @@ const fetchRoles = async () => {
const url = `${process.env.ZAMMAD_URL}/api/v1/roles`; const url = `${process.env.ZAMMAD_URL}/api/v1/roles`;
const res = await fetch(url, { headers }); const res = await fetch(url, { headers });
const roles = await res.json(); const roles = await res.json();
console.log({ roles });
const formattedRoles = roles.reduce((acc: any, role: any) => { const formattedRoles = roles.reduce((acc: any, role: any) => {
acc[role.id] = role.name; acc[role.id] = role.name;
return acc; return acc;
@ -17,17 +18,25 @@ const fetchRoles = async () => {
}; };
const fetchUser = async (email: string) => { const fetchUser = async (email: string) => {
const url = `${process.env.ZAMMAD_URL}/api/v1/users/search?query=email:${email}&limit=1`; console.log({ email });
const url = `${process.env.ZAMMAD_URL}/api/v1/users/search?query=login:${email}&limit=1`;
console.log({ url });
const res = await fetch(url, { headers }); const res = await fetch(url, { headers });
console.log({ res });
const users = await res.json(); const users = await res.json();
console.log({ users });
const user = users?.[0]; const user = users?.[0];
return user;
// temp
return { role_ids: [1] };
}; };
const getUserRoles = async (email: string) => { const getUserRoles = async (email: string) => {
try { try {
const user = await fetchUser(email); const user = await fetchUser(email);
console.log({ user });
const allRoles = await fetchRoles(); const allRoles = await fetchRoles();
console.log({ allRoles });
const roles = user.role_ids.map((roleID: number) => { const roles = user.role_ids.map((roleID: number) => {
const role = allRoles[roleID]; const role = allRoles[roleID];
return role ? role.toLowerCase().replace(" ", "_") : null; return role ? role.toLowerCase().replace(" ", "_") : null;
@ -42,11 +51,12 @@ const getUserRoles = async (email: string) => {
const login = async (email: string, password: string) => { const login = async (email: string, password: string) => {
const url = `${process.env.ZAMMAD_URL}/api/v1/users/me`; const url = `${process.env.ZAMMAD_URL}/api/v1/users/me`;
console.log({ url }); console.log({ url });
const authorization = 'Basic ' + Buffer.from(email + ":" + password).toString('base64'); const authorization =
"Basic " + Buffer.from(email + ":" + password).toString("base64");
const res = await fetch(url, { const res = await fetch(url, {
headers: { headers: {
authorization authorization,
} },
}); });
const user = await res.json(); const user = await res.json();
console.log({ user }); console.log({ user });
@ -71,13 +81,13 @@ const handler = NextAuth({
}), }),
Apple({ Apple({
clientId: process.env.APPLE_CLIENT_ID, clientId: process.env.APPLE_CLIENT_ID,
clientSecret: process.env.APPLE_CLIENT_SECRET clientSecret: process.env.APPLE_CLIENT_SECRET,
}), }),
Credentials({ Credentials({
name: "Zammad", name: "Zammad",
credentials: { credentials: {
email: { label: "Email", type: "text", }, email: { label: "Email", type: "text" },
password: { label: "Password", type: "password" } password: { label: "Password", type: "password" },
}, },
async authorize(credentials, req) { async authorize(credentials, req) {
const user = await login(credentials.email, credentials.password); const user = await login(credentials.email, credentials.password);
@ -86,15 +96,19 @@ const handler = NextAuth({
} else { } else {
return null; return null;
} }
} },
}) }),
], ],
secret: process.env.NEXTAUTH_SECRET, secret: process.env.NEXTAUTH_SECRET,
callbacks: { callbacks: {
signIn: async ({ user, account, profile }) => { signIn: async ({ user, account, profile }) => {
const roles = await getUserRoles(user.email) ?? []; const roles = (await getUserRoles(user.email)) ?? [];
return roles.includes("admin") || roles.includes("agent") || process.env.SETUP_MODE === "true"; return (
roles.includes("admin") ||
roles.includes("agent") ||
process.env.SETUP_MODE === "true"
);
}, },
session: async ({ session, user, token }) => { session: async ({ session, user, token }) => {
// @ts-ignore // @ts-ignore
@ -105,13 +119,11 @@ const handler = NextAuth({
}, },
jwt: async ({ token, user, account, profile, trigger }) => { jwt: async ({ token, user, account, profile, trigger }) => {
if (user) { if (user) {
token.roles = await getUserRoles(user.email) ?? []; token.roles = (await getUserRoles(user.email)) ?? [];
} }
return token; return token;
} },
}, },
}); });
export { handler as GET, handler as POST }; export { handler as GET, handler as POST };

View file

@ -12,17 +12,17 @@
"@chatscope/chat-ui-kit-react": "^1.10.1", "@chatscope/chat-ui-kit-react": "^1.10.1",
"@chatscope/chat-ui-kit-styles": "^1.4.0", "@chatscope/chat-ui-kit-styles": "^1.4.0",
"@emotion/cache": "^11.11.0", "@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.3", "@emotion/react": "^11.11.4",
"@emotion/server": "^11.11.0", "@emotion/server": "^11.11.0",
"@emotion/styled": "^11.11.0", "@emotion/styled": "^11.11.0",
"@fontsource/playfair-display": "^5.0.19", "@fontsource/playfair-display": "^5.0.20",
"@fontsource/poppins": "^5.0.8", "@fontsource/poppins": "^5.0.8",
"@fontsource/roboto": "^5.0.8", "@fontsource/roboto": "^5.0.8",
"@mui/icons-material": "^5", "@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.165", "@mui/lab": "^5.0.0-alpha.166",
"@mui/material": "^5", "@mui/material": "^5",
"@mui/x-data-grid-pro": "^6.19.4", "@mui/x-data-grid-pro": "^6.19.5",
"@mui/x-date-pickers-pro": "^6.19.4", "@mui/x-date-pickers-pro": "^6.19.5",
"cryptr": "^6.3.0", "cryptr": "^6.3.0",
"date-fns": "^3.3.1", "date-fns": "^3.3.1",
"graphql-request": "^6.1.0", "graphql-request": "^6.1.0",
@ -30,15 +30,15 @@
"material-ui-popup-state": "^5.0.10", "material-ui-popup-state": "^5.0.10",
"mui-chips-input": "^2.1.4", "mui-chips-input": "^2.1.4",
"next": "14.1.0", "next": "14.1.0",
"next-auth": "^4.24.5", "next-auth": "^4.24.6",
"ra-data-graphql": "^4.16.10", "ra-data-graphql": "^4.16.11",
"ra-i18n-polyglot": "^4.16.10", "ra-i18n-polyglot": "^4.16.11",
"ra-input-rich-text": "^4.16.10", "ra-input-rich-text": "^4.16.11",
"ra-language-english": "^4.16.10", "ra-language-english": "^4.16.11",
"ra-postgraphile": "^6.1.2", "ra-postgraphile": "^6.1.2",
"react": "18.2.0", "react": "18.2.0",
"react-admin": "^4.16.10", "react-admin": "^4.16.11",
"react-cookie": "^7.0.2", "react-cookie": "^7.1.0",
"react-digit-input": "^2.1.0", "react-digit-input": "^2.1.0",
"react-dom": "18.2.0", "react-dom": "18.2.0",
"react-iframe": "^1.8.5", "react-iframe": "^1.8.5",
@ -46,17 +46,17 @@
"react-qr-code": "^2.0.12", "react-qr-code": "^2.0.12",
"react-timer-hook": "^3.0.7", "react-timer-hook": "^3.0.7",
"sharp": "^0.33.2", "sharp": "^0.33.2",
"swr": "^2.2.4", "swr": "^2.2.5",
"tss-react": "^4.9.4", "tss-react": "^4.9.4",
"twilio-client": "^1.15.1" "twilio-client": "^1.15.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.23.9", "@babel/core": "^7.23.9",
"@types/node": "^20.11.17", "@types/node": "^20.11.21",
"@types/react": "18.2.55", "@types/react": "18.2.60",
"@types/uuid": "^9.0.8", "@types/uuid": "^9.0.8",
"babel-loader": "^9.1.3", "babel-loader": "^9.1.3",
"eslint": "^8.56.0", "eslint": "^8.57.0",
"eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb": "^19.0.4",
"eslint-config-next": "^14.1.0", "eslint-config-next": "^14.1.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",

View file

@ -30,7 +30,7 @@
"hapi-auth-bearer-token": "^8.0.0", "hapi-auth-bearer-token": "^8.0.0",
"hapi-auth-jwt2": "^10.5.1", "hapi-auth-jwt2": "^10.5.1",
"hapi-swagger": "^17.2.1", "hapi-swagger": "^17.2.1",
"joi": "^17.12.1", "joi": "^17.12.2",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"jwks-rsa": "^3.1.0", "jwks-rsa": "^3.1.0",
"long": "^5.2.3", "long": "^5.2.3",
@ -40,8 +40,8 @@
"pg-promise": "^11.5.4", "pg-promise": "^11.5.4",
"postgraphile": "4.12.3", "postgraphile": "4.12.3",
"postgraphile-plugin-connection-filter": "^2.3.0", "postgraphile-plugin-connection-filter": "^2.3.0",
"remeda": "^1.40.2", "remeda": "^1.44.1",
"twilio": "^4.22.0", "twilio": "^4.23.0",
"typeorm": "^0.3.20", "typeorm": "^0.3.20",
"@whiskeysockets/baileys": "^6.6.0" "@whiskeysockets/baileys": "^6.6.0"
}, },
@ -52,13 +52,13 @@
"camelcase-keys": "^9.1.3", "camelcase-keys": "^9.1.3",
"eslint-config-link": "*", "eslint-config-link": "*",
"jest-config-link": "*", "jest-config-link": "*",
"nodemon": "^3.0.3", "nodemon": "^3.1.0",
"pg-monitor": "^2.0.0", "pg-monitor": "^2.0.0",
"pino-pretty": "^10.3.1", "pino-pretty": "^10.3.1",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"tsc-watch": "^6.0.4", "tsc-watch": "^6.0.4",
"tsconfig-link": "*", "tsconfig-link": "*",
"typedoc": "^0.25.8", "typedoc": "^0.25.9",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },
"nodemonConfig": { "nodemonConfig": {

View file

@ -9,14 +9,14 @@ const AppPlugin = {
name: "App", name: "App",
async register( async register(
server: Hapi.Server, server: Hapi.Server,
options: { config: IAppConfig } options: { config: IAppConfig },
): Promise<void> { ): Promise<void> {
// declare our **run-time** plugin dependencies // declare our **run-time** plugin dependencies
// these are runtime only deps, not registration time // these are runtime only deps, not registration time
// ref: https://hapipal.com/best-practices/handling-plugin-dependencies // ref: https://hapipal.com/best-practices/handling-plugin-dependencies
server.dependency(["config", "hapi-pino"]); server.dependency(["config", "hapi-pino"]);
server.validator(Joi); server.validator(Joi as any);
await Plugins.register(server, options.config); await Plugins.register(server, options.config);
await Services.register(server); await Services.register(server);
await Routes.register(server); await Routes.register(server);

View file

@ -25,7 +25,7 @@
"devDependencies": { "devDependencies": {
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"pino-pretty": "^10.3.1", "pino-pretty": "^10.3.1",
"nodemon": "^3.0.3", "nodemon": "^3.1.0",
"tsconfig-link": "*", "tsconfig-link": "*",
"eslint-config-link": "*", "eslint-config-link": "*",
"jest-config-link": "*", "jest-config-link": "*",

View file

@ -14,8 +14,8 @@
"html-to-text": "^9.0.5", "html-to-text": "^9.0.5",
"node-fetch": "^3", "node-fetch": "^3",
"pg-promise": "^11.5.4", "pg-promise": "^11.5.4",
"remeda": "^1.40.2", "remeda": "^1.44.1",
"twilio": "^4.22.0" "twilio": "^4.23.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.23.9", "@babel/core": "7.23.9",
@ -23,15 +23,15 @@
"@babel/preset-typescript": "7.23.3", "@babel/preset-typescript": "7.23.3",
"@types/fluent-ffmpeg": "^2.1.24", "@types/fluent-ffmpeg": "^2.1.24",
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"eslint": "^8.56.0", "eslint": "^8.57.0",
"jest": "^29.7.0", "jest": "^29.7.0",
"jest-circus": "^29.7.0", "jest-circus": "^29.7.0",
"jest-junit": "^16.0.0", "jest-junit": "^16.0.0",
"nodemon": "^3.0.3", "nodemon": "^3.1.0",
"pino-pretty": "^10.3.1", "pino-pretty": "^10.3.1",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"typedoc": "^0.25.8", "typedoc": "^0.25.9",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },
"nodemonConfig": { "nodemonConfig": {

View file

@ -6,12 +6,41 @@ services:
build: ./docker/opensearch build: ./docker/opensearch
image: registry.gitlab.com/digiresilience/link/link-stack/opensearch:${LINK_STACK_VERSION} image: registry.gitlab.com/digiresilience/link/link-stack/opensearch:${LINK_STACK_VERSION}
restart: ${RESTART} restart: ${RESTART}
environment:
- discovery.type=single-node
- cluster.routing.allocation.disk.watermark.low=3gb
- cluster.routing.allocation.disk.watermark.high=2gb
- cluster.routing.allocation.disk.watermark.flood_stage=500mb
- cluster.info.update.interval=1m
- node.name=opensearch-node1
- bootstrap.memory_lock=true
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_ADMIN_PASSWORD}"
- compatibility.override_main_response_version=true
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- opensearch-data:/usr/share/opensearch/data
ports:
- 9200:9200
- 9600:9600
opensearch-dashboards: opensearch-dashboards:
container_name: opensearch-dashboards container_name: opensearch-dashboards
build: ./docker/opensearch-dashboards build: ./docker/opensearch-dashboards
image: registry.gitlab.com/digiresilience/link/link-stack/opensearch-dashboards:${LINK_STACK_VERSION} image: registry.gitlab.com/digiresilience/link/link-stack/opensearch-dashboards:${LINK_STACK_VERSION}
restart: ${RESTART} restart: ${RESTART}
ports:
- 5601:5601
expose:
- "5601"
environment:
OPENSEARCH_HOSTS: '["https://opensearch:9200"]'
volumes: volumes:
opensearch-data: opensearch-data:

View file

@ -13,21 +13,13 @@ x-zammad-vars:
POSTGRESQL_USER: "zammad" POSTGRESQL_USER: "zammad"
POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD} POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD}
POSTGRESQL_DB: "zammad_production" POSTGRESQL_DB: "zammad_production"
ELASTICSEARCH_HOST: ${OPENSEARCH_HOST}
ELASTICSEARCH_USER: ${OPENSEARCH_USER}
ELASTICSEARCH_PASS: ${OPENSEARCH_PASS}
ELASTICSEARCH_SSL_VERIFY: false
ELASTICSEARCH_SCHEMA: https
services: services:
zammad-elasticsearch:
container_name: zammad-elasticsearch
environment:
discovery.type: single-node
ES_JAVA_OPTS: -Xms750m -Xmx750m
xpack.security.enabled: false
<<: *common-global-variables
build: ./docker/elasticsearch
image: registry.gitlab.com/digiresilience/link/link-stack/elasticsearch:${LINK_STACK_VERSION}
restart: ${RESTART}
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
zammad-init: zammad-init:
platform: linux/x86_64 platform: linux/x86_64
container_name: zammad-init container_name: zammad-init
@ -171,6 +163,8 @@ services:
volumes: volumes:
elasticsearch-data: elasticsearch-data:
driver: local driver: local
opensearch-data:
driver: local
postgresql-data: postgresql-data:
driver: local driver: local
redis-data: redis-data:

View file

@ -1 +1 @@
FROM docker.elastic.co/elasticsearch/elasticsearch:8.10.2 FROM docker.elastic.co/elasticsearch/elasticsearch:8.12.2

View file

@ -1 +1 @@
FROM heartexlabs/label-studio:1.8.2 FROM heartexlabs/label-studio:1.11.0

View file

@ -1 +1 @@
FROM memcached:1.6.21-bookworm FROM memcached:1.6.23-bookworm

View file

@ -1 +1 @@
FROM nginxproxy/nginx-proxy:1.3.1 FROM nginxproxy/nginx-proxy:1.5.1

View file

@ -1 +1 @@
FROM opensearchproject/opensearch-dashboards:2.9.0 FROM opensearchproject/opensearch-dashboards:2.12.0

View file

@ -1 +1,2 @@
FROM opensearchproject/opensearch:2.9.0 FROM opensearchproject/opensearch:2.12.0
RUN /usr/share/opensearch/bin/opensearch-plugin install ingest-attachment -b

View file

@ -1 +1 @@
FROM postgres:16-bookworm FROM postgres:15-bookworm

View file

@ -1 +1 @@
FROM redis:7.2.1-bookworm FROM redis:7.2.4-bookworm

View file

@ -1,4 +1,4 @@
ARG ZAMMAD_VERSION=6.1.0 ARG ZAMMAD_VERSION=6.2.0
FROM node:16.18.0-slim as node FROM node:16.18.0-slim as node
FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS builder FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS builder

1181
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -17,14 +17,17 @@
"docker:link:up": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml -f docker-compose.link.yml up -d", "docker:link:up": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml -f docker-compose.link.yml up -d",
"docker:link:down": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml -f docker-compose.link.yml down", "docker:link:down": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml -f docker-compose.link.yml down",
"docker:link:build": "docker compose -f docker-compose.link.yml up --build -d", "docker:link:build": "docker compose -f docker-compose.link.yml up --build -d",
"docker:opensearch:up": "docker compose -f docker-compose.opensearch.yml up -d",
"docker:opensearch:down": "docker compose -f docker-compose.opensearch.yml down",
"docker:opensearch:build": "docker compose -f docker-compose.opensearch.yml up --build -d",
"docker:leafcutter:dev:up": "docker compose -f docker-compose.opensearch.yml up -d", "docker:leafcutter:dev:up": "docker compose -f docker-compose.opensearch.yml up -d",
"docker:leafcutter:dev:down": "docker compose -f docker-compose.opensearch.yml down", "docker:leafcutter:dev:down": "docker compose -f docker-compose.opensearch.yml down",
"docker:leafcutter:up": "docker compose -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml up -d", "docker:leafcutter:up": "docker compose -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml up -d",
"docker:leafcutter:down": "docker compose -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml down", "docker:leafcutter:down": "docker compose -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml down",
"docker:leafcutter:build": "docker compose -f docker-compose.leafcutter.yml up --build -d", "docker:leafcutter:build": "docker compose -f docker-compose.leafcutter.yml up --build -d",
"docker:zammad:up": "docker compose -f docker-compose.zammad.yml up -d", "docker:zammad:up": "docker compose -f docker-compose.zammad.yml -f docker-compose.opensearch.yml up -d",
"docker:zammad:down": "docker compose -f docker-compose.zammad.yml down", "docker:zammad:down": "docker compose -f docker-compose.zammad.yml -f docker-compose.opensearch.yml down",
"docker:zammad:build": "docker compose -f docker-compose.zammad.yml up --build -d", "docker:zammad:build": "docker compose -f docker-compose.zammad.yml -f docker-compose.opensearch.yml up --build -d",
"docker:metamigo:dev:up": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.zammad.yml up -d", "docker:metamigo:dev:up": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.zammad.yml up -d",
"docker:metamigo:dev:down": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.zammad.yml down", "docker:metamigo:dev:down": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.zammad.yml down",
"docker:metamigo:up": "docker compose -f docker-compose.zammad.yml -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml up -d", "docker:metamigo:up": "docker compose -f docker-compose.zammad.yml -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml up -d",
@ -36,7 +39,6 @@
"upgrade:all": "ncu -u && ncu -ws -u -x graphql -x postgraphile -x graphile-worker && npm i", "upgrade:all": "ncu -u && ncu -ws -u -x graphql -x postgraphile -x graphile-worker && npm i",
"clean": "rm -f package-lock.json && rm -rf node_modules && rm -rf apps/*/node_modules && rm -rf packages/*/node_modules && rm -rf apps/*/.next && rm -rf packages/*/.turbo && rm -rf apps/*/.turbo && rm -rf docker/zammad/addons/*" "clean": "rm -f package-lock.json && rm -rf node_modules && rm -rf apps/*/node_modules && rm -rf packages/*/node_modules && rm -rf apps/*/.next && rm -rf packages/*/.turbo && rm -rf apps/*/.turbo && rm -rf docker/zammad/addons/*"
}, },
"packageManager": "npm@9.6.7",
"workspaces": [ "workspaces": [
"apps/*", "apps/*",
"packages/*" "packages/*"
@ -49,13 +51,13 @@
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"overrides": { "overrides": {
"@mui/styles": { "@mui/styles": {
"react": "18.2.0" "react": "^18.2.0"
}, },
"typeorm": { "typeorm": {
"pg": "^8.11.0" "pg": "^8.11.0"
}, },
"graphql": "15.8.0", "graphql": "15.8.0",
"typescript": "^5.2.0" "typescript": "^5.3.3"
}, },
"devDependencies": { "devDependencies": {
"dotenv-cli": "latest", "dotenv-cli": "latest",

View file

@ -15,6 +15,6 @@
}, },
"peerDependencies": {}, "peerDependencies": {},
"devDependencies": { "devDependencies": {
"eslint": "^8.56.0" "eslint": "^8.57.0"
} }
} }

View file

@ -10,14 +10,14 @@
}, },
"dependencies": { "dependencies": {
"@rushstack/eslint-patch": "^1.7.2", "@rushstack/eslint-patch": "^1.7.2",
"@typescript-eslint/eslint-plugin": "^7.0.1", "@typescript-eslint/eslint-plugin": "^7.1.0",
"@typescript-eslint/parser": "^7.0.1", "@typescript-eslint/parser": "^7.1.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"eslint-config-xo-space": "^0.35.0", "eslint-config-xo-space": "^0.35.0",
"eslint-plugin-cypress": "^2.15.1", "eslint-plugin-cypress": "^2.15.1",
"eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.29.1", "eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^27.8.0", "eslint-plugin-jest": "^27.9.0",
"eslint-plugin-no-use-extend-native": "^0.5.0", "eslint-plugin-no-use-extend-native": "^0.5.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-unicorn": "51.0.1", "eslint-plugin-unicorn": "51.0.1",
@ -28,7 +28,7 @@
"typescript": "^4.9.5" "typescript": "^4.9.5"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^8.56.0", "eslint": "^8.57.0",
"jest": "^29.7.0", "jest": "^29.7.0",
"typescript": "^5.3.3" "typescript": "^5.3.3"
} }

View file

@ -19,8 +19,8 @@
"dependencies": { "dependencies": {
"@hapi/hapi": "^21.3.3", "@hapi/hapi": "^21.3.3",
"@hapi/hoek": "^11.0.4", "@hapi/hoek": "^11.0.4",
"joi": "^17.12.1", "joi": "^17.12.2",
"next-auth": "4.24.5" "next-auth": "4.24.6"
}, },
"scripts": { "scripts": {
"build": "tsc -p tsconfig.json", "build": "tsc -p tsconfig.json",

View file

@ -74,7 +74,7 @@ const register = async (
); );
} }
server.validator(Joi); server.validator(Joi as any);
let auth = "hapi-nextauth"; let auth = "hapi-nextauth";
if (options.sharedSecret) { if (options.sharedSecret) {
server.dependency(["@hapi/basic"]); server.dependency(["@hapi/basic"]);

View file

@ -1,14 +1,14 @@
"use client"; "use client";
import { FC } from "react"; import { FC } from "react";
import { useTranslate } from "react-polyglot";
import Image from "next/legacy/image";
import Link from "next/link"; import Link from "next/link";
import Image from "next/image";
import { useTranslate } from "react-polyglot";
import { Grid, Container, Box, Button } from "@mui/material"; import { Grid, Container, Box, Button } from "@mui/material";
import { useAppContext } from "./AppProvider"; import { useAppContext } from "./AppProvider";
import { PageHeader } from "./PageHeader";
import { AboutFeature } from "./AboutFeature";
import { AboutBox } from "./AboutBox"; import { AboutBox } from "./AboutBox";
import { AboutFeature } from "./AboutFeature";
import { PageHeader } from "./PageHeader";
import AbstractDiagram from "../images/abstract-diagram.png"; import AbstractDiagram from "../images/abstract-diagram.png";
import AboutHeader from "../images/about-header.png"; import AboutHeader from "../images/about-header.png";
import Globe from "../images/globe.png"; import Globe from "../images/globe.png";
@ -134,7 +134,7 @@ export const About: FC = () => {
{line} {line}
</Box> </Box>
))} ))}
<Link href="mailto:info@digiresilience.org" passHref> <Link href="mailto:info@digiresilience.org">
<Button <Button
sx={{ sx={{
fontSize: 14, fontSize: 14,

View file

@ -1,7 +1,6 @@
"use client"; "use client";
import { FC } from "react"; import { FC } from "react";
// import Link from "next/link";
import { Box } from "@mui/material"; import { Box } from "@mui/material";
import Iframe from "react-iframe"; import Iframe from "react-iframe";
import { useAppContext } from "./AppProvider"; import { useAppContext } from "./AppProvider";

View file

@ -6,44 +6,44 @@
}, },
"dependencies": { "dependencies": {
"@emotion/cache": "^11.11.0", "@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.3", "@emotion/react": "^11.11.4",
"@emotion/server": "^11.11.0", "@emotion/server": "^11.11.0",
"@emotion/styled": "^11.11.0", "@emotion/styled": "^11.11.0",
"@fontsource/playfair-display": "^5.0.19", "@fontsource/playfair-display": "^5.0.20",
"@fontsource/poppins": "^5.0.8", "@fontsource/poppins": "^5.0.8",
"@fontsource/roboto": "^5.0.8", "@fontsource/roboto": "^5.0.8",
"@mui/icons-material": "^5", "@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.165", "@mui/lab": "^5.0.0-alpha.166",
"@mui/material": "^5", "@mui/material": "^5",
"@mui/x-data-grid-pro": "^6.19.4", "@mui/x-data-grid-pro": "^6.19.5",
"@mui/x-date-pickers-pro": "^6.19.4", "@mui/x-date-pickers-pro": "^6.19.5",
"@opensearch-project/opensearch": "^2.5.0", "@opensearch-project/opensearch": "^2.5.0",
"date-fns": "^3.3.1", "date-fns": "^3.3.1",
"http-proxy-middleware": "^2.0.6", "http-proxy-middleware": "^2.0.6",
"material-ui-popup-state": "^5.0.10", "material-ui-popup-state": "^5.0.10",
"next": "14.1.0", "next": "14.1.0",
"next-auth": "^4.24.5", "next-auth": "^4.24.6",
"next-http-proxy-middleware": "^1.2.6", "next-http-proxy-middleware": "^1.2.6",
"nodemailer": "^6.9.9", "nodemailer": "^6.9.10",
"react": "18.2.0", "react": "18.2.0",
"react-cookie": "^7.0.2", "react-cookie": "^7.1.0",
"react-cookie-consent": "^9.0.0", "react-cookie-consent": "^9.0.0",
"react-dom": "18.2.0", "react-dom": "18.2.0",
"react-iframe": "^1.8.5", "react-iframe": "^1.8.5",
"react-markdown": "^9.0.1", "react-markdown": "^9.0.1",
"react-polyglot": "^0.7.2", "react-polyglot": "^0.7.2",
"sharp": "^0.33.2", "sharp": "^0.33.2",
"swr": "^2.2.4", "swr": "^2.2.5",
"tss-react": "^4.9.4", "tss-react": "^4.9.4",
"uuid": "^9.0.1" "uuid": "^9.0.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.23.9", "@babel/core": "^7.23.9",
"@types/node": "^20.11.17", "@types/node": "^20.11.21",
"@types/react": "18.2.55", "@types/react": "18.2.60",
"@types/uuid": "^9.0.8", "@types/uuid": "^9.0.8",
"babel-loader": "^9.1.3", "babel-loader": "^9.1.3",
"eslint": "^8.56.0", "eslint": "^8.57.0",
"eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb": "^19.0.4",
"eslint-config-next": "^14.1.0", "eslint-config-next": "^14.1.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",

File diff suppressed because one or more lines are too long

View file

@ -24,7 +24,7 @@
"camelcase-keys": "^9.1.3", "camelcase-keys": "^9.1.3",
"pg-monitor": "^2.0.0", "pg-monitor": "^2.0.0",
"tsc-watch": "^6.0.4", "tsc-watch": "^6.0.4",
"typedoc": "^0.25.8", "typedoc": "^0.25.9",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },
"dependencies": { "dependencies": {
@ -52,11 +52,11 @@
"figlet": "^1.7.0", "figlet": "^1.7.0",
"hapi-pino": "^12.1.0", "hapi-pino": "^12.1.0",
"http-terminator": "^3.2.0", "http-terminator": "^3.2.0",
"joi": "^17.12.1", "joi": "^17.12.2",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"next-auth": "^4.24.5", "next-auth": "^4.24.6",
"pg-promise": "^11.5.4", "pg-promise": "^11.5.4",
"pino": "^8.18.0", "pino": "^8.19.0",
"pino-pretty": "^10.3.1", "pino-pretty": "^10.3.1",
"prom-client": "^15.x.x", "prom-client": "^15.x.x",
"uuid": "^9.0.1" "uuid": "^9.0.1"

View file

@ -13,12 +13,12 @@
"@babel/core": "7.23.9", "@babel/core": "7.23.9",
"@babel/preset-env": "7.23.9", "@babel/preset-env": "7.23.9",
"@babel/preset-typescript": "7.23.3", "@babel/preset-typescript": "7.23.3",
"eslint": "^8.56.0", "eslint": "^8.57.0",
"pino-pretty": "^10.3.1", "pino-pretty": "^10.3.1",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"tsc-watch": "^6.0.4", "tsc-watch": "^6.0.4",
"typedoc": "^0.25.8", "typedoc": "^0.25.9",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },
"files": [ "files": [

View file

@ -21,14 +21,14 @@
"@babel/preset-env": "7.23.9", "@babel/preset-env": "7.23.9",
"@babel/preset-typescript": "7.23.3", "@babel/preset-typescript": "7.23.3",
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"eslint": "^8.56.0", "eslint": "^8.57.0",
"jest": "^29.7.0", "jest": "^29.7.0",
"jest-junit": "^16.0.0", "jest-junit": "^16.0.0",
"pino-pretty": "^10.3.1", "pino-pretty": "^10.3.1",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"tsc-watch": "^6.0.4", "tsc-watch": "^6.0.4",
"typedoc": "^0.25.8", "typedoc": "^0.25.9",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },
"scripts": { "scripts": {

View file

@ -33,7 +33,7 @@
"jest-config-link": "*", "jest-config-link": "*",
"tsc-watch": "^6.0.4", "tsc-watch": "^6.0.4",
"tsconfig-link": "*", "tsconfig-link": "*",
"typedoc": "^0.25.8" "typedoc": "^0.25.9"
}, },
"dependencies": { "dependencies": {
"backoff": "^2.5.0", "backoff": "^2.5.0",