generated from nhcarrigan/template
Compare commits
3 Commits
main
..
fcf4e09750
| Author | SHA1 | Date | |
|---|---|---|---|
|
fcf4e09750
|
|||
|
7e2f53d9d1
|
|||
|
fbd45b1c01
|
@@ -22,7 +22,6 @@
|
|||||||
"caelia",
|
"caelia",
|
||||||
"Calenelle",
|
"Calenelle",
|
||||||
"callista",
|
"callista",
|
||||||
"Chronara",
|
|
||||||
"cashapp",
|
"cashapp",
|
||||||
"catz",
|
"catz",
|
||||||
"codeofdreams",
|
"codeofdreams",
|
||||||
@@ -33,7 +32,6 @@
|
|||||||
"Deepgram",
|
"Deepgram",
|
||||||
"Eclaire",
|
"Eclaire",
|
||||||
"Eirene",
|
"Eirene",
|
||||||
"Ephemere",
|
|
||||||
"Elaria",
|
"Elaria",
|
||||||
"Elowyn",
|
"Elowyn",
|
||||||
"Elunara",
|
"Elunara",
|
||||||
@@ -63,7 +61,6 @@
|
|||||||
"manuarora",
|
"manuarora",
|
||||||
"maribelle",
|
"maribelle",
|
||||||
"minjo",
|
"minjo",
|
||||||
"Minori",
|
|
||||||
"modeling",
|
"modeling",
|
||||||
"maylin",
|
"maylin",
|
||||||
"Meliora",
|
"Meliora",
|
||||||
@@ -90,7 +87,6 @@
|
|||||||
"Ranjan",
|
"Ranjan",
|
||||||
"Rennemeyer",
|
"Rennemeyer",
|
||||||
"Rion",
|
"Rion",
|
||||||
"Rondelle",
|
|
||||||
"roseaboveit",
|
"roseaboveit",
|
||||||
"rosalia",
|
"rosalia",
|
||||||
"ruus",
|
"ruus",
|
||||||
@@ -107,7 +103,6 @@
|
|||||||
"Sylvara",
|
"Sylvara",
|
||||||
"Takada",
|
"Takada",
|
||||||
"Taryne",
|
"Taryne",
|
||||||
"Tatsumi",
|
|
||||||
"Technomancer",
|
"Technomancer",
|
||||||
"Tessara",
|
"Tessara",
|
||||||
"TTRPG",
|
"TTRPG",
|
||||||
@@ -119,7 +114,6 @@
|
|||||||
"Urmatan",
|
"Urmatan",
|
||||||
"Umbrelle",
|
"Umbrelle",
|
||||||
"Vajda",
|
"Vajda",
|
||||||
"Valerium",
|
|
||||||
"Veluna",
|
"Veluna",
|
||||||
"verena",
|
"verena",
|
||||||
"vitalia",
|
"vitalia",
|
||||||
|
|||||||
+24
-2
@@ -45,7 +45,18 @@ projects:
|
|||||||
- Naomi Public License
|
- Naomi Public License
|
||||||
tags:
|
tags:
|
||||||
- community
|
- community
|
||||||
|
- guid: cordelia-taryne
|
||||||
|
name: Cordelia Taryne
|
||||||
|
description: A user-installable Discord app that allows you to ask questions, generate
|
||||||
|
alt text for images, evaluate code, and more.
|
||||||
|
webpageUrl:
|
||||||
|
url: https://cordelia.nhcarrigan.com/
|
||||||
|
repositoryUrl:
|
||||||
|
url: https://git.nhcarrigan.com/nhcarrigan/cordelia-taryne
|
||||||
|
licenses:
|
||||||
|
- Naomi Public License
|
||||||
|
tags:
|
||||||
|
- community
|
||||||
- guid: gwen-abalise
|
- guid: gwen-abalise
|
||||||
name: Gwen Abalise
|
name: Gwen Abalise
|
||||||
description: A ticketing system for Discord servers.
|
description: A ticketing system for Discord servers.
|
||||||
@@ -57,7 +68,18 @@ projects:
|
|||||||
- Naomi Public License
|
- Naomi Public License
|
||||||
tags:
|
tags:
|
||||||
- community
|
- community
|
||||||
|
- guid: maylin-taryne
|
||||||
|
name: Maylin Taryne
|
||||||
|
description: A helpful and supportive Discord bot that allows you to have conversations
|
||||||
|
with a virtual friend in private messages.
|
||||||
|
webpageUrl:
|
||||||
|
url: https://maylin.nhcarrigan.com/
|
||||||
|
repositoryUrl:
|
||||||
|
url: https://git.nhcarrigan.com/nhcarrigan/maylin-taryne
|
||||||
|
licenses:
|
||||||
|
- Naomi Public License
|
||||||
|
tags:
|
||||||
|
- community
|
||||||
- guid: melody-iuvo
|
- guid: melody-iuvo
|
||||||
name: Melody Iuvo
|
name: Melody Iuvo
|
||||||
description: A user-installable task management application for Discord.
|
description: A user-installable task management application for Discord.
|
||||||
|
|||||||
+81
-142
@@ -1,4 +1,4 @@
|
|||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/rosalia.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: >-
|
description: >-
|
||||||
Our global logging server, which pipes logs from all of our apps into a
|
Our global logging server, which pipes logs from all of our apps into a
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: 'https://trans.nhcarrigan.com'
|
url: 'https://trans.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/aria.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/aria.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A user-installable bot that allows you to translate any message into your
|
A user-installable bot that allows you to translate any message into your
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: 'https://aria.nhcarrigan.com/'
|
url: 'https://aria.nhcarrigan.com/'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/becca.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/becca.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A user-installable Discord app that facilitates a solo Dungeons and Dragons
|
A user-installable Discord app that facilitates a solo Dungeons and Dragons
|
||||||
@@ -34,23 +34,39 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: 'https://becca.nhcarrigan.com'
|
url: 'https://becca.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/cordelia.png'
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/gwen.png'
|
category: community
|
||||||
|
description: >-
|
||||||
|
A user-installable Discord app that allows you to ask questions, generate
|
||||||
|
alt text for images, evaluate code, and more.
|
||||||
|
name: Cordelia Taryne
|
||||||
|
premium: true
|
||||||
|
url: 'https://cordelia.nhcarrigan.com/'
|
||||||
|
wip: false
|
||||||
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/gwen.png'
|
||||||
category: community
|
category: community
|
||||||
description: A ticketing system for Discord servers.
|
description: A ticketing system for Discord servers.
|
||||||
name: Gwen Abalise
|
name: Gwen Abalise
|
||||||
premium: true
|
premium: true
|
||||||
url: 'https://gwen.nhcarrigan.com/'
|
url: 'https://gwen.nhcarrigan.com/'
|
||||||
wip: false
|
wip: false
|
||||||
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/maylin.png'
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/melody.png'
|
category: community
|
||||||
|
description: >-
|
||||||
|
A helpful and supportive Discord bot that allows you to have conversations
|
||||||
|
with a virtual friend in private messages.
|
||||||
|
name: Maylin Taryne
|
||||||
|
premium: true
|
||||||
|
url: 'https://maylin.nhcarrigan.com/'
|
||||||
|
wip: false
|
||||||
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/melody.png'
|
||||||
category: community
|
category: community
|
||||||
description: A user-installable task management application for Discord.
|
description: A user-installable task management application for Discord.
|
||||||
name: Melody Iuvo
|
name: Melody Iuvo
|
||||||
premium: true
|
premium: true
|
||||||
url: 'https://melody.nhcarrigan.com/'
|
url: 'https://melody.nhcarrigan.com/'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/beccalia.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: >-
|
description: >-
|
||||||
Originally planned as the story of Becca and Rosalia growing up, this game
|
Originally planned as the story of Becca and Rosalia growing up, this game
|
||||||
@@ -59,7 +75,7 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: 'https://beccalia.nhcarrigan.com/origins'
|
url: 'https://beccalia.nhcarrigan.com/origins'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/beccalia.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: >-
|
description: >-
|
||||||
An introductory story that sets the stage for the Beccalia universe,
|
An introductory story that sets the stage for the Beccalia universe,
|
||||||
@@ -91,7 +107,7 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: 'https://blog.nhcarrigan.com'
|
url: 'https://blog.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/nymira.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/nymira.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: >-
|
description: >-
|
||||||
A service that allows you to claim a custom <username>.naomi.party username
|
A service that allows you to claim a custom <username>.naomi.party username
|
||||||
@@ -116,7 +132,7 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: 'https://git.nhcarrigan.com'
|
url: 'https://git.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/hikari.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: This dashboard!
|
description: This dashboard!
|
||||||
name: Hikari
|
name: Hikari
|
||||||
@@ -139,7 +155,7 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: 'https://mommy.nhcarrigan.com'
|
url: 'https://mommy.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/lucinda.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/lucinda.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: A kanban-style task management site.
|
description: A kanban-style task management site.
|
||||||
name: Lucinda
|
name: Lucinda
|
||||||
@@ -153,14 +169,14 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: 'https://nhcarrigan.com'
|
url: 'https://nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/vitalia.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: A full-featured nutrition tracker with community-driven nutrient data.
|
description: A full-featured nutrition tracker with community-driven nutrient data.
|
||||||
name: Vitalia
|
name: Vitalia
|
||||||
premium: true
|
premium: true
|
||||||
url: 'https://vitalia.nhcarrigan.com'
|
url: 'https://vitalia.nhcarrigan.com'
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/octavia.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: >-
|
description: >-
|
||||||
Linux-native music player application with a focus on handling large
|
Linux-native music player application with a focus on handling large
|
||||||
@@ -169,7 +185,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/maribelle.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/maribelle.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A Discord bot that allows you to configure daily progress huddle reminders
|
A Discord bot that allows you to configure daily progress huddle reminders
|
||||||
@@ -178,7 +194,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/sorielle.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/sorielle.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A Discord bot that allows servers to specify a venting channel for automatic
|
A Discord bot that allows servers to specify a venting channel for automatic
|
||||||
@@ -187,21 +203,21 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: 'https://sorielle.nhcarrigan.com'
|
url: 'https://sorielle.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/verena.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/verena.png'
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that allows identity and age verification.
|
description: A Discord bot that allows identity and age verification.
|
||||||
name: Verena
|
name: Verena
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/thalassa.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: A rich presence application for Linux.
|
description: A rich presence application for Linux.
|
||||||
name: Thalassa
|
name: Thalassa
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/aeris.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/aeris.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: >-
|
description: >-
|
||||||
An authentication service featuring magic links and support for multiple
|
An authentication service featuring magic links and support for multiple
|
||||||
@@ -210,7 +226,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/liora.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/liora.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A Discord bot that allows your server members to specify 'highlight' words,
|
A Discord bot that allows your server members to specify 'highlight' words,
|
||||||
@@ -219,14 +235,14 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: https://liora.nhcarrigan.com
|
url: https://liora.nhcarrigan.com
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/thessalia.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/thessalia.png'
|
||||||
category: community
|
category: community
|
||||||
description: An RPG game on Discord
|
description: An RPG game on Discord
|
||||||
name: Thessalia
|
name: Thessalia
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/callista.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/callista.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A user-installable Discord bot that allows you to bookmark messages and save
|
A user-installable Discord bot that allows you to bookmark messages and save
|
||||||
@@ -235,28 +251,28 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/isolda.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/isolda.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: 'Modern, sleek email client for the web or desktop'
|
description: 'Modern, sleek email client for the web or desktop'
|
||||||
name: Isolda
|
name: Isolda
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/meliora.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/meliora.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: 'Embeddable chat widget, comment section, and full support flow utility.'
|
description: 'Embeddable chat widget, comment section, and full support flow utility.'
|
||||||
name: Meliora
|
name: Meliora
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/aurelia.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/aurelia.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: Blogging platform with markdown editor
|
description: Blogging platform with markdown editor
|
||||||
name: Aurelia
|
name: Aurelia
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/eirene.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/eirene.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
Website and Discord activity that allows you to participate in code
|
Website and Discord activity that allows you to participate in code
|
||||||
@@ -265,28 +281,28 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/amirei.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/amirei.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: A quick social link aggregator for 'link in bio' pages.
|
description: A quick social link aggregator for 'link in bio' pages.
|
||||||
name: Amirei
|
name: Amirei
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/zephra.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/zephra.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: Micro-blogging social media platform.
|
description: Micro-blogging social media platform.
|
||||||
name: Zephra
|
name: Zephra
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/oriana.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/oriana.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: Uptime monitoring tool with status pages
|
description: Uptime monitoring tool with status pages
|
||||||
name: Oriana
|
name: Oriana
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/lyra.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/lyra.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: >-
|
description: >-
|
||||||
A web-based API mocking tool, allowing you to create temporary endpoints for
|
A web-based API mocking tool, allowing you to create temporary endpoints for
|
||||||
@@ -295,14 +311,14 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/selene.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/selene.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: A local-only privacy-focused REST API client.
|
description: A local-only privacy-focused REST API client.
|
||||||
name: Selene
|
name: Selene
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/sybil.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/sybil.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A Discord bot that syndicates forum threads to an indexable website and
|
A Discord bot that syndicates forum threads to an indexable website and
|
||||||
@@ -311,14 +327,14 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/calenelle.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/calenelle.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: A group coordination app with event scheduling and such.
|
description: A group coordination app with event scheduling and such.
|
||||||
name: Calenelle
|
name: Calenelle
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/rowena.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/rowena.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: >-
|
description: >-
|
||||||
Web app that allows you to create and share forms, and track responses in a
|
Web app that allows you to create and share forms, and track responses in a
|
||||||
@@ -327,7 +343,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/alouette.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/alouette.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: >-
|
description: >-
|
||||||
A web server that allows you to set up arbitrary webhooks and format them to
|
A web server that allows you to set up arbitrary webhooks and format them to
|
||||||
@@ -336,7 +352,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/clarion.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/clarion.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A Discord bot with dashboard that allows server mangers to post and edit
|
A Discord bot with dashboard that allows server mangers to post and edit
|
||||||
@@ -345,14 +361,14 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/elowyn.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: A quick website that helps you format text.
|
description: A quick website that helps you format text.
|
||||||
name: Elowyn
|
name: Elowyn
|
||||||
premium: false
|
premium: false
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/evangeline.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/evangeline.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
A Discord bot that allows you to configure canned replies, retrieve them
|
A Discord bot that allows you to configure canned replies, retrieve them
|
||||||
@@ -361,49 +377,49 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/theodora.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/theodora.png'
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that generates 100 days of code reminders.
|
description: A Discord bot that generates 100 days of code reminders.
|
||||||
name: Theodora
|
name: Theodora
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/vivienne.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/vivienne.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: An RSS feed reader/management site.
|
description: An RSS feed reader/management site.
|
||||||
name: Vivienne
|
name: Vivienne
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/veluna.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/veluna.png'
|
||||||
category: community
|
category: community
|
||||||
description: Discord bot that allows you to receive and answer anonymous questions.
|
description: Discord bot that allows you to receive and answer anonymous questions.
|
||||||
name: Veluna
|
name: Veluna
|
||||||
premium: false
|
premium: false
|
||||||
url: https://veluna.nhcarrigan.com
|
url: https://veluna.nhcarrigan.com
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/elysium.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/elysium.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: Idle RPG in the browser.
|
description: Idle RPG in the browser.
|
||||||
name: Elysium
|
name: Elysium
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/chibika.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/chibika.png'
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that generates ascii anime girls.
|
description: A Discord bot that generates ascii anime girls.
|
||||||
name: Chibika
|
name: Chibika
|
||||||
premium: true
|
premium: true
|
||||||
url: 'https://chibika.nhcarrigan.com'
|
url: 'https://chibika.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/elaria.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/elaria.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: Meeting schedule coordination tool.
|
description: Meeting schedule coordination tool.
|
||||||
name: Elaria
|
name: Elaria
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/elunara.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/elunara.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
Discord bot that allows users to proxy messages so they correctly appear as
|
Discord bot that allows users to proxy messages so they correctly appear as
|
||||||
@@ -412,7 +428,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/aureline.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/aureline.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: >-
|
description: >-
|
||||||
Web app that allows you to create/upload digital badges and certifications
|
Web app that allows you to create/upload digital badges and certifications
|
||||||
@@ -421,21 +437,21 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/lynira.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/lynira.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: Link shortener managed via a Discord bot.
|
description: Link shortener managed via a Discord bot.
|
||||||
name: Lynira
|
name: Lynira
|
||||||
premium: true
|
premium: true
|
||||||
url: 'https://lynira.link'
|
url: 'https://lynira.link'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/altaria.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/altaria.png'
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that reminds you to provide alt-text for images.
|
description: A Discord bot that reminds you to provide alt-text for images.
|
||||||
name: Altaria
|
name: Altaria
|
||||||
premium: false
|
premium: false
|
||||||
url: 'https://altaria.nhcarrigan.com'
|
url: 'https://altaria.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/pavelle.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/pavelle.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
Discord bot that allows you to throw things (like cake) at your fellow
|
Discord bot that allows you to throw things (like cake) at your fellow
|
||||||
@@ -444,7 +460,7 @@
|
|||||||
premium: true
|
premium: true
|
||||||
url: 'https://pavelle.nhcarrigan.com'
|
url: 'https://pavelle.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/amari.png'
|
||||||
category: community
|
category: community
|
||||||
description: >-
|
description: >-
|
||||||
Naomi's virtual personal assistant who helps out with automation around our
|
Naomi's virtual personal assistant who helps out with automation around our
|
||||||
@@ -453,28 +469,28 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: 'https://amari.nhcarrigan.com'
|
url: 'https://amari.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/serenya.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/serenya.png'
|
||||||
category: community
|
category: community
|
||||||
description: Discord bot that allows you to force yourself to take a break.
|
description: Discord bot that allows you to force yourself to take a break.
|
||||||
name: Serenya
|
name: Serenya
|
||||||
premium: false
|
premium: false
|
||||||
url: 'https://serenya.nhcarrigan.com'
|
url: 'https://serenya.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/caelia.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/caelia.png'
|
||||||
category: community
|
category: community
|
||||||
description: Discord bot that gently reminds you to use inclusive language.
|
description: Discord bot that gently reminds you to use inclusive language.
|
||||||
name: Caelia
|
name: Caelia
|
||||||
premium: false
|
premium: false
|
||||||
url: 'https://caelia.nhcarrigan.com'
|
url: 'https://caelia.nhcarrigan.com'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/tessara.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/tessara.png'
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that allows you to collect and use trading cards that are actually conversation starters.
|
description: A Discord bot that allows you to collect and use trading cards that are actually conversation starters.
|
||||||
name: Tessara
|
name: Tessara
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/hacksmiths.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/hacksmiths.png'
|
||||||
category: websites
|
category: websites
|
||||||
description: Online programming-themed party game.
|
description: Online programming-themed party game.
|
||||||
name: Hacksmiths
|
name: Hacksmiths
|
||||||
@@ -495,14 +511,14 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: 'https://marketplace.visualstudio.com/items?itemName=nhcarrigan.naomis-themes'
|
url: 'https://marketplace.visualstudio.com/items?itemName=nhcarrigan.naomis-themes'
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/meridia.png'
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/meridia.png'
|
||||||
category: apps
|
category: apps
|
||||||
description: Our custom metrics and analytics server.
|
description: Our custom metrics and analytics server.
|
||||||
name: Meridia
|
name: Meridia
|
||||||
premium: false
|
premium: false
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: null
|
- avatar: 'https://cdn.nhcarrigan.com/new-avatars/a4p.png'
|
||||||
category: community
|
category: community
|
||||||
description: A custom Discord bot for the Artists4Palestine charity initiative.
|
description: A custom Discord bot for the Artists4Palestine charity initiative.
|
||||||
name: Artists4Palestine Bot
|
name: Artists4Palestine Bot
|
||||||
@@ -523,7 +539,7 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: "https://www.npmjs.com/package/@nhcarrigan/eslint-config"
|
url: "https://www.npmjs.com/package/@nhcarrigan/eslint-config"
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/celestine.png'
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/celestine.png"
|
||||||
category: community
|
category: community
|
||||||
description: A powerful moderation bot for Discord.
|
description: A powerful moderation bot for Discord.
|
||||||
name: Celestine
|
name: Celestine
|
||||||
@@ -586,7 +602,7 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: "https://git.nhcarrigan.com/nhcarrigan/scripts"
|
url: "https://git.nhcarrigan.com/nhcarrigan/scripts"
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/umbrelle.png'
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/umbrelle.png"
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that allows you to set up a honeypot channel for catching compromised accounts.
|
description: A Discord bot that allows you to set up a honeypot channel for catching compromised accounts.
|
||||||
name: Umbrelle
|
name: Umbrelle
|
||||||
@@ -607,129 +623,52 @@
|
|||||||
premium: false
|
premium: false
|
||||||
url: "https://www.npmjs.com/package/@nhcarrigan/discord-analytics"
|
url: "https://www.npmjs.com/package/@nhcarrigan/discord-analytics"
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: null
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/keiko.png"
|
||||||
category: community
|
category: community
|
||||||
description: Naomi's personal AI-powered research assistant.
|
description: Naomi's personal AI-powered research assistant.
|
||||||
name: Keiko
|
name: Keiko
|
||||||
premium: false
|
premium: false
|
||||||
url: "https://keiko.nhcarrigan.com"
|
url: "https://keiko.nhcarrigan.com"
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/sylvara.png'
|
- avatar: https://cdn.nhcarrigan.com/new-avatars/sylvara.png
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that allows you to make your message sound more professional.
|
description: A Discord bot that allows you to make your message sound more professional.
|
||||||
name: Sylvara
|
name: Sylvara
|
||||||
premium: true
|
premium: true
|
||||||
url: null
|
url: null
|
||||||
wip: true
|
wip: true
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/nomena.png'
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/nomena.png"
|
||||||
category: community
|
category: community
|
||||||
description: Naomi's personal AI-powered project name/avatar generator.
|
description: Naomi's personal AI-powered project name/avatar generator.
|
||||||
name: Nomena
|
name: Nomena
|
||||||
premium: false
|
premium: false
|
||||||
url: null
|
url: null
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/eclaire.png'
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/eclaire.png"
|
||||||
category: websites
|
category: websites
|
||||||
description: A website that allows you to speak into your microphone and have your words translated into another language.
|
description: A website that allows you to speak into your microphone and have your words translated into another language.
|
||||||
name: Eclaire
|
name: Eclaire
|
||||||
premium: false
|
premium: false
|
||||||
url: "https://eclaire.nhcarrigan.com"
|
url: "https://eclaire.nhcarrigan.com"
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: null
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/vivicrea.png"
|
||||||
category: community
|
category: community
|
||||||
description: Discord bot to generate art of Naomi
|
description: Discord bot to generate art of Naomi
|
||||||
name: Vivicrea
|
name: Vivicrea
|
||||||
premium: false
|
premium: false
|
||||||
url: null
|
url: null
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/tyche.png'
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/tyche.png"
|
||||||
category: community
|
category: community
|
||||||
description: Discord bot that allows you to roll TTRPG dice.
|
description: Discord bot that allows you to roll TTRPG dice.
|
||||||
name: Tyche
|
name: Tyche
|
||||||
premium: false
|
premium: false
|
||||||
url: "https://tyche.nhcarrigan.com"
|
url: "https://tyche.nhcarrigan.com"
|
||||||
wip: false
|
wip: false
|
||||||
- avatar: 'https://cdn.nhcarrigan.com/avatars/saisoku.png'
|
- avatar: "https://cdn.nhcarrigan.com/new-avatars/saisoku.png"
|
||||||
category: community
|
category: community
|
||||||
description: A Discord bot that encourages (or bullies) you to complete important tasks.
|
description: A Discord bot that encourages (or bullies) you to complete important tasks.
|
||||||
name: Saisoku
|
name: Saisoku
|
||||||
premium: true
|
premium: true
|
||||||
url: "https://saisoku.nhcarrigan.com"
|
url: "https://saisoku.nhcarrigan.com"
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: community
|
|
||||||
description: Discord bot that monitors boost status in the Caylus Crew server.
|
|
||||||
name: Valerium
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: apps
|
|
||||||
description: App for running one-off or occasionally recurring scripts across various platforms.
|
|
||||||
name: Ephemere
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: websites
|
|
||||||
description: A fun site about the fantasy version of Naomi, and the characters around her.
|
|
||||||
name: Lore
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: apps
|
|
||||||
description: A cute desktop wrapper for Claude Code with an anime girl.
|
|
||||||
name: Hikari Desktop
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: community
|
|
||||||
description: Discord bot to facilitate breakout sessions and coffee chats.
|
|
||||||
name: Rondelle
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: apps
|
|
||||||
description: A 100% local meeting transcription and summarisation tool.
|
|
||||||
name: Chronara
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: websites
|
|
||||||
description: A collection of silly fun static pages.
|
|
||||||
name: Silly Sites
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: websites
|
|
||||||
description: Naomi's personal library tracking app.
|
|
||||||
name: Library
|
|
||||||
premium: false
|
|
||||||
url: 'https://library.nhcarrigan.com'
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: community
|
|
||||||
description: A community bot and archival tool.
|
|
||||||
name: Minori
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: true
|
|
||||||
- avatar: null
|
|
||||||
category: apps
|
|
||||||
description: Desktop app for generating Naomi art.
|
|
||||||
name: Tatsumi
|
|
||||||
premium: false
|
|
||||||
url: null
|
|
||||||
wip: false
|
|
||||||
- avatar: null
|
|
||||||
category: websites
|
|
||||||
description: Naomi's personality configuration and profile.
|
|
||||||
name: Personality
|
|
||||||
premium: false
|
|
||||||
url: 'https://personality.nhcarrigan.com'
|
|
||||||
wip: false
|
wip: false
|
||||||
+60
-1
@@ -14,6 +14,28 @@ import type { Projects } from "../src/interfaces/projects.js";
|
|||||||
import type { Resume } from "../src/interfaces/resume.js";
|
import type { Resume } from "../src/interfaces/resume.js";
|
||||||
import type { Testimonials } from "../src/interfaces/testimonials.js";
|
import type { Testimonials } from "../src/interfaces/testimonials.js";
|
||||||
|
|
||||||
|
const checkUrl = async(url: string): Promise<boolean> => {
|
||||||
|
try {
|
||||||
|
const response = await fetch(url, {
|
||||||
|
headers: { origin: url },
|
||||||
|
method: "HEAD",
|
||||||
|
});
|
||||||
|
if (response.status === 429) {
|
||||||
|
// Try again after few seconds
|
||||||
|
console.log(`Rate limited on ${url}, trying again...`);
|
||||||
|
await new Promise((resolve) => {
|
||||||
|
// eslint-disable-next-line no-promise-executor-return --- HUH???
|
||||||
|
return setTimeout(resolve, 5000);
|
||||||
|
});
|
||||||
|
return checkUrl(url);
|
||||||
|
}
|
||||||
|
return response.ok;
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Error checking URL ${url}:`, error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
describe("project data", () => {
|
describe("project data", () => {
|
||||||
it("should match the interface", async() => {
|
it("should match the interface", async() => {
|
||||||
expect.hasAssertions();
|
expect.hasAssertions();
|
||||||
@@ -68,15 +90,29 @@ describe("project data", () => {
|
|||||||
project.name ?? "unknown"
|
project.name ?? "unknown"
|
||||||
}`,
|
}`,
|
||||||
).toBe("string");
|
).toBe("string");
|
||||||
|
await expect(
|
||||||
|
checkUrl(project.avatar),
|
||||||
|
`Project avatar should be reachable for project: ${
|
||||||
|
project.name ?? "unknown"
|
||||||
|
}`,
|
||||||
|
).resolves.toBeTruthy();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (project.url) {
|
// We explicitly skip the VSCode url because it blocks our request.
|
||||||
|
if (project.url
|
||||||
|
&& !project.url.startsWith("https://marketplace.visualstudio.com")) {
|
||||||
expect(
|
expect(
|
||||||
typeof project.url,
|
typeof project.url,
|
||||||
`Project url should be a string for project: ${
|
`Project url should be a string for project: ${
|
||||||
project.name ?? "unknown"
|
project.name ?? "unknown"
|
||||||
}`,
|
}`,
|
||||||
).toBe("string");
|
).toBe("string");
|
||||||
|
await expect(
|
||||||
|
checkUrl(project.url),
|
||||||
|
`Project url should be reachable for project: ${
|
||||||
|
project.name ?? "unknown"
|
||||||
|
}`,
|
||||||
|
).resolves.toBeTruthy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -407,6 +443,13 @@ describe("donate data", () => {
|
|||||||
method.name ?? "unknown method"
|
method.name ?? "unknown method"
|
||||||
}`,
|
}`,
|
||||||
).toBe("string");
|
).toBe("string");
|
||||||
|
|
||||||
|
await expect(
|
||||||
|
checkUrl(method.url),
|
||||||
|
`Donation method url should be reachable for ${
|
||||||
|
method.name ?? "unknown method"
|
||||||
|
}`,
|
||||||
|
).resolves.toBeTruthy();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -458,6 +501,10 @@ describe("funding data", () => {
|
|||||||
typeof parsed.entity.webpageUrl.url,
|
typeof parsed.entity.webpageUrl.url,
|
||||||
`Funding entity webpageUrl.url should be a string`,
|
`Funding entity webpageUrl.url should be a string`,
|
||||||
).toBe("string");
|
).toBe("string");
|
||||||
|
await expect(
|
||||||
|
checkUrl(parsed.entity.webpageUrl.url),
|
||||||
|
`Funding entity webpageUrl.url should be reachable`,
|
||||||
|
).resolves.toBeTruthy();
|
||||||
|
|
||||||
if (parsed.entity.webpageUrl.wellKnown) {
|
if (parsed.entity.webpageUrl.wellKnown) {
|
||||||
expect(
|
expect(
|
||||||
@@ -504,6 +551,12 @@ describe("funding data", () => {
|
|||||||
project.name ?? "unknown"
|
project.name ?? "unknown"
|
||||||
}`,
|
}`,
|
||||||
).toBe("string");
|
).toBe("string");
|
||||||
|
await expect(
|
||||||
|
checkUrl(project.webpageUrl.url),
|
||||||
|
`Funding project webpageUrl.url should be reachable for project: ${
|
||||||
|
project.name ?? "unknown"
|
||||||
|
}`,
|
||||||
|
).resolves.toBeTruthy();
|
||||||
if (project.webpageUrl.wellKnown) {
|
if (project.webpageUrl.wellKnown) {
|
||||||
expect(
|
expect(
|
||||||
typeof project.webpageUrl.wellKnown,
|
typeof project.webpageUrl.wellKnown,
|
||||||
@@ -524,6 +577,12 @@ describe("funding data", () => {
|
|||||||
project.name ?? "unknown"
|
project.name ?? "unknown"
|
||||||
}`,
|
}`,
|
||||||
).toBe("string");
|
).toBe("string");
|
||||||
|
await expect(
|
||||||
|
checkUrl(project.repositoryUrl.url),
|
||||||
|
`Funding project repositoryUrl.url should be reachable for project: ${
|
||||||
|
project.name ?? "unknown"
|
||||||
|
}`,
|
||||||
|
).resolves.toBeTruthy();
|
||||||
if (project.repositoryUrl.wellKnown) {
|
if (project.repositoryUrl.wellKnown) {
|
||||||
expect(
|
expect(
|
||||||
typeof project.repositoryUrl.wellKnown,
|
typeof project.repositoryUrl.wellKnown,
|
||||||
|
|||||||
Reference in New Issue
Block a user