ChandimaPrabath commited on
Commit
8404cde
1 Parent(s): 3529dfb

nextjs cache dir

Browse files
Files changed (3) hide show
  1. Dockerfile +4 -0
  2. frontend/package-lock.json +434 -5
  3. frontend/package.json +2 -1
Dockerfile CHANGED
@@ -22,6 +22,10 @@ WORKDIR /app
22
  # Copy the Next.js build and node_modules from the builder stage
23
  COPY --from=builder /app /app
24
 
 
 
 
 
25
  # Install PM2 globally
26
  RUN npm install -g pm2
27
 
 
22
  # Copy the Next.js build and node_modules from the builder stage
23
  COPY --from=builder /app /app
24
 
25
+ # Create the cache directory and symbolic link
26
+ RUN mkdir -p /tmp/app/.next && \
27
+ ln -s /tmp/app/.next/cache .next/cache
28
+
29
  # Install PM2 globally
30
  RUN npm install -g pm2
31
 
frontend/package-lock.json CHANGED
@@ -16,7 +16,8 @@
16
  "axios": "^1.7.4",
17
  "next": "14.2.5",
18
  "react": "^18",
19
- "react-dom": "^18"
 
20
  },
21
  "devDependencies": {
22
  "eslint": "^8",
@@ -37,6 +38,15 @@
37
  "url": "https://github.com/sponsors/sindresorhus"
38
  }
39
  },
 
 
 
 
 
 
 
 
 
40
  "node_modules/@eslint-community/eslint-utils": {
41
  "version": "4.4.0",
42
  "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
@@ -189,6 +199,348 @@
189
  "deprecated": "Use @eslint/object-schema instead",
190
  "dev": true
191
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  "node_modules/@isaacs/cliui": {
193
  "version": "8.0.2",
194
  "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -1112,11 +1464,22 @@
1112
  "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
1113
  "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
1114
  },
 
 
 
 
 
 
 
 
 
 
 
 
1115
  "node_modules/color-convert": {
1116
  "version": "2.0.1",
1117
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1118
  "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1119
- "dev": true,
1120
  "dependencies": {
1121
  "color-name": "~1.1.4"
1122
  },
@@ -1127,8 +1490,16 @@
1127
  "node_modules/color-name": {
1128
  "version": "1.1.4",
1129
  "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1130
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1131
- "dev": true
 
 
 
 
 
 
 
 
1132
  },
1133
  "node_modules/combined-stream": {
1134
  "version": "1.0.8",
@@ -1336,6 +1707,14 @@
1336
  "node": ">=0.4.0"
1337
  }
1338
  },
 
 
 
 
 
 
 
 
1339
  "node_modules/didyoumean": {
1340
  "version": "1.2.2",
1341
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
@@ -2585,6 +2964,11 @@
2585
  "url": "https://github.com/sponsors/ljharb"
2586
  }
2587
  },
 
 
 
 
 
2588
  "node_modules/is-async-function": {
2589
  "version": "2.0.0",
2590
  "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
@@ -4095,7 +4479,6 @@
4095
  "version": "7.6.3",
4096
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
4097
  "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
4098
- "dev": true,
4099
  "bin": {
4100
  "semver": "bin/semver.js"
4101
  },
@@ -4135,6 +4518,44 @@
4135
  "node": ">= 0.4"
4136
  }
4137
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4138
  "node_modules/shebang-command": {
4139
  "version": "2.0.0",
4140
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4186,6 +4607,14 @@
4186
  "url": "https://github.com/sponsors/isaacs"
4187
  }
4188
  },
 
 
 
 
 
 
 
 
4189
  "node_modules/slash": {
4190
  "version": "3.0.0",
4191
  "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
 
16
  "axios": "^1.7.4",
17
  "next": "14.2.5",
18
  "react": "^18",
19
+ "react-dom": "^18",
20
+ "sharp": "^0.33.5"
21
  },
22
  "devDependencies": {
23
  "eslint": "^8",
 
38
  "url": "https://github.com/sponsors/sindresorhus"
39
  }
40
  },
41
+ "node_modules/@emnapi/runtime": {
42
+ "version": "1.2.0",
43
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz",
44
+ "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==",
45
+ "optional": true,
46
+ "dependencies": {
47
+ "tslib": "^2.4.0"
48
+ }
49
+ },
50
  "node_modules/@eslint-community/eslint-utils": {
51
  "version": "4.4.0",
52
  "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
 
199
  "deprecated": "Use @eslint/object-schema instead",
200
  "dev": true
201
  },
