← back to Wallco Ai
package: pin multer dep (wallco prod kept losing it on npm ci because not in lock)
05ab37b234cb4a8918fe6273a74f7a8b762e527a · 2026-05-13 12:55:22 -0700 · SteveStudio2
Files touched
M data/designs.jsonM package-lock.jsonM package.json
Diff
commit 05ab37b234cb4a8918fe6273a74f7a8b762e527a
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Wed May 13 12:55:22 2026 -0700
package: pin multer dep (wallco prod kept losing it on npm ci because not in lock)
---
data/designs.json | 904 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
package-lock.json | 146 ++++++++-
package.json | 3 +-
3 files changed, 1050 insertions(+), 3 deletions(-)
diff --git a/data/designs.json b/data/designs.json
index c71887e..358911e 100644
--- a/data/designs.json
+++ b/data/designs.json
@@ -59037,7 +59037,7 @@
"created_at": "2026-05-13T16:32:41.924168+00:00",
"motifs": [],
"user_removed": false,
- "user_color_good": null,
+ "user_color_good": true,
"user_style_good": null,
"user_scale_good": null,
"user_stars": null,
@@ -74940,5 +74940,907 @@
"user_scale_good": null,
"user_stars": null,
"room_mockups": []
+ },
+ {
+ "id": 3634,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b79e73",
+ "saturation": 0.321,
+ "title": "Honey Salon No.3634",
+ "handle": "wallco-3634",
+ "image_url": "/designs/img/1778701483396_1374834493.png",
+ "filename": "1778701483396_1374834493.png",
+ "generator": "wallco.ai",
+ "seed": 1374834493,
+ "is_published": false,
+ "created_at": "2026-05-13T19:44:51.913672+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3635,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b79e73",
+ "saturation": 0.321,
+ "title": "Honey Baroque No.3635",
+ "handle": "wallco-3635",
+ "image_url": "/designs/img/var_3634_hue+60_1778701492022.png",
+ "filename": "var_3634_hue+60_1778701492022.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:44:54.249773+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3636,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b79e73",
+ "saturation": 0.321,
+ "title": "Honey Damask No.3636",
+ "handle": "wallco-3636",
+ "image_url": "/designs/img/var_3634_hue+120_1778701494254.png",
+ "filename": "var_3634_hue+120_1778701494254.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:44:56.5357+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3637,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b79e73",
+ "saturation": 0.321,
+ "title": "Honey Heirloom No.3637",
+ "handle": "wallco-3637",
+ "image_url": "/designs/img/var_3634_hue+180_1778701496539.png",
+ "filename": "var_3634_hue+180_1778701496539.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:44:58.817587+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3638,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b79e73",
+ "saturation": 0.321,
+ "title": "Honey Atelier No.3638",
+ "handle": "wallco-3638",
+ "image_url": "/designs/img/var_3634_hue-60_1778701498823.png",
+ "filename": "var_3634_hue-60_1778701498823.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:45:01.243782+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3639,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b79e73",
+ "saturation": 0.321,
+ "title": "Honey Salon No.3639",
+ "handle": "wallco-3639",
+ "image_url": "/designs/img/var_3634_mono_1778701501248.png",
+ "filename": "var_3634_mono_1778701501248.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:45:03.574337+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3640,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#6a557a",
+ "saturation": 0.179,
+ "title": "Mauve Hiccup No.3640",
+ "handle": "wallco-3640",
+ "image_url": "/designs/img/1778701531342_1389659568.png",
+ "filename": "1778701531342_1389659568.png",
+ "generator": "wallco.ai",
+ "seed": 1389659568,
+ "is_published": false,
+ "created_at": "2026-05-13T19:45:39.643641+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3641,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#5d614e",
+ "saturation": 0.109,
+ "title": "Olive Trip No.3641",
+ "handle": "wallco-3641",
+ "image_url": "/designs/img/1778701531488_19192430.png",
+ "filename": "1778701531488_19192430.png",
+ "generator": "wallco.ai",
+ "seed": 19192430,
+ "is_published": false,
+ "created_at": "2026-05-13T19:45:43.331741+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3642,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#383850",
+ "saturation": 0.176,
+ "title": "Sapphire Tableau No.3642",
+ "handle": "wallco-3642",
+ "image_url": "/designs/img/1778701560898_424552523.png",
+ "filename": "1778701560898_424552523.png",
+ "generator": "wallco.ai",
+ "seed": 424552523,
+ "is_published": false,
+ "created_at": "2026-05-13T19:46:12.643775+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3643,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#1e384b",
+ "saturation": 0.429,
+ "title": "Sapphire Reverie No.3643",
+ "handle": "wallco-3643",
+ "image_url": "/designs/img/1778701621898_1537711990.png",
+ "filename": "1778701621898_1537711990.png",
+ "generator": "wallco.ai",
+ "seed": 1537711990,
+ "is_published": false,
+ "created_at": "2026-05-13T19:47:14.05589+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3644,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#755656",
+ "saturation": 0.153,
+ "title": "Rose Vespers No.3644",
+ "handle": "wallco-3644",
+ "image_url": "/designs/img/1778701621898_27251394.png",
+ "filename": "1778701621898_27251394.png",
+ "generator": "wallco.ai",
+ "seed": 27251394,
+ "is_published": false,
+ "created_at": "2026-05-13T19:47:17.242919+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3645,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#1e303f",
+ "saturation": 0.355,
+ "title": "Sapphire Baroque No.3645",
+ "handle": "wallco-3645",
+ "image_url": "/designs/img/1778701672222_2017601377.png",
+ "filename": "1778701672222_2017601377.png",
+ "generator": "wallco.ai",
+ "seed": 2017601377,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:04.078255+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3646,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#1e303f",
+ "saturation": 0.355,
+ "title": "Sapphire Damask No.3646",
+ "handle": "wallco-3646",
+ "image_url": "/designs/img/var_3645_hue+60_1778701684203.png",
+ "filename": "var_3645_hue+60_1778701684203.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:06.434361+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3647,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#1e303f",
+ "saturation": 0.355,
+ "title": "Sapphire Heirloom No.3647",
+ "handle": "wallco-3647",
+ "image_url": "/designs/img/var_3645_hue+120_1778701686439.png",
+ "filename": "var_3645_hue+120_1778701686439.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:09.7704+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3648,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#1e303f",
+ "saturation": 0.355,
+ "title": "Sapphire Atelier No.3648",
+ "handle": "wallco-3648",
+ "image_url": "/designs/img/var_3645_hue+180_1778701689781.png",
+ "filename": "var_3645_hue+180_1778701689781.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:14.628127+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3649,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#1e303f",
+ "saturation": 0.355,
+ "title": "Sapphire Salon No.3649",
+ "handle": "wallco-3649",
+ "image_url": "/designs/img/var_3645_hue-60_1778701694643.png",
+ "filename": "var_3645_hue-60_1778701694643.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:21.478725+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3650,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#1e303f",
+ "saturation": 0.355,
+ "title": "Sapphire Baroque No.3650",
+ "handle": "wallco-3650",
+ "image_url": "/designs/img/var_3645_mono_1778701701491.png",
+ "filename": "var_3645_mono_1778701701491.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:25.895577+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3651,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#a56987",
+ "saturation": 0.25,
+ "title": "Rose Tipple No.3651",
+ "handle": "wallco-3651",
+ "image_url": "/designs/img/1778701711321_945485715.png",
+ "filename": "1778701711321_945485715.png",
+ "generator": "wallco.ai",
+ "seed": 945485715,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:42.176008+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3652,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#272a38",
+ "saturation": 0.179,
+ "title": "Sapphire Stardust No.3652",
+ "handle": "wallco-3652",
+ "image_url": "/designs/img/1778701711486_767975653.png",
+ "filename": "1778701711486_767975653.png",
+ "generator": "wallco.ai",
+ "seed": 767975653,
+ "is_published": false,
+ "created_at": "2026-05-13T19:48:43.858658+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3653,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#966756",
+ "saturation": 0.271,
+ "title": "Amber Reverie No.3653",
+ "handle": "wallco-3653",
+ "image_url": "/designs/img/1778701801356_2080390617.png",
+ "filename": "1778701801356_2080390617.png",
+ "generator": "wallco.ai",
+ "seed": 2080390617,
+ "is_published": false,
+ "created_at": "2026-05-13T19:50:26.491325+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3654,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#1b2025",
+ "saturation": 0.156,
+ "title": "Sapphire Vespers No.3654",
+ "handle": "wallco-3654",
+ "image_url": "/designs/img/1778701801483_1787686250.png",
+ "filename": "1778701801483_1787686250.png",
+ "generator": "wallco.ai",
+ "seed": 1787686250,
+ "is_published": false,
+ "created_at": "2026-05-13T19:50:29.543681+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3655,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#537152",
+ "saturation": 0.159,
+ "title": "Sage Vignette No.3655",
+ "handle": "wallco-3655",
+ "image_url": "/designs/img/1778701813261_314338445.png",
+ "filename": "1778701813261_314338445.png",
+ "generator": "wallco.ai",
+ "seed": 314338445,
+ "is_published": false,
+ "created_at": "2026-05-13T19:50:31.847603+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3656,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b96934",
+ "saturation": 0.561,
+ "title": "Amber Damask No.3656",
+ "handle": "wallco-3656",
+ "image_url": "/designs/img/1778701864351_1552362160.png",
+ "filename": "1778701864351_1552362160.png",
+ "generator": "wallco.ai",
+ "seed": 1552362160,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:13.1333+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3657,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b96934",
+ "saturation": 0.561,
+ "title": "Amber Heirloom No.3657",
+ "handle": "wallco-3657",
+ "image_url": "/designs/img/var_3656_hue+60_1778701873240.png",
+ "filename": "var_3656_hue+60_1778701873240.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:15.523763+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3658,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b96934",
+ "saturation": 0.561,
+ "title": "Amber Atelier No.3658",
+ "handle": "wallco-3658",
+ "image_url": "/designs/img/var_3656_hue+120_1778701875527.png",
+ "filename": "var_3656_hue+120_1778701875527.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:17.794919+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3659,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b96934",
+ "saturation": 0.561,
+ "title": "Amber Salon No.3659",
+ "handle": "wallco-3659",
+ "image_url": "/designs/img/var_3656_hue+180_1778701877801.png",
+ "filename": "var_3656_hue+180_1778701877801.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:20.010286+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3660,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b96934",
+ "saturation": 0.561,
+ "title": "Amber Baroque No.3660",
+ "handle": "wallco-3660",
+ "image_url": "/designs/img/var_3656_hue-60_1778701880015.png",
+ "filename": "var_3656_hue-60_1778701880015.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:22.209724+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3661,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#b96934",
+ "saturation": 0.561,
+ "title": "Amber Damask No.3661",
+ "handle": "wallco-3661",
+ "image_url": "/designs/img/var_3656_mono_1778701882213.png",
+ "filename": "var_3656_mono_1778701882213.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:24.508112+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3662,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#95514e",
+ "saturation": 0.313,
+ "title": "Rose Tableau No.3662",
+ "handle": "wallco-3662",
+ "image_url": "/designs/img/1778701891325_2024167281.png",
+ "filename": "1778701891325_2024167281.png",
+ "generator": "wallco.ai",
+ "seed": 2024167281,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:39.549921+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3663,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#647948",
+ "saturation": 0.254,
+ "title": "Sage Daydream No.3663",
+ "handle": "wallco-3663",
+ "image_url": "/designs/img/1778701891489_502419263.png",
+ "filename": "1778701891489_502419263.png",
+ "generator": "wallco.ai",
+ "seed": 502419263,
+ "is_published": false,
+ "created_at": "2026-05-13T19:51:39.953078+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3664,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#da2e99",
+ "saturation": 0.699,
+ "title": "Plum Soir\u00e9e No.3664",
+ "handle": "wallco-3664",
+ "image_url": "/designs/img/1778701981306_394484979.png",
+ "filename": "1778701981306_394484979.png",
+ "generator": "wallco.ai",
+ "seed": 394484979,
+ "is_published": false,
+ "created_at": "2026-05-13T19:53:16.816061+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3665,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#b17181",
+ "saturation": 0.291,
+ "title": "Rose Hazefield No.3665",
+ "handle": "wallco-3665",
+ "image_url": "/designs/img/1778701981497_362721013.png",
+ "filename": "1778701981497_362721013.png",
+ "generator": "wallco.ai",
+ "seed": 362721013,
+ "is_published": false,
+ "created_at": "2026-05-13T19:53:20.18735+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3666,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#645640",
+ "saturation": 0.22,
+ "title": "Honey Damask No.3666",
+ "handle": "wallco-3666",
+ "image_url": "/designs/img/1778702053363_1443080330.png",
+ "filename": "1778702053363_1443080330.png",
+ "generator": "wallco.ai",
+ "seed": 1443080330,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:21.714931+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3667,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#645640",
+ "saturation": 0.22,
+ "title": "Honey Heirloom No.3667",
+ "handle": "wallco-3667",
+ "image_url": "/designs/img/var_3666_hue+60_1778702061826.png",
+ "filename": "var_3666_hue+60_1778702061826.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:23.921654+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3668,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#645640",
+ "saturation": 0.22,
+ "title": "Honey Atelier No.3668",
+ "handle": "wallco-3668",
+ "image_url": "/designs/img/var_3666_hue+120_1778702063926.png",
+ "filename": "var_3666_hue+120_1778702063926.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:26.12055+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3669,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#645640",
+ "saturation": 0.22,
+ "title": "Honey Salon No.3669",
+ "handle": "wallco-3669",
+ "image_url": "/designs/img/var_3666_hue+180_1778702066124.png",
+ "filename": "var_3666_hue+180_1778702066124.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:28.329401+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3670,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#645640",
+ "saturation": 0.22,
+ "title": "Honey Baroque No.3670",
+ "handle": "wallco-3670",
+ "image_url": "/designs/img/var_3666_hue-60_1778702068333.png",
+ "filename": "var_3666_hue-60_1778702068333.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:30.481959+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3671,
+ "kind": "seamless_tile",
+ "category": "damask",
+ "dominant_hex": "#645640",
+ "saturation": 0.22,
+ "title": "Honey Damask No.3671",
+ "handle": "wallco-3671",
+ "image_url": "/designs/img/var_3666_mono_1778702070485.png",
+ "filename": "var_3666_mono_1778702070485.png",
+ "generator": "wallco.ai",
+ "seed": 0,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:32.631846+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3672,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#56302e",
+ "saturation": 0.303,
+ "title": "Rose Tableau No.3672",
+ "handle": "wallco-3672",
+ "image_url": "/designs/img/1778702071313_1566141811.png",
+ "filename": "1778702071313_1566141811.png",
+ "generator": "wallco.ai",
+ "seed": 1566141811,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:39.56942+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3673,
+ "kind": "seamless_tile",
+ "category": "stoned-animals",
+ "dominant_hex": "#7f8261",
+ "saturation": 0.145,
+ "title": "Olive Daydream No.3673",
+ "handle": "wallco-3673",
+ "image_url": "/designs/img/1778702071483_394095012.png",
+ "filename": "1778702071483_394095012.png",
+ "generator": "wallco.ai",
+ "seed": 394095012,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:43.064994+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
+ },
+ {
+ "id": 3674,
+ "kind": "seamless_tile",
+ "category": "drunk-animals",
+ "dominant_hex": "#d12f73",
+ "saturation": 0.638,
+ "title": "Rose Soir\u00e9e No.3674",
+ "handle": "wallco-3674",
+ "image_url": "/designs/img/1778702072102_2060677012.png",
+ "filename": "1778702072102_2060677012.png",
+ "generator": "wallco.ai",
+ "seed": 2060677012,
+ "is_published": false,
+ "created_at": "2026-05-13T19:54:50.498739+00:00",
+ "motifs": [],
+ "user_removed": false,
+ "user_color_good": null,
+ "user_style_good": null,
+ "user_scale_good": null,
+ "user_stars": null,
+ "room_mockups": []
}
]
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index b710c00..cae9b8f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,8 @@
"dotenv": "^17.4.2",
"express": "^5.2.1",
"express-rate-limit": "^8.5.1",
- "jsonwebtoken": "^9.0.3"
+ "jsonwebtoken": "^9.0.3",
+ "multer": "^2.1.1"
}
},
"../inline-editor": {
@@ -46,6 +47,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==",
+ "license": "MIT"
+ },
"node_modules/body-parser": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
@@ -76,6 +83,23 @@
"integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
"license": "BSD-3-Clause"
},
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT"
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -168,6 +192,21 @@
"node": ">= 0.6"
}
},
+ "node_modules/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "engines": [
+ "node >= 6.0"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ },
"node_modules/content-disposition": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
@@ -723,6 +762,68 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
+ "node_modules/multer": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-2.1.1.tgz",
+ "integrity": "sha512-mo+QTzKlx8R7E5ylSXxWzGoXoZbOsRMpyitcht8By2KHvMbf3tjwosZ/Mu/XYU6UuJ3VZnODIrak5ZrPiPyB6A==",
+ "license": "MIT",
+ "dependencies": {
+ "append-field": "^1.0.0",
+ "busboy": "^1.6.0",
+ "concat-stream": "^2.0.0",
+ "type-is": "^1.6.18"
+ },
+ "engines": {
+ "node": ">= 10.16.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/multer/node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/multer/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/multer/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/multer/node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/negotiator": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
@@ -845,6 +946,20 @@
"node": ">= 0.10"
}
},
+ "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/router": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
@@ -1031,6 +1146,23 @@
"node": ">= 0.8"
}
},
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "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/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
@@ -1054,6 +1186,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "license": "MIT"
+ },
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -1063,6 +1201,12 @@
"node": ">= 0.8"
}
},
+ "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/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
diff --git a/package.json b/package.json
index a73d7db..86cee58 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
"dotenv": "^17.4.2",
"express": "^5.2.1",
"express-rate-limit": "^8.5.1",
- "jsonwebtoken": "^9.0.3"
+ "jsonwebtoken": "^9.0.3",
+ "multer": "^2.1.1"
}
}
← e5bfcad wallco-ai: gate Rate panel on admin, restore See-in-Room gen
·
back to Wallco Ai
·
settlement: hard-delete 14-design Cane Trellis chain (banana ef4e20c →