@toolstackhq/create-qa-patterns 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toolstackhq/create-qa-patterns",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "CLI for generating QA framework templates.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -2,6 +2,8 @@ import js from "@eslint/js";
2
2
  import tsParser from "@typescript-eslint/parser";
3
3
  import tsPlugin from "@typescript-eslint/eslint-plugin";
4
4
 
5
+ const tsconfigRootDir = import.meta.dirname;
6
+
5
7
  const cypressGlobals = {
6
8
  Cypress: "readonly",
7
9
  cy: "readonly",
@@ -25,10 +27,12 @@ export default [
25
27
  js.configs.recommended,
26
28
  {
27
29
  files: ["**/*.ts"],
30
+ ignores: ["**/*.d.ts"],
28
31
  languageOptions: {
29
32
  parser: tsParser,
30
33
  parserOptions: {
31
- project: "./tsconfig.json"
34
+ project: "./tsconfig.json",
35
+ tsconfigRootDir
32
36
  },
33
37
  globals: {
34
38
  ...cypressGlobals,
@@ -50,6 +54,22 @@ export default [
50
54
  ]
51
55
  }
52
56
  },
57
+ {
58
+ files: ["**/*.d.ts"],
59
+ languageOptions: {
60
+ parser: tsParser,
61
+ parserOptions: {
62
+ tsconfigRootDir
63
+ },
64
+ globals: {
65
+ ...cypressGlobals,
66
+ ...nodeGlobals
67
+ }
68
+ },
69
+ rules: {
70
+ "no-undef": "off"
71
+ }
72
+ },
53
73
  {
54
74
  files: ["scripts/**/*.mjs"],
55
75
  languageOptions: {
@@ -10,6 +10,7 @@
10
10
  "dependencies": {
11
11
  "@faker-js/faker": "^8.4.1",
12
12
  "dotenv": "^16.4.5",
13
+ "express": "^4.21.0",
13
14
  "zod": "^3.23.8"
14
15
  },
15
16
  "devDependencies": {
@@ -1784,6 +1785,18 @@
1784
1785
  "node": ">=6.5"
1785
1786
  }
1786
1787
  },
1788
+ "node_modules/accepts": {
1789
+ "version": "1.3.8",
1790
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
1791
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
1792
+ "dependencies": {
1793
+ "mime-types": "~2.1.34",
1794
+ "negotiator": "0.6.3"
1795
+ },
1796
+ "engines": {
1797
+ "node": ">= 0.6"
1798
+ }
1799
+ },
1787
1800
  "node_modules/acorn": {
1788
1801
  "version": "8.16.0",
1789
1802
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
@@ -1932,6 +1945,11 @@
1932
1945
  "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1933
1946
  "dev": true
1934
1947
  },
1948
+ "node_modules/array-flatten": {
1949
+ "version": "1.1.1",
1950
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
1951
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
1952
+ },
1935
1953
  "node_modules/asynckit": {
1936
1954
  "version": "0.4.0",
1937
1955
  "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -2020,6 +2038,67 @@
2020
2038
  }
2021
2039
  ]
2022
2040
  },
2041
+ "node_modules/body-parser": {
2042
+ "version": "1.20.4",
2043
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
2044
+ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
2045
+ "dependencies": {
2046
+ "bytes": "~3.1.2",
2047
+ "content-type": "~1.0.5",
2048
+ "debug": "2.6.9",
2049
+ "depd": "2.0.0",
2050
+ "destroy": "~1.2.0",
2051
+ "http-errors": "~2.0.1",
2052
+ "iconv-lite": "~0.4.24",
2053
+ "on-finished": "~2.4.1",
2054
+ "qs": "~6.14.0",
2055
+ "raw-body": "~2.5.3",
2056
+ "type-is": "~1.6.18",
2057
+ "unpipe": "~1.0.0"
2058
+ },
2059
+ "engines": {
2060
+ "node": ">= 0.8",
2061
+ "npm": "1.2.8000 || >= 1.4.16"
2062
+ }
2063
+ },
2064
+ "node_modules/body-parser/node_modules/debug": {
2065
+ "version": "2.6.9",
2066
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2067
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2068
+ "dependencies": {
2069
+ "ms": "2.0.0"
2070
+ }
2071
+ },
2072
+ "node_modules/body-parser/node_modules/iconv-lite": {
2073
+ "version": "0.4.24",
2074
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2075
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2076
+ "dependencies": {
2077
+ "safer-buffer": ">= 2.1.2 < 3"
2078
+ },
2079
+ "engines": {
2080
+ "node": ">=0.10.0"
2081
+ }
2082
+ },
2083
+ "node_modules/body-parser/node_modules/ms": {
2084
+ "version": "2.0.0",
2085
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2086
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
2087
+ },
2088
+ "node_modules/body-parser/node_modules/qs": {
2089
+ "version": "6.14.2",
2090
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
2091
+ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
2092
+ "dependencies": {
2093
+ "side-channel": "^1.1.0"
2094
+ },
2095
+ "engines": {
2096
+ "node": ">=0.6"
2097
+ },
2098
+ "funding": {
2099
+ "url": "https://github.com/sponsors/ljharb"
2100
+ }
2101
+ },
2023
2102
  "node_modules/brace-expansion": {
2024
2103
  "version": "5.0.4",
2025
2104
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
@@ -2071,11 +2150,18 @@
2071
2150
  "url": "https://github.com/sponsors/sindresorhus"
2072
2151
  }
2073
2152
  },
2153
+ "node_modules/bytes": {
2154
+ "version": "3.1.2",
2155
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
2156
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
2157
+ "engines": {
2158
+ "node": ">= 0.8"
2159
+ }
2160
+ },
2074
2161
  "node_modules/call-bind-apply-helpers": {
2075
2162
  "version": "1.0.2",
2076
2163
  "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
2077
2164
  "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
2078
- "dev": true,
2079
2165
  "dependencies": {
2080
2166
  "es-errors": "^1.3.0",
2081
2167
  "function-bind": "^1.1.2"
@@ -2088,7 +2174,6 @@
2088
2174
  "version": "1.0.4",
2089
2175
  "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
2090
2176
  "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
2091
- "dev": true,
2092
2177
  "dependencies": {
2093
2178
  "call-bind-apply-helpers": "^1.0.2",
2094
2179
  "get-intrinsic": "^1.3.0"
@@ -2231,6 +2316,38 @@
2231
2316
  "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
2232
2317
  "dev": true
2233
2318
  },
2319
+ "node_modules/content-disposition": {
2320
+ "version": "0.5.4",
2321
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
2322
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
2323
+ "dependencies": {
2324
+ "safe-buffer": "5.2.1"
2325
+ },
2326
+ "engines": {
2327
+ "node": ">= 0.6"
2328
+ }
2329
+ },
2330
+ "node_modules/content-type": {
2331
+ "version": "1.0.5",
2332
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
2333
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
2334
+ "engines": {
2335
+ "node": ">= 0.6"
2336
+ }
2337
+ },
2338
+ "node_modules/cookie": {
2339
+ "version": "0.7.2",
2340
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
2341
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
2342
+ "engines": {
2343
+ "node": ">= 0.6"
2344
+ }
2345
+ },
2346
+ "node_modules/cookie-signature": {
2347
+ "version": "1.0.7",
2348
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
2349
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA=="
2350
+ },
2234
2351
  "node_modules/crc-32": {
2235
2352
  "version": "1.2.2",
2236
2353
  "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
@@ -2649,6 +2766,23 @@
2649
2766
  "node": ">=0.4.0"
2650
2767
  }
2651
2768
  },
2769
+ "node_modules/depd": {
2770
+ "version": "2.0.0",
2771
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
2772
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
2773
+ "engines": {
2774
+ "node": ">= 0.8"
2775
+ }
2776
+ },
2777
+ "node_modules/destroy": {
2778
+ "version": "1.2.0",
2779
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
2780
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
2781
+ "engines": {
2782
+ "node": ">= 0.8",
2783
+ "npm": "1.2.8000 || >= 1.4.16"
2784
+ }
2785
+ },
2652
2786
  "node_modules/dompurify": {
2653
2787
  "version": "3.3.3",
2654
2788
  "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz",
@@ -2673,7 +2807,6 @@
2673
2807
  "version": "1.0.1",
2674
2808
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
2675
2809
  "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
2676
- "dev": true,
2677
2810
  "dependencies": {
2678
2811
  "call-bind-apply-helpers": "^1.0.1",
2679
2812
  "es-errors": "^1.3.0",
@@ -2683,6 +2816,19 @@
2683
2816
  "node": ">= 0.4"
2684
2817
  }
2685
2818
  },
2819
+ "node_modules/ee-first": {
2820
+ "version": "1.1.1",
2821
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
2822
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
2823
+ },
2824
+ "node_modules/encodeurl": {
2825
+ "version": "2.0.0",
2826
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
2827
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
2828
+ "engines": {
2829
+ "node": ">= 0.8"
2830
+ }
2831
+ },
2686
2832
  "node_modules/entities": {
2687
2833
  "version": "2.2.0",
2688
2834
  "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
@@ -2696,7 +2842,6 @@
2696
2842
  "version": "1.0.1",
2697
2843
  "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
2698
2844
  "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
2699
- "dev": true,
2700
2845
  "engines": {
2701
2846
  "node": ">= 0.4"
2702
2847
  }
@@ -2705,7 +2850,6 @@
2705
2850
  "version": "1.3.0",
2706
2851
  "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
2707
2852
  "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
2708
- "dev": true,
2709
2853
  "engines": {
2710
2854
  "node": ">= 0.4"
2711
2855
  }
@@ -2714,7 +2858,6 @@
2714
2858
  "version": "1.1.1",
2715
2859
  "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
2716
2860
  "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
2717
- "dev": true,
2718
2861
  "dependencies": {
2719
2862
  "es-errors": "^1.3.0"
2720
2863
  },
@@ -2737,6 +2880,11 @@
2737
2880
  "node": ">= 0.4"
2738
2881
  }
2739
2882
  },
2883
+ "node_modules/escape-html": {
2884
+ "version": "1.0.3",
2885
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
2886
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
2887
+ },
2740
2888
  "node_modules/escape-string-regexp": {
2741
2889
  "version": "4.0.0",
2742
2890
  "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -2956,6 +3104,14 @@
2956
3104
  "node": ">=0.10.0"
2957
3105
  }
2958
3106
  },
