Add public/private news system with homepage display

This commit is contained in:
Torsten Schulz (local)
2025-10-21 15:26:28 +02:00
parent f0b628d746
commit 72c1039aa3
28 changed files with 272 additions and 126 deletions

View File

@@ -1,5 +1,5 @@
{ {
"date": "2025-10-21T13:21:52.912Z", "date": "2025-10-21T13:25:02.619Z",
"preset": "node-server", "preset": "node-server",
"framework": { "framework": {
"name": "nuxt", "name": "nuxt",

View File

@@ -1 +1 @@
{"id":"7c522edc-1fe9-4329-82a6-fb4c52573799","timestamp":1761052906091} {"id":"87a74d40-a4d3-4127-9775-3a14a30de796","timestamp":1761053095415}

View File

@@ -1 +0,0 @@
{"id":"7c522edc-1fe9-4329-82a6-fb4c52573799","timestamp":1761052906091,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

View File

@@ -0,0 +1 @@
{"id":"87a74d40-a4d3-4127-9775-3a14a30de796","timestamp":1761053095415,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

View File

@@ -1,5 +1,6 @@
import { promises } from 'fs'; import { promises } from 'fs';
import path from 'path'; import path from 'path';
import { randomUUID } from 'crypto';
const getDataPath = (filename) => { const getDataPath = (filename) => {
const cwd = process.cwd(); const cwd = process.cwd();
@@ -54,8 +55,9 @@ async function saveMember(memberData) {
} }
} else { } else {
const newMember = { const newMember = {
id: `m${Date.now()}`, ...memberData,
...memberData id: randomUUID()
// Cryptographically secure unique ID
}; };
members.push(newMember); members.push(newMember);
} }

View File

@@ -1 +1 @@
{"version":3,"file":"members.mjs","sources":["../../../../server/utils/members.js"],"sourcesContent":null,"names":["fs"],"mappings":"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"} {"version":3,"file":"members.mjs","sources":["../../../../server/utils/members.js"],"sourcesContent":null,"names":["fs"],"mappings":"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"}

View File

@@ -1,5 +1,6 @@
import { promises } from 'fs'; import { promises } from 'fs';
import path from 'path'; import path from 'path';
import { randomUUID } from 'crypto';
const getDataPath = (filename) => { const getDataPath = (filename) => {
const cwd = process.cwd(); const cwd = process.cwd();
@@ -46,8 +47,8 @@ async function saveNews(newsData) {
} else { } else {
const newItem = { const newItem = {
...newsData, ...newsData,
id: `n${Date.now()}`, id: randomUUID(),
// ID must come AFTER ...newsData to not be overwritten // Cryptographically secure unique ID
created: (/* @__PURE__ */ new Date()).toISOString(), created: (/* @__PURE__ */ new Date()).toISOString(),
updated: (/* @__PURE__ */ new Date()).toISOString() updated: (/* @__PURE__ */ new Date()).toISOString()
}; };

View File

@@ -1 +1 @@
{"version":3,"file":"news.mjs","sources":["../../../../server/utils/news.js"],"sourcesContent":null,"names":["fs"],"mappings":";;;AAIA,MAAM,WAAA,GAAc,CAAC,QAAA,KAAa;AAChC,EAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,EAAI;AAGxB,EAAA,IAAI,GAAA,CAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AAC3B,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,gBAAA,EAAkB,QAAQ,CAAA;AAAA,EAClD;AAGA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,aAAA,EAAe,QAAQ,CAAA;AAC/C,CAAA;AAEA,MAAM,SAAA,GAAY,YAAY,WAAW,CAAA;AAGzC,eAAsB,QAAA,GAAW;AAC/B,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,MAAMA,QAAA,CAAG,QAAA,CAAS,WAAW,OAAO,CAAA;AACjD,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,KAAA,CAAM,SAAS,QAAA,EAAU;AAC3B,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,OAAA,CAAQ,KAAA,CAAM,+BAA+B,KAAK,CAAA;AAClD,IAAA,OAAO,EAAC;AAAA,EACV;AACF;AAGA,eAAsB,UAAU,IAAA,EAAM;AACpC,EAAA,IAAI;AACF,IAAA,MAAMA,QAAA,CAAG,UAAU,SAAA,EAAW,IAAA,CAAK,UAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAA,EAAG,OAAO,CAAA;AACpE,IAAA,OAAO,IAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,mCAAmC,KAAK,CAAA;AACtD,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AASA,eAAsB,SAAS,QAAA,EAAU;AACvC,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,EAAS;AAEhC,EAAA,IAAI,SAAS,EAAA,EAAI;AAEf,IAAA,MAAM,QAAQ,QAAA,CAAS,SAAA,CAAU,OAAK,CAAA,CAAE,EAAA,KAAO,SAAS,EAAE,CAAA;AAC1D,IAAA,IAAI,UAAU,EAAA,EAAI;AAChB,MAAA,QAAA,CAAS,KAAK,CAAA,GAAI;AAAA,QAChB,GAAG,SAAS,KAAK,CAAA;AAAA,QACjB,GAAG,QAAA;AAAA,QACH,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,OAClC;AAAA,IACF,CAAA,MAAO;AACL,MAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,IACvC;AAAA,EACF,CAAA,MAAO;AAEL,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,GAAG,QAAA;AAAA,MACH,EAAA,EAAI,CAAA,CAAA,EAAI,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAAA;AAAA,MAClB,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAAA,MAChC,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,KAClC;AACA,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AAAA,EAC1B;AAEA,EAAA,MAAM,UAAU,QAAQ,CAAA;AACxB,EAAA,OAAO,IAAA;AACT;AAGA,eAAsB,WAAW,EAAA,EAAI;AACnC,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,EAAS;AAChC,EAAA,MAAM,WAAW,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,OAAO,EAAE,CAAA;AACjD,EAAA,MAAM,UAAU,QAAQ,CAAA;AACxB,EAAA,OAAO,IAAA;AACT;;;;"} {"version":3,"file":"news.mjs","sources":["../../../../server/utils/news.js"],"sourcesContent":null,"names":["fs"],"mappings":";;;;AAKA,MAAM,WAAA,GAAc,CAAC,QAAA,KAAa;AAChC,EAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,EAAI;AAGxB,EAAA,IAAI,GAAA,CAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AAC3B,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,gBAAA,EAAkB,QAAQ,CAAA;AAAA,EAClD;AAGA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,aAAA,EAAe,QAAQ,CAAA;AAC/C,CAAA;AAEA,MAAM,SAAA,GAAY,YAAY,WAAW,CAAA;AAGzC,eAAsB,QAAA,GAAW;AAC/B,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,MAAMA,QAAA,CAAG,QAAA,CAAS,WAAW,OAAO,CAAA;AACjD,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,KAAA,CAAM,SAAS,QAAA,EAAU;AAC3B,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,OAAA,CAAQ,KAAA,CAAM,+BAA+B,KAAK,CAAA;AAClD,IAAA,OAAO,EAAC;AAAA,EACV;AACF;AAGA,eAAsB,UAAU,IAAA,EAAM;AACpC,EAAA,IAAI;AACF,IAAA,MAAMA,QAAA,CAAG,UAAU,SAAA,EAAW,IAAA,CAAK,UAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAA,EAAG,OAAO,CAAA;AACpE,IAAA,OAAO,IAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,mCAAmC,KAAK,CAAA;AACtD,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AASA,eAAsB,SAAS,QAAA,EAAU;AACvC,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,EAAS;AAEhC,EAAA,IAAI,SAAS,EAAA,EAAI;AAEf,IAAA,MAAM,QAAQ,QAAA,CAAS,SAAA,CAAU,OAAK,CAAA,CAAE,EAAA,KAAO,SAAS,EAAE,CAAA;AAC1D,IAAA,IAAI,UAAU,EAAA,EAAI;AAChB,MAAA,QAAA,CAAS,KAAK,CAAA,GAAI;AAAA,QAChB,GAAG,SAAS,KAAK,CAAA;AAAA,QACjB,GAAG,QAAA;AAAA,QACH,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,OAClC;AAAA,IACF,CAAA,MAAO;AACL,MAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,IACvC;AAAA,EACF,CAAA,MAAO;AAEL,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,GAAG,QAAA;AAAA,MACH,IAAI,UAAA,EAAW;AAAA;AAAA,MACf,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAAA,MAChC,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,KAClC;AACA,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AAAA,EAC1B;AAEA,EAAA,MAAM,UAAU,QAAQ,CAAA;AACxB,EAAA,OAAO,IAAA;AACT;AAGA,eAAsB,WAAW,EAAA,EAAI;AACnC,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,EAAS;AAChC,EAAA,MAAM,WAAW,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,OAAO,EAAE,CAAA;AACjD,EAAA,MAAM,UAAU,QAAQ,CAAA;AACxB,EAAA,OAAO,IAAA;AACT;;;;"}

View File

@@ -3,9 +3,9 @@ const styles = {
"node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault),
"components/Hero.vue": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault), "components/Hero.vue": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault),
"components/Hero.vue?vue&type=style&index=0&scoped=33d25311&lang.css": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=b728498f&lang.css": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=b728498f&lang.css": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=70d84538&lang.css": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=70d84538&lang.css": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault)
"components/Hero.vue?vue&type=style&index=0&scoped=33d25311&lang.css": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault)
}; };
export { styles as default }; export { styles as default };

View File

@@ -4293,7 +4293,7 @@ function _expandFromEnv(value) {
const _inlineRuntimeConfig = { const _inlineRuntimeConfig = {
"app": { "app": {
"baseURL": "/", "baseURL": "/",
"buildId": "7c522edc-1fe9-4329-82a6-fb4c52573799", "buildId": "87a74d40-a4d3-4127-9775-3a14a30de796",
"buildAssetsDir": "/_nuxt/", "buildAssetsDir": "/_nuxt/",
"cdnURL": "" "cdnURL": ""
}, },
@@ -4738,537 +4738,537 @@ const plugins = [
]; ];
const assets = { const assets = {
"/documents/Tischtennisregeln light.pdf": {
"type": "application/pdf",
"etag": "\"5177b-y/88q2+Y3RRechJMqWhse21KRdQ\"",
"mtime": "2025-10-21T13:21:50.428Z",
"size": 333691,
"path": "../public/documents/Tischtennisregeln light.pdf"
},
"/documents/satzung.pdf": {
"type": "application/pdf",
"etag": "\"5c7cf-L0A3nT8D24T9sD57FFbij3QRpzw\"",
"mtime": "2025-10-21T13:21:50.428Z",
"size": 378831,
"path": "../public/documents/satzung.pdf"
},
"/data/mannschaften.csv": { "/data/mannschaften.csv": {
"type": "text/csv; charset=utf-8", "type": "text/csv; charset=utf-8",
"etag": "\"858-l94GKn8Q0I5RQnhrM0ZPJsYUmcw\"", "etag": "\"858-l94GKn8Q0I5RQnhrM0ZPJsYUmcw\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 2136, "size": 2136,
"path": "../public/data/mannschaften.csv" "path": "../public/data/mannschaften.csv"
}, },
"/data/spielsysteme.csv": { "/data/spielsysteme.csv": {
"type": "text/csv; charset=utf-8", "type": "text/csv; charset=utf-8",
"etag": "\"9bc-4npLrNHYClsD0TKV5vSifxitfV0\"", "etag": "\"9bc-4npLrNHYClsD0TKV5vSifxitfV0\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 2492, "size": 2492,
"path": "../public/data/spielsysteme.csv" "path": "../public/data/spielsysteme.csv"
}, },
"/data/termine.csv": { "/data/termine.csv": {
"type": "text/csv; charset=utf-8", "type": "text/csv; charset=utf-8",
"etag": "\"2e8-sZtaHF6QRmOQHinTWOLAYRgo6xk\"", "etag": "\"2e8-sZtaHF6QRmOQHinTWOLAYRgo6xk\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 744, "size": 744,
"path": "../public/data/termine.csv" "path": "../public/data/termine.csv"
}, },
"/data/vereinsmeisterschaften.csv": { "/data/vereinsmeisterschaften.csv": {
"type": "text/csv; charset=utf-8", "type": "text/csv; charset=utf-8",
"etag": "\"989-X8AB+Zegy2xUbjDtbQcXhuuyBDQ\"", "etag": "\"989-X8AB+Zegy2xUbjDtbQcXhuuyBDQ\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 2441, "size": 2441,
"path": "../public/data/vereinsmeisterschaften.csv" "path": "../public/data/vereinsmeisterschaften.csv"
}, },
"/documents/Tischtennisregeln light.pdf": {
"type": "application/pdf",
"etag": "\"5177b-y/88q2+Y3RRechJMqWhse21KRdQ\"",
"mtime": "2025-10-21T13:25:00.011Z",
"size": 333691,
"path": "../public/documents/Tischtennisregeln light.pdf"
},
"/documents/satzung.pdf": {
"type": "application/pdf",
"etag": "\"5c7cf-L0A3nT8D24T9sD57FFbij3QRpzw\"",
"mtime": "2025-10-21T13:25:00.011Z",
"size": 378831,
"path": "../public/documents/satzung.pdf"
},
"/images/club_about_us.png": { "/images/club_about_us.png": {
"type": "image/png", "type": "image/png",
"etag": "\"202e56-s4fLsHEgoAgKJeBRuI1qxPmqHV0\"", "etag": "\"202e56-s4fLsHEgoAgKJeBRuI1qxPmqHV0\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 2109014, "size": 2109014,
"path": "../public/images/club_about_us.png" "path": "../public/images/club_about_us.png"
}, },
"/spielplaene/1. Mannschaft 20252026.pdf": { "/spielplaene/1. Mannschaft 20252026.pdf": {
"type": "application/pdf", "type": "application/pdf",
"etag": "\"64c6-+477M+gD/spwpWR9NO/tMJ/inCc\"", "etag": "\"64c6-+477M+gD/spwpWR9NO/tMJ/inCc\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 25798, "size": 25798,
"path": "../public/spielplaene/1. Mannschaft 20252026.pdf" "path": "../public/spielplaene/1. Mannschaft 20252026.pdf"
}, },
"/spielplaene/2. Mannschaft 20252026.pdf": { "/spielplaene/2. Mannschaft 20252026.pdf": {
"type": "application/pdf", "type": "application/pdf",
"etag": "\"5bfa-DRJMHLV15iss67lEISoGqSYmZjE\"", "etag": "\"5bfa-DRJMHLV15iss67lEISoGqSYmZjE\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 23546, "size": 23546,
"path": "../public/spielplaene/2. Mannschaft 20252026.pdf" "path": "../public/spielplaene/2. Mannschaft 20252026.pdf"
}, },
"/spielplaene/3. Mannschaft 20252026.pdf": { "/spielplaene/3. Mannschaft 20252026.pdf": {
"type": "application/pdf", "type": "application/pdf",
"etag": "\"7447-w933CPQdXhkWJ2AZOVdY0UgJnPo\"", "etag": "\"7447-w933CPQdXhkWJ2AZOVdY0UgJnPo\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 29767, "size": 29767,
"path": "../public/spielplaene/3. Mannschaft 20252026.pdf" "path": "../public/spielplaene/3. Mannschaft 20252026.pdf"
}, },
"/spielplaene/4. Mannschaft 20252026.pdf": { "/spielplaene/4. Mannschaft 20252026.pdf": {
"type": "application/pdf", "type": "application/pdf",
"etag": "\"6a9b-4TPGn1yQlFUMRj7oB43SN//Np9o\"", "etag": "\"6a9b-4TPGn1yQlFUMRj7oB43SN//Np9o\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 27291, "size": 27291,
"path": "../public/spielplaene/4. Mannschaft 20252026.pdf" "path": "../public/spielplaene/4. Mannschaft 20252026.pdf"
}, },
"/spielplaene/5. Mannschaft 20252026.pdf": { "/spielplaene/5. Mannschaft 20252026.pdf": {
"type": "application/pdf", "type": "application/pdf",
"etag": "\"6523-5VUfCMaoiNhcwHhptHHTVJ3lSwQ\"", "etag": "\"6523-5VUfCMaoiNhcwHhptHHTVJ3lSwQ\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 25891, "size": 25891,
"path": "../public/spielplaene/5. Mannschaft 20252026.pdf" "path": "../public/spielplaene/5. Mannschaft 20252026.pdf"
}, },
"/spielplaene/Jugend 11 20252026.pdf": { "/spielplaene/Jugend 11 20252026.pdf": {
"type": "application/pdf", "type": "application/pdf",
"etag": "\"52e9-3Rrk9UKUxPh80pBJ0w9oLVbe5dA\"", "etag": "\"52e9-3Rrk9UKUxPh80pBJ0w9oLVbe5dA\"",
"mtime": "2025-10-21T13:21:50.428Z", "mtime": "2025-10-21T13:25:00.011Z",
"size": 21225, "size": 21225,
"path": "../public/spielplaene/Jugend 11 20252026.pdf" "path": "../public/spielplaene/Jugend 11 20252026.pdf"
}, },
"/_nuxt/0xufrPn-.js": { "/_nuxt/0xufrPn-.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"b10-/isfm3dyRIVsEjgvcmL/XPZzoKo\"", "etag": "\"b10-/isfm3dyRIVsEjgvcmL/XPZzoKo\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 2832, "size": 2832,
"path": "../public/_nuxt/0xufrPn-.js" "path": "../public/_nuxt/0xufrPn-.js"
}, },
"/_nuxt/48ve60fm.js": { "/_nuxt/48ve60fm.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"557-e04q6bcr4Wja5BTiX/uCY9jcaOk\"", "etag": "\"557-e04q6bcr4Wja5BTiX/uCY9jcaOk\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 1367, "size": 1367,
"path": "../public/_nuxt/48ve60fm.js" "path": "../public/_nuxt/48ve60fm.js"
}, },
"/_nuxt/B-ZRDHEi.js": { "/_nuxt/B-ZRDHEi.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1744-1NcVDhC8iP9qzUGuLES4GLUFuNU\"", "etag": "\"1744-1NcVDhC8iP9qzUGuLES4GLUFuNU\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 5956, "size": 5956,
"path": "../public/_nuxt/B-ZRDHEi.js" "path": "../public/_nuxt/B-ZRDHEi.js"
}, },
"/_nuxt/B4mSF5Ac.js": { "/_nuxt/B4mSF5Ac.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"185-hHs3mU4qOcQAkGQaPrUYGaG0yao\"", "etag": "\"185-hHs3mU4qOcQAkGQaPrUYGaG0yao\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 389, "size": 389,
"path": "../public/_nuxt/B4mSF5Ac.js" "path": "../public/_nuxt/B4mSF5Ac.js"
}, },
"/_nuxt/B8JkES4d.js": { "/_nuxt/B8JkES4d.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1860-WvKC8RdCe6cXCpB1GzY85pS096Q\"", "etag": "\"1860-WvKC8RdCe6cXCpB1GzY85pS096Q\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 6240, "size": 6240,
"path": "../public/_nuxt/B8JkES4d.js" "path": "../public/_nuxt/B8JkES4d.js"
}, },
"/_nuxt/BFjcARf_.js": { "/_nuxt/BFjcARf_.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"3458-KO3BlUYxGT9fa8/o5m7cBoNuldE\"", "etag": "\"3458-KO3BlUYxGT9fa8/o5m7cBoNuldE\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 13400, "size": 13400,
"path": "../public/_nuxt/BFjcARf_.js" "path": "../public/_nuxt/BFjcARf_.js"
}, },
"/_nuxt/BJFIhPLo.js": { "/_nuxt/BJFIhPLo.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"16e9-yq0/LFZyeArARUVXQVCw9WWyEhs\"", "etag": "\"16e9-yq0/LFZyeArARUVXQVCw9WWyEhs\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 5865, "size": 5865,
"path": "../public/_nuxt/BJFIhPLo.js" "path": "../public/_nuxt/BJFIhPLo.js"
}, },
"/_nuxt/BLJfiAQ_.js": { "/_nuxt/BLJfiAQ_.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1827-YlPmbtoIQqGYplyNk7VayRftNJ4\"", "etag": "\"1827-YlPmbtoIQqGYplyNk7VayRftNJ4\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 6183, "size": 6183,
"path": "../public/_nuxt/BLJfiAQ_.js" "path": "../public/_nuxt/BLJfiAQ_.js"
}, },
"/_nuxt/BQ1JAN-t.js": { "/_nuxt/BQ1JAN-t.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"4d4-D2c9LzMtu3t/oTdiDqO210OhOq0\"", "etag": "\"4d4-D2c9LzMtu3t/oTdiDqO210OhOq0\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 1236, "size": 1236,
"path": "../public/_nuxt/BQ1JAN-t.js" "path": "../public/_nuxt/BQ1JAN-t.js"
}, },
"/_nuxt/BTRcaDI_.js": { "/_nuxt/BTRcaDI_.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"e71-89mfqDG6lXCsNo8iythpikNOsNM\"", "etag": "\"e71-89mfqDG6lXCsNo8iythpikNOsNM\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 3697, "size": 3697,
"path": "../public/_nuxt/BTRcaDI_.js" "path": "../public/_nuxt/BTRcaDI_.js"
}, },
"/_nuxt/BVRiFo7f.js": { "/_nuxt/BVRiFo7f.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"dbf-bs5Lp4co8JtdiCR4NBZg2xEEpZE\"", "etag": "\"dbf-bs5Lp4co8JtdiCR4NBZg2xEEpZE\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 3519, "size": 3519,
"path": "../public/_nuxt/BVRiFo7f.js" "path": "../public/_nuxt/BVRiFo7f.js"
}, },
"/_nuxt/BWWcyQAZ.js": { "/_nuxt/BWWcyQAZ.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"685-pCeqOgBg8QXGBjOkvDQ5Miivcwk\"", "etag": "\"685-pCeqOgBg8QXGBjOkvDQ5Miivcwk\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 1669, "size": 1669,
"path": "../public/_nuxt/BWWcyQAZ.js" "path": "../public/_nuxt/BWWcyQAZ.js"
}, },
"/_nuxt/Be7mAYpw.js": { "/_nuxt/Be7mAYpw.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"13f6-nhcH7PpHXr9KCHrhZOBaqzyCANs\"", "etag": "\"13f6-nhcH7PpHXr9KCHrhZOBaqzyCANs\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 5110, "size": 5110,
"path": "../public/_nuxt/Be7mAYpw.js" "path": "../public/_nuxt/Be7mAYpw.js"
}, },
"/_nuxt/BkTrhdjg.js": { "/_nuxt/BkTrhdjg.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"81f-bXeZaccLlH7cSuSEhEG6Pk4vEzY\"", "etag": "\"81f-bXeZaccLlH7cSuSEhEG6Pk4vEzY\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 2079, "size": 2079,
"path": "../public/_nuxt/BkTrhdjg.js" "path": "../public/_nuxt/BkTrhdjg.js"
}, },
"/_nuxt/BneZCqgq.js": { "/_nuxt/BneZCqgq.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1a9f-Hr2fThSa8cJCoHMhFwvPAqgbLZg\"", "etag": "\"1a9f-Hr2fThSa8cJCoHMhFwvPAqgbLZg\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 6815, "size": 6815,
"path": "../public/_nuxt/BneZCqgq.js" "path": "../public/_nuxt/BneZCqgq.js"
}, },
"/_nuxt/BpG5pLwY.js": { "/_nuxt/BpG5pLwY.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"16e6-iqlwalhSHX6bpWAAiam6nLgiuVE\"", "etag": "\"16e6-iqlwalhSHX6bpWAAiam6nLgiuVE\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 5862, "size": 5862,
"path": "../public/_nuxt/BpG5pLwY.js" "path": "../public/_nuxt/BpG5pLwY.js"
}, },
"/_nuxt/BteKZQ9T.js": { "/_nuxt/BteKZQ9T.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1ea-kmrGdt5SPmt15EiBI7kR9gXMQM0\"", "etag": "\"1ea-kmrGdt5SPmt15EiBI7kR9gXMQM0\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 490, "size": 490,
"path": "../public/_nuxt/BteKZQ9T.js" "path": "../public/_nuxt/BteKZQ9T.js"
}, },
"/_nuxt/C0jrEzGC.js": { "/_nuxt/C0jrEzGC.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"5f0-uJRUZKhjlZl/nyiPAoO6Z/4LAHg\"", "etag": "\"5f0-uJRUZKhjlZl/nyiPAoO6Z/4LAHg\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 1520, "size": 1520,
"path": "../public/_nuxt/C0jrEzGC.js" "path": "../public/_nuxt/C0jrEzGC.js"
}, },
"/_nuxt/C5SyyWEb.js": { "/_nuxt/C5SyyWEb.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"2a5-06iX+CL3i0ysaqW9nu7Eg2YzDhQ\"", "etag": "\"2a5-06iX+CL3i0ysaqW9nu7Eg2YzDhQ\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 677, "size": 677,
"path": "../public/_nuxt/C5SyyWEb.js" "path": "../public/_nuxt/C5SyyWEb.js"
}, },
"/_nuxt/C8kQt0fa.js": { "/_nuxt/C8kQt0fa.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"197-7X99z1xphxry8OnMwU7Ofs/uE0Q\"", "etag": "\"197-7X99z1xphxry8OnMwU7Ofs/uE0Q\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 407, "size": 407,
"path": "../public/_nuxt/C8kQt0fa.js" "path": "../public/_nuxt/C8kQt0fa.js"
}, },
"/_nuxt/CGpRzXRB.js": { "/_nuxt/CGpRzXRB.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"37d-FnxQohNMb8l0n0XcPv+1bmf1WCE\"", "etag": "\"37d-FnxQohNMb8l0n0XcPv+1bmf1WCE\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 893, "size": 893,
"path": "../public/_nuxt/CGpRzXRB.js" "path": "../public/_nuxt/CGpRzXRB.js"
}, },
"/_nuxt/CHQH_CwJ.js": { "/_nuxt/CHQH_CwJ.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1168-mBOIwVjM5LsxIx13Cs7oT3+LJ+k\"", "etag": "\"1168-mBOIwVjM5LsxIx13Cs7oT3+LJ+k\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 4456, "size": 4456,
"path": "../public/_nuxt/CHQH_CwJ.js" "path": "../public/_nuxt/CHQH_CwJ.js"
}, },
"/_nuxt/CKjxMu8n.js": { "/_nuxt/CKjxMu8n.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"faa-TEO7v2i4TXlLpDUt7LGSNlcm+Ew\"", "etag": "\"faa-TEO7v2i4TXlLpDUt7LGSNlcm+Ew\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 4010, "size": 4010,
"path": "../public/_nuxt/CKjxMu8n.js" "path": "../public/_nuxt/CKjxMu8n.js"
}, },
"/_nuxt/CN7ivzv2.js": { "/_nuxt/CN7ivzv2.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1daf-KIlbDOIuT3G/zezUF5LO1f52Vtc\"", "etag": "\"1daf-KIlbDOIuT3G/zezUF5LO1f52Vtc\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 7599, "size": 7599,
"path": "../public/_nuxt/CN7ivzv2.js" "path": "../public/_nuxt/CN7ivzv2.js"
}, },
"/_nuxt/CNvcEwxd.js": { "/_nuxt/CNvcEwxd.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"11e7-FT5oxPyA+c2iUA/l/5Ieuxws3Pc\"", "etag": "\"11e7-FT5oxPyA+c2iUA/l/5Ieuxws3Pc\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 4583, "size": 4583,
"path": "../public/_nuxt/CNvcEwxd.js" "path": "../public/_nuxt/CNvcEwxd.js"
}, },
"/_nuxt/CUVZhO0q.js": { "/_nuxt/CUVZhO0q.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"dfc-1G2To51pfChtkPrr4l+DG3FkOHk\"", "etag": "\"dfc-1G2To51pfChtkPrr4l+DG3FkOHk\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 3580, "size": 3580,
"path": "../public/_nuxt/CUVZhO0q.js" "path": "../public/_nuxt/CUVZhO0q.js"
}, },
"/_nuxt/CUq_0rkE.js": { "/_nuxt/CUq_0rkE.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"12d-JV4KW1fgT85/V3Ap13X4q2h9U3g\"", "etag": "\"12d-JV4KW1fgT85/V3Ap13X4q2h9U3g\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.007Z",
"size": 301, "size": 301,
"path": "../public/_nuxt/CUq_0rkE.js" "path": "../public/_nuxt/CUq_0rkE.js"
}, },
"/_nuxt/CWEkTB1z.js": { "/_nuxt/CWEkTB1z.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"198-ej4DRqc3/5nSwWU3c6wbOD3Ib9w\"", "etag": "\"198-ej4DRqc3/5nSwWU3c6wbOD3Ib9w\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 408, "size": 408,
"path": "../public/_nuxt/CWEkTB1z.js" "path": "../public/_nuxt/CWEkTB1z.js"
}, },
"/_nuxt/Cb5SbJ0y.js": { "/_nuxt/Cb5SbJ0y.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1d90-K3fsAPMrslrofiGV21WL0Fu94+E\"", "etag": "\"1d90-K3fsAPMrslrofiGV21WL0Fu94+E\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 7568, "size": 7568,
"path": "../public/_nuxt/Cb5SbJ0y.js" "path": "../public/_nuxt/Cb5SbJ0y.js"
}, },
"/_nuxt/CkzaQq3X.js": { "/_nuxt/CkzaQq3X.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"17d-+xKrHjeww4bpFFkkjUNLD/ebn5A\"", "etag": "\"17d-+xKrHjeww4bpFFkkjUNLD/ebn5A\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 381, "size": 381,
"path": "../public/_nuxt/CkzaQq3X.js" "path": "../public/_nuxt/CkzaQq3X.js"
}, },
"/_nuxt/ClE1fqPv.js": { "/_nuxt/ClE1fqPv.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1906-eHa+bzUC8fs+OQ3D6PnBTazlRfc\"", "etag": "\"1906-eHa+bzUC8fs+OQ3D6PnBTazlRfc\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 6406, "size": 6406,
"path": "../public/_nuxt/ClE1fqPv.js" "path": "../public/_nuxt/ClE1fqPv.js"
}, },
"/_nuxt/CrCcIvVp.js": { "/_nuxt/CrCcIvVp.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"274-9U7hEMtgHqdnQopnKeJsBKqKyKw\"", "etag": "\"274-9U7hEMtgHqdnQopnKeJsBKqKyKw\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 628, "size": 628,
"path": "../public/_nuxt/CrCcIvVp.js" "path": "../public/_nuxt/CrCcIvVp.js"
}, },
"/_nuxt/Cx4UcKGu.js": { "/_nuxt/Cx4UcKGu.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"19d-5AMD0EnFEjOkM3qKDpC/NZZzwDI\"", "etag": "\"19d-5AMD0EnFEjOkM3qKDpC/NZZzwDI\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 413, "size": 413,
"path": "../public/_nuxt/Cx4UcKGu.js" "path": "../public/_nuxt/Cx4UcKGu.js"
}, },
"/_nuxt/Czdc6-TI.js": { "/_nuxt/Czdc6-TI.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"165-EMJ/yP2qajGIw0CL3y+L/hvMM/8\"", "etag": "\"165-EMJ/yP2qajGIw0CL3y+L/hvMM/8\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 357, "size": 357,
"path": "../public/_nuxt/Czdc6-TI.js" "path": "../public/_nuxt/Czdc6-TI.js"
}, },
"/_nuxt/D54FZQPM.js": { "/_nuxt/D54FZQPM.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1556-GtYLKNALVpyOhSr1LrAIs5gIV7I\"", "etag": "\"1556-GtYLKNALVpyOhSr1LrAIs5gIV7I\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 5462, "size": 5462,
"path": "../public/_nuxt/D54FZQPM.js" "path": "../public/_nuxt/D54FZQPM.js"
}, },
"/_nuxt/DAACT36i.js": { "/_nuxt/DAACT36i.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1f9-dVOk5jAwb0VlMLJevIcT+s2NTgM\"", "etag": "\"1f9-dVOk5jAwb0VlMLJevIcT+s2NTgM\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 505, "size": 505,
"path": "../public/_nuxt/DAACT36i.js" "path": "../public/_nuxt/DAACT36i.js"
}, },
"/_nuxt/DIYnFFZd.js": { "/_nuxt/DIYnFFZd.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"3518-Z2dO9ejuo/PHmRggMKxl1caQ7yo\"", "etag": "\"3518-Z2dO9ejuo/PHmRggMKxl1caQ7yo\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 13592, "size": 13592,
"path": "../public/_nuxt/DIYnFFZd.js" "path": "../public/_nuxt/DIYnFFZd.js"
}, },
"/_nuxt/DK8ar2Vw.js": { "/_nuxt/DK8ar2Vw.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"bf0-gt2eLpxqF9V/T1JrusLBdWlTOB4\"", "etag": "\"bf0-gt2eLpxqF9V/T1JrusLBdWlTOB4\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 3056, "size": 3056,
"path": "../public/_nuxt/DK8ar2Vw.js" "path": "../public/_nuxt/DK8ar2Vw.js"
}, },
"/_nuxt/DQ89_Lrx.js": { "/_nuxt/DQ89_Lrx.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1bdb-FX6FWYmVTmAWWkO9E2O91ImJoTI\"", "etag": "\"1bdb-FX6FWYmVTmAWWkO9E2O91ImJoTI\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 7131, "size": 7131,
"path": "../public/_nuxt/DQ89_Lrx.js" "path": "../public/_nuxt/DQ89_Lrx.js"
}, },
"/_nuxt/DaSgy0Cl.js": { "/_nuxt/DaSgy0Cl.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"11f-soKnh1qfNJj5nvt+IcgQXYvg/z4\"", "etag": "\"11f-soKnh1qfNJj5nvt+IcgQXYvg/z4\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 287, "size": 287,
"path": "../public/_nuxt/DaSgy0Cl.js" "path": "../public/_nuxt/DaSgy0Cl.js"
}, },
"/_nuxt/DaUHoOti.js": { "/_nuxt/DaUHoOti.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"177f-xSuV2n3wrsWDBysy5o9XsakrXDw\"", "etag": "\"177f-xSuV2n3wrsWDBysy5o9XsakrXDw\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 6015, "size": 6015,
"path": "../public/_nuxt/DaUHoOti.js" "path": "../public/_nuxt/DaUHoOti.js"
}, },
"/_nuxt/DkeYb0_S.js": { "/_nuxt/DkeYb0_S.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"1ce-xiaAbRvqQ+zffTXF3Gc7rq14R0U\"", "etag": "\"1ce-xiaAbRvqQ+zffTXF3Gc7rq14R0U\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 462, "size": 462,
"path": "../public/_nuxt/DkeYb0_S.js" "path": "../public/_nuxt/DkeYb0_S.js"
}, },
"/_nuxt/DlAUqK2U.js": { "/_nuxt/DlAUqK2U.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"5b-eFCz/UrraTh721pgAl0VxBNR1es\"", "etag": "\"5b-eFCz/UrraTh721pgAl0VxBNR1es\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 91, "size": 91,
"path": "../public/_nuxt/DlAUqK2U.js" "path": "../public/_nuxt/DlAUqK2U.js"
}, },
"/_nuxt/DuCL6zMI.js": { "/_nuxt/DuCL6zMI.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"16a2-gJGadr4jKYMWO0Im01z6CSn+n1E\"", "etag": "\"16a2-gJGadr4jKYMWO0Im01z6CSn+n1E\"",
"mtime": "2025-10-21T13:21:50.424Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 5794, "size": 5794,
"path": "../public/_nuxt/DuCL6zMI.js" "path": "../public/_nuxt/DuCL6zMI.js"
}, },
"/_nuxt/H0vOWBHN.js": { "/_nuxt/H0vOWBHN.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"2029-KNpFGDGtz8iRFY43F+s7ByzEpkM\"", "etag": "\"2029-KNpFGDGtz8iRFY43F+s7ByzEpkM\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 8233, "size": 8233,
"path": "../public/_nuxt/H0vOWBHN.js" "path": "../public/_nuxt/H0vOWBHN.js"
}, },
"/_nuxt/Harheimer TC.CKfYAfp1.svg": { "/_nuxt/Harheimer TC.CKfYAfp1.svg": {
"type": "image/svg+xml", "type": "image/svg+xml",
"etag": "\"1d2535-Tx2lTuuFn2hBqGZOnDan3/OdRU0\"", "etag": "\"1d2535-Tx2lTuuFn2hBqGZOnDan3/OdRU0\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 1910069, "size": 1910069,
"path": "../public/_nuxt/Harheimer TC.CKfYAfp1.svg" "path": "../public/_nuxt/Harheimer TC.CKfYAfp1.svg"
}, },
"/_nuxt/Qy3ajxTk.js": { "/_nuxt/Qy3ajxTk.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"13f-LgrH17St2xFg+RPGvT3uJRaRfFw\"", "etag": "\"13f-LgrH17St2xFg+RPGvT3uJRaRfFw\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 319, "size": 319,
"path": "../public/_nuxt/Qy3ajxTk.js" "path": "../public/_nuxt/Qy3ajxTk.js"
}, },
"/_nuxt/RGsuuLA3.js": { "/_nuxt/RGsuuLA3.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"10bb-640PtonCPMgqRn3wO6U3UtHYmDM\"", "etag": "\"10bb-640PtonCPMgqRn3wO6U3UtHYmDM\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 4283, "size": 4283,
"path": "../public/_nuxt/RGsuuLA3.js" "path": "../public/_nuxt/RGsuuLA3.js"
}, },
"/_nuxt/SRZHqrjk.js": { "/_nuxt/SRZHqrjk.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"383-+7H4gpbdqNaMFlhjcQOVxgmex04\"", "etag": "\"383-+7H4gpbdqNaMFlhjcQOVxgmex04\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 899, "size": 899,
"path": "../public/_nuxt/SRZHqrjk.js" "path": "../public/_nuxt/SRZHqrjk.js"
}, },
"/_nuxt/XZ6RV9KH.js": { "/_nuxt/XZ6RV9KH.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"175-xr1poEaGS4yjOp907AsRAr6XHLI\"", "etag": "\"175-xr1poEaGS4yjOp907AsRAr6XHLI\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 373, "size": 373,
"path": "../public/_nuxt/XZ6RV9KH.js" "path": "../public/_nuxt/XZ6RV9KH.js"
}, },
"/_nuxt/YJHbYJtA.js": { "/_nuxt/YJHbYJtA.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"19f-nQw578pUen9o8yYaMA8Bwag6xho\"", "etag": "\"19f-nQw578pUen9o8yYaMA8Bwag6xho\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 415, "size": 415,
"path": "../public/_nuxt/YJHbYJtA.js" "path": "../public/_nuxt/YJHbYJtA.js"
}, },
"/_nuxt/ZrOCUSmD.js": { "/_nuxt/ZrOCUSmD.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"ee2-knvq//8tl4tcmRjFy6nWAy0dRBk\"", "etag": "\"ee2-knvq//8tl4tcmRjFy6nWAy0dRBk\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 3810, "size": 3810,
"path": "../public/_nuxt/ZrOCUSmD.js" "path": "../public/_nuxt/ZrOCUSmD.js"
}, },
"/_nuxt/entry.DJXn10xo.css": { "/_nuxt/entry.DJXn10xo.css": {
"type": "text/css; charset=utf-8", "type": "text/css; charset=utf-8",
"etag": "\"b4f9-aegHiysPkslqXqaLCqt8DoC1o0c\"", "etag": "\"b4f9-aegHiysPkslqXqaLCqt8DoC1o0c\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 46329, "size": 46329,
"path": "../public/_nuxt/entry.DJXn10xo.css" "path": "../public/_nuxt/entry.DJXn10xo.css"
}, },
"/_nuxt/error-404.CbXQcqJW.css": { "/_nuxt/error-404.CbXQcqJW.css": {
"type": "text/css; charset=utf-8", "type": "text/css; charset=utf-8",
"etag": "\"97e-Ty5bTTSEudJkO/DsGUoIf37xYxc\"", "etag": "\"97e-Ty5bTTSEudJkO/DsGUoIf37xYxc\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 2430, "size": 2430,
"path": "../public/_nuxt/error-404.CbXQcqJW.css" "path": "../public/_nuxt/error-404.CbXQcqJW.css"
}, },
"/_nuxt/error-500.L485xXhD.css": { "/_nuxt/error-500.L485xXhD.css": {
"type": "text/css; charset=utf-8", "type": "text/css; charset=utf-8",
"etag": "\"773-jNt1QdCa+iqaSZb1mv/IQWC5p6w\"", "etag": "\"773-jNt1QdCa+iqaSZb1mv/IQWC5p6w\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 1907, "size": 1907,
"path": "../public/_nuxt/error-500.L485xXhD.css" "path": "../public/_nuxt/error-500.L485xXhD.css"
}, },
"/_nuxt/index.BYYJS8tV.css": { "/_nuxt/index.BYYJS8tV.css": {
"type": "text/css; charset=utf-8", "type": "text/css; charset=utf-8",
"etag": "\"167-3j4dZVXlcTPVZDB5pP2uXGX7/QQ\"", "etag": "\"167-3j4dZVXlcTPVZDB5pP2uXGX7/QQ\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 359, "size": 359,
"path": "../public/_nuxt/index.BYYJS8tV.css" "path": "../public/_nuxt/index.BYYJS8tV.css"
}, },
"/_nuxt/jVj3QaoK.js": { "/_nuxt/jVj3QaoK.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"196-xWXv220Sy3kJeouwzrQ/gnXllWQ\"", "etag": "\"196-xWXv220Sy3kJeouwzrQ/gnXllWQ\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 406, "size": 406,
"path": "../public/_nuxt/jVj3QaoK.js" "path": "../public/_nuxt/jVj3QaoK.js"
}, },
"/_nuxt/rZgF5GAr.js": { "/_nuxt/rZgF5GAr.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"2163-F4ycM3bgzLo6kVIU09LeGUWE8SI\"", "etag": "\"2163-F4ycM3bgzLo6kVIU09LeGUWE8SI\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.008Z",
"size": 8547, "size": 8547,
"path": "../public/_nuxt/rZgF5GAr.js" "path": "../public/_nuxt/rZgF5GAr.js"
}, },
"/_nuxt/tnJjxGC6.js": { "/_nuxt/tnJjxGC6.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"abb-4G3/6bCNUQzUVLLE5tcXv6Rh+gc\"", "etag": "\"abb-4G3/6bCNUQzUVLLE5tcXv6Rh+gc\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.009Z",
"size": 2747, "size": 2747,
"path": "../public/_nuxt/tnJjxGC6.js" "path": "../public/_nuxt/tnJjxGC6.js"
}, },
"/_nuxt/u6EV0gxL.js": { "/_nuxt/u6EV0gxL.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"329c9-1LcMOM+qcTldBs3dBt98LZgOe5g\"", "etag": "\"329c9-1LcMOM+qcTldBs3dBt98LZgOe5g\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.009Z",
"size": 207305, "size": 207305,
"path": "../public/_nuxt/u6EV0gxL.js" "path": "../public/_nuxt/u6EV0gxL.js"
}, },
"/_nuxt/y9BE7jdd.js": { "/_nuxt/y9BE7jdd.js": {
"type": "text/javascript; charset=utf-8", "type": "text/javascript; charset=utf-8",
"etag": "\"d8b-/UzKIx4Kl1VnbQibGZzrIbVIyG4\"", "etag": "\"d8b-/UzKIx4Kl1VnbQibGZzrIbVIyG4\"",
"mtime": "2025-10-21T13:21:50.425Z", "mtime": "2025-10-21T13:25:00.009Z",
"size": 3467, "size": 3467,
"path": "../public/_nuxt/y9BE7jdd.js" "path": "../public/_nuxt/y9BE7jdd.js"
}, },
"/_nuxt/builds/latest.json": { "/_nuxt/builds/latest.json": {
"type": "application/json", "type": "application/json",
"etag": "\"47-e8kfnwYYNI3pfAvoR4mN2hc+exs\"", "etag": "\"47-LLc545BHt0FUmKpwRquEBrYqcEw\"",
"mtime": "2025-10-21T13:21:50.416Z", "mtime": "2025-10-21T13:25:00.001Z",
"size": 71, "size": 71,
"path": "../public/_nuxt/builds/latest.json" "path": "../public/_nuxt/builds/latest.json"
}, },
"/_nuxt/builds/meta/7c522edc-1fe9-4329-82a6-fb4c52573799.json": { "/_nuxt/builds/meta/87a74d40-a4d3-4127-9775-3a14a30de796.json": {
"type": "application/json", "type": "application/json",
"etag": "\"8b-z4N/N6jU77K1t+za7hhzV6Z5W6g\"", "etag": "\"8b-NehDhmrdFrxSLV/VhZ0ZLTfzYfc\"",
"mtime": "2025-10-21T13:21:50.415Z", "mtime": "2025-10-21T13:24:59.998Z",
"size": 139, "size": 139,
"path": "../public/_nuxt/builds/meta/7c522edc-1fe9-4329-82a6-fb4c52573799.json" "path": "../public/_nuxt/builds/meta/87a74d40-a4d3-4127-9775-3a14a30de796.json"
} }
}; };

