refactor: add file control to form service

This commit is contained in:
waterplea
2025-08-06 19:07:21 +07:00
parent d8d1009417
commit b35a89da29
9 changed files with 126 additions and 119 deletions

146
web/package-lock.json generated
View File

@@ -25,19 +25,19 @@
"@noble/hashes": "^1.4.0",
"@start9labs/argon2": "^0.3.0",
"@start9labs/start-sdk": "file:../sdk/baseDist",
"@taiga-ui/addon-charts": "4.47.0",
"@taiga-ui/addon-commerce": "4.47.0",
"@taiga-ui/addon-mobile": "4.47.0",
"@taiga-ui/addon-table": "4.47.0",
"@taiga-ui/cdk": "4.47.0",
"@taiga-ui/core": "4.47.0",
"@taiga-ui/addon-charts": "4.48.0",
"@taiga-ui/addon-commerce": "4.48.0",
"@taiga-ui/addon-mobile": "4.48.0",
"@taiga-ui/addon-table": "4.48.0",
"@taiga-ui/cdk": "4.48.0",
"@taiga-ui/core": "4.48.0",
"@taiga-ui/dompurify": "4.1.11",
"@taiga-ui/event-plugins": "4.6.0",
"@taiga-ui/experimental": "4.47.0",
"@taiga-ui/icons": "4.47.0",
"@taiga-ui/kit": "4.47.0",
"@taiga-ui/layout": "4.47.0",
"@taiga-ui/legacy": "4.47.0",
"@taiga-ui/experimental": "4.48.0",
"@taiga-ui/icons": "4.48.0",
"@taiga-ui/kit": "4.48.0",
"@taiga-ui/layout": "4.48.0",
"@taiga-ui/legacy": "4.48.0",
"@taiga-ui/polymorpheus": "4.9.0",
"ansi-to-html": "^0.7.2",
"base64-js": "^1.5.1",
@@ -4714,9 +4714,9 @@
"link": true
},
"node_modules/@taiga-ui/addon-charts": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-charts/-/addon-charts-4.47.0.tgz",
"integrity": "sha512-BLMw9zNBJp2tC9PyuG0+7j5VrAL4QFrngGvVlSALjWy9Caj/4mHaoDp9PUwAQrsuoFIMc6BwTbDdbO6/DJeVUQ==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-charts/-/addon-charts-4.48.0.tgz",
"integrity": "sha512-0oEfjhV+B50ITyS5oXnVAzeclSrAVX9FiEvWkX7zJ92uy7PKzkoGx+wEsKw3m1ax0I+cVYrh+rX6VivpX4dBZw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4725,15 +4725,15 @@
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@ng-web-apis/common": "^4.12.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/core": "^4.47.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/core": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0"
}
},
"node_modules/@taiga-ui/addon-commerce": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-commerce/-/addon-commerce-4.47.0.tgz",
"integrity": "sha512-Vh9kbQ47mUT6et3gc2/yJ7N6vebXDPRLHWBhpXxrXNVwel/dQT84NkvNBRJEPeSi2KRQNAy/qlxDdBVWUOFInw==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-commerce/-/addon-commerce-4.48.0.tgz",
"integrity": "sha512-IGWBSRlsQmkNQfKFk90N0N7TkPsFBo0pBBuTXeuVGBo9us4AJafUAMnVlS5U77XSL1xK1pGRkazKfLgLz3yMzg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4746,18 +4746,18 @@
"@maskito/core": "^3.10.2",
"@maskito/kit": "^3.10.2",
"@ng-web-apis/common": "^4.12.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/core": "^4.47.0",
"@taiga-ui/i18n": "^4.47.0",
"@taiga-ui/kit": "^4.47.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/core": "^4.48.0",
"@taiga-ui/i18n": "^4.48.0",
"@taiga-ui/kit": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/addon-mobile": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-4.47.0.tgz",
"integrity": "sha512-rJeJUpXgEJyNNriiqLmVB7w8H+dSiECXjj1LRvSPffuL5bmvtBJKq8nw5Lpy+M3xeZz5qIMndJPNxSsKmkB0JA==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-4.48.0.tgz",
"integrity": "sha512-aGuCkE0T+EaKSr31R2TYuN1h1STi8iATGlNHX4kZ3+Ab/mebER8Xi7uo5gy9olMOGB65syl5Bo4VL02/wc5HKw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4767,18 +4767,18 @@
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@ng-web-apis/common": "^4.12.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/core": "^4.47.0",
"@taiga-ui/kit": "^4.47.0",
"@taiga-ui/layout": "^4.47.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/core": "^4.48.0",
"@taiga-ui/kit": "^4.48.0",
"@taiga-ui/layout": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/addon-table": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-table/-/addon-table-4.47.0.tgz",
"integrity": "sha512-5ZarUauEfPhr+S+nJIXZjyifcvim6Yi00cADI+0PmgitolArjHEB4ZrdosS+Iqfqj9znKF6gPkcmDlv6i0eMCg==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-table/-/addon-table-4.48.0.tgz",
"integrity": "sha512-omwAOlwxom03jTWECDjSDVTOItHD6ZyiPMB5aY/HI/jjsQIZXDlPJLYLfS0+rBR4mwBWBMCXaLvVPPAPy2U4eA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4787,18 +4787,18 @@
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@ng-web-apis/intersection-observer": "^4.12.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/core": "^4.47.0",
"@taiga-ui/i18n": "^4.47.0",
"@taiga-ui/kit": "^4.47.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/core": "^4.48.0",
"@taiga-ui/i18n": "^4.48.0",
"@taiga-ui/kit": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/cdk": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-4.47.0.tgz",
"integrity": "sha512-TqUg+7p/IZqlk34IB4/ZqTfw7HXifX2SqL9psCEmtW5Pg9zWN9of0S9g6Ccj9ALF+4Q4JxuHQf/xQdtAXdYdqg==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-4.48.0.tgz",
"integrity": "sha512-CJdGnLqOmQsLTXDhliriVpvyjTCZNXtfqMpoBBNQwUdRC+2+0mhhltnmE2FnnyvsKYoFoZ87q1NpKkRqotvstA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "2.8.1"
@@ -4827,9 +4827,9 @@
}
},
"node_modules/@taiga-ui/core": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-4.47.0.tgz",
"integrity": "sha512-Z/6djJcMWn4/gFcdW6BDd7GU5tkGnidmfVFhSMCFoRYIY2YU7USjp6wYkjC9jhpRYZZVWVwY3IX4/GJGG5gLQg==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-4.48.0.tgz",
"integrity": "sha512-PkPN4gS1Wnf1nB1e0D9kB+wc6GMndjyAZvxntduG1UKGyFAl4rohbAJI5Fh5bjm/Gr4mQUUBX1LzeQFDY+ob6Q==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4843,9 +4843,9 @@
"@angular/router": ">=16.0.0",
"@ng-web-apis/common": "^4.12.0",
"@ng-web-apis/mutation-observer": "^4.12.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/event-plugins": "^4.6.0",
"@taiga-ui/i18n": "^4.47.0",
"@taiga-ui/i18n": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0",
"rxjs": ">=7.0.0"
}
@@ -4880,9 +4880,9 @@
}
},
"node_modules/@taiga-ui/experimental": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/experimental/-/experimental-4.47.0.tgz",
"integrity": "sha512-EkswWcDKwtDhjA5A5oMtYHw9fnRBITpVb3cOwG45lQrlFBP0tipmx2QVlKKu0ga8VPjcv3W+b/pZsOWdp7UkJQ==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/experimental/-/experimental-4.48.0.tgz",
"integrity": "sha512-ZKVNos1nbKo5koh34TBX5AsLRqbDoNn4crFKqyXux1MmmrCLgqYxeou7/u3g9bIqC263n+p3urM/9oFC7jllBw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4890,18 +4890,18 @@
"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@taiga-ui/addon-commerce": "^4.47.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/core": "^4.47.0",
"@taiga-ui/kit": "^4.47.0",
"@taiga-ui/addon-commerce": "^4.48.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/core": "^4.48.0",
"@taiga-ui/kit": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/i18n": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-4.47.0.tgz",
"integrity": "sha512-TC9BugM8W7IgIXy3IoLtEWlxIb0xAxm17bfAtVLH9M8BfuQY6Jk0yHVQAspmaEz8pmaoLx9Tl2bXV9ugYG/ypA==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-4.48.0.tgz",
"integrity": "sha512-E73l8P1YPFSydgDmz0ajn856ee7eDVIJosrgX3vpaAH1m2pICp4PYwZfqCuHwhogk/mKdAtnVZoBaOgr6ybXlg==",
"license": "Apache-2.0",
"peer": true,
"dependencies": {
@@ -4914,18 +4914,18 @@
}
},
"node_modules/@taiga-ui/icons": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-4.47.0.tgz",
"integrity": "sha512-/SV6RdsCZoX5uUIlHiAPMLNNY7j8nxmE8NhGFtj4E5szx+V84LIKh2oES+zawPa7lIcVUT5M+FtXAtqdMiQa2g==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-4.48.0.tgz",
"integrity": "sha512-TCWAQ2RshcBwgumk7UayYuDwpNQCwP6bDppsn3yz/JcKH1OagDPcLRy3oV15Gpwvi0AcrnrfE74IkeMdClMQUQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.3.0"
}
},
"node_modules/@taiga-ui/kit": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-4.47.0.tgz",
"integrity": "sha512-7LZNA4QInvB76Q38DRD1Ba2vIiKrpk4b/IoSmpahojYU1nrYByY69jGGD7ImxmCMJaIxymaODwHTcEJd3hW4Sw==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-4.48.0.tgz",
"integrity": "sha512-OraV1GAZqmBYwqTrsJPGar6d3Vo0keUhCGzd8rUxeL0ZKtRX+vsRRPtKAQP7B8IYPxnkZRQLZuV1XLZqmwEiaw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4943,17 +4943,17 @@
"@ng-web-apis/intersection-observer": "^4.12.0",
"@ng-web-apis/mutation-observer": "^4.12.0",
"@ng-web-apis/resize-observer": "^4.12.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/core": "^4.47.0",
"@taiga-ui/i18n": "^4.47.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/core": "^4.48.0",
"@taiga-ui/i18n": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/layout": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/layout/-/layout-4.47.0.tgz",
"integrity": "sha512-/P1dhno9/gvUT8lkbJGbNE8etm2D4G+2nRJAQwgj2Az2VePdR39nTOq0NKlGPyyjvSGi21/Mq2Hr5rRig3aglw==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/layout/-/layout-4.48.0.tgz",
"integrity": "sha512-Q4420HZRv4iIuC5kpGuHzbWR+njBusOjUlpKJ5B6coduw6oXP5zr/R7czZmD110+2jdLj2p4owlc0Rr+8LwNBQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
@@ -4961,17 +4961,17 @@
"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@taiga-ui/cdk": "^4.47.0",
"@taiga-ui/core": "^4.47.0",
"@taiga-ui/kit": "^4.47.0",
"@taiga-ui/cdk": "^4.48.0",
"@taiga-ui/core": "^4.48.0",
"@taiga-ui/kit": "^4.48.0",
"@taiga-ui/polymorpheus": "^4.9.0",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/legacy": {
"version": "4.47.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/legacy/-/legacy-4.47.0.tgz",
"integrity": "sha512-+82AOSKr2D/d8WSwdHZxW1BdL1fAh7HQEyhjCNT00hCaeQAeQ5QZNzDRX3qxFKwWZPWkC/sG8a/AtDtjkjB7Ew==",
"version": "4.48.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/legacy/-/legacy-4.48.0.tgz",
"integrity": "sha512-1zv8oHcOYUs4W9T/ihL0b2psdVB7PFdLcZ6wkPBIaD/luVrdAGI1RUMrrtcm9SU6uo9hpqDkcaaymf9hnS6Itw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"