3107
+ "node_modules/etag": {
3108
+ "version": "1.8.1",
3109
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
3110
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
3111
+ "engines": {
3112
+ "node": ">= 0.6"
3113
+ }
3114
+ },
2959
3115
  "node_modules/event-target-shim": {
2960
3116
  "version": "5.0.1",
2961
3117
  "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
@@ -2974,6 +3130,78 @@
2974
3130
  "node": ">=0.8.x"
2975
3131
  }
2976
3132
  },
3133
+ "node_modules/express": {
3134
+ "version": "4.22.1",
3135
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
3136
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
3137
+ "dependencies": {
3138
+ "accepts": "~1.3.8",
3139
+ "array-flatten": "1.1.1",
3140
+ "body-parser": "~1.20.3",
3141
+ "content-disposition": "~0.5.4",
3142
+ "content-type": "~1.0.4",
3143
+ "cookie": "~0.7.1",
3144
+ "cookie-signature": "~1.0.6",
3145
+ "debug": "2.6.9",
3146
+ "depd": "2.0.0",
3147
+ "encodeurl": "~2.0.0",
3148
+ "escape-html": "~1.0.3",
3149
+ "etag": "~1.8.1",
3150
+ "finalhandler": "~1.3.1",
3151
+ "fresh": "~0.5.2",
3152
+ "http-errors": "~2.0.0",
3153
+ "merge-descriptors": "1.0.3",
3154
+ "methods": "~1.1.2",
3155
+ "on-finished": "~2.4.1",
3156
+ "parseurl": "~1.3.3",
3157
+ "path-to-regexp": "~0.1.12",
3158
+ "proxy-addr": "~2.0.7",
3159
+ "qs": "~6.14.0",
3160
+ "range-parser": "~1.2.1",
3161
+ "safe-buffer": "5.2.1",
3162
+ "send": "~0.19.0",
3163
+ "serve-static": "~1.16.2",
3164
+ "setprototypeof": "1.2.0",
3165
+ "statuses": "~2.0.1",
3166
+ "type-is": "~1.6.18",
3167
+ "utils-merge": "1.0.1",
3168
+ "vary": "~1.1.2"
3169
+ },
3170
+ "engines": {
3171
+ "node": ">= 0.10.0"
3172
+ },
3173
+ "funding": {
3174
+ "type": "opencollective",
3175
+ "url": "https://opencollective.com/express"
3176
+ }
3177
+ },
3178
+ "node_modules/express/node_modules/debug": {
3179
+ "version": "2.6.9",
3180
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3181
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3182
+ "dependencies": {
3183
+ "ms": "2.0.0"
3184
+ }
3185
+ },
3186
+ "node_modules/express/node_modules/ms": {
3187
+ "version": "2.0.0",
3188
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3189
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
3190
+ },
3191
+ "node_modules/express/node_modules/qs": {
3192
+ "version": "6.14.2",
3193
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
3194
+ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
3195
+ "dependencies": {
3196
+ "side-channel": "^1.1.0"
3197
+ },
3198
+ "engines": {
3199
+ "node": ">=0.6"
3200
+ },
3201
+ "funding": {
3202
+ "url": "https://github.com/sponsors/ljharb"
3203
+ }
3204
+ },
2977
3205
  "node_modules/fast-deep-equal": {
2978
3206
  "version": "3.1.3",
2979
3207
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -3065,6 +3293,36 @@
3065
3293
  "node": ">= 10.4.0"
3066
3294
  }
