diff --git a/package-lock.json b/package-lock.json
index 880111e8841f00c4d9f5d93f0742878a1b0f8aef..18acc3abe41e1cc9436721993b4d4f32b72672ba 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -44,6 +44,7 @@
         "@angular-devkit/architect": "0.1500.0",
         "@angular-devkit/build-angular": "15.0.0",
         "@angular-devkit/core": "15.0.0",
+        "@angular-devkit/schematics": "^15.2.5",
         "@angular-eslint/builder": "15.1.0",
         "@angular-eslint/eslint-plugin": "15.1.0",
         "@angular-eslint/eslint-plugin-template": "15.1.0",
@@ -434,37 +435,35 @@
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@angular-devkit/schematics": {
-      "version": "14.2.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.9.tgz",
-      "integrity": "sha512-E7muTIbDqysjQld5r9AGXiW8vKHadkHaGe+0QONpmr8TMAtTMqBFxBXRG9vajiUzt/GcFL9dbGGEwM/1dc7VPQ==",
-      "peer": true,
+      "version": "15.2.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.5.tgz",
+      "integrity": "sha512-zm7chQRQtPXQzzSAvK/mbZ+RJ3eP7hlU53yyJ/i6kjWAh3Y5uiSHNYGmqhhAHFuzw4Jhb4OC2S9iycxrqmI8TA==",
       "dependencies": {
-        "@angular-devkit/core": "14.2.9",
-        "jsonc-parser": "3.1.0",
-        "magic-string": "0.26.2",
+        "@angular-devkit/core": "15.2.5",
+        "jsonc-parser": "3.2.0",
+        "magic-string": "0.29.0",
         "ora": "5.4.1",
         "rxjs": "6.6.7"
       },
       "engines": {
-        "node": "^14.15.0 || >=16.10.0",
+        "node": "^14.20.0 || ^16.13.0 || >=18.10.0",
         "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
         "yarn": ">= 1.13.0"
       }
     },
     "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": {
-      "version": "14.2.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.9.tgz",
-      "integrity": "sha512-+e2OmzH/0gjNNH96xJDgshbuIM/NPSwE0NQlgU/KRb8TZt+7ooTmZJ1vk25HKV2YS99BEYzUSqvVAaJtxX/6Qw==",
-      "peer": true,
+      "version": "15.2.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.5.tgz",
+      "integrity": "sha512-ZfjEkAe2yYeekc3xjZ/U4pK9nb+w6BFwAEjou6mE8PWZH7iYskm0YCCXkmu+B+zViEcCLhAkJAxu9MwX4efd8g==",
       "dependencies": {
-        "ajv": "8.11.0",
+        "ajv": "8.12.0",
         "ajv-formats": "2.1.1",
-        "jsonc-parser": "3.1.0",
+        "jsonc-parser": "3.2.0",
         "rxjs": "6.6.7",
         "source-map": "0.7.4"
       },
       "engines": {
-        "node": "^14.15.0 || >=16.10.0",
+        "node": "^14.20.0 || ^16.13.0 || >=18.10.0",
         "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
         "yarn": ">= 1.13.0"
       },
@@ -477,19 +476,27 @@
         }
       }
     },
