generated from nhcarrigan/template
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 925fd97668 |
@@ -0,0 +1,25 @@
|
|||||||
|
# Package Manager Configuration
|
||||||
|
# Force pnpm usage - breaks npm/yarn intentionally
|
||||||
|
node-linker=pnpm
|
||||||
|
|
||||||
|
# Security: Disable all lifecycle scripts
|
||||||
|
ignore-scripts=true
|
||||||
|
enable-pre-post-scripts=false
|
||||||
|
|
||||||
|
# Security: Require packages to be 10+ days old before installation
|
||||||
|
minimum-release-age=14400
|
||||||
|
|
||||||
|
# Security: Verify package integrity hashes
|
||||||
|
verify-store-integrity=true
|
||||||
|
|
||||||
|
# Security: Enforce strict trust policies
|
||||||
|
trust-policy=strict
|
||||||
|
|
||||||
|
# Security: Strict peer dependency resolution
|
||||||
|
strict-peer-dependencies=true
|
||||||
|
|
||||||
|
# Performance: Use symlinks for node_modules
|
||||||
|
symlink=true
|
||||||
|
|
||||||
|
# Lockfile: Ensure lockfile is not modified during install
|
||||||
|
frozen-lockfile=false
|
||||||
-28
@@ -3,7 +3,6 @@
|
|||||||
"language": "en-GB",
|
"language": "en-GB",
|
||||||
"words": [
|
"words": [
|
||||||
"Abalise",
|
"Abalise",
|
||||||
"Anny",
|
|
||||||
"Aeris",
|
"Aeris",
|
||||||
"Alix",
|
"Alix",
|
||||||
"Alouette",
|
"Alouette",
|
||||||
@@ -14,31 +13,20 @@
|
|||||||
"Aureline",
|
"Aureline",
|
||||||
"Azuliah",
|
"Azuliah",
|
||||||
"becca",
|
"becca",
|
||||||
"blackpug",
|
|
||||||
"blairingmysoul",
|
|
||||||
"blinged",
|
|
||||||
"bsky",
|
|
||||||
"beccalia",
|
"beccalia",
|
||||||
"caelia",
|
"caelia",
|
||||||
"Calenelle",
|
"Calenelle",
|
||||||
"callista",
|
"callista",
|
||||||
"Chronara",
|
|
||||||
"cashapp",
|
"cashapp",
|
||||||
"catz",
|
|
||||||
"codeofdreams",
|
|
||||||
"Creater",
|
|
||||||
"Celestine",
|
"Celestine",
|
||||||
"Caylus",
|
"Caylus",
|
||||||
"Chibika",
|
"Chibika",
|
||||||
"Deepgram",
|
"Deepgram",
|
||||||
"Eclaire",
|
"Eclaire",
|
||||||
"Eirene",
|
"Eirene",
|
||||||
"Ephemere",
|
|
||||||
"Elaria",
|
"Elaria",
|
||||||
"Elowyn",
|
"Elowyn",
|
||||||
"Elunara",
|
"Elunara",
|
||||||
"favorite",
|
|
||||||
"freecodecamp",
|
|
||||||
"Francez",
|
"Francez",
|
||||||
"gitea",
|
"gitea",
|
||||||
"Gooch",
|
"Gooch",
|
||||||
@@ -48,23 +36,16 @@
|
|||||||
"Isekai",
|
"Isekai",
|
||||||
"iuvo",
|
"iuvo",
|
||||||
"Jaoude",
|
"Jaoude",
|
||||||
"Karla",
|
|
||||||
"Karlo",
|
"Karlo",
|
||||||
"Katey",
|
"Katey",
|
||||||
"Keiko",
|
"Keiko",
|
||||||
"Kuroko",
|
"Kuroko",
|
||||||
"Lamonica",
|
"Lamonica",
|
||||||
"lilykhan",
|
|
||||||
"Liora",
|
"Liora",
|
||||||
"Lowkey",
|
|
||||||
"Lynira",
|
"Lynira",
|
||||||
"lyria",
|
"lyria",
|
||||||
"Manushev",
|
"Manushev",
|
||||||
"manuarora",
|
|
||||||
"maribelle",
|
"maribelle",
|
||||||
"minjo",
|
|
||||||
"Minori",
|
|
||||||
"modeling",
|
|
||||||
"maylin",
|
"maylin",
|
||||||
"Meliora",
|
"Meliora",
|
||||||
"Melo",
|
"Melo",
|
||||||
@@ -79,19 +60,13 @@
|
|||||||
"nymira",
|
"nymira",
|
||||||
"Nomena",
|
"Nomena",
|
||||||
"Ohman",
|
"Ohman",
|
||||||
"Okidokie",
|
|
||||||
"Oliff",
|
|
||||||
"opencollective",
|
"opencollective",
|
||||||
"oriana",
|
"oriana",
|
||||||
"pavelle",
|
"pavelle",
|
||||||
"plamoni",
|
|
||||||
"procz",
|
|
||||||
"Qais",
|
"Qais",
|
||||||
"Ranjan",
|
"Ranjan",
|
||||||
"Rennemeyer",
|
"Rennemeyer",
|
||||||
"Rion",
|
"Rion",
|
||||||
"Rondelle",
|
|
||||||
"roseaboveit",
|
|
||||||
"rosalia",
|
"rosalia",
|
||||||
"ruus",
|
"ruus",
|
||||||
"Ruutuli",
|
"Ruutuli",
|
||||||
@@ -107,7 +82,6 @@
|
|||||||
"Sylvara",
|
"Sylvara",
|
||||||
"Takada",
|
"Takada",
|
||||||
"Taryne",
|
"Taryne",
|
||||||
"Tatsumi",
|
|
||||||
"Technomancer",
|
"Technomancer",
|
||||||
"Tessara",
|
"Tessara",
|
||||||
"TTRPG",
|
"TTRPG",
|
||||||
@@ -115,11 +89,9 @@
|
|||||||
"thessalia",
|
"thessalia",
|
||||||
"Tihomir",
|
"Tihomir",
|
||||||
"UFCW",
|
"UFCW",
|
||||||
"womens",
|
|
||||||
"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
|
||||||
+5
-89
@@ -22,7 +22,7 @@
|
|||||||
- name: Francez Urmatan
|
- name: Francez Urmatan
|
||||||
content: Naomi is an absolute trailblazer, and is an amazing person to work with! Naomi is humorous and also has an amazing attitude to work with. Her ability to solve complex problems efficiently astounds me. Not only does she demonstrate outstanding technical knowledge, but also does an amazing job at elucidating her needs as an engineer. She is a very warm person and quite easy to work with. Naomi is immensely perceptive and very calculated with what she does. Naomi would make an excellent addition to any company that is lucky enough to hire her!
|
content: Naomi is an absolute trailblazer, and is an amazing person to work with! Naomi is humorous and also has an amazing attitude to work with. Her ability to solve complex problems efficiently astounds me. Not only does she demonstrate outstanding technical knowledge, but also does an amazing job at elucidating her needs as an engineer. She is a very warm person and quite easy to work with. Naomi is immensely perceptive and very calculated with what she does. Naomi would make an excellent addition to any company that is lucky enough to hire her!
|
||||||
date: 2 May 2024
|
date: 2 May 2024
|
||||||
- name: Nielda Karla Melo
|
- name: Nielda Karlo Melo
|
||||||
content: Naomi is one of the most competent professionals I have had the pleasure of working with. She has an exceptional presence, giving the impression of being everywhere at once, and her attention to detail is remarkable. She is able to identify subtle points and gaps in reasoning that others might miss and point that out in a respectful way. Naomi is not one to avoid difficult conversations. She expresses her opinions with clarity, confidence, and thoughtfulness. Her work on freeCodeCamp’s Discord, in addition to the many other code-related contributions she has made, is nothing short of impressive. She has kept the community engaged, planned events that people genuinely want to attend, and led the management of the entire space. Thanks to her leadership, the community has become a respectful, welcoming, and valuable place to be a part of. Any team would be fortunate to have Naomi’s expertise, dedication, and leadership.
|
content: Naomi is one of the most competent professionals I have had the pleasure of working with. She has an exceptional presence, giving the impression of being everywhere at once, and her attention to detail is remarkable. She is able to identify subtle points and gaps in reasoning that others might miss and point that out in a respectful way. Naomi is not one to avoid difficult conversations. She expresses her opinions with clarity, confidence, and thoughtfulness. Her work on freeCodeCamp’s Discord, in addition to the many other code-related contributions she has made, is nothing short of impressive. She has kept the community engaged, planned events that people genuinely want to attend, and led the management of the entire space. Thanks to her leadership, the community has become a respectful, welcoming, and valuable place to be a part of. Any team would be fortunate to have Naomi’s expertise, dedication, and leadership.
|
||||||
date: 14 August 2025
|
date: 14 August 2025
|
||||||
- name: John Vajda
|
- name: John Vajda
|
||||||
@@ -67,6 +67,9 @@
|
|||||||
- name: Internal Feedback (Anonymised for privacy)
|
- name: Internal Feedback (Anonymised for privacy)
|
||||||
content: Naomi built our incredible syndicated community help channel which among other things made it easy for us to see customer feedback and help customers more quickly. Naomi ramped up incredibly quickly and took on a breadth of projects across the org. You'll see her work leading the information architecture changes for new product docs and launching the new product demos, casually addressing an infra issue (on launch day). You'll see her making critical SDK changes across many languages. You'll see her being calm and considerate even under pressure. I'm very grateful for her SDK work on temp keys which enabled many critical customers to launch with token-based auth. This project was an early opportunity to see Naomi shine, she took on something complex and ambiguous so quickly and confidently and was an excellent collaborator throughout. Inside and outside the org she is a community builder, actively trying to build community and connection in many different ways while putting inclusion at the forefront. I also loved her presentation for Pride month this year.
|
content: Naomi built our incredible syndicated community help channel which among other things made it easy for us to see customer feedback and help customers more quickly. Naomi ramped up incredibly quickly and took on a breadth of projects across the org. You'll see her work leading the information architecture changes for new product docs and launching the new product demos, casually addressing an infra issue (on launch day). You'll see her making critical SDK changes across many languages. You'll see her being calm and considerate even under pressure. I'm very grateful for her SDK work on temp keys which enabled many critical customers to launch with token-based auth. This project was an early opportunity to see Naomi shine, she took on something complex and ambiguous so quickly and confidently and was an excellent collaborator throughout. Inside and outside the org she is a community builder, actively trying to build community and connection in many different ways while putting inclusion at the forefront. I also loved her presentation for Pride month this year.
|
||||||
date: 3 October 2025
|
date: 3 October 2025
|
||||||
|
- name: Internal Feedback (Anonymised for privacy)
|
||||||
|
content: I wanted to give a shout out to Naomi who is always so patient when I ask her about complex GIT situations I "git" myself into. Whether it's a funky rebase or major merge conflicts she always has the answers and is so helpful.
|
||||||
|
date: 26 September 2025
|
||||||
- name: Internal Feedback (Anonymised for privacy)
|
- name: Internal Feedback (Anonymised for privacy)
|
||||||
content: Kudos to a colleague and Naomi for all their work on docs and SDKs for a major product release. This involved a LOT of moving parts and the colleague really brought it together nicely.
|
content: Kudos to a colleague and Naomi for all their work on docs and SDKs for a major product release. This involved a LOT of moving parts and the colleague really brought it together nicely.
|
||||||
date: 9 May 2025
|
date: 9 May 2025
|
||||||
@@ -132,91 +135,4 @@
|
|||||||
date: 5 December 2025
|
date: 5 December 2025
|
||||||
- name: Hanna Rose
|
- name: Hanna Rose
|
||||||
content: Naomi is an extremely hard working individual who knows no bounds but her own. She constantly pushes herself and her team to do they best they can and ensures the results she delivers is as high quality as possible. With resilient determination and outstanding coordination and leadership skills, there is no one else that could even remotely match her level of talent.
|
content: Naomi is an extremely hard working individual who knows no bounds but her own. She constantly pushes herself and her team to do they best they can and ensures the results she delivers is as high quality as possible. With resilient determination and outstanding coordination and leadership skills, there is no one else that could even remotely match her level of talent.
|
||||||
date: 5 December 2025
|
date: 5 December 2025
|
||||||
- name: TR
|
|
||||||
content: "OMG Naomi is *thee* GOAT Discord Community Creater. My name is TR (tEE ARe) and I came by here by way of FreeCodeCamp server.... which is the only Learning-based community on discord that actually knows how to use Discord. At that is All Naomi's doing. And on top of that She has has the **monster-shoe** 👠 of blinged out Profiles, and this Server to boot . Way impressed. 🙏 plz teach me 0--venerable guru!❣️"
|
|
||||||
date: 2 April 2026
|
|
||||||
- name: Rain
|
|
||||||
content: "Happy Trans Day, Naomi 🏳️⚧️🤍\n\nI love you so much. You're a true blessing, and I hope you know how amazing you are.\n\nThis server means a lot to so many people. I've heard from others how safe they feel here…something they don't always experience in other spaces. That's because of the environment you've created.\n\nYou're a great inspiration to many developers finding their place in this world. Seeing a trans woman thrive in a male-dominated space is incredibly powerful. Your presence alone is motivating."
|
|
||||||
date: 1 April 2026
|
|
||||||
- name: procz
|
|
||||||
content: "hey! just wanted to take a minute to thank Naomi, and probably some other people i'm forgetting, as well as freeCodeCamp in general, for all the help in the past few months, finally got my first job in the industry and your help really made it easier 🙂"
|
|
||||||
date: 9 April 2021
|
|
||||||
- name: Velo
|
|
||||||
content: "Proud to be part of this community—thank you, Naomi, for everything you do"
|
|
||||||
date: 31 March 2026
|
|
||||||
- name: minjo70
|
|
||||||
content: "Praise be to you Great One! Our incredible Naomi, who we adore all moments of our time awake. And in our dreams may you persist with sweet laughter and joy. Your chaos, your memory live in our souls."
|
|
||||||
date: 31 March 2026
|
|
||||||
- name: roseaboveit
|
|
||||||
content: "Especially in a learning space what is most important actually is the modeling you do for the learning environment you are cultivating. In this case when you overdo it modeling how to step back and recalibrate with the community and during that recalibration evaluate your systems to provide buffer for yourself to decrease the odds that future recalibrations will be necessary. People going above and beyond is how workers get exploited and in learning spaces it is good to model the tools folks need to be able to represent themselves and fight for their own needs in a world where people will be constantly pushing for more.\n\nThanks Naomi for all that you do. Everything will be fine. People have a bunch of free resources available to them while you recalibrate and there are plenty of additional places they can get supplementation if that is required and they can't wait. It is good leadership to say no to things that are unsustainable."
|
|
||||||
date: 26 March 2026
|
|
||||||
- name: Wildfire
|
|
||||||
content: "I may not know you and you may not know me, but I am very glad you're still here ❤️ you are light to many people in this server!"
|
|
||||||
date: 17 March 2026
|
|
||||||
- name: Wildfire
|
|
||||||
content: "I know, you were kind to me a while ago, you gave me the confidence to share my project in this community, which I did. Because of your kind words to me. 💜"
|
|
||||||
date: 25 February 2026
|
|
||||||
- name: Anny
|
|
||||||
content: "I hate being at war. it makes international womens day harder to feel like celebrating. being stuck in a bomb shelter sucks... but at least i get some time to study work towards finding a place in tech as a developer. Mama Naomi, you are so right about how far we've come, and how far we still have to go."
|
|
||||||
date: 8 March 2026
|
|
||||||
- name: Isaac
|
|
||||||
content: "I would like to shout out Naomi. Lowkey, she carries a lot of work here. She took time to organize events for online, she's constantly offering help to everyone, her bots are actively used in the server. And beyond what she does for us, she's always ready to stand up for anyone who she feels she needs to. Naomi, you are an amazing human being! We are grateful to have you in this community"
|
|
||||||
date: 19 December 2025
|
|
||||||
- name: plamoni
|
|
||||||
content: "Notably, Naomi is a bit of a rock-star with this stuff. She is clearly keeping a ton of plates spinning and getting a lot done. It's hard *not* to notice it.\n\nIf you can be 50% as engaged as she is, you'll be absolutely fine. 😄"
|
|
||||||
date: 2 March 2022
|
|
||||||
- name: BigBonBon
|
|
||||||
content: "Shout out to Naomi for making it feel less daunting to talk/engage with people over discord."
|
|
||||||
date: 29 August 2022
|
|
||||||
- name: plamoni
|
|
||||||
content: "Note that Naomi has been coding for like 3 years now. I've been coding for 30 years and have nothing public that's anywhere near as good as this project. So realize that Naomi is a bit of an outlier with this and you shouldn't feel like you have to hit this bar to be successful. 🙂"
|
|
||||||
date: 30 September 2023
|
|
||||||
- name: Internal Feedback (Anonymised for privacy)
|
|
||||||
content: Naomi hustled this weekend and churned out a working SDK that supports a new platform integration, and documentation too! Let's give a round of applause for the teamwork!
|
|
||||||
date: 24 November 2025
|
|
||||||
- name: Internal Feedback (Anonymised for privacy)
|
|
||||||
content: Kudos Naomi for picking it up while I was out sick thank you ❤️
|
|
||||||
date: 17 January 2026
|
|
||||||
- name: Internal Feedback (Anonymised for privacy)
|
|
||||||
content: "Thanks Naomi. Firstly, keep up the good work on the spring cohort. It has been amazing to see contributions and meaningful engagement from first-timers. No one gets that done better than you!"
|
|
||||||
date: 20 February 2026
|
|
||||||
- name: Internal Feedback (Anonymised for privacy)
|
|
||||||
content: "I just finished reading the report. Excellent work, Naomi. This seems to reinforce our instincts that we just want Socrates to give feedback on code, and we want to position it as a tool that helps you get unstuck without risking learned helplessness or backsliding on your skills."
|
|
||||||
date: 26 February 2026
|
|
||||||
- name: Quincy Larson
|
|
||||||
content: Naomi is extremely good at finding opportunities to improve our platform and our community that nobody has even thought of. She's also adept at explaining those ideas, implementing them, and rallying other team members to help her making them a reality. She's a massive asset to the freeCodeCamp community and to our charity's developer staff.
|
|
||||||
date: 10 February 2026
|
|
||||||
- name: jake-haver-of-catz.bsky.social
|
|
||||||
content: "This morning I had my mind melted with a run through of @github.com by freeCodeCamp super champion, Naomi! Super grateful for this workshop to get our feet wet before we need to use this to collaborate on our projects in a few days! AH! Day 219/365 #code365 #goOnGit #100devs #freeCodeCamp"
|
|
||||||
date: 30 June 2025
|
|
||||||
- name: blairingmysoul.bsky.social
|
|
||||||
content: "I'm glad so many others appreciate the community you've built.👏💖"
|
|
||||||
date: 4 March 2026
|
|
||||||
- name: paddle
|
|
||||||
content: "Thanks for the update! It sounds like you've put a lot of effort into enhancing our Discord community. The events you mentioned, especially the mentorship sessions and accountability calls, sound like great opportunities for everyone to connect and improve their skills. I think the feedback channel is a fantastic idea, too. It'll be really helpful for gathering ideas directly from members. I'm looking forward to seeing how these changes will make our community even more engaging. Keep up the great work!"
|
|
||||||
date: 24 May 2025
|
|
||||||
- name: blackpug
|
|
||||||
content: "Wow, that is an incredible explanation [of a complex regex concept], thank you so much for taking the time to explain it in so much detail. I learned so much from the answer you provided. This is brilliant."
|
|
||||||
date: 25 April 2023
|
|
||||||
- name: manuarora
|
|
||||||
content: "Today I wrote my first blog for freeCodeCamp publication. I'm thankful to you for letting me know that I could do something like this."
|
|
||||||
date: 18 August 2021
|
|
||||||
- name: codeofdreams
|
|
||||||
content: "[While seeking help debugging a JavaScript project:] I would appreciate your assistance and input. You are my favorite moderator. Thank you!"
|
|
||||||
date: 12 August 2020
|
|
||||||
- name: Luke Oliff
|
|
||||||
content: "Naomi is a career switching ~~future~~ open source star. When I first met Naomi she was still looking for her first full-time tech role, and now she is an engineer for one of the most important free spaces for folks looking to get into tech, freeCodeCamp. Follow for great takes, great content, and great open source projects!"
|
|
||||||
date: 8 March 2022
|
|
||||||
- name: lilykhan
|
|
||||||
content: "[In a year-end reflection on learning to code:] A few amazing people who made this year amazing and to whom I'm so thankful for — [including Naomi]. They never said I'm not good enough, and they all encourage me to try out new stuff and to give my best shot. They trust in me even when I don't trust in myself."
|
|
||||||
date: 31 December 2020
|
|
||||||
- name: Jessica Wilkins
|
|
||||||
content: "I decided to reach out to [Naomi Carrigan] who is a freeCodeCamp developer and moderator. She had a service for code review sessions on her website and I wanted her to take a look at my code. The code review session was very valuable and I learned a lot about how to make the site even better."
|
|
||||||
date: 3 February 2021
|
|
||||||
- name: GDG Memphis
|
|
||||||
content: "[Naomi Carrigan] is a developer at freeCodeCamp. Primarily working in TypeScript, she has built CLI tools, curriculum content, APIs, and Discord bots. She is very passionate about open source and community building, and has helped shape and guide multiple OSS communities and developers."
|
|
||||||
date: 21 September 2021
|
|
||||||
- name: Anonymous
|
|
||||||
content: "Hello, hello Naomi!!! Wow, thank you so much for your message! 💗\n\nFirst, I hope you know that even if I didn't get the EC role, I just really wanted to help out such an inspirational community and to heed your call! I'm really hoping the medical issues you mentioned will be resolved completely and soonest! 🙏\n\nTo be super candid, I've just been a \"lurker\" and \"floater\" in our Discord and my freecodecamp progress is frankly quite bleak. 😬 But even as a somewhat inactive member of our community, I have seen how much constant work you have done and all the kindness, inspiration and positive energy and time you've spent for each and all of us to keep improving through the years! 💕 ❤️ 💖 I am just hoping I can support you and the FCC gang in whatever little way I can or that you may need now with your open invitation.\n\nSecond, thank you so, so much just basically for being you. ❣️ The online world can be so cold, fake and uncaring--but I feel your graciousness, warmth and tenderness through your constancy, words and patience despite the virtuality of interactions!\n\nThird, I'm really looking forward to getting to know you and everyone for the long term in support of such a cool and helpful community! Openly, I admit that I do not know which even to host yet. I just want to pitch in as much as you guys need and I can. From the outset, honestly I should have no business being an EC! Then again, it's time to roll up the sleeves and do some good work as you and the gang have been CONSTANT examples of. 🥰 I've been such a freeloader from you guys! I have every intention of changing some of that as an EC under your nurturing guidance! 😍\n\nOkidokie, I might have taken too much of your time already! 😟 Just really grateful for you, for the community and for the opportunity to serve. See you around then and sending big love and virtual hugs Mama Naomi! Praying you feel and get better day by day! 💗"
|
|
||||||
date: 18 April 2026
|
|
||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
"eslint": "9.36.0",
|
"eslint": "9.36.0",
|
||||||
"npm-run-all": "4.1.5",
|
"npm-run-all": "4.1.5",
|
||||||
"typescript": "5.9.2",
|
"typescript": "5.9.2",
|
||||||
"vitest": "3.2.4",
|
"vitest": "4.0.18",
|
||||||
"yaml": "2.8.1",
|
"yaml": "2.8.1",
|
||||||
"yaml-validator": "5.1.0"
|
"yaml-validator": "5.1.0"
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+111
-181
@@ -20,7 +20,7 @@ importers:
|
|||||||
devDependencies:
|
devDependencies:
|
||||||
'@nhcarrigan/eslint-config':
|
'@nhcarrigan/eslint-config':
|
||||||
specifier: 5.2.0
|
specifier: 5.2.0
|
||||||
version: 5.2.0(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(playwright@1.55.0)(react@19.1.1)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(yaml@2.8.1))
|
version: 5.2.0(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(playwright@1.55.0)(react@19.1.1)(typescript@5.9.2)(vitest@4.0.18(@types/node@24.5.2)(yaml@2.8.1))
|
||||||
'@nhcarrigan/typescript-config':
|
'@nhcarrigan/typescript-config':
|
||||||
specifier: 4.0.0
|
specifier: 4.0.0
|
||||||
version: 4.0.0(typescript@5.9.2)
|
version: 4.0.0(typescript@5.9.2)
|
||||||
@@ -40,8 +40,8 @@ importers:
|
|||||||
specifier: 5.9.2
|
specifier: 5.9.2
|
||||||
version: 5.9.2
|
version: 5.9.2
|
||||||
vitest:
|
vitest:
|
||||||
specifier: 3.2.4
|
specifier: 4.0.18
|
||||||
version: 3.2.4(@types/node@24.5.2)(yaml@2.8.1)
|
version: 4.0.18(@types/node@24.5.2)(yaml@2.8.1)
|
||||||
yaml:
|
yaml:
|
||||||
specifier: 2.8.1
|
specifier: 2.8.1
|
||||||
version: 2.8.1
|
version: 2.8.1
|
||||||
@@ -612,56 +612,67 @@ packages:
|
|||||||
resolution: {integrity: sha512-aL6hRwu0k7MTUESgkg7QHY6CoqPgr6gdQXRJI1/VbFlUMwsSzPGSR7sG5d+MCbYnJmJwThc2ol3nixj1fvI/zQ==}
|
resolution: {integrity: sha512-aL6hRwu0k7MTUESgkg7QHY6CoqPgr6gdQXRJI1/VbFlUMwsSzPGSR7sG5d+MCbYnJmJwThc2ol3nixj1fvI/zQ==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-musleabihf@4.52.0':
|
'@rollup/rollup-linux-arm-musleabihf@4.52.0':
|
||||||
resolution: {integrity: sha512-BTs0M5s1EJejgIBJhCeiFo7GZZ2IXWkFGcyZhxX4+8usnIo5Mti57108vjXFIQmmJaRyDwmV59Tw64Ap1dkwMw==}
|
resolution: {integrity: sha512-BTs0M5s1EJejgIBJhCeiFo7GZZ2IXWkFGcyZhxX4+8usnIo5Mti57108vjXFIQmmJaRyDwmV59Tw64Ap1dkwMw==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-gnu@4.52.0':
|
'@rollup/rollup-linux-arm64-gnu@4.52.0':
|
||||||
resolution: {integrity: sha512-uj672IVOU9m08DBGvoPKPi/J8jlVgjh12C9GmjjBxCTQc3XtVmRkRKyeHSmIKQpvJ7fIm1EJieBUcnGSzDVFyw==}
|
resolution: {integrity: sha512-uj672IVOU9m08DBGvoPKPi/J8jlVgjh12C9GmjjBxCTQc3XtVmRkRKyeHSmIKQpvJ7fIm1EJieBUcnGSzDVFyw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-musl@4.52.0':
|
'@rollup/rollup-linux-arm64-musl@4.52.0':
|
||||||
resolution: {integrity: sha512-/+IVbeDMDCtB/HP/wiWsSzduD10SEGzIZX2945KSgZRNi4TSkjHqRJtNTVtVb8IRwhJ65ssI56krlLik+zFWkw==}
|
resolution: {integrity: sha512-/+IVbeDMDCtB/HP/wiWsSzduD10SEGzIZX2945KSgZRNi4TSkjHqRJtNTVtVb8IRwhJ65ssI56krlLik+zFWkw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/rollup-linux-loong64-gnu@4.52.0':
|
'@rollup/rollup-linux-loong64-gnu@4.52.0':
|
||||||
resolution: {integrity: sha512-U1vVzvSWtSMWKKrGoROPBXMh3Vwn93TA9V35PldokHGqiUbF6erSzox/5qrSMKp6SzakvyjcPiVF8yB1xKr9Pg==}
|
resolution: {integrity: sha512-U1vVzvSWtSMWKKrGoROPBXMh3Vwn93TA9V35PldokHGqiUbF6erSzox/5qrSMKp6SzakvyjcPiVF8yB1xKr9Pg==}
|
||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/rollup-linux-ppc64-gnu@4.52.0':
|
'@rollup/rollup-linux-ppc64-gnu@4.52.0':
|
||||||
resolution: {integrity: sha512-X/4WfuBAdQRH8cK3DYl8zC00XEE6aM472W+QCycpQJeLWVnHfkv7RyBFVaTqNUMsTgIX8ihMjCvFF9OUgeABzw==}
|
resolution: {integrity: sha512-X/4WfuBAdQRH8cK3DYl8zC00XEE6aM472W+QCycpQJeLWVnHfkv7RyBFVaTqNUMsTgIX8ihMjCvFF9OUgeABzw==}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-gnu@4.52.0':
|
'@rollup/rollup-linux-riscv64-gnu@4.52.0':
|
||||||
resolution: {integrity: sha512-xIRYc58HfWDBZoLmWfWXg2Sq8VCa2iJ32B7mqfWnkx5mekekl0tMe7FHpY8I72RXEcUkaWawRvl3qA55og+cwQ==}
|
resolution: {integrity: sha512-xIRYc58HfWDBZoLmWfWXg2Sq8VCa2iJ32B7mqfWnkx5mekekl0tMe7FHpY8I72RXEcUkaWawRvl3qA55og+cwQ==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-musl@4.52.0':
|
'@rollup/rollup-linux-riscv64-musl@4.52.0':
|
||||||
resolution: {integrity: sha512-mbsoUey05WJIOz8U1WzNdf+6UMYGwE3fZZnQqsM22FZ3wh1N887HT6jAOjXs6CNEK3Ntu2OBsyQDXfIjouI4dw==}
|
resolution: {integrity: sha512-mbsoUey05WJIOz8U1WzNdf+6UMYGwE3fZZnQqsM22FZ3wh1N887HT6jAOjXs6CNEK3Ntu2OBsyQDXfIjouI4dw==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/rollup-linux-s390x-gnu@4.52.0':
|
'@rollup/rollup-linux-s390x-gnu@4.52.0':
|
||||||
resolution: {integrity: sha512-qP6aP970bucEi5KKKR4AuPFd8aTx9EF6BvutvYxmZuWLJHmnq4LvBfp0U+yFDMGwJ+AIJEH5sIP+SNypauMWzg==}
|
resolution: {integrity: sha512-qP6aP970bucEi5KKKR4AuPFd8aTx9EF6BvutvYxmZuWLJHmnq4LvBfp0U+yFDMGwJ+AIJEH5sIP+SNypauMWzg==}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-gnu@4.52.0':
|
'@rollup/rollup-linux-x64-gnu@4.52.0':
|
||||||
resolution: {integrity: sha512-nmSVN+F2i1yKZ7rJNKO3G7ZzmxJgoQBQZ/6c4MuS553Grmr7WqR7LLDcYG53Z2m9409z3JLt4sCOhLdbKQ3HmA==}
|
resolution: {integrity: sha512-nmSVN+F2i1yKZ7rJNKO3G7ZzmxJgoQBQZ/6c4MuS553Grmr7WqR7LLDcYG53Z2m9409z3JLt4sCOhLdbKQ3HmA==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-musl@4.52.0':
|
'@rollup/rollup-linux-x64-musl@4.52.0':
|
||||||
resolution: {integrity: sha512-2d0qRo33G6TfQVjaMR71P+yJVGODrt5V6+T0BDYH4EMfGgdC/2HWDVjSSFw888GSzAZUwuska3+zxNUCDco6rQ==}
|
resolution: {integrity: sha512-2d0qRo33G6TfQVjaMR71P+yJVGODrt5V6+T0BDYH4EMfGgdC/2HWDVjSSFw888GSzAZUwuska3+zxNUCDco6rQ==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/rollup-openharmony-arm64@4.52.0':
|
'@rollup/rollup-openharmony-arm64@4.52.0':
|
||||||
resolution: {integrity: sha512-A1JalX4MOaFAAyGgpO7XP5khquv/7xKzLIyLmhNrbiCxWpMlnsTYr8dnsWM7sEeotNmxvSOEL7F65j0HXFcFsw==}
|
resolution: {integrity: sha512-A1JalX4MOaFAAyGgpO7XP5khquv/7xKzLIyLmhNrbiCxWpMlnsTYr8dnsWM7sEeotNmxvSOEL7F65j0HXFcFsw==}
|
||||||
@@ -691,6 +702,9 @@ packages:
|
|||||||
'@rtsao/scc@1.1.0':
|
'@rtsao/scc@1.1.0':
|
||||||
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
|
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
|
||||||
|
|
||||||
|
'@standard-schema/spec@1.1.0':
|
||||||
|
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
|
||||||
|
|
||||||
'@stylistic/eslint-plugin@2.12.1':
|
'@stylistic/eslint-plugin@2.12.1':
|
||||||
resolution: {integrity: sha512-fubZKIHSPuo07FgRTn6S4Nl0uXPRPYVNpyZzIDGfp7Fny6JjNus6kReLD7NI380JXi4HtUTSOZ34LBuNPO1XLQ==}
|
resolution: {integrity: sha512-fubZKIHSPuo07FgRTn6S4Nl0uXPRPYVNpyZzIDGfp7Fny6JjNus6kReLD7NI380JXi4HtUTSOZ34LBuNPO1XLQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -842,34 +856,34 @@ packages:
|
|||||||
vitest:
|
vitest:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@vitest/expect@3.2.4':
|
'@vitest/expect@4.0.18':
|
||||||
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
|
resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==}
|
||||||
|
|
||||||
'@vitest/mocker@3.2.4':
|
'@vitest/mocker@4.0.18':
|
||||||
resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==}
|
resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
msw: ^2.4.9
|
msw: ^2.4.9
|
||||||
vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
|
vite: ^6.0.0 || ^7.0.0-0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
msw:
|
msw:
|
||||||
optional: true
|
optional: true
|
||||||
vite:
|
vite:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@vitest/pretty-format@3.2.4':
|
'@vitest/pretty-format@4.0.18':
|
||||||
resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
|
resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==}
|
||||||
|
|
||||||
'@vitest/runner@3.2.4':
|
'@vitest/runner@4.0.18':
|
||||||
resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==}
|
resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==}
|
||||||
|
|
||||||
'@vitest/snapshot@3.2.4':
|
'@vitest/snapshot@4.0.18':
|
||||||
resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==}
|
resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==}
|
||||||
|
|
||||||
'@vitest/spy@3.2.4':
|
'@vitest/spy@4.0.18':
|
||||||
resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
|
resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==}
|
||||||
|
|
||||||
'@vitest/utils@3.2.4':
|
'@vitest/utils@4.0.18':
|
||||||
resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
|
resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==}
|
||||||
|
|
||||||
abstract-logging@2.0.1:
|
abstract-logging@2.0.1:
|
||||||
resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
|
resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
|
||||||
@@ -957,10 +971,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
|
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
assertion-error@2.0.1:
|
|
||||||
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
|
|
||||||
async-function@1.0.0:
|
async-function@1.0.0:
|
||||||
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
|
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@@ -1002,10 +1012,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
|
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
cac@6.7.14:
|
|
||||||
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
|
|
||||||
engines: {node: '>=8'}
|
|
||||||
|
|
||||||
call-bind-apply-helpers@1.0.2:
|
call-bind-apply-helpers@1.0.2:
|
||||||
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
|
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@@ -1025,8 +1031,8 @@ packages:
|
|||||||
caniuse-lite@1.0.30001743:
|
caniuse-lite@1.0.30001743:
|
||||||
resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==}
|
resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==}
|
||||||
|
|
||||||
chai@5.3.3:
|
chai@6.2.2:
|
||||||
resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==}
|
resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
chalk-template@1.1.2:
|
chalk-template@1.1.2:
|
||||||
@@ -1045,10 +1051,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
|
resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
|
||||||
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
|
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
|
||||||
|
|
||||||
check-error@2.1.1:
|
|
||||||
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
|
|
||||||
engines: {node: '>= 16'}
|
|
||||||
|
|
||||||
check-type@0.4.11:
|
check-type@0.4.11:
|
||||||
resolution: {integrity: sha512-dtbWcp8jwTktDzqdOPPAKmgjQD0nrINuKrOu7bZPA3bCaEFJ00OMfFpsO6txy1y+09P9sp6tQq7T5ons/HcNYw==}
|
resolution: {integrity: sha512-dtbWcp8jwTktDzqdOPPAKmgjQD0nrINuKrOu7bZPA3bCaEFJ00OMfFpsO6txy1y+09P9sp6tQq7T5ons/HcNYw==}
|
||||||
engines: {node: '>=0.10'}
|
engines: {node: '>=0.10'}
|
||||||
@@ -1179,10 +1181,6 @@ packages:
|
|||||||
supports-color:
|
supports-color:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
deep-eql@5.0.2:
|
|
||||||
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
|
|
||||||
engines: {node: '>=6'}
|
|
||||||
|
|
||||||
deep-is@0.1.4:
|
deep-is@0.1.4:
|
||||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||||
|
|
||||||
@@ -1751,9 +1749,6 @@ packages:
|
|||||||
js-tokens@4.0.0:
|
js-tokens@4.0.0:
|
||||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||||
|
|
||||||
js-tokens@9.0.1:
|
|
||||||
resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
|
|
||||||
|
|
||||||
js-yaml@4.1.0:
|
js-yaml@4.1.0:
|
||||||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -1832,11 +1827,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
loupe@3.2.1:
|
magic-string@0.30.21:
|
||||||
resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
|
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
||||||
|
|
||||||
magic-string@0.30.19:
|
|
||||||
resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
|
|
||||||
|
|
||||||
math-intrinsics@1.1.0:
|
math-intrinsics@1.1.0:
|
||||||
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
|
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
|
||||||
@@ -1925,6 +1917,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
|
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
|
obug@2.1.1:
|
||||||
|
resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==}
|
||||||
|
|
||||||
on-exit-leak-free@2.1.2:
|
on-exit-leak-free@2.1.2:
|
||||||
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
|
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
@@ -2007,10 +2002,6 @@ packages:
|
|||||||
pathe@2.0.3:
|
pathe@2.0.3:
|
||||||
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
|
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
|
||||||
|
|
||||||
pathval@2.0.1:
|
|
||||||
resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==}
|
|
||||||
engines: {node: '>= 14.16'}
|
|
||||||
|
|
||||||
picocolors@1.1.1:
|
picocolors@1.1.1:
|
||||||
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
||||||
|
|
||||||
@@ -2302,8 +2293,8 @@ packages:
|
|||||||
stackback@0.0.2:
|
stackback@0.0.2:
|
||||||
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
|
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
|
||||||
|
|
||||||
std-env@3.9.0:
|
std-env@3.10.0:
|
||||||
resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
|
resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
|
||||||
|
|
||||||
stop-iteration-iterator@1.1.0:
|
stop-iteration-iterator@1.1.0:
|
||||||
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
|
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
|
||||||
@@ -2344,9 +2335,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
strip-literal@3.0.0:
|
|
||||||
resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
|
|
||||||
|
|
||||||
supports-color@5.5.0:
|
supports-color@5.5.0:
|
||||||
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -2369,23 +2357,16 @@ packages:
|
|||||||
tinybench@2.9.0:
|
tinybench@2.9.0:
|
||||||
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
|
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
|
||||||
|
|
||||||
tinyexec@0.3.2:
|
tinyexec@1.0.2:
|
||||||
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
|
resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
tinyglobby@0.2.15:
|
tinyglobby@0.2.15:
|
||||||
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
|
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
|
|
||||||
tinypool@1.1.1:
|
tinyrainbow@3.0.3:
|
||||||
resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==}
|
resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==}
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
|
||||||
|
|
||||||
tinyrainbow@2.0.0:
|
|
||||||
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
|
|
||||||
engines: {node: '>=14.0.0'}
|
|
||||||
|
|
||||||
tinyspy@4.0.4:
|
|
||||||
resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
|
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
|
|
||||||
to-regex-range@5.0.1:
|
to-regex-range@5.0.1:
|
||||||
@@ -2473,11 +2454,6 @@ packages:
|
|||||||
validate-npm-package-license@3.0.4:
|
validate-npm-package-license@3.0.4:
|
||||||
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
|
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
|
||||||
|
|
||||||
vite-node@3.2.4:
|
|
||||||
resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
|
|
||||||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
vite@7.1.7:
|
vite@7.1.7:
|
||||||
resolution: {integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==}
|
resolution: {integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==}
|
||||||
engines: {node: ^20.19.0 || >=22.12.0}
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
@@ -2518,26 +2494,32 @@ packages:
|
|||||||
yaml:
|
yaml:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
vitest@3.2.4:
|
vitest@4.0.18:
|
||||||
resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
|
resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==}
|
||||||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@edge-runtime/vm': '*'
|
'@edge-runtime/vm': '*'
|
||||||
'@types/debug': ^4.1.12
|
'@opentelemetry/api': ^1.9.0
|
||||||
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
|
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
|
||||||
'@vitest/browser': 3.2.4
|
'@vitest/browser-playwright': 4.0.18
|
||||||
'@vitest/ui': 3.2.4
|
'@vitest/browser-preview': 4.0.18
|
||||||
|
'@vitest/browser-webdriverio': 4.0.18
|
||||||
|
'@vitest/ui': 4.0.18
|
||||||
happy-dom: '*'
|
happy-dom: '*'
|
||||||
jsdom: '*'
|
jsdom: '*'
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
'@edge-runtime/vm':
|
'@edge-runtime/vm':
|
||||||
optional: true
|
optional: true
|
||||||
'@types/debug':
|
'@opentelemetry/api':
|
||||||
optional: true
|
optional: true
|
||||||
'@types/node':
|
'@types/node':
|
||||||
optional: true
|
optional: true
|
||||||
'@vitest/browser':
|
'@vitest/browser-playwright':
|
||||||
|
optional: true
|
||||||
|
'@vitest/browser-preview':
|
||||||
|
optional: true
|
||||||
|
'@vitest/browser-webdriverio':
|
||||||
optional: true
|
optional: true
|
||||||
'@vitest/ui':
|
'@vitest/ui':
|
||||||
optional: true
|
optional: true
|
||||||
@@ -3022,7 +3004,7 @@ snapshots:
|
|||||||
|
|
||||||
'@jridgewell/sourcemap-codec@1.5.5': {}
|
'@jridgewell/sourcemap-codec@1.5.5': {}
|
||||||
|
|
||||||
'@nhcarrigan/eslint-config@5.2.0(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(playwright@1.55.0)(react@19.1.1)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(yaml@2.8.1))':
|
'@nhcarrigan/eslint-config@5.2.0(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(playwright@1.55.0)(react@19.1.1)(typescript@5.9.2)(vitest@4.0.18(@types/node@24.5.2)(yaml@2.8.1))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.36.0)
|
'@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.36.0)
|
||||||
'@eslint/compat': 1.2.4(eslint@9.36.0)
|
'@eslint/compat': 1.2.4(eslint@9.36.0)
|
||||||
@@ -3031,7 +3013,7 @@ snapshots:
|
|||||||
'@stylistic/eslint-plugin': 2.12.1(eslint@9.36.0)(typescript@5.9.2)
|
'@stylistic/eslint-plugin': 2.12.1(eslint@9.36.0)(typescript@5.9.2)
|
||||||
'@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)
|
'@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)
|
||||||
'@typescript-eslint/parser': 8.19.0(eslint@9.36.0)(typescript@5.9.2)
|
'@typescript-eslint/parser': 8.19.0(eslint@9.36.0)(typescript@5.9.2)
|
||||||
'@vitest/eslint-plugin': 1.1.24(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(yaml@2.8.1))
|
'@vitest/eslint-plugin': 1.1.24(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)(vitest@4.0.18(@types/node@24.5.2)(yaml@2.8.1))
|
||||||
eslint: 9.36.0
|
eslint: 9.36.0
|
||||||
eslint-plugin-deprecation: 3.0.0(eslint@9.36.0)(typescript@5.9.2)
|
eslint-plugin-deprecation: 3.0.0(eslint@9.36.0)(typescript@5.9.2)
|
||||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)
|
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)
|
||||||
@@ -3044,7 +3026,7 @@ snapshots:
|
|||||||
playwright: 1.55.0
|
playwright: 1.55.0
|
||||||
react: 19.1.1
|
react: 19.1.1
|
||||||
typescript: 5.9.2
|
typescript: 5.9.2
|
||||||
vitest: 3.2.4(@types/node@24.5.2)(yaml@2.8.1)
|
vitest: 4.0.18(@types/node@24.5.2)(yaml@2.8.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@typescript-eslint/utils'
|
- '@typescript-eslint/utils'
|
||||||
- eslint-import-resolver-typescript
|
- eslint-import-resolver-typescript
|
||||||
@@ -3139,6 +3121,8 @@ snapshots:
|
|||||||
|
|
||||||
'@rtsao/scc@1.1.0': {}
|
'@rtsao/scc@1.1.0': {}
|
||||||
|
|
||||||
|
'@standard-schema/spec@1.1.0': {}
|
||||||
|
|
||||||
'@stylistic/eslint-plugin@2.12.1(eslint@9.36.0)(typescript@5.9.2)':
|
'@stylistic/eslint-plugin@2.12.1(eslint@9.36.0)(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/utils': 8.44.1(eslint@9.36.0)(typescript@5.9.2)
|
'@typescript-eslint/utils': 8.44.1(eslint@9.36.0)(typescript@5.9.2)
|
||||||
@@ -3336,55 +3320,52 @@ snapshots:
|
|||||||
'@typescript-eslint/types': 8.44.1
|
'@typescript-eslint/types': 8.44.1
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
|
|
||||||
'@vitest/eslint-plugin@1.1.24(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(yaml@2.8.1))':
|
'@vitest/eslint-plugin@1.1.24(@typescript-eslint/utils@8.44.1(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)(vitest@4.0.18(@types/node@24.5.2)(yaml@2.8.1))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/utils': 8.44.1(eslint@9.36.0)(typescript@5.9.2)
|
'@typescript-eslint/utils': 8.44.1(eslint@9.36.0)(typescript@5.9.2)
|
||||||
eslint: 9.36.0
|
eslint: 9.36.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.9.2
|
typescript: 5.9.2
|
||||||
vitest: 3.2.4(@types/node@24.5.2)(yaml@2.8.1)
|
vitest: 4.0.18(@types/node@24.5.2)(yaml@2.8.1)
|
||||||
|
|
||||||
'@vitest/expect@3.2.4':
|
'@vitest/expect@4.0.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@standard-schema/spec': 1.1.0
|
||||||
'@types/chai': 5.2.2
|
'@types/chai': 5.2.2
|
||||||
'@vitest/spy': 3.2.4
|
'@vitest/spy': 4.0.18
|
||||||
'@vitest/utils': 3.2.4
|
'@vitest/utils': 4.0.18
|
||||||
chai: 5.3.3
|
chai: 6.2.2
|
||||||
tinyrainbow: 2.0.0
|
tinyrainbow: 3.0.3
|
||||||
|
|
||||||
'@vitest/mocker@3.2.4(vite@7.1.7(@types/node@24.5.2)(yaml@2.8.1))':
|
'@vitest/mocker@4.0.18(vite@7.1.7(@types/node@24.5.2)(yaml@2.8.1))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/spy': 3.2.4
|
'@vitest/spy': 4.0.18
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
magic-string: 0.30.19
|
magic-string: 0.30.21
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 7.1.7(@types/node@24.5.2)(yaml@2.8.1)
|
vite: 7.1.7(@types/node@24.5.2)(yaml@2.8.1)
|
||||||
|
|
||||||
'@vitest/pretty-format@3.2.4':
|
'@vitest/pretty-format@4.0.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
tinyrainbow: 2.0.0
|
tinyrainbow: 3.0.3
|
||||||
|
|
||||||
'@vitest/runner@3.2.4':
|
'@vitest/runner@4.0.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/utils': 3.2.4
|
'@vitest/utils': 4.0.18
|
||||||
pathe: 2.0.3
|
|
||||||
strip-literal: 3.0.0
|
|
||||||
|
|
||||||
'@vitest/snapshot@3.2.4':
|
|
||||||
dependencies:
|
|
||||||
'@vitest/pretty-format': 3.2.4
|
|
||||||
magic-string: 0.30.19
|
|
||||||
pathe: 2.0.3
|
pathe: 2.0.3
|
||||||
|
|
||||||
'@vitest/spy@3.2.4':
|
'@vitest/snapshot@4.0.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
tinyspy: 4.0.4
|
'@vitest/pretty-format': 4.0.18
|
||||||
|
magic-string: 0.30.21
|
||||||
|
pathe: 2.0.3
|
||||||
|
|
||||||
'@vitest/utils@3.2.4':
|
'@vitest/spy@4.0.18': {}
|
||||||
|
|
||||||
|
'@vitest/utils@4.0.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/pretty-format': 3.2.4
|
'@vitest/pretty-format': 4.0.18
|
||||||
loupe: 3.2.1
|
tinyrainbow: 3.0.3
|
||||||
tinyrainbow: 2.0.0
|
|
||||||
|
|
||||||
abstract-logging@2.0.1: {}
|
abstract-logging@2.0.1: {}
|
||||||
|
|
||||||
@@ -3501,8 +3482,6 @@ snapshots:
|
|||||||
get-intrinsic: 1.3.0
|
get-intrinsic: 1.3.0
|
||||||
is-array-buffer: 3.0.5
|
is-array-buffer: 3.0.5
|
||||||
|
|
||||||
assertion-error@2.0.1: {}
|
|
||||||
|
|
||||||
async-function@1.0.0: {}
|
async-function@1.0.0: {}
|
||||||
|
|
||||||
atomic-sleep@1.0.0: {}
|
atomic-sleep@1.0.0: {}
|
||||||
@@ -3543,8 +3522,6 @@ snapshots:
|
|||||||
|
|
||||||
builtin-modules@3.3.0: {}
|
builtin-modules@3.3.0: {}
|
||||||
|
|
||||||
cac@6.7.14: {}
|
|
||||||
|
|
||||||
call-bind-apply-helpers@1.0.2:
|
call-bind-apply-helpers@1.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
es-errors: 1.3.0
|
es-errors: 1.3.0
|
||||||
@@ -3566,13 +3543,7 @@ snapshots:
|
|||||||
|
|
||||||
caniuse-lite@1.0.30001743: {}
|
caniuse-lite@1.0.30001743: {}
|
||||||
|
|
||||||
chai@5.3.3:
|
chai@6.2.2: {}
|
||||||
dependencies:
|
|
||||||
assertion-error: 2.0.1
|
|
||||||
check-error: 2.1.1
|
|
||||||
deep-eql: 5.0.2
|
|
||||||
loupe: 3.2.1
|
|
||||||
pathval: 2.0.1
|
|
||||||
|
|
||||||
chalk-template@1.1.2:
|
chalk-template@1.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3591,8 +3562,6 @@ snapshots:
|
|||||||
|
|
||||||
chalk@5.6.2: {}
|
chalk@5.6.2: {}
|
||||||
|
|
||||||
check-error@2.1.1: {}
|
|
||||||
|
|
||||||
check-type@0.4.11:
|
check-type@0.4.11:
|
||||||
dependencies:
|
dependencies:
|
||||||
underscore: 1.6.0
|
underscore: 1.6.0
|
||||||
@@ -3771,8 +3740,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ms: 2.1.3
|
ms: 2.1.3
|
||||||
|
|
||||||
deep-eql@5.0.2: {}
|
|
||||||
|
|
||||||
deep-is@0.1.4: {}
|
deep-is@0.1.4: {}
|
||||||
|
|
||||||
define-data-property@1.1.4:
|
define-data-property@1.1.4:
|
||||||
@@ -4522,8 +4489,6 @@ snapshots:
|
|||||||
|
|
||||||
js-tokens@4.0.0: {}
|
js-tokens@4.0.0: {}
|
||||||
|
|
||||||
js-tokens@9.0.1: {}
|
|
||||||
|
|
||||||
js-yaml@4.1.0:
|
js-yaml@4.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
argparse: 2.0.1
|
argparse: 2.0.1
|
||||||
@@ -4599,9 +4564,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
js-tokens: 4.0.0
|
js-tokens: 4.0.0
|
||||||
|
|
||||||
loupe@3.2.1: {}
|
magic-string@0.30.21:
|
||||||
|
|
||||||
magic-string@0.30.19:
|
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
'@jridgewell/sourcemap-codec': 1.5.5
|
||||||
|
|
||||||
@@ -4699,6 +4662,8 @@ snapshots:
|
|||||||
define-properties: 1.2.1
|
define-properties: 1.2.1
|
||||||
es-object-atoms: 1.1.1
|
es-object-atoms: 1.1.1
|
||||||
|
|
||||||
|
obug@2.1.1: {}
|
||||||
|
|
||||||
on-exit-leak-free@2.1.2: {}
|
on-exit-leak-free@2.1.2: {}
|
||||||
|
|
||||||
optionator@0.9.3:
|
optionator@0.9.3:
|
||||||
@@ -4784,8 +4749,6 @@ snapshots:
|
|||||||
|
|
||||||
pathe@2.0.3: {}
|
pathe@2.0.3: {}
|
||||||
|
|
||||||
pathval@2.0.1: {}
|
|
||||||
|
|
||||||
picocolors@1.1.1: {}
|
picocolors@1.1.1: {}
|
||||||
|
|
||||||
picomatch@2.3.1: {}
|
picomatch@2.3.1: {}
|
||||||
@@ -5099,7 +5062,7 @@ snapshots:
|
|||||||
|
|
||||||
stackback@0.0.2: {}
|
stackback@0.0.2: {}
|
||||||
|
|
||||||
std-env@3.9.0: {}
|
std-env@3.10.0: {}
|
||||||
|
|
||||||
stop-iteration-iterator@1.1.0:
|
stop-iteration-iterator@1.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5165,10 +5128,6 @@ snapshots:
|
|||||||
|
|
||||||
strip-json-comments@3.1.1: {}
|
strip-json-comments@3.1.1: {}
|
||||||
|
|
||||||
strip-literal@3.0.0:
|
|
||||||
dependencies:
|
|
||||||
js-tokens: 9.0.1
|
|
||||||
|
|
||||||
supports-color@5.5.0:
|
supports-color@5.5.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
has-flag: 3.0.0
|
has-flag: 3.0.0
|
||||||
@@ -5190,18 +5149,14 @@ snapshots:
|
|||||||
|
|
||||||
tinybench@2.9.0: {}
|
tinybench@2.9.0: {}
|
||||||
|
|
||||||
tinyexec@0.3.2: {}
|
tinyexec@1.0.2: {}
|
||||||
|
|
||||||
tinyglobby@0.2.15:
|
tinyglobby@0.2.15:
|
||||||
dependencies:
|
dependencies:
|
||||||
fdir: 6.5.0(picomatch@4.0.3)
|
fdir: 6.5.0(picomatch@4.0.3)
|
||||||
picomatch: 4.0.3
|
picomatch: 4.0.3
|
||||||
|
|
||||||
tinypool@1.1.1: {}
|
tinyrainbow@3.0.3: {}
|
||||||
|
|
||||||
tinyrainbow@2.0.0: {}
|
|
||||||
|
|
||||||
tinyspy@4.0.4: {}
|
|
||||||
|
|
||||||
to-regex-range@5.0.1:
|
to-regex-range@5.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5297,27 +5252,6 @@ snapshots:
|
|||||||
spdx-correct: 3.2.0
|
spdx-correct: 3.2.0
|
||||||
spdx-expression-parse: 3.0.1
|
spdx-expression-parse: 3.0.1
|
||||||
|
|
||||||
vite-node@3.2.4(@types/node@24.5.2)(yaml@2.8.1):
|
|
||||||
dependencies:
|
|
||||||
cac: 6.7.14
|
|
||||||
debug: 4.4.3
|
|
||||||
es-module-lexer: 1.7.0
|
|
||||||
pathe: 2.0.3
|
|
||||||
vite: 7.1.7(@types/node@24.5.2)(yaml@2.8.1)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@types/node'
|
|
||||||
- jiti
|
|
||||||
- less
|
|
||||||
- lightningcss
|
|
||||||
- sass
|
|
||||||
- sass-embedded
|
|
||||||
- stylus
|
|
||||||
- sugarss
|
|
||||||
- supports-color
|
|
||||||
- terser
|
|
||||||
- tsx
|
|
||||||
- yaml
|
|
||||||
|
|
||||||
vite@7.1.7(@types/node@24.5.2)(yaml@2.8.1):
|
vite@7.1.7(@types/node@24.5.2)(yaml@2.8.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.10
|
esbuild: 0.25.10
|
||||||
@@ -5331,30 +5265,27 @@ snapshots:
|
|||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
yaml: 2.8.1
|
yaml: 2.8.1
|
||||||
|
|
||||||
vitest@3.2.4(@types/node@24.5.2)(yaml@2.8.1):
|
vitest@4.0.18(@types/node@24.5.2)(yaml@2.8.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/chai': 5.2.2
|
'@vitest/expect': 4.0.18
|
||||||
'@vitest/expect': 3.2.4
|
'@vitest/mocker': 4.0.18(vite@7.1.7(@types/node@24.5.2)(yaml@2.8.1))
|
||||||
'@vitest/mocker': 3.2.4(vite@7.1.7(@types/node@24.5.2)(yaml@2.8.1))
|
'@vitest/pretty-format': 4.0.18
|
||||||
'@vitest/pretty-format': 3.2.4
|
'@vitest/runner': 4.0.18
|
||||||
'@vitest/runner': 3.2.4
|
'@vitest/snapshot': 4.0.18
|
||||||
'@vitest/snapshot': 3.2.4
|
'@vitest/spy': 4.0.18
|
||||||
'@vitest/spy': 3.2.4
|
'@vitest/utils': 4.0.18
|
||||||
'@vitest/utils': 3.2.4
|
es-module-lexer: 1.7.0
|
||||||
chai: 5.3.3
|
|
||||||
debug: 4.4.3
|
|
||||||
expect-type: 1.2.2
|
expect-type: 1.2.2
|
||||||
magic-string: 0.30.19
|
magic-string: 0.30.21
|
||||||
|
obug: 2.1.1
|
||||||
pathe: 2.0.3
|
pathe: 2.0.3
|
||||||
picomatch: 4.0.3
|
picomatch: 4.0.3
|
||||||
std-env: 3.9.0
|
std-env: 3.10.0
|
||||||
tinybench: 2.9.0
|
tinybench: 2.9.0
|
||||||
tinyexec: 0.3.2
|
tinyexec: 1.0.2
|
||||||
tinyglobby: 0.2.15
|
tinyglobby: 0.2.15
|
||||||
tinypool: 1.1.1
|
tinyrainbow: 3.0.3
|
||||||
tinyrainbow: 2.0.0
|
|
||||||
vite: 7.1.7(@types/node@24.5.2)(yaml@2.8.1)
|
vite: 7.1.7(@types/node@24.5.2)(yaml@2.8.1)
|
||||||
vite-node: 3.2.4(@types/node@24.5.2)(yaml@2.8.1)
|
|
||||||
why-is-node-running: 2.3.0
|
why-is-node-running: 2.3.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 24.5.2
|
'@types/node': 24.5.2
|
||||||
@@ -5367,7 +5298,6 @@ snapshots:
|
|||||||
- sass-embedded
|
- sass-embedded
|
||||||
- stylus
|
- stylus
|
||||||
- sugarss
|
- sugarss
|
||||||
- supports-color
|
|
||||||
- terser
|
- terser
|
||||||
- tsx
|
- tsx
|
||||||
- yaml
|
- yaml
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
# Security
|
|
||||||
|
|
||||||
# Do not execute any scripts of installed packages (project scripts still run)
|
|
||||||
ignoreDepScripts: true
|
|
||||||
# Do not automatically run pre/post scripts (e.g. preinstall, postbuild)
|
|
||||||
enablePrePostScripts: false
|
|
||||||
# Only allow packages published at least 10 days ago (reduces risk of compromised packages)
|
|
||||||
minimumReleaseAge: 14400
|
|
||||||
# Fail if a package's trust level has decreased compared to previous releases
|
|
||||||
trustPolicy: no-downgrade
|
|
||||||
# Ignore trust policy for packages published more than 1 year ago (predates provenance signing)
|
|
||||||
trustPolicyIgnoreAfter: 525960
|
|
||||||
# Fail if there are missing or invalid peer dependencies
|
|
||||||
strictPeerDependencies: true
|
|
||||||
# Prevent transitive dependencies from using exotic sources (git repos, direct tarball URLs)
|
|
||||||
blockExoticSubdeps: true
|
|
||||||
|
|
||||||
# Lockfile
|
|
||||||
|
|
||||||
# Allow the lockfile to be updated during install (set to true in CI for stricter reproducibility)
|
|
||||||
preferFrozenLockfile: 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