3067
3295
  },
3296
+ "node_modules/finalhandler": {
3297
+ "version": "1.3.2",
3298
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
3299
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
3300
+ "dependencies": {
3301
+ "debug": "2.6.9",
3302
+ "encodeurl": "~2.0.0",
3303
+ "escape-html": "~1.0.3",
3304
+ "on-finished": "~2.4.1",
3305
+ "parseurl": "~1.3.3",
3306
+ "statuses": "~2.0.2",
3307
+ "unpipe": "~1.0.0"
3308
+ },
3309
+ "engines": {
3310
+ "node": ">= 0.8"
3311
+ }
3312
+ },
3313
+ "node_modules/finalhandler/node_modules/debug": {
3314
+ "version": "2.6.9",
3315
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3316
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3317
+ "dependencies": {
3318
+ "ms": "2.0.0"
3319
+ }
3320
+ },
3321
+ "node_modules/finalhandler/node_modules/ms": {
3322
+ "version": "2.0.0",
3323
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3324
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
3325
+ },
3068
3326
  "node_modules/find-up": {
3069
3327
  "version": "5.0.0",
3070
3328
  "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -3152,6 +3410,22 @@
3152
3410
  "node": ">= 6"
3153
3411
  }
3154
3412
  },
3413
+ "node_modules/forwarded": {
3414
+ "version": "0.2.0",
3415
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
3416
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
3417
+ "engines": {
3418
+ "node": ">= 0.6"
3419
+ }
3420
+ },
3421
+ "node_modules/fresh": {
3422
+ "version": "0.5.2",
3423
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
3424
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
3425
+ "engines": {
3426
+ "node": ">= 0.6"
3427
+ }
3428
+ },
3155
3429
  "node_modules/fsevents": {
3156
3430
  "version": "2.3.2",
3157
3431
  "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@@ -3170,7 +3444,6 @@
3170
3444
  "version": "1.1.2",
3171
3445
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
3172
3446
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
3173
- "dev": true,
3174
3447
  "funding": {
3175
3448
  "url": "https://github.com/sponsors/ljharb"
3176
3449
  }
@@ -3179,7 +3452,6 @@
3179
3452
  "version": "1.3.0",
3180
3453
  "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
3181
3454
  "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
3182
- "dev": true,
3183
3455
  "dependencies": {
3184
3456
  "call-bind-apply-helpers": "^1.0.2",
3185
3457
  "es-define-property": "^1.0.1",
@@ -3203,7 +3475,6 @@
3203
3475
  "version": "1.0.1",
3204
3476
  "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
3205
3477
  "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
3206
- "dev": true,
3207
3478
  "dependencies": {
3208
3479
  "dunder-proto": "^1.0.1",
3209
3480
  "es-object-atoms": "^1.0.0"
@@ -3264,7 +3535,6 @@
3264
3535
  "version": "1.2.0",
3265
3536
  "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
3266
3537
  "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
3267
- "dev": true,
3268
3538
  "engines": {
3269
3539
  "node": ">= 0.4"
3270
3540
  },
@@ -3306,7 +3576,6 @@
3306
3576
  "version": "1.1.0",
3307
3577
  "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
3308
3578
  "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
3309
- "dev": true,
3310
3579
  "engines": {
3311
3580
  "node": ">= 0.4"
3312
3581
  },
@@ -3333,7 +3602,6 @@
3333
3602
  "version": "2.0.2",
3334
3603
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
3335
3604
  "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
3336
- "dev": true,
3337
3605
  "dependencies": {
3338
3606
  "function-bind": "^1.1.2"
3339
3607
  },
@@ -3350,6 +3618,25 @@
3350
3618
  "node": "*"
3351
3619
  }
3352
3620
  },
3621
+ "node_modules/http-errors": {
3622
+ "version": "2.0.1",
3623
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
3624
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
3625
+ "dependencies": {
3626
+ "depd": "~2.0.0",
3627
+ "inherits": "~2.0.4",
3628
+ "setprototypeof": "~1.2.0",
3629
+ "statuses": "~2.0.2",
3630
+ "toidentifier": "~1.0.1"
3631
+ },
3632
+ "engines": {
3633
+ "node": ">= 0.8"
3634
+ },
3635
+ "funding": {
3636
+ "type": "opencollective",
3637
+ "url": "https://opencollective.com/express"
3638
+ }
3639
+ },
3353
3640
  "node_modules/i18next": {
3354
3641
  "version": "8.4.3",
3355
3642
  "resolved": "https://registry.npmjs.org/i18next/-/i18next-8.4.3.tgz",
@@ -3422,6 +3709,11 @@
3422
3709
  "node": ">=0.8.19"
3423
3710
  }
3424
3711
  },
