Skip to content

Commit 4a53716

Browse files
committed
chore: init repo
1 parent a9c33aa commit 4a53716

File tree

8 files changed

+809
-1
lines changed

8 files changed

+809
-1
lines changed

.deepsource.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ name = "secrets"
1010
name = "javascript"
1111

1212
[analyzers.meta]
13-
environment = ["nodejs"]
13+
environment = [
14+
"nodejs",
15+
"browser"
16+
]
1417

1518
[[transformers]]
1619
name = "prettier"

.prettierrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"$schema": "http://json.schemastore.org/prettierrc",
3+
"plugins": ["@ianvs/prettier-plugin-sort-imports", "prettier-plugin-jsdoc"],
4+
5+
"tsdoc": true
6+
}

bun.lock

Lines changed: 646 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ee/LICENSE

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
The Shellguard EE Commercial License (the "Commercial License")
2+
Copyright (C) 2025-present NWG Digital AB ("Newgent Digital")
3+
4+
This license governs all software and documentation located in the `ee/` directory of the Shellguard repository (the "Software").
5+
6+
Production use of the Software is permitted only if you (and any entity you represent) have agreed to, and comply with, the Subscription Terms available at https://www.newgent.digital/legal, or another mutually agreed contract with Newgent Digital, and possess a valid Commercial License for the appropriate number of hosts ("Hosts").
7+
8+
Subject to these requirements, you may modify the Software and create patches. All rights, title, and interest in such modifications and patches remain with Newgent Digital and/or its licensors, and any use, copying, modification, display, distribution, or exploitation of these modifications or patches is only allowed with a valid Commercial License for the correct number of Hosts.
9+
10+
You may copy and modify the Software for development and testing purposes without a subscription, but all rights remain with Newgent Digital and/or its licensors. No other rights are granted except as expressly stated herein. Except as permitted above, you may not copy, merge, publish, distribute, sublicense, or sell the Software.
11+
12+
This Commercial License applies only to portions of the Software not distributed under the AGPLv3 license. Any part of the Software distributed under the MIT license or served client-side (such as images, fonts, CSS, or files compiled into client-side JavaScript) is subject to the AGPLv3 license. The full text of this Commercial License must be included in all copies or substantial portions of the Software.
13+
14+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15+
16+
All third-party components included in the Software are licensed under the original terms provided by their respective owners.