-    "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz",
-      "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==",
-      "peer": true
+    "node_modules/@angular-devkit/schematics/node_modules/ajv": {
+      "version": "8.12.0",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+      "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "json-schema-traverse": "^1.0.0",
+        "require-from-string": "^2.0.2",
+        "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
     },
     "node_modules/@angular-devkit/schematics/node_modules/magic-string": {
-      "version": "0.26.2",
-      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
-      "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
-      "peer": true,
+      "version": "0.29.0",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz",
+      "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==",
       "dependencies": {
-        "sourcemap-codec": "^1.4.8"
+        "@jridgewell/sourcemap-codec": "^1.4.13"
       },
       "engines": {
         "node": ">=12"
@@ -499,7 +506,6 @@
       "version": "6.6.7",
       "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
       "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
-      "peer": true,
       "dependencies": {
         "tslib": "^1.9.0"
       },
@@ -510,8 +516,7 @@
     "node_modules/@angular-devkit/schematics/node_modules/tslib": {
       "version": "1.14.1",
       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-      "peer": true
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@angular-eslint/builder": {
       "version": "15.1.0",
@@ -27232,51 +27237,52 @@
       }
     },
     "@angular-devkit/schematics": {
-      "version": "14.2.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.9.tgz",
-      "integrity": "sha512-E7muTIbDqysjQld5r9AGXiW8vKHadkHaGe+0QONpmr8TMAtTMqBFxBXRG9vajiUzt/GcFL9dbGGEwM/1dc7VPQ==",
-      "peer": true,
+      "version": "15.2.5",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.5.tgz",
+      "integrity": "sha512-zm7chQRQtPXQzzSAvK/mbZ+RJ3eP7hlU53yyJ/i6kjWAh3Y5uiSHNYGmqhhAHFuzw4Jhb4OC2S9iycxrqmI8TA==",
       "requires": {
-        "@angular-devkit/core": "14.2.9",
-        "jsonc-parser": "3.1.0",
-        "magic-string": "0.26.2",
+        "@angular-devkit/core": "15.2.5",
+        "jsonc-parser": "3.2.0",
+        "magic-string": "0.29.0",
         "ora": "5.4.1",
         "rxjs": "6.6.7"
       },
       "dependencies": {
         "@angular-devkit/core": {
-          "version": "14.2.9",
-          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.9.tgz",
-          "integrity": "sha512-+e2OmzH/0gjNNH96xJDgshbuIM/NPSwE0NQlgU/KRb8TZt+7ooTmZJ1vk25HKV2YS99BEYzUSqvVAaJtxX/6Qw==",
-          "peer": true,
+          "version": "15.2.5",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.5.tgz",
+          "integrity": "sha512-ZfjEkAe2yYeekc3xjZ/U4pK9nb+w6BFwAEjou6mE8PWZH7iYskm0YCCXkmu+B+zViEcCLhAkJAxu9MwX4efd8g==",
           "requires": {
-            "ajv": "8.11.0",
+            "ajv": "8.12.0",
             "ajv-formats": "2.1.1",
-            "jsonc-parser": "3.1.0",
+            "jsonc-parser": "3.2.0",
             "rxjs": "6.6.7",
             "source-map": "0.7.4"
           }
         },
-        "jsonc-parser": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz",
-          "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==",
-          "peer": true
+        "ajv": {
+          "version": "8.12.0",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+          "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "json-schema-traverse": "^1.0.0",
+            "require-from-string": "^2.0.2",
+            "uri-js": "^4.2.2"
+          }
         },
         "magic-string": {
-          "version": "0.26.2",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
-          "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
-          "peer": true,
+          "version": "0.29.0",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz",
+          "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==",
           "requires": {
-            "sourcemap-codec": "^1.4.8"
+            "@jridgewell/sourcemap-codec": "^1.4.13"
           }
         },
         "rxjs": {
           "version": "6.6.7",
           "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
           "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
-          "peer": true,
           "requires": {
             "tslib": "^1.9.0"
           }
@@ -27284,8 +27290,7 @@
         "tslib": {
           "version": "1.14.1",
           "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-          "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-          "peer": true
+          "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
         }
       }
     },
diff --git a/package.json b/package.json
index 41a146d9472cadd6d28c53f088d846d2db74a85f..53d1aa11e5f283bbf872897a0daab026c17c154a 100644
--- a/package.json
+++ b/package.json
@@ -64,6 +64,7 @@
     "@angular-devkit/architect": "0.1500.0",
     "@angular-devkit/build-angular": "15.0.0",
     "@angular-devkit/core": "15.0.0",
+    "@angular-devkit/schematics": "^15.2.5",
     "@angular-eslint/builder": "15.1.0",
     "@angular-eslint/eslint-plugin": "15.1.0",
     "@angular-eslint/eslint-plugin-template": "15.1.0",