202
+ "node_modules/@img/sharp-darwin-arm64": {
203
+ "version": "0.33.5",
204
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
205
+ "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
206
+ "cpu": [
207
+ "arm64"
208
+ ],
209
+ "optional": true,
210
+ "os": [
211
+ "darwin"
212
+ ],
213
+ "engines": {
214
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
215
+ },
216
+ "funding": {
217
+ "url": "https://opencollective.com/libvips"
218
+ },
219
+ "optionalDependencies": {
220
+ "@img/sharp-libvips-darwin-arm64": "1.0.4"
221
+ }
222
+ },
223
+ "node_modules/@img/sharp-darwin-x64": {
224
+ "version": "0.33.5",
225
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
226
+ "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
227
+ "cpu": [
228
+ "x64"
229
+ ],
230
+ "optional": true,
231
+ "os": [
232
+ "darwin"
233
+ ],
234
+ "engines": {
235
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
236
+ },
237
+ "funding": {
238
+ "url": "https://opencollective.com/libvips"
239
+ },
240
+ "optionalDependencies": {
241
+ "@img/sharp-libvips-darwin-x64": "1.0.4"
242
+ }
243
+ },
244
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
245
+ "version": "1.0.4",
246
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
247
+ "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
248
+ "cpu": [
249
+ "arm64"
250
+ ],
251
+ "optional": true,
252
+ "os": [
253
+ "darwin"
254
+ ],
255
+ "funding": {
256
+ "url": "https://opencollective.com/libvips"
257
+ }
258
+ },
259
+ "node_modules/@img/sharp-libvips-darwin-x64": {
260
+ "version": "1.0.4",
261
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
262
+ "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
263
+ "cpu": [
264
+ "x64"
265
+ ],
266
+ "optional": true,
267
+ "os": [
268
+ "darwin"
269
+ ],
270
+ "funding": {
271
+ "url": "https://opencollective.com/libvips"
272
+ }
273
+ },
274
+ "node_modules/@img/sharp-libvips-linux-arm": {
275
+ "version": "1.0.5",
276
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
277
+ "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
278
+ "cpu": [
279
+ "arm"
280
+ ],
281
+ "optional": true,
282
+ "os": [
283
+ "linux"
284
+ ],
285
+ "funding": {
286
+ "url": "https://opencollective.com/libvips"
287
+ }
288
+ },
289
+ "node_modules/@img/sharp-libvips-linux-arm64": {
290
+ "version": "1.0.4",
291
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
292
+ "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
293
+ "cpu": [
294
+ "arm64"
295
+ ],
296
+ "optional": true,
297
+ "os": [
298
+ "linux"
299
+ ],
300
+ "funding": {
301
+ "url": "https://opencollective.com/libvips"
302
+ }
303
+ },
304
+ "node_modules/@img/sharp-libvips-linux-s390x": {
305
+ "version": "1.0.4",
306
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz",
307
+ "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==",
308
+ "cpu": [
309
+ "s390x"
310
+ ],
311
+ "optional": true,
312
+ "os": [
313
+ "linux"
314
+ ],
315
+ "funding": {
316
+ "url": "https://opencollective.com/libvips"
317
+ }
318
+ },
319
+ "node_modules/@img/sharp-libvips-linux-x64": {
320
+ "version": "1.0.4",
321
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
322
+ "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
323
+ "cpu": [
324
+ "x64"
325
+ ],
326
+ "optional": true,
327
+ "os": [
328
+ "linux"
329
+ ],
330
+ "funding": {
331
+ "url": "https://opencollective.com/libvips"
332
+ }
333
+ },
334
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
335
+ "version": "1.0.4",
336
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz",
337
+ "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==",
338
+ "cpu": [
339
+ "arm64"
340
+ ],
341
+ "optional": true,
342
+ "os": [
343
+ "linux"
344
+ ],
345
+ "funding": {
346
+ "url": "https://opencollective.com/libvips"
347
+ }
348
+ },
349
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
350
+ "version": "1.0.4",
351
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz",
352
+ "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==",
353
+ "cpu": [
354
+ "x64"
355
+ ],
356
+ "optional": true,
357
+ "os": [
358
+ "linux"
359
+ ],
360
+ "funding": {
361
+ "url": "https://opencollective.com/libvips"
362
+ }
363
+ },
364
+ "node_modules/@img/sharp-linux-arm": {
365
+ "version": "0.33.5",
366
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
367
+ "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
368
+ "cpu": [
369
+ "arm"
370
+ ],
371
+ "optional": true,
372
+ "os": [
373
+ "linux"
374
+ ],
375
+ "engines": {
376
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
377
+ },
378
+ "funding": {
379
+ "url": "https://opencollective.com/libvips"
380
+ },
381
+ "optionalDependencies": {
382
+ "@img/sharp-libvips-linux-arm": "1.0.5"
383
+ }
384
+ },
385
+ "node_modules/@img/sharp-linux-arm64": {
386
+ "version": "0.33.5",
387
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
388
+ "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
389
+ "cpu": [
390
+ "arm64"
391
+ ],
392
+ "optional": true,
393
+ "os": [
394
+ "linux"
395
+ ],
396
+ "engines": {
397
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
398
+ },
399
+ "funding": {
400
+ "url": "https://opencollective.com/libvips"
401
+ },
402
+ "optionalDependencies": {
403
+ "@img/sharp-libvips-linux-arm64": "1.0.4"
404
+ }
405
+ },
406
+ "node_modules/@img/sharp-linux-s390x": {
407
+ "version": "0.33.5",
408
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz",
409
+ "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==",
410
+ "cpu": [
411
+ "s390x"
412
+ ],
413
+ "optional": true,
414
+ "os": [
415
+ "linux"
416
+ ],
417
+ "engines": {
418
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
419
+ },
420
+ "funding": {
421
+ "url": "https://opencollective.com/libvips"
422
+ },
423
+ "optionalDependencies": {
424
+ "@img/sharp-libvips-linux-s390x": "1.0.4"
425
+ }
426
+ },
427
+ "node_modules/@img/sharp-linux-x64": {
428
+ "version": "0.33.5",
429
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
430
+ "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
431
+ "cpu": [
432
+ "x64"
433
+ ],
434
+ "optional": true,
435
+ "os": [
436
+ "linux"
437
+ ],
438
+ "engines": {
439
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
440
+ },
441
+ "funding": {
442
+ "url": "https://opencollective.com/libvips"
443
+ },
444
+ "optionalDependencies": {
445
+ "@img/sharp-libvips-linux-x64": "1.0.4"
446
+ }
447
+ },
448
+ "node_modules/@img/sharp-linuxmusl-arm64": {
449
+ "version": "0.33.5",
450
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz",
451
+ "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==",
452
+ "cpu": [
453
+ "arm64"
454
+ ],
455
+ "optional": true,
456
+ "os": [
457
+ "linux"
458
+ ],
459
+ "engines": {
460
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
461
+ },
462
+ "funding": {
463
+ "url": "https://opencollective.com/libvips"
464
+ },
465
+ "optionalDependencies": {
466
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.4"
467
+ }
468
+ },
469
+ "node_modules/@img/sharp-linuxmusl-x64": {
470
+ "version": "0.33.5",
471
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz",
472
+ "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==",
473
+ "cpu": [
474
+ "x64"
475
+ ],
476
+ "optional": true,
477
+ "os": [
478
+ "linux"
479
+ ],
480
+ "engines": {
481
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
482
+ },
483
+ "funding": {
484
+ "url": "https://opencollective.com/libvips"
485
+ },
486
+ "optionalDependencies": {
487
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.4"
488
+ }
489
+ },
490
+ "node_modules/@img/sharp-wasm32": {
491
+ "version": "0.33.5",
492
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz",
493
+ "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==",
494
+ "cpu": [
495
+ "wasm32"
496
+ ],
497
+ "optional": true,
498
+ "dependencies": {
499
+ "@emnapi/runtime": "^1.2.0"
500
+ },
501
+ "engines": {
502
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
503
+ },
504
+ "funding": {
505
+ "url": "https://opencollective.com/libvips"
506
+ }
507
+ },
508
+ "node_modules/@img/sharp-win32-ia32": {
509
+ "version": "0.33.5",
510
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz",
511
+ "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==",
512
+ "cpu": [
513
+ "ia32"
514
+ ],
515
+ "optional": true,
516
+ "os": [
517
+ "win32"
518
+ ],
519
+ "engines": {
520
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
521
+ },
522
+ "funding": {
523
+ "url": "https://opencollective.com/libvips"
524
+ }
525
+ },
526
+ "node_modules/@img/sharp-win32-x64": {
527
+ "version": "0.33.5",
528
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
529
+ "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
530
+ "cpu": [
531
+ "x64"
532
+ ],
533
+ "optional": true,
534
+ "os": [
535
+ "win32"
536
+ ],
537
+ "engines": {
538
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
539
+ },
540
+ "funding": {
541
+ "url": "https://opencollective.com/libvips"
542
+ }
543
+ },
544
  "node_modules/@isaacs/cliui": {
545
  "version": "8.0.2",
546
  "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
 
1464
  "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
1465
  "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
1466
  },