ee/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
![Repository banner for @newgentdigital/shellguard](https://raw.githubusercontent.com/newgentdigital/.github/refs/heads/main/banner.png)
2+
3+
# Shellguard Enterprise Edition ("EE")
4+
5+
The `ee/` directory contains proprietary, commercially licensed features and enhancements for Shellguard, developed by Newgent Digital and its contributors. These components are designed for advanced use cases and are not available under open-source licenses.
6+
7+
> [!CAUTION]
8+
> Code in this directory is governed by the terms in `ee/LICENSE` and is not covered by the AGPLv3 license used in the root directory.
9+
10+
## Why an "ee/" folder?
11+
12+
Shellguard Enterprise Edition provides cloud and enterprise-grade functionality tailored for Shellguard customers. It includes advanced features, integrations, and modules that require a valid commercial license from Newgent Digital when deployed on-premise.
13+
14+
## Comparison to other repository folders
15+
16+
- **Core folders (e.g., `src/`, `lib/`)**: These contain the open-source foundation of Shellguard, available under AGPLv3 or other open licenses.
17+
- **`ee/` folder**: Contains enterprise-only features. Usage requires a commercial license and is subject to additional restrictions.
18+
19+
## Licensing & usage
20+
21+
> [!WARNING]
22+
> The code in `ee/` is proprietary and protected. Unauthorized use, distribution, or hosting is not permitted.
23+
24+
You must obtain a valid license from Newgent Digital to use any code in the `ee/` directory in production.
25+
26+
Development and testing is permitted, but redistribution, public hosting, or commercial use without a license is strictly prohibited.
27+
28+
For licensing information, visit: https://www.newgent.digital/legal

eslint.config.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import eslint from "@eslint/js";
2+
import { defineConfig } from "eslint/config";
3+
import tseslint from "typescript-eslint";
4+
5+
export default defineConfig([
6+
{
7+
ignores: ["dist/", "node_modules/"],
8+
},
9+
10+
{
11+
files: ["**/*.ts", "**/*.tsx"],
12+
extends: [tseslint.configs.strict, tseslint.configs.stylistic],
13+
},
14+
15+
{
16+
files: ["**/*.js", "**/*.jsx"],
17+
extends: [eslint.configs.recommended],
18+
},
19+
]);

package.json

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"private": true,
3+
"name": "@newgentdigital/shellguard",
4+
"description": "Automatically scan and quarantine files sent by your Discord users using ClamAV, VirusTotal, and more. Get alerts and take action - keep your community safe.",
5+
"type": "module",
6+
"version": "1.0.0",
7+
"homepage": "https://github.com/newgentdigital/shellguard",
8+
"bugs": {
9+
"url": "https://github.com/newgentdigital/shellguard",
10+
"email": "engineering@newgent.digital"
11+
},
12+
"license": "AGPL-3.0-or-later",
13+
"author": {
14+
"name": "Newgent",
15+
"url": "https://newgent.digital/",
16+
"email": "engineering@newgent.digital"
17+
},
18+
"funding": "https://github.com/sponsors/newgentdigital",
19+
"repository": {
20+
"type": "git",
21+
"url": "https://github.com/newgentdigital/shellguard.git"
22+
},
23+
"scripts": {
24+
"dev": "bun --watch src/index.ts",
25+
"start": "bun src/index.ts",
26+
"deploy:commands": "bun src/bot/deploy-commands.ts",
27+
"db:generate": "drizzle-kit generate",
28+
"db:migrate": "drizzle-kit migrate",
29+
"db:push": "drizzle-kit push",
30+
"db:studio": "drizzle-kit studio",
31+
"format": "prettier --write .",
32+
"format:check": "prettier --check .",
33+
"lint": "eslint --ext .js,.ts,.astro .",
34+
"lint:fix": "eslint --fix --ext .js,.ts,.astro ."
35+
},
36+
"dependencies": {
37+
"@sentry/bun": "^10.32.1",
38+
"discord.js": "^14.25.1",
39+
"drizzle-orm": "^0.45.1",
40+
"prom-client": "^15.1.3"
41+
},
42+
"devDependencies": {
43+
"@eslint/js": "^9.39.2",
44+
"@ianvs/prettier-plugin-sort-imports": "^4.7.0",
45+
"@types/bun": "^1.3.5",
46+
"@types/node": "^24.10.4",
47+
"@typescript-eslint/parser": "^8.50.0",
48+
"drizzle-kit": "^0.31.8",
49+
"eslint": "^9.39.2",
50+
"prettier": "^3.7.4",
51+
"prettier-plugin-jsdoc": "^1.8.0",
52+
"typescript-eslint": "^8.50.0"
53+
}
54+
}

tsconfig.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"compilerOptions": {
3+
"lib": ["ESNext"],
4+
"target": "ESNext",
5+
"module": "ESNext",
6+
"moduleDetection": "force",
7+
"jsx": "react-jsx",
8+
"allowJs": true,
9+
"moduleResolution": "bundler",
10+
"allowImportingTsExtensions": true,
11+
"verbatimModuleSyntax": true,
12+
"noEmit": true,
13+
"strict": true,
14+
"skipLibCheck": true,
15+
"noFallthroughCasesInSwitch": true,
16+
"noUnusedLocals": true,
17+
"noUnusedParameters": true,
18+
"noPropertyAccessFromIndexSignature": true,
19+
"forceConsistentCasingInFileNames": true,
20+
"esModuleInterop": true,
21+
"resolveJsonModule": true,
22+
"isolatedModules": true,
23+
"types": ["bun-types"],
24+
"paths": {
25+
"@/*": ["./src/*"],
26+
"@/bot/*": ["./src/bot/*"],
27+
"@/database/*": ["./src/database/*"],
28+
"@/services/*": ["./src/services/*"],
29+
"@/utils/*": ["./src/utils/*"],
30+
"@/config/*": ["./src/config/*"],
31+
"@/types/*": ["./src/types/*"]
32+
}
33+
},
34+
"include": ["src/**/*"],
35+
"exclude": ["node_modules"]
36+
}

0 commit comments

Comments
 (0)