From 6d4ab21bd30b04ec7bbd28c16882d673de36607b Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 13:12:57 +0000 Subject: [PATCH 01/13] fix dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1b5ac5b6..14bce50c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,7 @@ WORKDIR /app # Copy package.json and package-lock.json COPY package*.json ./ - +COPY prisma/ ./prisma # Install dependencies RUN pnpm install From c14b2093ff7704b49ffb25ea80961870993b949a Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 13:40:17 +0000 Subject: [PATCH 02/13] add database url --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 14bce50c..29cc3eae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ ARG SUPABASE_PROJECT_REF ARG GITHUB_PROXY_CALLBACK_URL ARG DIGGER_WEBHOOK_SECRET ARG DIGGER_TRIGGER_APPLY_URL +ARG DATABASE_URL ENV NEXT_PUBLIC_SSO_DOMAIN=$NEXT_PUBLIC_SSO_DOMAIN ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY @@ -24,6 +25,7 @@ ENV SUPABASE_PROJECT_REF=${SUPABASE_PROJECT_REF} ENV GITHUB_PROXY_CALLBACK_URL=${GITHUB_PROXY_CALLBACK_URL} ENV DIGGER_WEBHOOK_SECRET=${DIGGER_WEBHOOK_SECRET} ENV DIGGER_TRIGGER_APPLY_URL=${DIGGER_TRIGGER_APPLY_URL} +ENV DATABASE_URL=${DATABASE_URL} # Install pnpm RUN npm install -g pnpm From de1afde287504bcd94a2f96f54abf86dbd13d110 Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 13:53:33 +0000 Subject: [PATCH 03/13] only perform during start --- Dockerfile | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 29cc3eae..b1fa78e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ WORKDIR /app # Copy package.json and package-lock.json COPY package*.json ./ -COPY prisma/ ./prisma + # Install dependencies RUN pnpm install @@ -49,4 +49,4 @@ RUN CI=true pnpm run build EXPOSE 3000 # Start the application -CMD ["pnpm", "start"] +ENTRYPOINT "pnpm run prisma:generate && pnpm start" diff --git a/package.json b/package.json index 25de163f..c34a8ea1 100644 --- a/package.json +++ b/package.json @@ -192,7 +192,7 @@ "start": "next start", "generate:types": "supabase gen types --lang=typescript --linked --schema public > src/lib/database.types.ts", "generate:types:local": "supabase gen types --lang=typescript --local > src/lib/database.types.ts", - "postinstall": "prisma generate --sql", + "prisma:generate": "prisma generate --sql", "build": "next build", "test:e2e": "cross-env NODE_ENV=test playwright test", "test:e2e:ui": "cross-env NODE_ENV=test playwright test --ui", From 5a6db1195266aca55791b66a0e35406d69bc21bc Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 13:54:07 +0000 Subject: [PATCH 04/13] remove unnecessary arg --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b1fa78e5..6eb99bc4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,6 @@ ARG SUPABASE_PROJECT_REF ARG GITHUB_PROXY_CALLBACK_URL ARG DIGGER_WEBHOOK_SECRET ARG DIGGER_TRIGGER_APPLY_URL -ARG DATABASE_URL ENV NEXT_PUBLIC_SSO_DOMAIN=$NEXT_PUBLIC_SSO_DOMAIN ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY @@ -25,7 +24,6 @@ ENV SUPABASE_PROJECT_REF=${SUPABASE_PROJECT_REF} ENV GITHUB_PROXY_CALLBACK_URL=${GITHUB_PROXY_CALLBACK_URL} ENV DIGGER_WEBHOOK_SECRET=${DIGGER_WEBHOOK_SECRET} ENV DIGGER_TRIGGER_APPLY_URL=${DIGGER_TRIGGER_APPLY_URL} -ENV DATABASE_URL=${DATABASE_URL} # Install pnpm RUN npm install -g pnpm From 7c2e6ad4c78e06da48a7e133c484c3ba99714370 Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 14:08:53 +0000 Subject: [PATCH 05/13] remove prisma sql requirement --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index c34a8ea1..e21a0add 100644 --- a/package.json +++ b/package.json @@ -192,6 +192,7 @@ "start": "next start", "generate:types": "supabase gen types --lang=typescript --linked --schema public > src/lib/database.types.ts", "generate:types:local": "supabase gen types --lang=typescript --local > src/lib/database.types.ts", + "postinstall": "prisma generate", "prisma:generate": "prisma generate --sql", "build": "next build", "test:e2e": "cross-env NODE_ENV=test playwright test", From e7b503ad84cc86a8c6e988241e3ab3e96f6b12c9 Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 14:11:04 +0000 Subject: [PATCH 06/13] update dockerfile --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6eb99bc4..a5e352e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,8 @@ RUN npm install -g pnpm WORKDIR /app # Copy package.json and package-lock.json -COPY package*.json ./ +COPY package*.json ./COPY package*.json ./ +COPY prisma ./prisma # Install dependencies RUN pnpm install From 1d7678c15d845fcbe2c52af877e8b50a804335d6 Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 14:15:09 +0000 Subject: [PATCH 07/13] schema.prisma --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e21a0add..12ddd51e 100644 --- a/package.json +++ b/package.json @@ -192,7 +192,7 @@ "start": "next start", "generate:types": "supabase gen types --lang=typescript --linked --schema public > src/lib/database.types.ts", "generate:types:local": "supabase gen types --lang=typescript --local > src/lib/database.types.ts", - "postinstall": "prisma generate", + "postinstall": "prisma generate --schema prisma/schema.prisma", "prisma:generate": "prisma generate --sql", "build": "next build", "test:e2e": "cross-env NODE_ENV=test playwright test", From 364b0ba2ac41a96c921e3665fb55e2a6b9426095 Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 14:16:43 +0000 Subject: [PATCH 08/13] fix dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a5e352e5..2d51eb55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,7 @@ RUN npm install -g pnpm WORKDIR /app # Copy package.json and package-lock.json -COPY package*.json ./COPY package*.json ./ +COPY package*.json ./ COPY prisma ./prisma # Install dependencies From 297a43a3d93a7132518f2f841061ec7c6e9bd33a Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 14:26:39 +0000 Subject: [PATCH 09/13] fix package json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 12ddd51e..231d65ca 100644 --- a/package.json +++ b/package.json @@ -192,7 +192,7 @@ "start": "next start", "generate:types": "supabase gen types --lang=typescript --linked --schema public > src/lib/database.types.ts", "generate:types:local": "supabase gen types --lang=typescript --local > src/lib/database.types.ts", - "postinstall": "prisma generate --schema prisma/schema.prisma", + "preinstall": "prisma generate --schema prisma/schema.prisma", "prisma:generate": "prisma generate --sql", "build": "next build", "test:e2e": "cross-env NODE_ENV=test playwright test", From 3f15b852666f6547d25320f5b76440e0704943ef Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 15:24:49 +0000 Subject: [PATCH 10/13] prsiam generate --- Dockerfile | 3 ++- package.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2d51eb55..d4864ea3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ COPY package*.json ./ COPY prisma ./prisma # Install dependencies +RUN pnpm run prisma:generate RUN pnpm install # Copy the rest of the application code @@ -48,4 +49,4 @@ RUN CI=true pnpm run build EXPOSE 3000 # Start the application -ENTRYPOINT "pnpm run prisma:generate && pnpm start" +ENTRYPOINT "pnpm start" diff --git a/package.json b/package.json index 231d65ca..d08596f5 100644 --- a/package.json +++ b/package.json @@ -193,7 +193,8 @@ "generate:types": "supabase gen types --lang=typescript --linked --schema public > src/lib/database.types.ts", "generate:types:local": "supabase gen types --lang=typescript --local > src/lib/database.types.ts", "preinstall": "prisma generate --schema prisma/schema.prisma", - "prisma:generate": "prisma generate --sql", + "prisma:generate": "prisma generate", + "prisma:generate-sql": "prisma generate --sql", "build": "next build", "test:e2e": "cross-env NODE_ENV=test playwright test", "test:e2e:ui": "cross-env NODE_ENV=test playwright test --ui", From 3a163ad6fd26bb5d204715124b3d475fb5b1720f Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 15:26:58 +0000 Subject: [PATCH 11/13] reorder --- Dockerfile | 2 +- package.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d4864ea3..c3a322b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,8 +36,8 @@ COPY package*.json ./ COPY prisma ./prisma # Install dependencies -RUN pnpm run prisma:generate RUN pnpm install +RUN pnpm run prisma:generate # Copy the rest of the application code COPY . . diff --git a/package.json b/package.json index d08596f5..1b582401 100644 --- a/package.json +++ b/package.json @@ -192,7 +192,6 @@ "start": "next start", "generate:types": "supabase gen types --lang=typescript --linked --schema public > src/lib/database.types.ts", "generate:types:local": "supabase gen types --lang=typescript --local > src/lib/database.types.ts", - "preinstall": "prisma generate --schema prisma/schema.prisma", "prisma:generate": "prisma generate", "prisma:generate-sql": "prisma generate --sql", "build": "next build", From 194c6421caad4a420a5035e1f8061ccea568c8c5 Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 16:50:16 +0000 Subject: [PATCH 12/13] attempt to fix dockerfile --- Dockerfile | 4 ++-- package.json | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index c3a322b3..cd498d90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Use an official Node runtime as the base image FROM node:18-alpine - +ARG DATABASE_URL ARG NEXT_PUBLIC_SSO_DOMAIN ARG NEXT_PUBLIC_SUPABASE_URL ARG NEXT_PUBLIC_SUPABASE_ANON_KEY @@ -24,6 +24,7 @@ ENV SUPABASE_PROJECT_REF=${SUPABASE_PROJECT_REF} ENV GITHUB_PROXY_CALLBACK_URL=${GITHUB_PROXY_CALLBACK_URL} ENV DIGGER_WEBHOOK_SECRET=${DIGGER_WEBHOOK_SECRET} ENV DIGGER_TRIGGER_APPLY_URL=${DIGGER_TRIGGER_APPLY_URL} +ENV DATABASE_URL=${DATABASE_URL} # Install pnpm RUN npm install -g pnpm @@ -37,7 +38,6 @@ COPY prisma ./prisma # Install dependencies RUN pnpm install -RUN pnpm run prisma:generate # Copy the rest of the application code COPY . . diff --git a/package.json b/package.json index 1b582401..7b70a933 100644 --- a/package.json +++ b/package.json @@ -192,8 +192,7 @@ "start": "next start", "generate:types": "supabase gen types --lang=typescript --linked --schema public > src/lib/database.types.ts", "generate:types:local": "supabase gen types --lang=typescript --local > src/lib/database.types.ts", - "prisma:generate": "prisma generate", - "prisma:generate-sql": "prisma generate --sql", + "postinstall": "prisma generate --sql", "build": "next build", "test:e2e": "cross-env NODE_ENV=test playwright test", "test:e2e:ui": "cross-env NODE_ENV=test playwright test --ui", @@ -207,7 +206,7 @@ "@microflash/rehype-slugify": "^1.0.0", "@next/eslint-plugin-next": "^14.0.0", "@playwright/test": "^1.42.1", - "@prisma/client": "^5.20.0", + "@prisma/client": "^5.21.1", "@testing-library/react": "^14.0.0", "@types/events": "^3.0.1", "@types/formidable": "^3.4.0", @@ -241,7 +240,7 @@ "pg": "^8.11.3", "postcss": "^8.4.20", "prettier": "^3.0.0", - "prisma": "^5.20.0", + "prisma": "^5.21.1", "react-spring": "^9.7.3", "rehype-autolink-headings": "^7.0.0", "rehype-parse": "^9.0.0", From 82bef1038906695bb33ca6bb1cba9151d483a2b0 Mon Sep 17 00:00:00 2001 From: motatoes Date: Wed, 20 Nov 2024 17:33:50 +0000 Subject: [PATCH 13/13] fix pnpm lock --- pnpm-lock.yaml | 70 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99c20df4..5241628a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -550,8 +550,8 @@ importers: specifier: ^1.42.1 version: 1.45.1 '@prisma/client': - specifier: ^5.20.0 - version: 5.20.0(prisma@5.20.0) + specifier: ^5.21.1 + version: 5.21.1(prisma@5.21.1) '@testing-library/react': specifier: ^14.0.0 version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -652,8 +652,8 @@ importers: specifier: ^3.0.0 version: 3.3.3 prisma: - specifier: ^5.20.0 - version: 5.20.0 + specifier: ^5.21.1 + version: 5.21.1 react-spring: specifier: ^9.7.3 version: 9.7.3(@react-three/fiber@8.16.8(react-dom@18.3.1(react@18.3.1))(react-native@0.74.3(@babel/core@7.24.9)(@babel/preset-env@7.24.8(@babel/core@7.24.9))(@types/react@18.3.2)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(three@0.166.1))(konva@9.3.13)(react-dom@18.3.1(react@18.3.1))(react-konva@18.2.10(konva@9.3.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.74.3(@babel/core@7.24.9)(@babel/preset-env@7.24.8(@babel/core@7.24.9))(@types/react@18.3.2)(encoding@0.1.13)(react@18.3.1))(react-zdog@1.2.2)(react@18.3.1)(three@0.166.1)(zdog@1.1.3) @@ -2286,8 +2286,8 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@prisma/client@5.20.0': - resolution: {integrity: sha512-CLv55ZuMuUawMsxoqxGtLT3bEZoa2W8L3Qnp6rDIFWy+ZBrUcOFKdoeGPSnbBqxc3SkdxJrF+D1veN/WNynZYA==} + '@prisma/client@5.21.1': + resolution: {integrity: sha512-3n+GgbAZYjaS/k0M03yQsQfR1APbr411r74foknnsGpmhNKBG49VuUkxIU6jORgvJPChoD4WC4PqoHImN1FP0w==} engines: {node: '>=16.13'} peerDependencies: prisma: '*' @@ -2295,20 +2295,20 @@ packages: prisma: optional: true - '@prisma/debug@5.20.0': - resolution: {integrity: sha512-oCx79MJ4HSujokA8S1g0xgZUGybD4SyIOydoHMngFYiwEwYDQ5tBQkK5XoEHuwOYDKUOKRn/J0MEymckc4IgsQ==} + '@prisma/debug@5.21.1': + resolution: {integrity: sha512-uY8SAhcnORhvgtOrNdvWS98Aq/nkQ9QDUxrWAgW8XrCZaI3j2X7zb7Xe6GQSh6xSesKffFbFlkw0c2luHQviZA==} - '@prisma/engines-version@5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284': - resolution: {integrity: sha512-Lg8AS5lpi0auZe2Mn4gjuCg081UZf88k3cn0RCwHgR+6cyHHpttPZBElJTHf83ZGsRNAmVCZCfUGA57WB4u4JA==} + '@prisma/engines-version@5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36': + resolution: {integrity: sha512-qvnEflL0//lh44S/T9NcvTMxfyowNeUxTunPcDfKPjyJNrCNf2F1zQLcUv5UHAruECpX+zz21CzsC7V2xAeM7Q==} - '@prisma/engines@5.20.0': - resolution: {integrity: sha512-DtqkP+hcZvPEbj8t8dK5df2b7d3B8GNauKqaddRRqQBBlgkbdhJkxhoJTrOowlS3vaRt2iMCkU0+CSNn0KhqAQ==} + '@prisma/engines@5.21.1': + resolution: {integrity: sha512-hGVTldUkIkTwoV8//hmnAAiAchi4oMEKD3aW5H2RrnI50tTdwza7VQbTTAyN3OIHWlK5DVg6xV7X8N/9dtOydA==} - '@prisma/fetch-engine@5.20.0': - resolution: {integrity: sha512-JVcaPXC940wOGpCOwuqQRTz6I9SaBK0c1BAyC1pcz9xBi+dzFgUu3G/p9GV1FhFs9OKpfSpIhQfUJE9y00zhqw==} + '@prisma/fetch-engine@5.21.1': + resolution: {integrity: sha512-70S31vgpCGcp9J+mh/wHtLCkVezLUqe/fGWk3J3JWZIN7prdYSlr1C0niaWUyNK2VflLXYi8kMjAmSxUVq6WGQ==} - '@prisma/get-platform@5.20.0': - resolution: {integrity: sha512-8/+CehTZZNzJlvuryRgc77hZCWrUDYd/PmlZ7p2yNXtmf2Una4BWnTbak3us6WVdqoz5wmptk6IhsXdG2v5fmA==} + '@prisma/get-platform@5.21.1': + resolution: {integrity: sha512-sRxjL3Igst3ct+e8ya/x//cDXmpLbZQ5vfps2N4tWl4VGKQAmym77C/IG/psSMsQKszc8uFC/q1dgmKFLUgXZQ==} '@radix-ui/number@1.1.0': resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} @@ -7986,8 +7986,8 @@ packages: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} - prisma@5.20.0: - resolution: {integrity: sha512-6obb3ucKgAnsGS9x9gLOe8qa51XxvJ3vLQtmyf52CTey1Qcez3A6W6ROH5HIz5Q5bW+0VpmZb8WBohieMFGpig==} + prisma@5.21.1: + resolution: {integrity: sha512-PB+Iqzld/uQBPaaw2UVIk84kb0ITsLajzsxzsadxxl54eaU5Gyl2/L02ysivHxK89t7YrfQJm+Ggk37uvM70oQ==} engines: {node: '>=16.13'} hasBin: true @@ -11657,30 +11657,30 @@ snapshots: '@popperjs/core@2.11.8': {} - '@prisma/client@5.20.0(prisma@5.20.0)': + '@prisma/client@5.21.1(prisma@5.21.1)': optionalDependencies: - prisma: 5.20.0 + prisma: 5.21.1 - '@prisma/debug@5.20.0': {} + '@prisma/debug@5.21.1': {} - '@prisma/engines-version@5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284': {} + '@prisma/engines-version@5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36': {} - '@prisma/engines@5.20.0': + '@prisma/engines@5.21.1': dependencies: - '@prisma/debug': 5.20.0 - '@prisma/engines-version': 5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284 - '@prisma/fetch-engine': 5.20.0 - '@prisma/get-platform': 5.20.0 + '@prisma/debug': 5.21.1 + '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 + '@prisma/fetch-engine': 5.21.1 + '@prisma/get-platform': 5.21.1 - '@prisma/fetch-engine@5.20.0': + '@prisma/fetch-engine@5.21.1': dependencies: - '@prisma/debug': 5.20.0 - '@prisma/engines-version': 5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284 - '@prisma/get-platform': 5.20.0 + '@prisma/debug': 5.21.1 + '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 + '@prisma/get-platform': 5.21.1 - '@prisma/get-platform@5.20.0': + '@prisma/get-platform@5.21.1': dependencies: - '@prisma/debug': 5.20.0 + '@prisma/debug': 5.21.1 '@radix-ui/number@1.1.0': {} @@ -18653,9 +18653,9 @@ snapshots: pretty-hrtime@1.0.3: {} - prisma@5.20.0: + prisma@5.21.1: dependencies: - '@prisma/engines': 5.20.0 + '@prisma/engines': 5.21.1 optionalDependencies: fsevents: 2.3.3