Compare commits

..

1 Commits

Author SHA1 Message Date
minori bd482a9fad deps: update concurrently to 9.2.1
Node.js CI / CI (pull_request) Successful in 27s
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 1m12s
2026-02-03 19:28:36 -08:00
5 changed files with 52 additions and 75 deletions
+25
View File
@@ -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
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "website-headers", "name": "website-headers",
"version": "4.1.0", "version": "4.0.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"type": "module", "type": "module",
@@ -21,7 +21,7 @@
"@nhcarrigan/eslint-config": "5.0.0", "@nhcarrigan/eslint-config": "5.0.0",
"@nhcarrigan/typescript-config": "4.0.0", "@nhcarrigan/typescript-config": "4.0.0",
"@types/node": "22.10.2", "@types/node": "22.10.2",
"concurrently": "9.1.0", "concurrently": "9.2.1",
"eslint": "9.17.0", "eslint": "9.17.0",
"globals": "15.14.0", "globals": "15.14.0",
"terser": "5.37.0", "terser": "5.37.0",
+13 -19
View File
@@ -18,8 +18,8 @@ importers:
specifier: 22.10.2 specifier: 22.10.2
version: 22.10.2 version: 22.10.2
concurrently: concurrently:
specifier: 9.1.0 specifier: 9.2.1
version: 9.1.0 version: 9.2.1
eslint: eslint:
specifier: 9.17.0 specifier: 9.17.0
version: 9.17.0 version: 9.17.0
@@ -903,8 +903,8 @@ packages:
concat-map@0.0.1: concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
concurrently@9.1.0: concurrently@9.2.1:
resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==}
engines: {node: '>=18'} engines: {node: '>=18'}
hasBin: true hasBin: true
@@ -1509,9 +1509,6 @@ packages:
lodash.merge@4.6.2: lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
loose-envify@1.4.0: loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true hasBin: true
@@ -1769,8 +1766,8 @@ packages:
run-parallel@1.2.0: run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
rxjs@7.8.1: rxjs@7.8.2:
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
safe-array-concat@1.1.3: safe-array-concat@1.1.3:
resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
@@ -1809,8 +1806,8 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'} engines: {node: '>=8'}
shell-quote@1.8.2: shell-quote@1.8.3:
resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
side-channel-list@1.0.0: side-channel-list@1.0.0:
@@ -2903,12 +2900,11 @@ snapshots:
concat-map@0.0.1: {} concat-map@0.0.1: {}
concurrently@9.1.0: concurrently@9.2.1:
dependencies: dependencies:
chalk: 4.1.2 chalk: 4.1.2
lodash: 4.17.21 rxjs: 7.8.2
rxjs: 7.8.1 shell-quote: 1.8.3
shell-quote: 1.8.2
supports-color: 8.1.1 supports-color: 8.1.1
tree-kill: 1.2.2 tree-kill: 1.2.2
yargs: 17.7.2 yargs: 17.7.2
@@ -3691,8 +3687,6 @@ snapshots:
lodash.merge@4.6.2: {} lodash.merge@4.6.2: {}
lodash@4.17.21: {}
loose-envify@1.4.0: loose-envify@1.4.0:
dependencies: dependencies:
js-tokens: 4.0.0 js-tokens: 4.0.0
@@ -3963,7 +3957,7 @@ snapshots:
dependencies: dependencies:
queue-microtask: 1.2.3 queue-microtask: 1.2.3
rxjs@7.8.1: rxjs@7.8.2:
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
@@ -4009,7 +4003,7 @@ snapshots:
shebang-regex@3.0.0: {} shebang-regex@3.0.0: {}
shell-quote@1.8.2: {} shell-quote@1.8.3: {}
side-channel-list@1.0.0: side-channel-list@1.0.0:
dependencies: dependencies:
-22
View File
@@ -1,22 +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
# We are temporarily disabling this to allow for the development of the website-headers package
strictPeerDependencies: false
# 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
+12 -32
View File
@@ -180,10 +180,14 @@ nhcarriganHeadersLargeIcon.href
const nhcarriganHeadersStyles = document.createElement("style"); const nhcarriganHeadersStyles = document.createElement("style");
nhcarriganHeadersStyles.id = "nhcarrigan-global-styles"; nhcarriganHeadersStyles.id = "nhcarrigan-global-styles";
nhcarriganHeadersStyles.innerHTML = ` nhcarriganHeadersStyles.innerHTML = `
@font-face {
font-family: 'Vampyr';
src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype');
}
/* Import fun and whimsical fonts! */ /* Import fun and whimsical fonts! */
@import url('https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Creepster&family=Griffy&family=Henny+Penny&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Creepster&family=Griffy&family=Henny+Penny&display=swap');
:root { :root {
/* Witchy Purple Rose Palette */ /* Witchy Purple Rose Palette */
--witch-purple: #2B1B3D; --witch-purple: #2B1B3D;
@@ -682,7 +686,7 @@ pre {
} }
.mystical-text { .mystical-text {
font-family: 'Henny Penny', cursive; font-family: 'Henny Penny', 'Vampyr', cursive;
letter-spacing: 2px; letter-spacing: 2px;
text-shadow: 2px 2px 4px rgba(68, 39, 90, 0.4); text-shadow: 2px 2px 4px rgba(68, 39, 90, 0.4);
} }
@@ -699,43 +703,20 @@ pre {
text-shadow: none; text-shadow: none;
} }
@media screen and (max-width: 1000px) { @media screen and (max-width: 625px) {
#tree-nation-tree-counter {
display: none;
}
}
@media screen and (max-width: 835px) {
#theme-select-button {
font-size: 10pt;
padding: 8px 16px;
}
#show-socials-button {
font-size: 10pt;
padding: 8px 16px;
}
}
@media screen and (max-width: 768px) {
#tree-nation-offset-website { #tree-nation-offset-website {
display: none; display: none;
} }
}
@media screen and (max-width: 625px) {
footer, #footer-inner-container { footer, #footer-inner-container {
height: 75px; height: 50px;
justify-content: space-around; justify-content: space-around;
} }
main { main {
margin-bottom: 85px; margin-bottom: 60px;
}
#footer-copyright {
font-size: 10pt;
} }
} }
@media screen and (max-width: 560px) { @media screen and (max-width: 425px) {
#donate-badge { #donate-badge {
display: none; display: none;
} }
@@ -755,7 +736,6 @@ pre {
const nhcarriganHeadersFooter = document.createElement("footer"); const nhcarriganHeadersFooter = document.createElement("footer");
nhcarriganHeadersFooter.innerHTML = ` nhcarriganHeadersFooter.innerHTML = `
<div id="footer-inner-container"> <div id="footer-inner-container">
<div id="tree-nation-tree-counter" data-widget-type="tree-counter" data-tree-nation-code="52a9395caa57df28" data-lang="en" data-theme="dark"></div>
<p id="footer-copyright" style="margin: 0; display: flex; align-items: center;">&copy; <a href="https://nhcarrigan.com" target="_blank" style="margin-left: 5px;">Naomi Carrigan</a></p> <p id="footer-copyright" style="margin: 0; display: flex; align-items: center;">&copy; <a href="https://nhcarrigan.com" target="_blank" style="margin-left: 5px;">Naomi Carrigan</a></p>
<button id="show-socials-button" type="button"> <button id="show-socials-button" type="button">
<i class="fa-solid fa-share-nodes"></i> Connect with Us <i class="fa-solid fa-share-nodes"></i> Connect with Us
@@ -766,7 +746,7 @@ nhcarriganHeadersFooter.innerHTML = `
<a id="donate-badge" href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer"> <a id="donate-badge" href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer">
<img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;"> <img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;">
</a> </a>
<div id="tree-nation-offset-website" data-widget-type="offset-website" data-tree-nation-code="a17464e0cd351220" data-lang="en" data-theme="dark"></div> <div id="tree-nation-offset-website"></div>
</div> </div>
<div id="social-list"> <div id="social-list">
<div class="social-list-item"> <div class="social-list-item">
@@ -828,7 +808,7 @@ nhcarriganHeadersFooter.innerHTML = `
const nhcarriganHeadersTreeNation = document.createElement("script"); const nhcarriganHeadersTreeNation = document.createElement("script");
nhcarriganHeadersTreeNation.src nhcarriganHeadersTreeNation.src
= "https://widgets.tree-nation.com/js/widgets/v3/widgets.min.js"; = "https://widgets.tree-nation.com/js/widgets/v1/widgets.min.js?v=1.0";
const nhcarriganHeadersTreeNationBottom = document.createElement("script"); const nhcarriganHeadersTreeNationBottom = document.createElement("script");
nhcarriganHeadersTreeNationBottom.defer = true; nhcarriganHeadersTreeNationBottom.defer = true;
nhcarriganHeadersTreeNationBottom.async = true; nhcarriganHeadersTreeNationBottom.async = true;