View File

@@ -13,6 +13,7 @@ import 'bcryptjs';
import 'jsonwebtoken'; import 'jsonwebtoken';
import 'fs'; import 'fs';
import 'path'; import 'path';
import 'crypto';
const members_delete = defineEventHandler(async (event) => { const members_delete = defineEventHandler(async (event) => {
try { try {

View File

@@ -1 +1 @@
{"version":3,"file":"members.delete.mjs","sources":["../../../../../server/api/members.delete.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,uBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,EAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,aAAA,EAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,yCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"members.delete.mjs","sources":["../../../../../server/api/members.delete.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,uBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,EAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,aAAA,EAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,yCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -13,6 +13,7 @@ import 'bcryptjs';
import 'jsonwebtoken'; import 'jsonwebtoken';
import 'fs'; import 'fs';
import 'path'; import 'path';
import 'crypto';
const members_get = defineEventHandler(async (event) => { const members_get = defineEventHandler(async (event) => {
var _a, _b, _c; var _a, _b, _c;

View File

@@ -1 +1 @@
{"version":3,"file":"members.get.mjs","sources":["../../../../../server/api/members.get.js"],"sourcesContent":null,"names":["_a"],"mappings":"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"} {"version":3,"file":"members.get.mjs","sources":["../../../../../server/api/members.get.js"],"sourcesContent":null,"names":["_a"],"mappings":"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"}

View File

@@ -13,6 +13,7 @@ import 'bcryptjs';
import 'jsonwebtoken'; import 'jsonwebtoken';
import 'fs'; import 'fs';
import 'path'; import 'path';
import 'crypto';
const members_post = defineEventHandler(async (event) => { const members_post = defineEventHandler(async (event) => {
try { try {

View File

@@ -1 +1 @@
{"version":3,"file":"members.post.mjs","sources":["../../../../../server/api/members.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,qBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,IAAA,SAAA,EAAA,QAAA,EAAA,OAAA,KAAA,EAAA,OAAA,EAAA,OAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,SAAA,IAAA,CAAA,QAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,UAAA,CAAA;AAAA,MACA,IAAA,EAAA,IAAA,KAAA,CAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA,KAAA,IAAA,EAAA;AAAA,MACA,OAAA,KAAA,IAAA,EAAA;AAAA,MACA,SAAA,OAAA,IAAA,EAAA;AAAA,MACA,OAAA,KAAA,IAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,wCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"members.post.mjs","sources":["../../../../../server/api/members.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,qBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,IAAA,SAAA,EAAA,QAAA,EAAA,OAAA,KAAA,EAAA,OAAA,EAAA,OAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,SAAA,IAAA,CAAA,QAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,UAAA,CAAA;AAAA,MACA,IAAA,EAAA,IAAA,KAAA,CAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA,KAAA,IAAA,EAAA;AAAA,MACA,OAAA,KAAA,IAAA,EAAA;AAAA,MACA,SAAA,OAAA,IAAA,EAAA;AAAA,MACA,OAAA,KAAA,IAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,wCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -13,6 +13,7 @@ import 'bcryptjs';
import 'jsonwebtoken'; import 'jsonwebtoken';
import 'fs'; import 'fs';
import 'path'; import 'path';
import 'crypto';
const news_delete = defineEventHandler(async (event) => { const news_delete = defineEventHandler(async (event) => {
try { try {

View File

@@ -1 +1 @@
{"version":3,"file":"news.delete.mjs","sources":["../../../../../server/api/news.delete.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,oBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAGA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA;AAEA,IAAA,IAAA,CAAA,EAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,WAAA,EAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,oCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"news.delete.mjs","sources":["../../../../../server/api/news.delete.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,oBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAGA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA;AAEA,IAAA,IAAA,CAAA,EAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,WAAA,EAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,oCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -13,6 +13,7 @@ import 'bcryptjs';
import 'jsonwebtoken'; import 'jsonwebtoken';
import 'fs'; import 'fs';
import 'path'; import 'path';
import 'crypto';
const news_get = defineEventHandler(async (event) => { const news_get = defineEventHandler(async (event) => {
try { try {

View File

@@ -1 +1 @@
{"version":3,"file":"news.get.mjs","sources":["../../../../../server/api/news.get.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,iBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,EAAA;AAGA,IAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,iCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"news.get.mjs","sources":["../../../../../server/api/news.get.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,iBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,EAAA;AAGA,IAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,iCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -13,6 +13,7 @@ import 'bcryptjs';
import 'jsonwebtoken'; import 'jsonwebtoken';
import 'fs'; import 'fs';
import 'path'; import 'path';
import 'crypto';
const news_post = defineEventHandler(async (event) => { const news_post = defineEventHandler(async (event) => {
try { try {

View File

@@ -1 +1 @@
{"version":3,"file":"news.post.mjs","sources":["../../../../../server/api/news.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,QAAA,CAAA;AAAA,MACA,IAAA,EAAA,IAAA,KAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,mCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"news.post.mjs","sources":["../../../../../server/api/news.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,QAAA,CAAA;AAAA,MACA,IAAA,EAAA,IAAA,KAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,mCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

76
components/PublicNews.vue Normal file
View File

@@ -0,0 +1,76 @@
<template>
<section v-if="news.length > 0" class="py-16 sm:py-20 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-16">
<h2 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-4">
Aktuelles
</h2>
<div class="w-24 h-1 bg-primary-600 mx-auto mb-6" />
<p class="text-xl text-gray-600 max-w-3xl mx-auto">
Die neuesten Nachrichten aus unserem Verein
</p>
</div>
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
<article
v-for="item in news"
:key="item.id"
class="bg-gray-50 rounded-xl p-6 border border-gray-200 hover:shadow-lg transition-shadow"
>
<div class="flex items-center text-sm text-gray-500 mb-3">
<Calendar :size="16" class="mr-2" />
{{ formatDate(item.created) }}
</div>
<h3 class="text-xl font-display font-bold text-gray-900 mb-3">
{{ item.title }}
</h3>
<p class="text-gray-700 line-clamp-3">
{{ item.content }}
</p>
</article>
</div>
</div>
</section>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { Calendar } from 'lucide-vue-next'
const news = ref([])
const loadNews = async () => {
try {
const response = await $fetch('/api/news-public')
news.value = response.news
} catch (error) {
console.error('Fehler beim Laden der öffentlichen News:', error)
}
}
const formatDate = (dateString) => {
if (!dateString) return ''
const date = new Date(dateString)
return date.toLocaleDateString('de-DE', {
year: 'numeric',
month: 'long',
day: 'numeric'
})
}
onMounted(() => {
loadNews()
})
</script>
<style scoped>
.line-clamp-3 {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
</style>

View File

@@ -1,9 +1,11 @@
<template> <template>
<div class="min-h-full"> <div class="min-h-full">
<Hero /> <Hero />
<PublicNews />
</div> </div>
</template> </template>
<script setup> <script setup>
import Hero from '~/components/Hero.vue' import Hero from '~/components/Hero.vue'
import PublicNews from '~/components/PublicNews.vue'
</script> </script>

View File

@@ -32,9 +32,18 @@
> >
<div class="flex justify-between items-start mb-4"> <div class="flex justify-between items-start mb-4">
<div class="flex-1"> <div class="flex-1">
<h2 class="text-2xl font-display font-bold text-gray-900 mb-2"> <div class="flex items-center space-x-3 mb-2">
{{ item.title }} <h2 class="text-2xl font-display font-bold text-gray-900">
</h2> {{ item.title }}
</h2>
<span
v-if="item.isPublic"
class="px-3 py-1 bg-blue-100 text-blue-800 text-xs font-semibold rounded-full flex items-center"
>
<Globe :size="14" class="mr-1" />
Öffentlich
</span>
</div>
<div class="flex items-center text-sm text-gray-500 space-x-4"> <div class="flex items-center text-sm text-gray-500 space-x-4">
<div class="flex items-center"> <div class="flex items-center">
<User :size="16" class="mr-1" /> <User :size="16" class="mr-1" />
@@ -117,6 +126,25 @@
/> />
</div> </div>
<div class="flex items-center space-x-3 p-4 bg-blue-50 rounded-lg border border-blue-200">
<input
id="isPublic"
v-model="formData.isPublic"
type="checkbox"
class="w-5 h-5 text-primary-600 border-gray-300 rounded focus:ring-primary-500"
:disabled="isSaving"
/>
<label for="isPublic" class="text-sm font-medium text-gray-900 cursor-pointer flex-1">
<div class="flex items-center">
<Globe :size="18" class="mr-2 text-blue-600" />
<span>Öffentliche News (auf Startseite anzeigen)</span>
</div>
<p class="text-xs text-gray-600 mt-1 ml-6">
Wenn aktiviert, wird diese News auch für nicht angemeldete Besucher auf der Startseite sichtbar.
</p>
</label>
</div>
<div v-if="errorMessage" class="flex items-center p-3 rounded-md bg-red-50 text-red-700 text-sm"> <div v-if="errorMessage" class="flex items-center p-3 rounded-md bg-red-50 text-red-700 text-sm">
<AlertCircle :size="20" class="mr-2" /> <AlertCircle :size="20" class="mr-2" />
{{ errorMessage }} {{ errorMessage }}
@@ -149,7 +177,7 @@
<script setup> <script setup>
import { ref, computed, onMounted } from 'vue' import { ref, computed, onMounted } from 'vue'
import { Newspaper, Plus, User, Calendar, Edit, Trash2, Loader2, AlertCircle } from 'lucide-vue-next' import { Newspaper, Plus, User, Calendar, Edit, Trash2, Loader2, AlertCircle, Globe } from 'lucide-vue-next'
const authStore = useAuthStore() const authStore = useAuthStore()
@@ -162,7 +190,8 @@ const errorMessage = ref('')
const formData = ref({ const formData = ref({
title: '', title: '',
content: '' content: '',
isPublic: false
}) })
const canWrite = computed(() => { const canWrite = computed(() => {
@@ -185,7 +214,8 @@ const openAddModal = () => {
editingNews.value = null editingNews.value = null
formData.value = { formData.value = {
title: '', title: '',
content: '' content: '',
isPublic: false
} }
showModal.value = true showModal.value = true
errorMessage.value = '' errorMessage.value = ''
@@ -195,7 +225,8 @@ const openEditModal = (item) => {
editingNews.value = item editingNews.value = item
formData.value = { formData.value = {
title: item.title, title: item.title,
content: item.content content: item.content,
isPublic: item.isPublic || false
} }
showModal.value = true showModal.value = true
errorMessage.value = '' errorMessage.value = ''

View File

@@ -0,0 +1,25 @@
import { readNews } from '../utils/news.js'
export default defineEventHandler(async (event) => {
try {
const allNews = await readNews()
// Filter only public news
const publicNews = allNews.filter(item => item.isPublic === true)
// Sort by created date, newest first
publicNews.sort((a, b) => new Date(b.created) - new Date(a.created))
// Limit to latest 3 for homepage
const latestNews = publicNews.slice(0, 3)
return {
success: true,
news: latestNews
}
} catch (error) {
console.error('Fehler beim Abrufen der öffentlichen News:', error)
throw error
}
})

View File

@@ -1,18 +1,20 @@
[ [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"title": "Alles neu",
"content": "Die seite ist brandneu",
"author": "Admin",
"created": "2025-10-21T12:49:29.710Z",
"updated": "2025-10-21T12:49:29.710Z"
},
{ {
"id": "660e8400-e29b-41d4-a716-446655440002", "id": "660e8400-e29b-41d4-a716-446655440002",
"title": "Willkommen im Mitgliederbereich", "title": "Willkommen im Mitgliederbereich",
"content": "Hier finden Sie ab sofort alle internen Neuigkeiten und Ankündigungen des Harheimer TC.", "content": "Hier finden Sie ab sofort alle internen Neuigkeiten und Ankündigungen des Harheimer TC.",
"author": "Vorstand", "author": "Vorstand",
"isPublic": false,
"created": "2025-01-15T10:00:00.000Z", "created": "2025-01-15T10:00:00.000Z",
"updated": "2025-01-15T10:00:00.000Z" "updated": "2025-01-15T10:00:00.000Z"
},
{
"id": "660e8400-e29b-41d4-a716-446655440003",
"title": "Erfolgreicher Saisonstart 2025/26",
"content": "Mit fünf Herrenmannschaften starten wir erfolgreich in die neue Saison. Wir freuen uns auf spannende Spiele!",
"author": "Vorstand",
"isPublic": true,
"created": "2025-01-20T10:00:00.000Z",
"updated": "2025-01-20T10:00:00.000Z"
} }
] ]

View File

@@ -69,6 +69,7 @@ export async function saveNews(newsData) {
const newItem = { const newItem = {
...newsData, ...newsData,
id: randomUUID(), // Cryptographically secure unique ID id: randomUUID(), // Cryptographically secure unique ID
isPublic: newsData.isPublic || false, // Default to internal
created: new Date().toISOString(), created: new Date().toISOString(),
updated: new Date().toISOString() updated: new Date().toISOString()
} }