3712
+ "node_modules/inherits": {
3713
+ "version": "2.0.4",
3714
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
3715
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
3716
+ },
3425
3717
  "node_modules/internmap": {
3426
3718
  "version": "2.0.3",
3427
3719
  "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
@@ -3431,6 +3723,14 @@
3431
3723
  "node": ">=12"
3432
3724
  }
3433
3725
  },
3726
+ "node_modules/ipaddr.js": {
3727
+ "version": "1.9.1",
3728
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
3729
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
3730
+ "engines": {
3731
+ "node": ">= 0.10"
3732
+ }
3733
+ },
3434
3734
  "node_modules/is-buffer": {
3435
3735
  "version": "1.1.6",
3436
3736
  "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -3697,7 +3997,6 @@
3697
3997
  "version": "1.1.0",
3698
3998
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
3699
3999
  "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
3700
- "dev": true,
3701
4000
  "engines": {
3702
4001
  "node": ">= 0.4"
3703
4002
  }
@@ -3719,11 +4018,45 @@
3719
4018
  "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
3720
4019
  "dev": true
3721
4020
  },
4021
+ "node_modules/media-typer": {
4022
+ "version": "0.3.0",
4023
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
4024
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
4025
+ "engines": {
4026
+ "node": ">= 0.6"
4027
+ }
4028
+ },
4029
+ "node_modules/merge-descriptors": {
4030
+ "version": "1.0.3",
4031
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
4032
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
4033
+ "funding": {
4034
+ "url": "https://github.com/sponsors/sindresorhus"
4035
+ }
4036
+ },
4037
+ "node_modules/methods": {
4038
+ "version": "1.1.2",
4039
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
4040
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
4041
+ "engines": {
4042
+ "node": ">= 0.6"
4043
+ }
4044
+ },
4045
+ "node_modules/mime": {
4046
+ "version": "1.6.0",
4047
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
4048
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
4049
+ "bin": {
4050
+ "mime": "cli.js"
4051
+ },
4052
+ "engines": {
4053
+ "node": ">=4"
4054
+ }
4055
+ },
3722
4056
  "node_modules/mime-db": {
3723
4057
  "version": "1.52.0",
3724
4058
  "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
3725
4059
  "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
3726
- "dev": true,
3727
4060
  "engines": {
3728
4061
  "node": ">= 0.6"
3729
4062
  }
@@ -3732,7 +4065,6 @@
3732
4065
  "version": "2.1.35",
3733
4066
  "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
3734
4067
  "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
3735
- "dev": true,
3736
4068
  "dependencies": {
3737
4069
  "mime-db": "1.52.0"
3738
4070
  },
@@ -3776,8 +4108,7 @@
3776
4108
  "node_modules/ms": {
3777
4109
  "version": "2.1.3",
3778
4110
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
3779
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
3780
- "dev": true
4111
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
3781
4112
  },
3782
4113
  "node_modules/nanoid": {
3783
4114
  "version": "5.1.6",
@@ -3803,6 +4134,14 @@
3803
4134
  "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
3804
4135
  "dev": true
3805
4136
  },
4137
+ "node_modules/negotiator": {
4138
+ "version": "0.6.3",
4139
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
4140
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
4141
+ "engines": {
4142
+ "node": ">= 0.6"
4143
+ }
4144
+ },
3806
4145
  "node_modules/neo-async": {
3807
4146
  "version": "2.6.2",
3808
4147
  "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
@@ -3835,7 +4174,6 @@
3835
4174
  "version": "1.13.4",
3836
4175
  "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
3837
4176
  "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
3838
- "dev": true,
3839
4177
  "engines": {
3840
4178
  "node": ">= 0.4"
3841
4179
  },
@@ -3843,6 +4181,17 @@
3843
4181
  "url": "https://github.com/sponsors/ljharb"
3844
4182
  }
3845
4183
  },
