Compare commits
	
		
			4 Commits
		
	
	
		
			634f05bc27
			...
			41615303db
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 41615303db | |||
| 06767268de | |||
| 3c03cc133c | |||
| 8bbadf36a8 | 
							
								
								
									
										500
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										500
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -20,6 +20,7 @@
 | 
			
		||||
				"joi": "^17.13.3",
 | 
			
		||||
				"jquery": "^3.7.1",
 | 
			
		||||
				"lodash": "^4.17.21",
 | 
			
		||||
				"minio": "^8.0.4",
 | 
			
		||||
				"passport": "^0.7.0",
 | 
			
		||||
				"passport-local": "^1.0.0",
 | 
			
		||||
				"signale": "^1.4.0",
 | 
			
		||||
@@ -989,6 +990,13 @@
 | 
			
		||||
				"@types/node": "*"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/@zxing/text-encoding": {
 | 
			
		||||
			"version": "0.9.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz",
 | 
			
		||||
			"integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==",
 | 
			
		||||
			"license": "(Unlicense OR Apache-2.0)",
 | 
			
		||||
			"optional": true
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/accepts": {
 | 
			
		||||
			"version": "1.3.8",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
 | 
			
		||||
@@ -1071,6 +1079,27 @@
 | 
			
		||||
			"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/async": {
 | 
			
		||||
			"version": "3.2.6",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
 | 
			
		||||
			"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/available-typed-arrays": {
 | 
			
		||||
			"version": "1.0.7",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
 | 
			
		||||
			"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"possible-typed-array-names": "^1.0.0"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/balanced-match": {
 | 
			
		||||
			"version": "1.0.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 | 
			
		||||
@@ -1078,6 +1107,15 @@
 | 
			
		||||
			"dev": true,
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/block-stream2": {
 | 
			
		||||
			"version": "2.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz",
 | 
			
		||||
			"integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"readable-stream": "^3.4.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/body-parser": {
 | 
			
		||||
			"version": "1.20.3",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
 | 
			
		||||
@@ -1144,6 +1182,21 @@
 | 
			
		||||
				"concat-map": "0.0.1"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/browser-or-node": {
 | 
			
		||||
			"version": "2.1.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz",
 | 
			
		||||
			"integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/buffer-crc32": {
 | 
			
		||||
			"version": "1.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
 | 
			
		||||
			"integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=8.0.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/bulma": {
 | 
			
		||||
			"version": "1.0.3",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/bulma/-/bulma-1.0.3.tgz",
 | 
			
		||||
@@ -1170,6 +1223,24 @@
 | 
			
		||||
				"node": ">= 0.8"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/call-bind": {
 | 
			
		||||
			"version": "1.0.8",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
 | 
			
		||||
			"integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"call-bind-apply-helpers": "^1.0.0",
 | 
			
		||||
				"es-define-property": "^1.0.0",
 | 
			
		||||
				"get-intrinsic": "^1.2.4",
 | 
			
		||||
				"set-function-length": "^1.2.2"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/call-bind-apply-helpers": {
 | 
			
		||||
			"version": "1.0.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
 | 
			
		||||
@@ -1322,6 +1393,15 @@
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/decode-uri-component": {
 | 
			
		||||
			"version": "0.2.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
 | 
			
		||||
			"integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=0.10"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/deep-is": {
 | 
			
		||||
			"version": "0.1.4",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
 | 
			
		||||
@@ -1329,6 +1409,23 @@
 | 
			
		||||
			"dev": true,
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/define-data-property": {
 | 
			
		||||
			"version": "1.1.4",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
 | 
			
		||||
			"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"es-define-property": "^1.0.0",
 | 
			
		||||
				"es-errors": "^1.3.0",
 | 
			
		||||
				"gopd": "^1.0.1"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/depd": {
 | 
			
		||||
			"version": "2.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
 | 
			
		||||
@@ -1663,6 +1760,12 @@
 | 
			
		||||
				"node": ">= 0.6"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/eventemitter3": {
 | 
			
		||||
			"version": "5.0.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
 | 
			
		||||
			"integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/express": {
 | 
			
		||||
			"version": "4.21.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
 | 
			
		||||
@@ -1806,6 +1909,28 @@
 | 
			
		||||
			"dev": true,
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/fast-xml-parser": {
 | 
			
		||||
			"version": "4.5.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz",
 | 
			
		||||
			"integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==",
 | 
			
		||||
			"funding": [
 | 
			
		||||
				{
 | 
			
		||||
					"type": "github",
 | 
			
		||||
					"url": "https://github.com/sponsors/NaturalIntelligence"
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					"type": "paypal",
 | 
			
		||||
					"url": "https://paypal.me/naturalintelligence"
 | 
			
		||||
				}
 | 
			
		||||
			],
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"strnum": "^1.0.5"
 | 
			
		||||
			},
 | 
			
		||||
			"bin": {
 | 
			
		||||
				"fxparser": "src/cli/cli.js"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/figures": {
 | 
			
		||||
			"version": "2.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
 | 
			
		||||
@@ -1840,6 +1965,15 @@
 | 
			
		||||
				"node": ">=16.0.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/filter-obj": {
 | 
			
		||||
			"version": "1.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
 | 
			
		||||
			"integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=0.10.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/finalhandler": {
 | 
			
		||||
			"version": "1.3.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
 | 
			
		||||
@@ -1911,6 +2045,21 @@
 | 
			
		||||
			"dev": true,
 | 
			
		||||
			"license": "ISC"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/for-each": {
 | 
			
		||||
			"version": "0.3.4",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz",
 | 
			
		||||
			"integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"is-callable": "^1.2.7"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/forwarded": {
 | 
			
		||||
			"version": "0.2.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
 | 
			
		||||
@@ -2057,6 +2206,18 @@
 | 
			
		||||
				"node": ">=8"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/has-property-descriptors": {
 | 
			
		||||
			"version": "1.0.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
 | 
			
		||||
			"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"es-define-property": "^1.0.0"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/has-symbols": {
 | 
			
		||||
			"version": "1.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
 | 
			
		||||
@@ -2069,6 +2230,21 @@
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/has-tostringtag": {
 | 
			
		||||
			"version": "1.0.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
 | 
			
		||||
			"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"has-symbols": "^1.0.3"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/hasown": {
 | 
			
		||||
			"version": "2.0.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
 | 
			
		||||
@@ -2170,12 +2346,40 @@
 | 
			
		||||
				"node": ">= 0.10"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-arguments": {
 | 
			
		||||
			"version": "1.2.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
 | 
			
		||||
			"integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"call-bound": "^1.0.2",
 | 
			
		||||
				"has-tostringtag": "^1.0.2"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-arrayish": {
 | 
			
		||||
			"version": "0.2.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
 | 
			
		||||
			"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-callable": {
 | 
			
		||||
			"version": "1.2.7",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
 | 
			
		||||
			"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-extglob": {
 | 
			
		||||
			"version": "2.1.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
 | 
			
		||||
@@ -2186,6 +2390,24 @@
 | 
			
		||||
				"node": ">=0.10.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-generator-function": {
 | 
			
		||||
			"version": "1.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
 | 
			
		||||
			"integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"call-bound": "^1.0.3",
 | 
			
		||||
				"get-proto": "^1.0.0",
 | 
			
		||||
				"has-tostringtag": "^1.0.2",
 | 
			
		||||
				"safe-regex-test": "^1.1.0"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-glob": {
 | 
			
		||||
			"version": "4.0.3",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
 | 
			
		||||
@@ -2199,6 +2421,39 @@
 | 
			
		||||
				"node": ">=0.10.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-regex": {
 | 
			
		||||
			"version": "1.2.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
 | 
			
		||||
			"integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"call-bound": "^1.0.2",
 | 
			
		||||
				"gopd": "^1.2.0",
 | 
			
		||||
				"has-tostringtag": "^1.0.2",
 | 
			
		||||
				"hasown": "^2.0.2"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/is-typed-array": {
 | 
			
		||||
			"version": "1.1.15",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
 | 
			
		||||
			"integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"which-typed-array": "^1.1.16"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/isexe": {
 | 
			
		||||
			"version": "2.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
 | 
			
		||||
@@ -2428,6 +2683,40 @@
 | 
			
		||||
				"node": "*"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/minio": {
 | 
			
		||||
			"version": "8.0.4",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/minio/-/minio-8.0.4.tgz",
 | 
			
		||||
			"integrity": "sha512-GVW7y2PNbzjjFJ9opVMGKvDNuRkyz3bMt1q7UrHs7bsKFWLXbSvMPffjE/HkVYWUjlD8kQwMaeqiHhhvZJJOfQ==",
 | 
			
		||||
			"license": "Apache-2.0",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"async": "^3.2.4",
 | 
			
		||||
				"block-stream2": "^2.1.0",
 | 
			
		||||
				"browser-or-node": "^2.1.1",
 | 
			
		||||
				"buffer-crc32": "^1.0.0",
 | 
			
		||||
				"eventemitter3": "^5.0.1",
 | 
			
		||||
				"fast-xml-parser": "^4.4.1",
 | 
			
		||||
				"ipaddr.js": "^2.0.1",
 | 
			
		||||
				"lodash": "^4.17.21",
 | 
			
		||||
				"mime-types": "^2.1.35",
 | 
			
		||||
				"query-string": "^7.1.3",
 | 
			
		||||
				"stream-json": "^1.8.0",
 | 
			
		||||
				"through2": "^4.0.2",
 | 
			
		||||
				"web-encoding": "^1.1.5",
 | 
			
		||||
				"xml2js": "^0.5.0 || ^0.6.2"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": "^16 || ^18 || >=20"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/minio/node_modules/ipaddr.js": {
 | 
			
		||||
			"version": "2.2.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
 | 
			
		||||
			"integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 10"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/ms": {
 | 
			
		||||
			"version": "2.1.3",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
 | 
			
		||||
@@ -2712,6 +3001,15 @@
 | 
			
		||||
				"node": ">=4"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/possible-typed-array-names": {
 | 
			
		||||
			"version": "1.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
 | 
			
		||||
			"integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/prelude-ls": {
 | 
			
		||||
			"version": "1.2.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
 | 
			
		||||
@@ -2788,6 +3086,24 @@
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/query-string": {
 | 
			
		||||
			"version": "7.1.3",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
 | 
			
		||||
			"integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"decode-uri-component": "^0.2.2",
 | 
			
		||||
				"filter-obj": "^1.1.0",
 | 
			
		||||
				"split-on-first": "^1.0.0",
 | 
			
		||||
				"strict-uri-encode": "^2.0.0"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=6"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/sindresorhus"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/random-bytes": {
 | 
			
		||||
			"version": "1.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
 | 
			
		||||
@@ -2821,6 +3137,20 @@
 | 
			
		||||
				"node": ">= 0.8"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/readable-stream": {
 | 
			
		||||
			"version": "3.6.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
 | 
			
		||||
			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"inherits": "^2.0.3",
 | 
			
		||||
				"string_decoder": "^1.1.1",
 | 
			
		||||
				"util-deprecate": "^1.0.1"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 6"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/resolve-from": {
 | 
			
		||||
			"version": "4.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
 | 
			
		||||
@@ -2861,12 +3191,35 @@
 | 
			
		||||
			],
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/safe-regex-test": {
 | 
			
		||||
			"version": "1.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
 | 
			
		||||
			"integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"call-bound": "^1.0.2",
 | 
			
		||||
				"es-errors": "^1.3.0",
 | 
			
		||||
				"is-regex": "^1.2.1"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/safer-buffer": {
 | 
			
		||||
			"version": "2.1.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
 | 
			
		||||
			"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/sax": {
 | 
			
		||||
			"version": "1.4.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
 | 
			
		||||
			"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
 | 
			
		||||
			"license": "ISC"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/send": {
 | 
			
		||||
			"version": "0.19.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
 | 
			
		||||
@@ -2930,6 +3283,23 @@
 | 
			
		||||
				"node": ">= 0.8.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/set-function-length": {
 | 
			
		||||
			"version": "1.2.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
 | 
			
		||||
			"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"define-data-property": "^1.1.4",
 | 
			
		||||
				"es-errors": "^1.3.0",
 | 
			
		||||
				"function-bind": "^1.1.2",
 | 
			
		||||
				"get-intrinsic": "^1.2.4",
 | 
			
		||||
				"gopd": "^1.0.1",
 | 
			
		||||
				"has-property-descriptors": "^1.0.2"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/setprototypeof": {
 | 
			
		||||
			"version": "1.2.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
 | 
			
		||||
@@ -3116,6 +3486,15 @@
 | 
			
		||||
				"node": ">=4"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/split-on-first": {
 | 
			
		||||
			"version": "1.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
 | 
			
		||||
			"integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=6"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/statuses": {
 | 
			
		||||
			"version": "2.0.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
 | 
			
		||||
@@ -3125,6 +3504,21 @@
 | 
			
		||||
				"node": ">= 0.8"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/stream-chain": {
 | 
			
		||||
			"version": "2.2.5",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz",
 | 
			
		||||
			"integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==",
 | 
			
		||||
			"license": "BSD-3-Clause"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/stream-json": {
 | 
			
		||||
			"version": "1.9.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz",
 | 
			
		||||
			"integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==",
 | 
			
		||||
			"license": "BSD-3-Clause",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"stream-chain": "^2.2.5"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/streamsearch": {
 | 
			
		||||
			"version": "1.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
 | 
			
		||||
@@ -3133,6 +3527,24 @@
 | 
			
		||||
				"node": ">=10.0.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/strict-uri-encode": {
 | 
			
		||||
			"version": "2.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
 | 
			
		||||
			"integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=4"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/string_decoder": {
 | 
			
		||||
			"version": "1.3.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
 | 
			
		||||
			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"safe-buffer": "~5.2.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/strip-bom": {
 | 
			
		||||
			"version": "3.0.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
 | 
			
		||||
@@ -3155,6 +3567,12 @@
 | 
			
		||||
				"url": "https://github.com/sponsors/sindresorhus"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/strnum": {
 | 
			
		||||
			"version": "1.0.5",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
 | 
			
		||||
			"integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/supports-color": {
 | 
			
		||||
			"version": "7.2.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
 | 
			
		||||
@@ -3168,6 +3586,15 @@
 | 
			
		||||
				"node": ">=8"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/through2": {
 | 
			
		||||
			"version": "4.0.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
 | 
			
		||||
			"integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"readable-stream": "3"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/toidentifier": {
 | 
			
		||||
			"version": "1.0.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
 | 
			
		||||
@@ -3287,6 +3714,25 @@
 | 
			
		||||
				"punycode": "^2.1.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/util": {
 | 
			
		||||
			"version": "0.12.5",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
 | 
			
		||||
			"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"inherits": "^2.0.3",
 | 
			
		||||
				"is-arguments": "^1.0.4",
 | 
			
		||||
				"is-generator-function": "^1.0.7",
 | 
			
		||||
				"is-typed-array": "^1.1.3",
 | 
			
		||||
				"which-typed-array": "^1.1.2"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/util-deprecate": {
 | 
			
		||||
			"version": "1.0.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
 | 
			
		||||
			"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
 | 
			
		||||
			"license": "MIT"
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/utils-merge": {
 | 
			
		||||
			"version": "1.0.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
 | 
			
		||||
@@ -3305,6 +3751,18 @@
 | 
			
		||||
				"node": ">= 0.8"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/web-encoding": {
 | 
			
		||||
			"version": "1.1.5",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz",
 | 
			
		||||
			"integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"util": "^0.12.3"
 | 
			
		||||
			},
 | 
			
		||||
			"optionalDependencies": {
 | 
			
		||||
				"@zxing/text-encoding": "0.9.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/which": {
 | 
			
		||||
			"version": "2.0.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
 | 
			
		||||
@@ -3321,6 +3779,26 @@
 | 
			
		||||
				"node": ">= 8"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/which-typed-array": {
 | 
			
		||||
			"version": "1.1.18",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
 | 
			
		||||
			"integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"available-typed-arrays": "^1.0.7",
 | 
			
		||||
				"call-bind": "^1.0.8",
 | 
			
		||||
				"call-bound": "^1.0.3",
 | 
			
		||||
				"for-each": "^0.3.3",
 | 
			
		||||
				"gopd": "^1.2.0",
 | 
			
		||||
				"has-tostringtag": "^1.0.2"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">= 0.4"
 | 
			
		||||
			},
 | 
			
		||||
			"funding": {
 | 
			
		||||
				"url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/word-wrap": {
 | 
			
		||||
			"version": "1.2.5",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
 | 
			
		||||
@@ -3331,6 +3809,28 @@
 | 
			
		||||
				"node": ">=0.10.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/xml2js": {
 | 
			
		||||
			"version": "0.6.2",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
 | 
			
		||||
			"integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"dependencies": {
 | 
			
		||||
				"sax": ">=0.6.0",
 | 
			
		||||
				"xmlbuilder": "~11.0.0"
 | 
			
		||||
			},
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=4.0.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/xmlbuilder": {
 | 
			
		||||
			"version": "11.0.1",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
 | 
			
		||||
			"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
 | 
			
		||||
			"license": "MIT",
 | 
			
		||||
			"engines": {
 | 
			
		||||
				"node": ">=4.0"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		"node_modules/yocto-queue": {
 | 
			
		||||
			"version": "0.1.0",
 | 
			
		||||
			"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,7 @@
 | 
			
		||||
		"joi": "^17.13.3",
 | 
			
		||||
		"jquery": "^3.7.1",
 | 
			
		||||
		"lodash": "^4.17.21",
 | 
			
		||||
		"minio": "^8.0.4",
 | 
			
		||||
		"passport": "^0.7.0",
 | 
			
		||||
		"passport-local": "^1.0.0",
 | 
			
		||||
		"signale": "^1.4.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -88,13 +88,13 @@ model priorities {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model content {
 | 
			
		||||
	id         Int          @id @unique @default(autoincrement())
 | 
			
		||||
	type       contentType
 | 
			
		||||
	//id         Int          @id @unique @default(autoincrement())
 | 
			
		||||
	s3_key     String @id @unique
 | 
			
		||||
	name       String @unique
 | 
			
		||||
	filename   String @unique
 | 
			
		||||
	type       contentType
 | 
			
		||||
	actionplan actionPlan[]
 | 
			
		||||
 | 
			
		||||
	@@fulltext([name, filename])
 | 
			
		||||
	@@fulltext([name])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// https://spacecdn.de/file/bma_stoe_v1.mp3
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,8 @@
 | 
			
		||||
import ConfigManager from '../libs/configManager.js';
 | 
			
		||||
import __path from "./path.js";
 | 
			
		||||
import __path from './path.js';
 | 
			
		||||
import _ from 'lodash';
 | 
			
		||||
import log from './log.js';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Create a new config instance.
 | 
			
		||||
const config = new ConfigManager(__path + '/config.json', true, {
 | 
			
		||||
	db_connection_string: 'mysql://USER:PASSWORD@HOST:3306/DATABASE',
 | 
			
		||||
@@ -12,9 +11,13 @@ const config = new ConfigManager(__path + '/config.json', true, {
 | 
			
		||||
	http_domain: 'example.org',
 | 
			
		||||
	http_enable_hsts: false,
 | 
			
		||||
	devmode: true,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	s3: {
 | 
			
		||||
		endpoint: 'minio.example.org',
 | 
			
		||||
		port: 443,
 | 
			
		||||
		use_ssl: true,
 | 
			
		||||
		access_key: '',
 | 
			
		||||
		secret_key: ''
 | 
			
		||||
	},
 | 
			
		||||
	auth: {
 | 
			
		||||
		cookie_secret: 'gen',
 | 
			
		||||
		cookie_secure: true,
 | 
			
		||||
@@ -31,7 +34,7 @@ const config = new ConfigManager(__path + '/config.json', true, {
 | 
			
		||||
// If no local User exists, create the default with a generated password
 | 
			
		||||
if (_.isEqual(config.global.auth.local.users, {})) {
 | 
			
		||||
	config.global.auth.local.users = {
 | 
			
		||||
		'administrator': 'gen',
 | 
			
		||||
		administrator: 'gen'
 | 
			
		||||
	};
 | 
			
		||||
	config.save_config();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@ type log = {
 | 
			
		||||
	core: Logger<unknown>
 | 
			
		||||
	db: Logger<unknown>
 | 
			
		||||
	web: Logger<unknown>
 | 
			
		||||
	S3: Logger<unknown>
 | 
			
		||||
	auth: Logger<unknown>
 | 
			
		||||
	api?: Logger<unknown>
 | 
			
		||||
	frontend?: Logger<unknown>
 | 
			
		||||
@@ -24,6 +25,7 @@ let log: log = {
 | 
			
		||||
	core: new Logger(loggerConfig("Core")),
 | 
			
		||||
	db: new Logger(loggerConfig("DB")),
 | 
			
		||||
	web: new Logger(loggerConfig("Web")),
 | 
			
		||||
	S3: new Logger(loggerConfig("S3")),
 | 
			
		||||
	auth: new Logger(loggerConfig("Auth")),
 | 
			
		||||
//	helper: new Logger(loggerConfig("HELPER")),
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								src/handlers/s3.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/handlers/s3.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
import * as Minio from 'minio';
 | 
			
		||||
import log from './log.js';
 | 
			
		||||
import config from './config.js';
 | 
			
		||||
 | 
			
		||||
const minioClient = new Minio.Client({
 | 
			
		||||
	endPoint: config.global.s3.endpoint,
 | 
			
		||||
	port: config.global.s3.port,
 | 
			
		||||
	useSSL: config.global.s3.use_ssl,
 | 
			
		||||
	accessKey: config.global.s3.access_key,
 | 
			
		||||
	secretKey: config.global.s3.secret_key
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export async function test() {
 | 
			
		||||
	log.S3.debug('GET', await minioClient.presignedGetObject('atas-dev', 'test', 500));
 | 
			
		||||
 | 
			
		||||
	log.S3.debug('PUT', await minioClient.presignedPutObject('atas-dev', 'test', 500));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default minioClient;
 | 
			
		||||
@@ -1,9 +1,11 @@
 | 
			
		||||
import { Request, Response } from 'express';
 | 
			
		||||
import validator from 'joi'; // DOCS: https://joi.dev/api
 | 
			
		||||
import { Prisma } from '@prisma/client';
 | 
			
		||||
 | 
			
		||||
// MARK: GET alertContact
 | 
			
		||||
const schema_get = validator.object({
 | 
			
		||||
	sort: validator.string().valid('id', 'name', 'phone', 'comment').default('id'),
 | 
			
		||||
	//sort: validator.string().valid('id', 'name', 'phone', 'comment').default('id'),
 | 
			
		||||
	sort: validator.string().valid(...Object.keys(Prisma.AlertContactsScalarFieldEnum)).default('id'),
 | 
			
		||||
	order: validator.string().valid('asc', 'desc').default('asc'),
 | 
			
		||||
	take: validator.number().min(1).max(512),
 | 
			
		||||
	skip: validator.number().min(0),
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								src/routes/frontend/contact.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/routes/frontend/contact.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
import express, { Request, Response } from 'express';
 | 
			
		||||
 | 
			
		||||
function get(req: Request, res: Response) {
 | 
			
		||||
	res.render("contacts")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default { get };
 | 
			
		||||
@@ -1,11 +1,9 @@
 | 
			
		||||
import express from 'express';
 | 
			
		||||
 | 
			
		||||
// Route imports
 | 
			
		||||
// import skuRoute from './:id.js';
 | 
			
		||||
// import skuRouteDash from './itemInfo.js'
 | 
			
		||||
// import testRoute from './test.js';
 | 
			
		||||
import dashboardRoute from './dashboard.js';
 | 
			
		||||
import testRoute from './test.js';
 | 
			
		||||
import contactRoute from './contact.js';
 | 
			
		||||
// import itemsRoute from './items.js';
 | 
			
		||||
// import manage_routes from './manage/index.js';
 | 
			
		||||
 | 
			
		||||
@@ -22,5 +20,6 @@ const Router = express.Router({ strict: false });
 | 
			
		||||
 | 
			
		||||
Router.route('/').get(dashboardRoute.get);
 | 
			
		||||
Router.route('/dbTest').get(testRoute.get);
 | 
			
		||||
Router.route('/contact').get(contactRoute.get);
 | 
			
		||||
 | 
			
		||||
export default Router;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										119
									
								
								views/contacts.eta
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								views/contacts.eta
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,119 @@
 | 
			
		||||
<%~ include("partials/base_head.eta", {"title": "Kontakte"}) %>
 | 
			
		||||
<%~ include("partials/nav.eta") %>
 | 
			
		||||
 | 
			
		||||
<section class="hero is-primary" id="heroStatus">
 | 
			
		||||
	<div class="hero-body">
 | 
			
		||||
		<p class="title" data-tK="start-hero-header-welcome">Kontaktverwaltung</p>
 | 
			
		||||
		<p class="subtitle" data-tK="start-hero-header-subtitle-default" id="heroExplainer">Erklärungstext</p>
 | 
			
		||||
	</div>
 | 
			
		||||
</section>
 | 
			
		||||
<section class="section">
 | 
			
		||||
	<nav class="level">
 | 
			
		||||
		<div class="level-item has-text-centered">
 | 
			
		||||
			<div>
 | 
			
		||||
				<p class="heading">Kontakte</p>
 | 
			
		||||
				<p class="title"><span data-dataSource="AlertContacts" data-dataAction="COUNT" class="is-skeleton">Load.</span></p>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="level-item has-text-centered">
 | 
			
		||||
			<div>
 | 
			
		||||
				<p class="heading"><button class="js-modal-trigger button" data-target="modal-js-example">
 | 
			
		||||
				Neuen Konakt anlegen
 | 
			
		||||
	</button></p>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</nav>
 | 
			
		||||
</section>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- TODO: Mark required fields as required; add handling for validation -->
 | 
			
		||||
<div id="modal-js-example" class="modal">
 | 
			
		||||
	<div class="modal-background"></div>
 | 
			
		||||
 | 
			
		||||
	<div class="modal-content">
 | 
			
		||||
		<div class="box entryPhase is-hidden">
 | 
			
		||||
			<h2 class="title">Neuer Kontakt</h1>
 | 
			
		||||
 | 
			
		||||
				<i class="bi bi-arrow-clockwise title"></i>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="box entryPhase">
 | 
			
		||||
		
 | 
			
		||||
			<form data-targetTable="AlertContacts">
 | 
			
		||||
			<h2 class="title">Neuer Kontakt</h1>
 | 
			
		||||
			<div class="field">
 | 
			
		||||
				<label class="label">Name</label>
 | 
			
		||||
				<div class="control has-icons-left">
 | 
			
		||||
					<input class="input" type="text" placeholder="John Doe" value="" name="name">
 | 
			
		||||
					<span class="icon is-small is-left">
 | 
			
		||||
					<i class="bi bi-file-earmark-person-fill"></i>
 | 
			
		||||
					</span>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
			<div class="field">
 | 
			
		||||
			<label class="label">Telefonummer</label>
 | 
			
		||||
			<div class="control has-icons-left">
 | 
			
		||||
				<input class="input" type="text" placeholder="+49 1234 5678912" value="" name="phone">
 | 
			
		||||
				<span class="icon is-small is-left">
 | 
			
		||||
				<i class="bi bi-telephone-fill"></i>
 | 
			
		||||
				</span>
 | 
			
		||||
			</div>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
			<div class="field">
 | 
			
		||||
			<label class="label">Anmerkung</label>
 | 
			
		||||
			<div class="control has-icons-left">
 | 
			
		||||
				<input class="input" type="text" placeholder="" value="" name="comment">
 | 
			
		||||
				<span class="icon is-small is-left">
 | 
			
		||||
				<i class="bi bi-chat-fill"></i>
 | 
			
		||||
				</span>
 | 
			
		||||
			</div>
 | 
			
		||||
			</div>
 | 
			
		||||
			<br>
 | 
			
		||||
 | 
			
		||||
			<div class="field is-grouped">
 | 
			
		||||
			<div class="control">
 | 
			
		||||
				<input type="submit" class="button is-link" value="Save" data-actionBtn="save">
 | 
			
		||||
			</div>
 | 
			
		||||
			<!--<div class="control">
 | 
			
		||||
				<button type="button" class="button is-link is-light" data-actionBtn="cancel">Cancel</button>
 | 
			
		||||
			</div>-->
 | 
			
		||||
			</div>
 | 
			
		||||
		</form>
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
 | 
			
		||||
	<button class="modal-close is-large" aria-label="close"></button>
 | 
			
		||||
	</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
<section class="section">
 | 
			
		||||
	<h1 class="title" data-tK="start-recent-header">Kontaktübersicht</h1>
 | 
			
		||||
	<input class="input" type="text"  data-searchTargetId="contactTable" placeholder="Search..." />
 | 
			
		||||
	<table class="table is-striped is-fullwidth is-hoverable" data-dataSource="AlertContacts" id="contactTable" data-pageSize="5">
 | 
			
		||||
		<thead>
 | 
			
		||||
			<tr>
 | 
			
		||||
				<th data-dataCol = "id"><abbr title="Position">Pos</abbr></th>
 | 
			
		||||
				<th data-dataCol = "name">Name</th>
 | 
			
		||||
				<th data-dataCol = "phone">Telefonnummer</th>
 | 
			
		||||
				<th data-dataCol = "comment">Kommentar</th>
 | 
			
		||||
				<th data-fnc="actions" data-actions="edit,delete">Aktionen</th>
 | 
			
		||||
			</tr>
 | 
			
		||||
		</thead>
 | 
			
		||||
		<tbody>
 | 
			
		||||
		</tbody>
 | 
			
		||||
		
 | 
			
		||||
	</table>
 | 
			
		||||
	<nav class="pagination is-hidden" role="navigation" aria-label="pagination" data-targetTable="contactTable">
 | 
			
		||||
		<ul class="pagination-list">
 | 
			
		||||
			
 | 
			
		||||
		</ul>
 | 
			
		||||
		</nav>
 | 
			
		||||
</section>
 | 
			
		||||
 | 
			
		||||
<%~ include("partials/footer.eta") %>
 | 
			
		||||
<%~ include("partials/base_foot.eta") %>
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
		<div class="navbar-start">
 | 
			
		||||
			<a class="navbar-item" href="/">Home</a>
 | 
			
		||||
			<a class="navbar-item" href="/dbTest">API Integration <span class="tag is-info">Dev</span></a>
 | 
			
		||||
			<a class="navbar-item" href="/contact">Kontakte <span class="tag is-primary">Neu!</span></a>
 | 
			
		||||
			<!--<div class="navbar-item has-dropdown is-hoverable">
 | 
			
		||||
				<a class="navbar-link">More</a>
 | 
			
		||||
				<div class="navbar-dropdown">
 | 
			
		||||
@@ -32,7 +33,7 @@
 | 
			
		||||
			</div>-->
 | 
			
		||||
		</div>
 | 
			
		||||
 | 
			
		||||
		<!--<div class="navbar-end">
 | 
			
		||||
		<div class="navbar-end">
 | 
			
		||||
			<div class="navbar-item">
 | 
			
		||||
				<div class="buttons">
 | 
			
		||||
					<a class="button is-primary">
 | 
			
		||||
@@ -41,6 +42,6 @@
 | 
			
		||||
					<a class="button is-light">Log in</a>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>-->
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</nav>
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,34 @@
 | 
			
		||||
</section>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<section class="section">
 | 
			
		||||
<h1 class="title" data-tK="start-sysinfo-header">File test</h1>
 | 
			
		||||
<form method="put" action="/api/upload" enctype="multipart/form-data" id="uploadForm">
 | 
			
		||||
	<div class="field">
 | 
			
		||||
		<label class="label">File</label>
 | 
			
		||||
		<div class="control">
 | 
			
		||||
			<input class="input" type="file" name="file" id="file">
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<!-- URL field -->
 | 
			
		||||
	<div class="field">
 | 
			
		||||
		<label class="label">URL</label>
 | 
			
		||||
		<div class="control">
 | 
			
		||||
			<input class="input" type="text" name="url" id="url">
 | 
			
		||||
		</div>
 | 
			
		||||
	<div class="field is-grouped">
 | 
			
		||||
		<div class="control">
 | 
			
		||||
			<input type="submit" class="button is-link" value="Upload" data-actionBtn="upload">
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
	<script>
 | 
			
		||||
		document.getElementById("url").addEventListener("input", function() {
 | 
			
		||||
			document.getElementById("uploadForm").action = document.getElementById("url").value;
 | 
			
		||||
		});
 | 
			
		||||
	</script>
 | 
			
		||||
</form>
 | 
			
		||||
</section>
 | 
			
		||||
 | 
			
		||||
<!-- TODO: Mark required fields as required; add handling for validation -->
 | 
			
		||||
<div id="modal-js-example" class="modal">
 | 
			
		||||
	<div class="modal-background"></div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user