1467
+ "node_modules/color": {
1468
+ "version": "4.2.3",
1469
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
1470
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
1471
+ "dependencies": {
1472
+ "color-convert": "^2.0.1",
1473
+ "color-string": "^1.9.0"
1474
+ },
1475
+ "engines": {
1476
+ "node": ">=12.5.0"
1477
+ }
1478
+ },
1479
  "node_modules/color-convert": {
1480
  "version": "2.0.1",
1481
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1482
  "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
 
1483
  "dependencies": {
1484
  "color-name": "~1.1.4"
1485
  },
 
1490
  "node_modules/color-name": {
1491
  "version": "1.1.4",
1492
  "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1493
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1494
+ },
1495
+ "node_modules/color-string": {
1496
+ "version": "1.9.1",
1497
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
1498
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
1499
+ "dependencies": {
1500
+ "color-name": "^1.0.0",
1501
+ "simple-swizzle": "^0.2.2"
1502
+ }
1503
  },
1504
  "node_modules/combined-stream": {
1505
  "version": "1.0.8",
 
1707
  "node": ">=0.4.0"
1708
  }
1709
  },
1710
+ "node_modules/detect-libc": {
1711
+ "version": "2.0.3",
1712
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
1713
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
1714
+ "engines": {
1715
+ "node": ">=8"
1716
+ }
1717
+ },
1718
  "node_modules/didyoumean": {
1719
  "version": "1.2.2",
1720
  "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
 
2964
  "url": "https://github.com/sponsors/ljharb"
2965
  }
