Fixing SSR
This commit is contained in:
		
							parent
							
								
									6310ef7f57
								
							
						
					
					
						commit
						0825c7a6d6
					
				
							
								
								
									
										434
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										434
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							@ -277,39 +277,11 @@
 | 
			
		||||
        "semver": "bin/semver.js"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/node_modules/agent-base": {
 | 
			
		||||
      "version": "7.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": "^4.3.4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/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=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/node_modules/https-proxy-agent": {
 | 
			
		||||
      "version": "7.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "agent-base": "^7.0.2",
 | 
			
		||||
        "debug": "4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/node_modules/jsonc-parser": {
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/node_modules/loader-utils": {
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz",
 | 
			
		||||
@ -329,14 +301,6 @@
 | 
			
		||||
        "url": "https://github.com/sponsors/jonschlinkert"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/node_modules/piscina": {
 | 
			
		||||
      "version": "4.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==",
 | 
			
		||||
      "optionalDependencies": {
 | 
			
		||||
        "nice-napi": "^1.0.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/node_modules/semver": {
 | 
			
		||||
      "version": "7.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
 | 
			
		||||
@ -415,11 +379,6 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/core/node_modules/jsonc-parser": {
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/core/node_modules/picomatch": {
 | 
			
		||||
      "version": "4.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz",
 | 
			
		||||
@ -448,11 +407,6 @@
 | 
			
		||||
        "yarn": ">= 1.13.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": {
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular/animations": {
 | 
			
		||||
      "version": "17.3.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.1.tgz",
 | 
			
		||||
@ -543,11 +497,6 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
 | 
			
		||||
      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular/cli/node_modules/jsonc-parser": {
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular/cli/node_modules/semver": {
 | 
			
		||||
      "version": "7.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
 | 
			
		||||
@ -3628,29 +3577,6 @@
 | 
			
		||||
        "node": "^16.14.0 || >=18.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@npmcli/agent/node_modules/agent-base": {
 | 
			
		||||
      "version": "7.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": "^4.3.4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@npmcli/agent/node_modules/https-proxy-agent": {
 | 
			
		||||
      "version": "7.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "agent-base": "^7.0.2",
 | 
			
		||||
        "debug": "4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@npmcli/agent/node_modules/lru-cache": {
 | 
			
		||||
      "version": "10.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
 | 
			
		||||
@ -4069,11 +3995,6 @@
 | 
			
		||||
        "yarn": ">= 1.13.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@schematics/angular/node_modules/jsonc-parser": {
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@sideway/address": {
 | 
			
		||||
      "version": "4.1.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
 | 
			
		||||
@ -4974,6 +4895,17 @@
 | 
			
		||||
        "node": ">=8.9"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/agent-base": {
 | 
			
		||||
      "version": "7.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": "^4.3.4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/aggregate-error": {
 | 
			
		||||
      "version": "3.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
 | 
			
		||||
@ -5161,6 +5093,11 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/array-flatten": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/array-from": {
 | 
			
		||||
      "version": "2.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
 | 
			
		||||
@ -5561,12 +5498,12 @@
 | 
			
		||||
      "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/body-parser": {
 | 
			
		||||
      "version": "1.20.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
 | 
			
		||||
      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
 | 
			
		||||
      "version": "1.20.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
 | 
			
		||||
      "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "bytes": "3.1.2",
 | 
			
		||||
        "content-type": "~1.0.4",
 | 
			
		||||
        "content-type": "~1.0.5",
 | 
			
		||||
        "debug": "2.6.9",
 | 
			
		||||
        "depd": "2.0.0",
 | 
			
		||||
        "destroy": "1.2.0",
 | 
			
		||||
@ -5574,7 +5511,7 @@
 | 
			
		||||
        "iconv-lite": "0.4.24",
 | 
			
		||||
        "on-finished": "2.4.1",
 | 
			
		||||
        "qs": "6.11.0",
 | 
			
		||||
        "raw-body": "2.5.1",
 | 
			
		||||
        "raw-body": "2.5.2",
 | 
			
		||||
        "type-is": "~1.6.18",
 | 
			
		||||
        "unpipe": "1.0.0"
 | 
			
		||||
      },
 | 
			
		||||
@ -7212,9 +7149,9 @@
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/content-type": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.6"
 | 
			
		||||
      }
 | 
			
		||||
@ -7225,9 +7162,9 @@
 | 
			
		||||
      "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/cookie": {
 | 
			
		||||
      "version": "0.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
 | 
			
		||||
      "version": "0.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.6"
 | 
			
		||||
      }
 | 
			
		||||
@ -9489,16 +9426,16 @@
 | 
			
		||||
      "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/express": {
 | 
			
		||||
      "version": "4.18.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
 | 
			
		||||
      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
 | 
			
		||||
      "version": "4.19.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz",
 | 
			
		||||
      "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "accepts": "~1.3.8",
 | 
			
		||||
        "array-flatten": "1.1.1",
 | 
			
		||||
        "body-parser": "1.20.1",
 | 
			
		||||
        "body-parser": "1.20.2",
 | 
			
		||||
        "content-disposition": "0.5.4",
 | 
			
		||||
        "content-type": "~1.0.4",
 | 
			
		||||
        "cookie": "0.5.0",
 | 
			
		||||
        "cookie": "0.6.0",
 | 
			
		||||
        "cookie-signature": "1.0.6",
 | 
			
		||||
        "debug": "2.6.9",
 | 
			
		||||
        "depd": "2.0.0",
 | 
			
		||||
@ -9529,11 +9466,6 @@
 | 
			
		||||
        "node": ">= 0.10.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/express/node_modules/array-flatten": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/express/node_modules/debug": {
 | 
			
		||||
      "version": "2.6.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
 | 
			
		||||
@ -10048,9 +9980,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/fs-monkey": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ=="
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/fs.realpath": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
@ -10593,17 +10525,6 @@
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/http-proxy-agent/node_modules/agent-base": {
 | 
			
		||||
      "version": "7.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": "^4.3.4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/http-proxy-middleware": {
 | 
			
		||||
      "version": "2.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
 | 
			
		||||
@ -10646,6 +10567,18 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/https-proxy-agent": {
 | 
			
		||||
      "version": "7.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "agent-base": "^7.0.2",
 | 
			
		||||
        "debug": "4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/human-signals": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
 | 
			
		||||
@ -11506,10 +11439,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/jsonc-parser": {
 | 
			
		||||
      "version": "3.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
 | 
			
		||||
      "optional": true
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/jsonfile": {
 | 
			
		||||
      "version": "6.1.0",
 | 
			
		||||
@ -13058,9 +12990,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/node-gyp-build": {
 | 
			
		||||
      "version": "4.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
 | 
			
		||||
      "version": "4.8.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
 | 
			
		||||
      "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
 | 
			
		||||
      "optional": true,
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "node-gyp-build": "bin.js",
 | 
			
		||||
@ -13911,6 +13843,14 @@
 | 
			
		||||
        "node": ">=0.10.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/piscina": {
 | 
			
		||||
      "version": "4.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==",
 | 
			
		||||
      "optionalDependencies": {
 | 
			
		||||
        "nice-napi": "^1.0.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/pkg-dir": {
 | 
			
		||||
      "version": "7.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
 | 
			
		||||
@ -14478,9 +14418,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/raw-body": {
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
 | 
			
		||||
      "version": "2.5.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
 | 
			
		||||
      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "bytes": "3.1.2",
 | 
			
		||||
        "http-errors": "2.0.0",
 | 
			
		||||
@ -15682,17 +15622,6 @@
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/socks-proxy-agent/node_modules/agent-base": {
 | 
			
		||||
      "version": "7.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": "^4.3.4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 14"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/source-map": {
 | 
			
		||||
      "version": "0.7.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
 | 
			
		||||
@ -17764,26 +17693,6 @@
 | 
			
		||||
        "webpack": "^4.0.0 || ^5.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/webpack-dev-server/node_modules/ws": {
 | 
			
		||||
      "version": "8.16.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
 | 
			
		||||
      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
 | 
			
		||||
      "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
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/webpack-merge": {
 | 
			
		||||
      "version": "5.10.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
 | 
			
		||||
@ -18049,6 +17958,26 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
 | 
			
		||||
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/ws": {
 | 
			
		||||
      "version": "8.16.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
 | 
			
		||||
      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
 | 
			
		||||
      "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
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/xhr2": {
 | 
			
		||||
      "version": "0.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz",
 | 
			
		||||
@ -18390,33 +18319,11 @@
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "agent-base": {
 | 
			
		||||
          "version": "7.1.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
          "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "debug": "^4.3.4"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "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=="
 | 
			
		||||
        },
 | 
			
		||||
        "https-proxy-agent": {
 | 
			
		||||
          "version": "7.0.4",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
 | 
			
		||||
          "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "agent-base": "^7.0.2",
 | 
			
		||||
            "debug": "4"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "jsonc-parser": {
 | 
			
		||||
          "version": "3.2.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
          "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
        },
 | 
			
		||||
        "loader-utils": {
 | 
			
		||||
          "version": "3.2.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz",
 | 
			
		||||
@ -18427,14 +18334,6 @@
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz",
 | 
			
		||||
          "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg=="
 | 
			
		||||
        },
 | 
			
		||||
        "piscina": {
 | 
			
		||||
          "version": "4.4.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz",
 | 
			
		||||
          "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "nice-napi": "^1.0.2"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "semver": {
 | 
			
		||||
          "version": "7.6.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
 | 
			
		||||
@ -18483,11 +18382,6 @@
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
 | 
			
		||||
          "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
 | 
			
		||||
        },
 | 
			
		||||
        "jsonc-parser": {
 | 
			
		||||
          "version": "3.2.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
          "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
        },
 | 
			
		||||
        "picomatch": {
 | 
			
		||||
          "version": "4.0.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz",
 | 
			
		||||
@ -18505,13 +18399,6 @@
 | 
			
		||||
        "magic-string": "0.30.8",
 | 
			
		||||
        "ora": "5.4.1",
 | 
			
		||||
        "rxjs": "7.8.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "jsonc-parser": {
 | 
			
		||||
          "version": "3.2.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
          "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@angular/animations": {
 | 
			
		||||
@ -18578,11 +18465,6 @@
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
 | 
			
		||||
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
 | 
			
		||||
        },
 | 
			
		||||
        "jsonc-parser": {
 | 
			
		||||
          "version": "3.2.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
          "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
        },
 | 
			
		||||
        "semver": {
 | 
			
		||||
          "version": "7.6.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
 | 
			
		||||
@ -20613,23 +20495,6 @@
 | 
			
		||||
        "socks-proxy-agent": "^8.0.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "agent-base": {
 | 
			
		||||
          "version": "7.1.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
          "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "debug": "^4.3.4"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "https-proxy-agent": {
 | 
			
		||||
          "version": "7.0.4",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
 | 
			
		||||
          "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "agent-base": "^7.0.2",
 | 
			
		||||
            "debug": "4"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "lru-cache": {
 | 
			
		||||
          "version": "10.2.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
 | 
			
		||||
@ -20891,13 +20756,6 @@
 | 
			
		||||
        "@angular-devkit/core": "17.3.1",
 | 
			
		||||
        "@angular-devkit/schematics": "17.3.1",
 | 
			
		||||
        "jsonc-parser": "3.2.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "jsonc-parser": {
 | 
			
		||||
          "version": "3.2.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
          "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@sideway/address": {
 | 
			
		||||
@ -21652,6 +21510,14 @@
 | 
			
		||||
        "regex-parser": "^2.2.11"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "agent-base": {
 | 
			
		||||
      "version": "7.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "debug": "^4.3.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "aggregate-error": {
 | 
			
		||||
      "version": "3.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
 | 
			
		||||
@ -21781,6 +21647,11 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
 | 
			
		||||
    },
 | 
			
		||||
    "array-flatten": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
 | 
			
		||||
    },
 | 
			
		||||
    "array-from": {
 | 
			
		||||
      "version": "2.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
 | 
			
		||||
@ -22089,12 +21960,12 @@
 | 
			
		||||
      "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "body-parser": {
 | 
			
		||||
      "version": "1.20.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
 | 
			
		||||
      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
 | 
			
		||||
      "version": "1.20.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
 | 
			
		||||
      "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "bytes": "3.1.2",
 | 
			
		||||
        "content-type": "~1.0.4",
 | 
			
		||||
        "content-type": "~1.0.5",
 | 
			
		||||
        "debug": "2.6.9",
 | 
			
		||||
        "depd": "2.0.0",
 | 
			
		||||
        "destroy": "1.2.0",
 | 
			
		||||
@ -22102,7 +21973,7 @@
 | 
			
		||||
        "iconv-lite": "0.4.24",
 | 
			
		||||
        "on-finished": "2.4.1",
 | 
			
		||||
        "qs": "6.11.0",
 | 
			
		||||
        "raw-body": "2.5.1",
 | 
			
		||||
        "raw-body": "2.5.2",
 | 
			
		||||
        "type-is": "~1.6.18",
 | 
			
		||||
        "unpipe": "1.0.0"
 | 
			
		||||
      },
 | 
			
		||||
@ -23371,9 +23242,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "content-type": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "convert-source-map": {
 | 
			
		||||
      "version": "1.9.0",
 | 
			
		||||
@ -23381,9 +23252,9 @@
 | 
			
		||||
      "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
 | 
			
		||||
    },
 | 
			
		||||
    "cookie": {
 | 
			
		||||
      "version": "0.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
 | 
			
		||||
      "version": "0.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
 | 
			
		||||
    },
 | 
			
		||||
    "cookie-signature": {
 | 
			
		||||
      "version": "1.0.6",
 | 
			
		||||
@ -25120,16 +24991,16 @@
 | 
			
		||||
      "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="
 | 
			
		||||
    },
 | 
			
		||||
    "express": {
 | 
			
		||||
      "version": "4.18.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
 | 
			
		||||
      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
 | 
			
		||||
      "version": "4.19.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz",
 | 
			
		||||
      "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "accepts": "~1.3.8",
 | 
			
		||||
        "array-flatten": "1.1.1",
 | 
			
		||||
        "body-parser": "1.20.1",
 | 
			
		||||
        "body-parser": "1.20.2",
 | 
			
		||||
        "content-disposition": "0.5.4",
 | 
			
		||||
        "content-type": "~1.0.4",
 | 
			
		||||
        "cookie": "0.5.0",
 | 
			
		||||
        "cookie": "0.6.0",
 | 
			
		||||
        "cookie-signature": "1.0.6",
 | 
			
		||||
        "debug": "2.6.9",
 | 
			
		||||
        "depd": "2.0.0",
 | 
			
		||||
@ -25157,11 +25028,6 @@
 | 
			
		||||
        "vary": "~1.1.2"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "array-flatten": {
 | 
			
		||||
          "version": "1.1.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
 | 
			
		||||
          "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
 | 
			
		||||
        },
 | 
			
		||||
        "debug": {
 | 
			
		||||
          "version": "2.6.9",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
 | 
			
		||||
@ -25544,9 +25410,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "fs-monkey": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ=="
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew=="
 | 
			
		||||
    },
 | 
			
		||||
    "fs.realpath": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
@ -25933,16 +25799,6 @@
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "agent-base": "^7.1.0",
 | 
			
		||||
        "debug": "^4.3.4"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "agent-base": {
 | 
			
		||||
          "version": "7.1.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
          "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "debug": "^4.3.4"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "http-proxy-middleware": {
 | 
			
		||||
@ -25973,6 +25829,15 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
 | 
			
		||||
    },
 | 
			
		||||
    "https-proxy-agent": {
 | 
			
		||||
      "version": "7.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "agent-base": "^7.0.2",
 | 
			
		||||
        "debug": "4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "human-signals": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
 | 
			
		||||
@ -26567,10 +26432,9 @@
 | 
			
		||||
      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
 | 
			
		||||
    },
 | 
			
		||||
    "jsonc-parser": {
 | 
			
		||||
      "version": "3.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
 | 
			
		||||
      "optional": true
 | 
			
		||||
      "version": "3.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
 | 
			
		||||
    },
 | 
			
		||||
    "jsonfile": {
 | 
			
		||||
      "version": "6.1.0",
 | 
			
		||||
@ -27824,9 +27688,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node-gyp-build": {
 | 
			
		||||
      "version": "4.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
 | 
			
		||||
      "version": "4.8.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
 | 
			
		||||
      "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
 | 
			
		||||
      "optional": true
 | 
			
		||||
    },
 | 
			
		||||
    "node-releases": {
 | 
			
		||||
@ -28398,6 +28262,14 @@
 | 
			
		||||
      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
 | 
			
		||||
      "optional": true
 | 
			
		||||
    },
 | 
			
		||||
    "piscina": {
 | 
			
		||||
      "version": "4.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "nice-napi": "^1.0.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "pkg-dir": {
 | 
			
		||||
      "version": "7.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
 | 
			
		||||
@ -28774,9 +28646,9 @@
 | 
			
		||||
      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
 | 
			
		||||
    },
 | 
			
		||||
    "raw-body": {
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
 | 
			
		||||
      "version": "2.5.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
 | 
			
		||||
      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "bytes": "3.1.2",
 | 
			
		||||
        "http-errors": "2.0.0",
 | 
			
		||||
@ -29685,16 +29557,6 @@
 | 
			
		||||
        "agent-base": "^7.0.2",
 | 
			
		||||
        "debug": "^4.3.4",
 | 
			
		||||
        "socks": "^2.7.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "agent-base": {
 | 
			
		||||
          "version": "7.1.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
 | 
			
		||||
          "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "debug": "^4.3.4"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "source-map": {
 | 
			
		||||
@ -31103,12 +30965,6 @@
 | 
			
		||||
            "range-parser": "^1.2.1",
 | 
			
		||||
            "schema-utils": "^4.0.0"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "ws": {
 | 
			
		||||
          "version": "8.16.0",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
 | 
			
		||||
          "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
 | 
			
		||||
          "requires": {}
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@ -31275,6 +31131,12 @@
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
 | 
			
		||||
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
 | 
			
		||||
    },
 | 
			
		||||
    "ws": {
 | 
			
		||||
      "version": "8.16.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
 | 
			
		||||
      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
 | 
			
		||||
      "requires": {}
 | 
			
		||||
    },
 | 
			
		||||
    "xhr2": {
 | 
			
		||||
      "version": "0.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz",
 | 
			
		||||
 | 
			
		||||
@ -94,7 +94,7 @@
 | 
			
		||||
    "ngx-infinite-scroll": "^17.0.0",
 | 
			
		||||
    "qrcode": "1.5.1",
 | 
			
		||||
    "rxjs": "~7.8.1",
 | 
			
		||||
    "tinyify": "^3.1.0",
 | 
			
		||||
    "tinyify": "^4.0.0",
 | 
			
		||||
    "tlite": "^0.1.9",
 | 
			
		||||
    "tslib": "~2.6.0",
 | 
			
		||||
    "zone.js": "~0.14.4"
 | 
			
		||||
@ -125,4 +125,4 @@
 | 
			
		||||
  "scarfSettings": {
 | 
			
		||||
    "enabled": false
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,3 @@
 | 
			
		||||
import 'zone.js/dist/zone-node';
 | 
			
		||||
import './src/resources/config.js';
 | 
			
		||||
 | 
			
		||||
import * as domino from 'domino';
 | 
			
		||||
 | 
			
		||||
@ -1,45 +1,82 @@
 | 
			
		||||
import 'zone.js';
 | 
			
		||||
import './src/resources/config.js';
 | 
			
		||||
 | 
			
		||||
import 'zone.js/node';
 | 
			
		||||
 | 
			
		||||
import { APP_BASE_HREF } from '@angular/common';
 | 
			
		||||
import { CommonEngine } from '@angular/ssr';
 | 
			
		||||
import * as express from 'express';
 | 
			
		||||
import { existsSync } from 'node:fs';
 | 
			
		||||
import { join } from 'node:path';
 | 
			
		||||
import bootstrap from './src/main.server';
 | 
			
		||||
import * as fs from 'fs';
 | 
			
		||||
import * as path from 'path';
 | 
			
		||||
import * as domino from 'domino';
 | 
			
		||||
 | 
			
		||||
import { join } from 'path';
 | 
			
		||||
import { AppServerModule } from './src/main.server';
 | 
			
		||||
import { APP_BASE_HREF } from '@angular/common';
 | 
			
		||||
import { existsSync } from 'fs';
 | 
			
		||||
 | 
			
		||||
import { ResizeObserver } from './shims';
 | 
			
		||||
 | 
			
		||||
const commonEngine = new CommonEngine();
 | 
			
		||||
 | 
			
		||||
const template = fs.readFileSync(path.join(process.cwd(), 'dist/mempool/browser/en-US/', 'index.html')).toString();
 | 
			
		||||
const win = domino.createWindow(template);
 | 
			
		||||
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
win.__env = global.__env;
 | 
			
		||||
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
win.matchMedia = (media) => {
 | 
			
		||||
  return {
 | 
			
		||||
    media,
 | 
			
		||||
    matches: true,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
win.setTimeout = (fn) => { fn(); };
 | 
			
		||||
win.document.body.scrollTo = (() => {});
 | 
			
		||||
win['ResizeObserver'] = ResizeObserver;
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
global['window'] = win;
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
global['document'] = win.document;
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
global['history'] = { state: { } };
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
Object.defineProperty(global, 'navigator', {
 | 
			
		||||
  value: win.navigator,
 | 
			
		||||
  writable: true
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
global['localStorage'] = {
 | 
			
		||||
  getItem: () => '',
 | 
			
		||||
  setItem: () => {},
 | 
			
		||||
  removeItem: () => {},
 | 
			
		||||
  clear: () => {},
 | 
			
		||||
  length: 0,
 | 
			
		||||
  key: () => '',
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// The Express app is exported so that it can be used by serverless Functions.
 | 
			
		||||
export function app(): express.Express {
 | 
			
		||||
export function app(locale: string): express.Express {
 | 
			
		||||
  const server = express();
 | 
			
		||||
  const distFolder = join(process.cwd(), 'dist/mempool/browser');
 | 
			
		||||
  const indexHtml = existsSync(join(distFolder, 'index.original.html'))
 | 
			
		||||
    ? join(distFolder, 'index.original.html')
 | 
			
		||||
    : join(distFolder, 'index.html');
 | 
			
		||||
 | 
			
		||||
  const commonEngine = new CommonEngine();
 | 
			
		||||
  const distFolder = join(process.cwd(), `dist/mempool/browser/${locale}`);
 | 
			
		||||
  const indexHtml = join(distFolder, 'index.html');
 | 
			
		||||
 | 
			
		||||
  server.set('view engine', 'html');
 | 
			
		||||
  server.set('views', distFolder);
 | 
			
		||||
 | 
			
		||||
  // Example Express Rest API endpoints
 | 
			
		||||
  // server.get('/api/**', (req, res) => { });
 | 
			
		||||
  // Serve static files from /browser
 | 
			
		||||
  server.get('*.*', express.static(distFolder, {
 | 
			
		||||
    maxAge: '1y'
 | 
			
		||||
  }));
 | 
			
		||||
 | 
			
		||||
  // All regular routes use the Angular engine
 | 
			
		||||
  // static file handler so we send HTTP 404 to nginx
 | 
			
		||||
  server.get('/**.(css|js|json|ico|webmanifest|png|jpg|jpeg|svg|mp4)*', express.static(distFolder, { maxAge: '1y', fallthrough: false }));
 | 
			
		||||
  // handle page routes
 | 
			
		||||
  server.get('*', (req, res, next) => {
 | 
			
		||||
    const { protocol, originalUrl, baseUrl, headers } = req;
 | 
			
		||||
 | 
			
		||||
    commonEngine
 | 
			
		||||
      .render({
 | 
			
		||||
        bootstrap,
 | 
			
		||||
        bootstrap: AppServerModule,
 | 
			
		||||
        documentFilePath: indexHtml,
 | 
			
		||||
        url: `${protocol}://${headers.host}${originalUrl}`,
 | 
			
		||||
        publicPath: distFolder,
 | 
			
		||||
        providers: [
 | 
			
		||||
          { provide: APP_BASE_HREF, useValue: baseUrl },],
 | 
			
		||||
        providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }],
 | 
			
		||||
      })
 | 
			
		||||
      .then((html) => res.send(html))
 | 
			
		||||
      .catch((err) => next(err));
 | 
			
		||||
@ -48,13 +85,15 @@ export function app(): express.Express {
 | 
			
		||||
  return server;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// only used for development mode
 | 
			
		||||
function run(): void {
 | 
			
		||||
  const port = process.env['PORT'] || 4000;
 | 
			
		||||
  const port = process.env.PORT || 4000;
 | 
			
		||||
 | 
			
		||||
  // Start up the Node server
 | 
			
		||||
  const server = app();
 | 
			
		||||
  const server = app('en-US');
 | 
			
		||||
  server.listen(port, () => {
 | 
			
		||||
    console.log(`Node Express server listening on http://localhost:${port}`);
 | 
			
		||||
    console.log(`Node Express server listening on port ${port}`);
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -66,6 +105,4 @@ const mainModule = __non_webpack_require__.main;
 | 
			
		||||
const moduleFilename = mainModule && mainModule.filename || '';
 | 
			
		||||
if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
 | 
			
		||||
  run();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default bootstrap;
 | 
			
		||||
}
 | 
			
		||||
@ -1,112 +0,0 @@
 | 
			
		||||
import 'zone.js/dist/zone-node';
 | 
			
		||||
import './src/resources/config.js';
 | 
			
		||||
 | 
			
		||||
import { ngExpressEngine } from '@nguniversal/express-engine';
 | 
			
		||||
import * as express from 'express';
 | 
			
		||||
import * as fs from 'fs';
 | 
			
		||||
import * as path from 'path';
 | 
			
		||||
import * as domino from 'domino';
 | 
			
		||||
import { createProxyMiddleware } from 'http-proxy-middleware';
 | 
			
		||||
 | 
			
		||||
import { join } from 'path';
 | 
			
		||||
import { AppServerModule } from './src/main.server';
 | 
			
		||||
import { APP_BASE_HREF } from '@angular/common';
 | 
			
		||||
import { existsSync } from 'fs';
 | 
			
		||||
 | 
			
		||||
import { ResizeObserver } from './shims';
 | 
			
		||||
 | 
			
		||||
const template = fs.readFileSync(path.join(process.cwd(), 'dist/mempool/browser/en-US/', 'index.html')).toString();
 | 
			
		||||
const win = domino.createWindow(template);
 | 
			
		||||
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
win.__env = global.__env;
 | 
			
		||||
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
win.matchMedia = (media) => {
 | 
			
		||||
  return {
 | 
			
		||||
    media,
 | 
			
		||||
    matches: true,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
win.setTimeout = (fn) => { fn(); };
 | 
			
		||||
win.document.body.scrollTo = (() => {});
 | 
			
		||||
win['ResizeObserver'] = ResizeObserver;
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
global['window'] = win;
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
global['document'] = win.document;
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
global['history'] = { state: { } };
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
Object.defineProperty(global, 'navigator', {
 | 
			
		||||
  value: win.navigator,
 | 
			
		||||
  writable: true
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
global['localStorage'] = {
 | 
			
		||||
  getItem: () => '',
 | 
			
		||||
  setItem: () => {},
 | 
			
		||||
  removeItem: () => {},
 | 
			
		||||
  clear: () => {},
 | 
			
		||||
  length: 0,
 | 
			
		||||
  key: () => '',
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// The Express app is exported so that it can be used by serverless Functions.
 | 
			
		||||
export function app(locale: string): express.Express {
 | 
			
		||||
  const server = express();
 | 
			
		||||
  const distFolder = join(process.cwd(), `dist/mempool/browser/${locale}`);
 | 
			
		||||
  const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';
 | 
			
		||||
 | 
			
		||||
  // Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
 | 
			
		||||
  server.engine('html', ngExpressEngine({
 | 
			
		||||
    bootstrap: AppServerModule,
 | 
			
		||||
  }));
 | 
			
		||||
 | 
			
		||||
  server.set('view engine', 'html');
 | 
			
		||||
  server.set('views', distFolder);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // static file handler so we send HTTP 404 to nginx
 | 
			
		||||
  server.get('/**.(css|js|json|ico|webmanifest|png|jpg|jpeg|svg|mp4)*', express.static(distFolder, { maxAge: '1y', fallthrough: false }));
 | 
			
		||||
  // handle page routes
 | 
			
		||||
  server.get('/**', getLocalizedSSR(indexHtml));
 | 
			
		||||
 | 
			
		||||
  return server;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getLocalizedSSR(indexHtml) {
 | 
			
		||||
  return (req, res) => {
 | 
			
		||||
    res.render(indexHtml, {
 | 
			
		||||
      req,
 | 
			
		||||
      providers: [
 | 
			
		||||
        { provide: APP_BASE_HREF, useValue: req.baseUrl }
 | 
			
		||||
      ]
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// only used for development mode
 | 
			
		||||
function run(): void {
 | 
			
		||||
  const port = process.env.PORT || 4000;
 | 
			
		||||
 | 
			
		||||
  // Start up the Node server
 | 
			
		||||
  const server = app('en-US');
 | 
			
		||||
  server.listen(port, () => {
 | 
			
		||||
    console.log(`Node Express server listening on port ${port}`);
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Webpack will replace 'require' with '__webpack_require__'
 | 
			
		||||
// '__non_webpack_require__' is a proxy to Node 'require'
 | 
			
		||||
// The below code is to ensure that the server is run only when not requiring the bundle.
 | 
			
		||||
declare const __non_webpack_require__: NodeRequire;
 | 
			
		||||
const mainModule = __non_webpack_require__.main;
 | 
			
		||||
const moduleFilename = mainModule && mainModule.filename || '';
 | 
			
		||||
if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
 | 
			
		||||
  run();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export * from './src/main.server';
 | 
			
		||||
@ -7,5 +7,5 @@ if (environment.production) {
 | 
			
		||||
  enableProdMode();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export { AppServerModule } from './app/app.server.module';
 | 
			
		||||
export { AppServerModule } from './app/app.module.server';
 | 
			
		||||
export { renderModule } from '@angular/platform-server';
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user