4184
+ "node_modules/on-finished": {
4185
+ "version": "2.4.1",
4186
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
4187
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
4188
+ "dependencies": {
4189
+ "ee-first": "1.1.1"
4190
+ },
4191
+ "engines": {
4192
+ "node": ">= 0.8"
4193
+ }
4194
+ },
3846
4195
  "node_modules/open": {
3847
4196
  "version": "10.2.0",
3848
4197
  "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
@@ -3926,6 +4275,14 @@
3926
4275
  "node": ">=6"
3927
4276
  }
3928
4277
  },
4278
+ "node_modules/parseurl": {
4279
+ "version": "1.3.3",
4280
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
4281
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
4282
+ "engines": {
4283
+ "node": ">= 0.8"
4284
+ }
4285
+ },
3929
4286
  "node_modules/path-exists": {
3930
4287
  "version": "4.0.0",
3931
4288
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -3975,6 +4332,11 @@
3975
4332
  "url": "https://github.com/sponsors/isaacs"
3976
4333
  }
3977
4334
  },
4335
+ "node_modules/path-to-regexp": {
4336
+ "version": "0.1.12",
4337
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
4338
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
4339
+ },
3978
4340
  "node_modules/picocolors": {
3979
4341
  "version": "1.1.1",
3980
4342
  "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -4128,6 +4490,18 @@
4128
4490
  "node": ">= 6"
4129
4491
  }