2966
  },
2967
+ "node_modules/is-arrayish": {
2968
+ "version": "0.3.2",
2969
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
2970
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
2971
+ },
2972
  "node_modules/is-async-function": {
2973
  "version": "2.0.0",
2974
  "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
 
4479
  "version": "7.6.3",
4480
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
4481
  "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
 
4482
  "bin": {
4483
  "semver": "bin/semver.js"
4484
  },
 
4518
  "node": ">= 0.4"
4519
  }
4520
  },
4521
+ "node_modules/sharp": {
4522
+ "version": "0.33.5",
4523
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
4524
+ "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==",
4525
+ "hasInstallScript": true,
4526
+ "dependencies": {
4527
+ "color": "^4.2.3",
4528
+ "detect-libc": "^2.0.3",
4529
+ "semver": "^7.6.3"
4530
+ },
4531
+ "engines": {
4532
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
4533
+ },
4534
+ "funding": {
4535
+ "url": "https://opencollective.com/libvips"
4536
+ },
4537
+ "optionalDependencies": {
4538
+ "@img/sharp-darwin-arm64": "0.33.5",
4539
+ "@img/sharp-darwin-x64": "0.33.5",
4540
+ "@img/sharp-libvips-darwin-arm64": "1.0.4",
4541
+ "@img/sharp-libvips-darwin-x64": "1.0.4",
4542
+ "@img/sharp-libvips-linux-arm": "1.0.5",
4543
+ "@img/sharp-libvips-linux-arm64": "1.0.4",
4544
+ "@img/sharp-libvips-linux-s390x": "1.0.4",
4545
+ "@img/sharp-libvips-linux-x64": "1.0.4",
4546
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
4547
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.4",
4548
+ "@img/sharp-linux-arm": "0.33.5",
4549
+ "@img/sharp-linux-arm64": "0.33.5",
4550
+ "@img/sharp-linux-s390x": "0.33.5",
4551
+ "@img/sharp-linux-x64": "0.33.5",
4552
+ "@img/sharp-linuxmusl-arm64": "0.33.5",
4553
+ "@img/sharp-linuxmusl-x64": "0.33.5",
4554
+ "@img/sharp-wasm32": "0.33.5",
4555
+ "@img/sharp-win32-ia32": "0.33.5",
4556
+ "@img/sharp-win32-x64": "0.33.5"
4557
+ }
4558
+ },
4559
  "node_modules/shebang-command": {
4560
  "version": "2.0.0",
4561
  "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
 
4607
  "url": "https://github.com/sponsors/isaacs"
4608
  }
4609
  },
4610
+ "node_modules/simple-swizzle": {
4611
+ "version": "0.2.2",
4612
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
4613
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
4614
+ "dependencies": {
4615
+ "is-arrayish": "^0.3.1"
4616
+ }
4617
+ },
4618
  "node_modules/slash": {
4619
  "version": "3.0.0",
4620
  "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
frontend/package.json CHANGED
@@ -17,7 +17,8 @@
17
  "axios": "^1.7.4",
18
  "next": "14.2.5",
19
  "react": "^18",
20
- "react-dom": "^18"
 
21
  },
22
  "devDependencies": {
23
  "eslint": "^8",
 
17
  "axios": "^1.7.4",
18
  "next": "14.2.5",
19
  "react": "^18",
20
+ "react-dom": "^18",
21
+ "sharp": "^0.33.5"
22
  },
23
  "devDependencies": {
24
  "eslint": "^8",