chore: update product list
Node.js CI / Lint and Test (push) Successful in 1m39s

This commit is contained in:
2025-08-25 16:28:40 -07:00
parent dc34fbeafd
commit 7d92047c40
3 changed files with 134 additions and 12 deletions
+22
View File
@@ -0,0 +1,22 @@
import { products } from "./src/app/config/products";
const repos: { name:string}[] = [];
let page = 1
let productReq = await fetch(`https://git.nhcarrigan.com/api/v1/orgs/nhcarrigan/repos?limit=50&page=${page}`);
let productRes: { name: string }[] = await productReq.json();
repos.push(...productRes);
while (productRes.length >= 50) {
page++;
productReq = await fetch(`https://git.nhcarrigan.com/api/v1/orgs/nhcarrigan/repos?limit=50&page=${page}`);
productRes = await productReq.json();
repos.push(...productRes);
}
console.log(`Auditing ${repos.length} repositories.`);
const excludedProducts = repos.filter(product => products.findIndex(p => p.name.toLowerCase().replace(/\s/g, "-") === product.name) === -1);
console.log("The following products do not appear to be listed in the directory.");
console.log(excludedProducts.map(product => product.name).join("\n"));
+110 -11
View File
@@ -155,15 +155,6 @@ export const products: Array<{
url: "https://docs.nhcarrigan.com",
wip: true,
},
{
avatar: null,
category: "websites",
description: "A self-hosted Discourse instance for our community.",
name: "Fourm",
premium: false,
url: "https://forum.nhcarrigan.com",
wip: false,
},
{
avatar: null,
category: "websites",
@@ -251,8 +242,8 @@ export const products: Array<{
description: "A Discord bot that allows servers to specify a venting channel for automatic deletion.",
name: "Sorielle",
premium: true,
url: null,
wip: true,
url: "https://sorielle.nhcarrigan.com",
wip: false,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/verena.png",
@@ -470,4 +461,112 @@ export const products: Array<{
url: null,
wip: true,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/veluna.png",
category: "community",
description: "Discord bot that allows you to receive and answer anonymous questions.",
name: "Veluna",
premium: true,
url: null,
wip: true,
},
{
avatar: null,
category: "apps",
description: "Idle RPG in the browser.",
name: "Elysium",
premium: true,
url: null,
wip: true,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/chibika.png",
category: "community",
description: "A Discord bot that generates ascii anime girls.",
name: "Chibika",
premium: true,
url: "https://chibika.nhcarrigan.com",
wip: false,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/elaria.png",
category: "websites",
description: "Meeting schedule coordination tool.",
name: "Elaria",
premium: true,
url: null,
wip: true,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/elunara.png",
category: "community",
description: "Discord bot that allows users to proxy messages so they correctly appear as composed by an alter.",
name: "Elunara",
premium: true,
url: null,
wip: true,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/aureline.png",
category: "websites",
description: "Web app that allows you to create/upload digital badges and certifications and grant them to users",
name: "Aureline",
premium: true,
url: null,
wip: true,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/lynira.png",
category: "apps",
description: "Link shortener managed via a Discord bot.",
name: "Lynira",
premium: true,
url: "https://lynira.link",
wip: false,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/altaria.png",
category: "community",
description: "A Discord bot that reminds you to provide alt-text for images.",
name: "Altaria",
premium: false,
url: "https://altaria.nhcarrigan.com",
wip: false,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/pavelle.png",
category: "community",
description: "Discord bot that allows you to throw things (like cake) at your fellow server members.",
name: "Pavelle",
premium: true,
url: "https://pavelle.nhcarrigan.com",
wip: false,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/amari.png",
category: "community",
description: "Naomi's virtual personal assistant who helps out with automation around our Discord community.",
name: "Amari",
premium: false,
url: "https://amari.nhcarrigan.com",
wip: false,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/serenya.png",
category: "community",
description: "Discord bot that allows you to force yourself to take a break.",
name: "Serenya",
premium: false,
url: "https://serenya.nhcarrigan.com",
wip: false,
},
{
avatar: "https://cdn.nhcarrigan.com/new-avatars/caelia.png",
category: "community",
description: "Discord bot that gently reminds you to use inclusive language.",
name: "Caelia",
premium: false,
url: "https://caelia.nhcarrigan.com",
wip: false,
},
];
+2 -1
View File
@@ -23,5 +23,6 @@
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
}
},
"exclude": ["auditProducts.ts"]
}