4130
4492
  },
4493
+ "node_modules/proxy-addr": {
4494
+ "version": "2.0.7",
4495
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
4496
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
4497
+ "dependencies": {
4498
+ "forwarded": "0.2.0",
4499
+ "ipaddr.js": "1.9.1"
4500
+ },
4501
+ "engines": {
4502
+ "node": ">= 0.10"
4503
+ }
4504
+ },
4131
4505
  "node_modules/proxy-from-env": {
4132
4506
  "version": "1.1.0",
4133
4507
  "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -4167,6 +4541,39 @@
4167
4541
  "url": "https://github.com/sponsors/ljharb"
4168
4542
  }
4169
4543
  },
4544
+ "node_modules/range-parser": {
4545
+ "version": "1.2.1",
4546
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
4547
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
4548
+ "engines": {
4549
+ "node": ">= 0.6"
4550
+ }
4551
+ },
4552
+ "node_modules/raw-body": {
4553
+ "version": "2.5.3",
4554
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
4555
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
4556
+ "dependencies": {
4557
+ "bytes": "~3.1.2",
4558
+ "http-errors": "~2.0.1",
4559
+ "iconv-lite": "~0.4.24",
4560
+ "unpipe": "~1.0.0"
4561
+ },
4562
+ "engines": {
4563
+ "node": ">= 0.8"
4564
+ }
4565
+ },
4566
+ "node_modules/raw-body/node_modules/iconv-lite": {
4567
+ "version": "0.4.24",
4568
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
4569
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
4570
+ "dependencies": {
4571
+ "safer-buffer": ">= 2.1.2 < 3"
4572
+ },
4573
+ "engines": {
4574
+ "node": ">=0.10.0"
4575
+ }
4576
+ },
4170
4577
  "node_modules/react": {
4171
4578
  "name": "@preact/compat",
4172
4579
  "version": "18.3.2",
@@ -4263,7 +4670,6 @@
4263
4670
  "version": "5.2.1",
4264
4671
  "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
4265
4672
  "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
4266
- "dev": true,
4267
4673
  "funding": [
4268
4674
  {
4269
4675
  "type": "github",
@@ -4282,8 +4688,7 @@
4282
4688
  "node_modules/safer-buffer": {
4283
4689
  "version": "2.1.2",
4284
4690
  "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
4285
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
4286
- "dev": true
4691
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
4287
4692
  },
4288
4693
  "node_modules/semver": {
4289
4694
  "version": "7.7.4",
@@ -4297,6 +4702,61 @@
4297
4702
  "node": ">=10"
4298
4703
  }
4299
4704
  },
4705
+ "node_modules/send": {
4706
+ "version": "0.19.2",
4707
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
4708
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
4709
+ "dependencies": {
4710
+ "debug": "2.6.9",
4711
+ "depd": "2.0.0",
4712
+ "destroy": "1.2.0",
4713
+ "encodeurl": "~2.0.0",
4714
+ "escape-html": "~1.0.3",
4715
+ "etag": "~1.8.1",
4716
+ "fresh": "~0.5.2",
4717
+ "http-errors": "~2.0.1",
4718
+ "mime": "1.6.0",
4719
+ "ms": "2.1.3",
4720
+ "on-finished": "~2.4.1",
4721
+ "range-parser": "~1.2.1",
4722
+ "statuses": "~2.0.2"
4723
+ },
4724
+ "engines": {
4725
+ "node": ">= 0.8.0"
4726
+ }
4727
+ },
4728
+ "node_modules/send/node_modules/debug": {
4729
+ "version": "2.6.9",
4730
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
4731
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
4732
+ "dependencies": {
4733
+ "ms": "2.0.0"
4734
+ }
4735
+ },
4736
+ "node_modules/send/node_modules/debug/node_modules/ms": {
4737
+ "version": "2.0.0",
4738
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
4739
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
4740
+ },
4741
+ "node_modules/serve-static": {
4742
+ "version": "1.16.3",
4743
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
4744
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
4745
+ "dependencies": {
4746
+ "encodeurl": "~2.0.0",
4747
+ "escape-html": "~1.0.3",
4748
+ "parseurl": "~1.3.3",
4749
+ "send": "~0.19.1"
4750
+ },
4751
+ "engines": {
4752
+ "node": ">= 0.8.0"
4753
+ }
4754
+ },
4755
+ "node_modules/setprototypeof": {
4756
+ "version": "1.2.0",
4757
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
4758
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
4759
+ },
4300
4760
  "node_modules/shebang-command": {
4301
4761
  "version": "2.0.0",
4302
4762
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4322,7 +4782,6 @@
4322
4782
  "version": "1.1.0",
4323
4783
  "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
4324
4784
  "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
4325
- "dev": true,
4326
4785
  "dependencies": {
4327
4786
  "es-errors": "^1.3.0",
4328
4787
  "object-inspect": "^1.13.3",
@@ -4341,7 +4800,6 @@
4341
4800
  "version": "1.0.0",
4342
4801
  "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
4343
4802
  "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
4344
- "dev": true,
4345
4803
  "dependencies": {
4346
4804
  "es-errors": "^1.3.0",
4347
4805
  "object-inspect": "^1.13.3"
@@ -4357,7 +4815,6 @@
4357
4815
  "version": "1.0.1",
4358
4816
  "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
4359
4817
  "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
4360
- "dev": true,
4361
4818
  "dependencies": {
4362
4819
  "call-bound": "^1.0.2",
4363
4820
  "es-errors": "^1.3.0",
@@ -4375,7 +4832,6 @@
4375
4832
  "version": "1.0.2",
4376
4833
  "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
4377
4834
  "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
4378
- "dev": true,
4379
4835
  "dependencies": {
4380
4836
  "call-bound": "^1.0.2",
4381
4837
  "es-errors": "^1.3.0",
@@ -4438,6 +4894,14 @@
4438
4894
  "integrity": "sha512-mPTnGCiS/RiuTNsVhCm9De9cCAUsrNFFviRbADdKiiV+Kk8HKp/0fWu7Kr8pi3/yBmsqLFHuXGT9UUZ+CNLwFw==",
4439
4895
  "dev": true
4440
4896
  },
4897
+ "node_modules/statuses": {
4898
+ "version": "2.0.2",
4899
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
4900
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
4901
+ "engines": {
4902
+ "node": ">= 0.8"
4903
+ }
4904
+ },
4441
4905
  "node_modules/string_decoder": {
4442
4906
  "version": "1.3.0",
4443
4907
  "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -4499,6 +4963,14 @@
4499
4963
  "url": "https://github.com/sponsors/SuperchupuDev"
4500
4964
  }
4501
4965
  },
4966
+ "node_modules/toidentifier": {
4967
+ "version": "1.0.1",
4968
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
4969
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
4970
+ "engines": {
4971
+ "node": ">=0.6"
4972
+ }
4973
+ },
4502
4974
  "node_modules/ts-api-utils": {
4503
4975
  "version": "2.4.0",
4504
4976
  "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz",
@@ -4529,6 +5001,18 @@
4529
5001
  "node": ">= 0.8.0"
4530
5002
  }
4531
5003
  },
5004
+ "node_modules/type-is": {
5005
+ "version": "1.6.18",
5006
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
5007
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
5008
+ "dependencies": {
5009
+ "media-typer": "0.3.0",
5010
+ "mime-types": "~2.1.24"
5011
+ },
5012
+ "engines": {
5013
+ "node": ">= 0.6"
5014
+ }
5015
+ },
4532
5016
  "node_modules/typescript": {
4533
5017
  "version": "5.9.3",
4534
5018
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
@@ -4574,6 +5058,14 @@
4574
5058
  "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
4575
5059
  "dev": true
4576
5060
  },
5061
+ "node_modules/unpipe": {
5062
+ "version": "1.0.0",
5063
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
5064
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
5065
+ "engines": {
5066
+ "node": ">= 0.8"
5067
+ }
5068
+ },
4577
5069
  "node_modules/uri-js": {
4578
5070
  "version": "4.4.1",
4579
5071
  "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -4614,6 +5106,22 @@
4614
5106
  "react": "*"
4615
5107
  }
4616
5108
  },
5109
+ "node_modules/utils-merge": {
5110
+ "version": "1.0.1",
5111
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
5112
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
5113
+ "engines": {
5114
+ "node": ">= 0.4.0"
5115
+ }
5116
+ },
5117
+ "node_modules/vary": {
5118
+ "version": "1.1.2",
5119
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
5120
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
5121
+ "engines": {
5122
+ "node": ">= 0.8"
5123
+ }
5124
+ },
4617
5125
  "node_modules/which": {
4618
5126
  "version": "2.0.2",
4619
5127
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -24,10 +24,18 @@ const collectResultFiles = async () => {
24
24
  };
25
25
 
26
26
  const generateReport = async () => {
27
+ try {
28
+ await stat(resultsDir);
29
+ } catch {
30
+ process.stdout.write("Skipping Allure report generation because allure-results does not exist.\n");
31
+ return;
32
+ }
33
+
27
34
  const files = await collectResultFiles();
28
35
 
29
36
  if (files.length === 0) {
30
- throw new Error("No Allure result files found in allure-results. Run the tests before generating a report.");
37
+ process.stdout.write("Skipping Allure report generation because no result files were found.\n");
38
+ return;
31
39
  }
32
40
 
33
41
  await rm(outputDir, { force: true, recursive: true });