1 Commits

Author SHA1 Message Date
a57302ec36 chore: replace .npmrc with pnpm-workspace.yaml
Some checks failed
Node.js CI / CI (push) Failing after 27s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m42s
2026-03-02 16:28:06 -08:00
4 changed files with 56 additions and 62 deletions

25
.npmrc
View File

@@ -1,25 +0,0 @@
# 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

View File

@@ -25,7 +25,7 @@
"dependencies": { "dependencies": {
"@nhcarrigan/logger": "1.0.0", "@nhcarrigan/logger": "1.0.0",
"@prisma/client": "6.13.0", "@prisma/client": "6.13.0",
"discord.js": "14.25.1", "discord.js": "14.21.0",
"fastify": "5.5.0" "fastify": "5.5.0"
} }
} }

70
pnpm-lock.yaml generated
View File

@@ -15,8 +15,8 @@ importers:
specifier: 6.13.0 specifier: 6.13.0
version: 6.13.0(prisma@6.13.0(typescript@5.9.2))(typescript@5.9.2) version: 6.13.0(prisma@6.13.0(typescript@5.9.2))(typescript@5.9.2)
discord.js: discord.js:
specifier: 14.25.1 specifier: 14.21.0
version: 14.25.1 version: 14.21.0
fastify: fastify:
specifier: 5.5.0 specifier: 5.5.0
version: 5.5.0 version: 5.5.0
@@ -50,8 +50,8 @@ packages:
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@discordjs/builders@1.13.1': '@discordjs/builders@1.11.3':
resolution: {integrity: sha512-cOU0UDHc3lp/5nKByDxkmRiNZBpdp0kx55aarbiAfakfKJHlxv/yFW1zmIqCAmwH5CRlrH9iMFKJMpvW4DPB+w==} resolution: {integrity: sha512-p3kf5eV49CJiRTfhtutUCeivSyQ/l2JlKodW1ZquRwwvlOWmG9+6jFShX6x8rUiYhnP6wKI96rgN/SXMy5e5aw==}
engines: {node: '>=16.11.0'} engines: {node: '>=16.11.0'}
'@discordjs/collection@1.5.3': '@discordjs/collection@1.5.3':
@@ -62,16 +62,16 @@ packages:
resolution: {integrity: sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==} resolution: {integrity: sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==}
engines: {node: '>=18'} engines: {node: '>=18'}
'@discordjs/formatters@0.6.2': '@discordjs/formatters@0.6.1':
resolution: {integrity: sha512-y4UPwWhH6vChKRkGdMB4odasUbHOUwy7KL+OVwF86PvT6QVOwElx+TiI1/6kcmcEe+g5YRXJFiXSXUdabqZOvQ==} resolution: {integrity: sha512-5cnX+tASiPCqCWtFcFslxBVUaCetB0thvM/JyavhbXInP1HJIEU+Qv/zMrnuwSsX3yWH2lVXNJZeDK3EiP4HHg==}
engines: {node: '>=16.11.0'} engines: {node: '>=16.11.0'}
'@discordjs/rest@2.6.0': '@discordjs/rest@2.5.1':
resolution: {integrity: sha512-RDYrhmpB7mTvmCKcpj+pc5k7POKszS4E2O9TYc+U+Y4iaCP+r910QdO43qmpOja8LRr1RJ0b3U+CqVsnPqzf4w==} resolution: {integrity: sha512-Tg9840IneBcbrAjcGaQzHUJWFNq1MMWZjTdjJ0WS/89IffaNKc++iOvffucPxQTF/gviO9+9r8kEPea1X5J2Dw==}
engines: {node: '>=18'} engines: {node: '>=18'}
'@discordjs/util@1.2.0': '@discordjs/util@1.1.1':
resolution: {integrity: sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg==} resolution: {integrity: sha512-eddz6UnOBEB1oITPinyrB2Pttej49M9FZQY8NxgEvc3tq6ZICZ19m70RsmzRdDHk80O9NoYN/25AqJl8vPVf/g==}
engines: {node: '>=18'} engines: {node: '>=18'}
'@discordjs/ws@1.2.3': '@discordjs/ws@1.2.3':
@@ -982,11 +982,11 @@ packages:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'} engines: {node: '>=8'}
discord-api-types@0.38.38: discord-api-types@0.38.18:
resolution: {integrity: sha512-7qcM5IeZrfb+LXW07HvoI5L+j4PQeMZXEkSm1htHAHh4Y9JSMXBWjy/r7zmUCOj4F7zNjMcm7IMWr131MT2h0Q==} resolution: {integrity: sha512-ygenySjZKUaBf5JT8BNhZSxLzwpwdp41O0wVroOTu/N2DxFH7dxYTZUSnFJ6v+/2F3BMcnD47PC47u4aLOLxrQ==}
discord.js@14.25.1: discord.js@14.21.0:
resolution: {integrity: sha512-2l0gsPOLPs5t6GFZfQZKnL1OJNYFcuC/ETWsW4VtKVD/tg4ICa9x+jb9bkPffkMdRpRpuUaO/fKkHCBeiCKh8g==} resolution: {integrity: sha512-U5w41cEmcnSfwKYlLv5RJjB8Joa+QJyRwIJz5i/eg+v2Qvv6EYpCRhN9I2Rlf0900LuqSDg8edakUATrDZQncQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
doctrine@2.1.0: doctrine@2.1.0:
@@ -2376,12 +2376,12 @@ snapshots:
'@babel/helper-validator-identifier@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {}
'@discordjs/builders@1.13.1': '@discordjs/builders@1.11.3':
dependencies: dependencies:
'@discordjs/formatters': 0.6.2 '@discordjs/formatters': 0.6.1
'@discordjs/util': 1.2.0 '@discordjs/util': 1.1.1
'@sapphire/shapeshift': 4.0.0 '@sapphire/shapeshift': 4.0.0
discord-api-types: 0.38.38 discord-api-types: 0.38.18
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
ts-mixer: 6.0.4 ts-mixer: 6.0.4
tslib: 2.8.1 tslib: 2.8.1
@@ -2390,35 +2390,33 @@ snapshots:
'@discordjs/collection@2.1.1': {} '@discordjs/collection@2.1.1': {}
'@discordjs/formatters@0.6.2': '@discordjs/formatters@0.6.1':
dependencies: dependencies:
discord-api-types: 0.38.38 discord-api-types: 0.38.18
'@discordjs/rest@2.6.0': '@discordjs/rest@2.5.1':
dependencies: dependencies:
'@discordjs/collection': 2.1.1 '@discordjs/collection': 2.1.1
'@discordjs/util': 1.2.0 '@discordjs/util': 1.1.1
'@sapphire/async-queue': 1.5.5 '@sapphire/async-queue': 1.5.5
'@sapphire/snowflake': 3.5.3 '@sapphire/snowflake': 3.5.3
'@vladfrangu/async_event_emitter': 2.4.6 '@vladfrangu/async_event_emitter': 2.4.6
discord-api-types: 0.38.38 discord-api-types: 0.38.18
magic-bytes.js: 1.12.1 magic-bytes.js: 1.12.1
tslib: 2.8.1 tslib: 2.8.1
undici: 6.21.3 undici: 6.21.3
'@discordjs/util@1.2.0': '@discordjs/util@1.1.1': {}
dependencies:
discord-api-types: 0.38.38
'@discordjs/ws@1.2.3': '@discordjs/ws@1.2.3':
dependencies: dependencies:
'@discordjs/collection': 2.1.1 '@discordjs/collection': 2.1.1
'@discordjs/rest': 2.6.0 '@discordjs/rest': 2.5.1
'@discordjs/util': 1.2.0 '@discordjs/util': 1.1.1
'@sapphire/async-queue': 1.5.5 '@sapphire/async-queue': 1.5.5
'@types/ws': 8.18.1 '@types/ws': 8.18.1
'@vladfrangu/async_event_emitter': 2.4.6 '@vladfrangu/async_event_emitter': 2.4.6
discord-api-types: 0.38.38 discord-api-types: 0.38.18
tslib: 2.8.1 tslib: 2.8.1
ws: 8.18.3 ws: 8.18.3
transitivePeerDependencies: transitivePeerDependencies:
@@ -3322,18 +3320,18 @@ snapshots:
dependencies: dependencies:
path-type: 4.0.0 path-type: 4.0.0
discord-api-types@0.38.38: {} discord-api-types@0.38.18: {}
discord.js@14.25.1: discord.js@14.21.0:
dependencies: dependencies:
'@discordjs/builders': 1.13.1 '@discordjs/builders': 1.11.3
'@discordjs/collection': 1.5.3 '@discordjs/collection': 1.5.3
'@discordjs/formatters': 0.6.2 '@discordjs/formatters': 0.6.1
'@discordjs/rest': 2.6.0 '@discordjs/rest': 2.5.1
'@discordjs/util': 1.2.0 '@discordjs/util': 1.1.1
'@discordjs/ws': 1.2.3 '@discordjs/ws': 1.2.3
'@sapphire/snowflake': 3.5.3 '@sapphire/snowflake': 3.5.3
discord-api-types: 0.38.38 discord-api-types: 0.38.18
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
lodash.snakecase: 4.1.1 lodash.snakecase: 4.1.1
magic-bytes.js: 1.12.1 magic-bytes.js: 1.12.1

21
pnpm-workspace.yaml Normal file
View File

@@ -0,0 +1,21 @@
# 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