seyfert-bot-starter 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-H36REW25.js → chunk-L5ZPLS3Y.js} +7 -11
- package/dist/chunk-L5ZPLS3Y.js.map +1 -0
- package/dist/cli.cjs +5 -9
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.cjs +5 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/template/biome.json +31 -25
- package/template/package.json +21 -21
- package/template/src/commands/ping.ts +6 -6
- package/template/src/index.ts +7 -7
- package/template/tsconfig.json +17 -17
- package/dist/chunk-H36REW25.js.map +0 -1
|
@@ -5,33 +5,29 @@ import { fileURLToPath } from 'url';
|
|
|
5
5
|
// src/scaffold.ts
|
|
6
6
|
var PROJECT_ROOT = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
7
|
var TEMPLATE_DIR = join(PROJECT_ROOT, "template");
|
|
8
|
-
var VARIABLES = {
|
|
9
|
-
"<PACKAGE_NAME>": (targetDir) => basename(targetDir)
|
|
10
|
-
};
|
|
11
8
|
async function scaffold(targetDir) {
|
|
12
9
|
const target = resolve(targetDir);
|
|
10
|
+
const projectName = basename(target);
|
|
13
11
|
await mkdir(target, { recursive: true });
|
|
14
|
-
await copyTree(TEMPLATE_DIR, target);
|
|
12
|
+
await copyTree(TEMPLATE_DIR, target, projectName);
|
|
15
13
|
return target;
|
|
16
14
|
}
|
|
17
|
-
async function copyTree(from, to) {
|
|
15
|
+
async function copyTree(from, to, projectName) {
|
|
18
16
|
const entries = await readdir(from, { withFileTypes: true });
|
|
19
17
|
for (const entry of entries) {
|
|
20
18
|
const src = join(from, entry.name);
|
|
21
19
|
const dest = join(to, entry.name);
|
|
22
20
|
if (entry.isDirectory()) {
|
|
23
21
|
await mkdir(dest, { recursive: true });
|
|
24
|
-
await copyTree(src, dest);
|
|
22
|
+
await copyTree(src, dest, projectName);
|
|
25
23
|
} else {
|
|
26
24
|
let data = await readFile(src, "utf8");
|
|
27
|
-
|
|
28
|
-
data = data.replaceAll(token, resolve2(to));
|
|
29
|
-
}
|
|
25
|
+
data = data.replaceAll("<PACKAGE_NAME>", projectName);
|
|
30
26
|
await writeFile(dest, data, "utf8");
|
|
31
27
|
}
|
|
32
28
|
}
|
|
33
29
|
}
|
|
34
30
|
|
|
35
31
|
export { TEMPLATE_DIR, scaffold };
|
|
36
|
-
//# sourceMappingURL=chunk-
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
32
|
+
//# sourceMappingURL=chunk-L5ZPLS3Y.js.map
|
|
33
|
+
//# sourceMappingURL=chunk-L5ZPLS3Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/scaffold.ts"],"names":[],"mappings":";;;;;AAIA,IAAM,YAAA,GAAe,KAAK,OAAA,CAAQ,aAAA,CAAc,YAAY,GAAG,CAAC,GAAG,IAAI,CAAA;AAEhE,IAAM,YAAA,GAAe,IAAA,CAAK,YAAA,EAAc,UAAU;AAEzD,eAAsB,SAAS,SAAA,EAAoC;AACjE,EAAA,MAAM,MAAA,GAAS,QAAQ,SAAS,CAAA;AAChC,EAAA,MAAM,WAAA,GAAc,SAAS,MAAM,CAAA;AACnC,EAAA,MAAM,KAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,EAAA,MAAM,QAAA,CAAS,YAAA,EAAc,MAAA,EAAQ,WAAW,CAAA;AAChD,EAAA,OAAO,MAAA;AACT;AAEA,eAAe,QAAA,CAAS,IAAA,EAAc,EAAA,EAAY,WAAA,EAAoC;AACpF,EAAA,MAAM,UAAU,MAAM,OAAA,CAAQ,MAAM,EAAE,aAAA,EAAe,MAAM,CAAA;AAC3D,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,IAAA,EAAM,KAAA,CAAM,IAAI,CAAA;AACjC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,EAAA,EAAI,KAAA,CAAM,IAAI,CAAA;AAChC,IAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACvB,MAAA,MAAM,KAAA,CAAM,IAAA,EAAM,EAAE,SAAA,EAAW,MAAM,CAAA;AACrC,MAAA,MAAM,QAAA,CAAS,GAAA,EAAK,IAAA,EAAM,WAAW,CAAA;AAAA,IACvC,CAAA,MAAO;AACL,MAAA,IAAI,IAAA,GAAO,MAAM,QAAA,CAAS,GAAA,EAAK,MAAM,CAAA;AACrC,MAAA,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,gBAAA,EAAkB,WAAW,CAAA;AACpD,MAAA,MAAM,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,MAAM,CAAA;AAAA,IACpC;AAAA,EACF;AACF","file":"chunk-L5ZPLS3Y.js","sourcesContent":["import { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\";\nimport { basename, dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst PROJECT_ROOT = join(dirname(fileURLToPath(import.meta.url)), \"..\");\n\nexport const TEMPLATE_DIR = join(PROJECT_ROOT, \"template\");\n\nexport async function scaffold(targetDir: string): Promise<string> {\n const target = resolve(targetDir);\n const projectName = basename(target);\n await mkdir(target, { recursive: true });\n await copyTree(TEMPLATE_DIR, target, projectName);\n return target;\n}\n\nasync function copyTree(from: string, to: string, projectName: string): Promise<void> {\n const entries = await readdir(from, { withFileTypes: true });\n for (const entry of entries) {\n const src = join(from, entry.name);\n const dest = join(to, entry.name);\n if (entry.isDirectory()) {\n await mkdir(dest, { recursive: true });\n await copyTree(src, dest, projectName);\n } else {\n let data = await readFile(src, \"utf8\");\n data = data.replaceAll(\"<PACKAGE_NAME>\", projectName);\n await writeFile(dest, data, \"utf8\");\n }\n }\n}\n"]}
|
package/dist/cli.cjs
CHANGED
|
@@ -8,28 +8,24 @@ var url = require('url');
|
|
|
8
8
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
9
9
|
var PROJECT_ROOT = path.join(path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli.cjs', document.baseURI).href)))), "..");
|
|
10
10
|
var TEMPLATE_DIR = path.join(PROJECT_ROOT, "template");
|
|
11
|
-
var VARIABLES = {
|
|
12
|
-
"<PACKAGE_NAME>": (targetDir) => path.basename(targetDir)
|
|
13
|
-
};
|
|
14
11
|
async function scaffold(targetDir) {
|
|
15
12
|
const target = path.resolve(targetDir);
|
|
13
|
+
const projectName = path.basename(target);
|
|
16
14
|
await promises.mkdir(target, { recursive: true });
|
|
17
|
-
await copyTree(TEMPLATE_DIR, target);
|
|
15
|
+
await copyTree(TEMPLATE_DIR, target, projectName);
|
|
18
16
|
return target;
|
|
19
17
|
}
|
|
20
|
-
async function copyTree(from, to) {
|
|
18
|
+
async function copyTree(from, to, projectName) {
|
|
21
19
|
const entries = await promises.readdir(from, { withFileTypes: true });
|
|
22
20
|
for (const entry of entries) {
|
|
23
21
|
const src = path.join(from, entry.name);
|
|
24
22
|
const dest = path.join(to, entry.name);
|
|
25
23
|
if (entry.isDirectory()) {
|
|
26
24
|
await promises.mkdir(dest, { recursive: true });
|
|
27
|
-
await copyTree(src, dest);
|
|
25
|
+
await copyTree(src, dest, projectName);
|
|
28
26
|
} else {
|
|
29
27
|
let data = await promises.readFile(src, "utf8");
|
|
30
|
-
|
|
31
|
-
data = data.replaceAll(token, resolve2(to));
|
|
32
|
-
}
|
|
28
|
+
data = data.replaceAll("<PACKAGE_NAME>", projectName);
|
|
33
29
|
await promises.writeFile(dest, data, "utf8");
|
|
34
30
|
}
|
|
35
31
|
}
|
package/dist/cli.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scaffold.ts","../src/cli.ts"],"names":["join","dirname","fileURLToPath","
|
|
1
|
+
{"version":3,"sources":["../src/scaffold.ts","../src/cli.ts"],"names":["join","dirname","fileURLToPath","resolve","basename","mkdir","readdir","readFile","writeFile"],"mappings":";;;;;;;;AAIA,IAAM,YAAA,GAAeA,UAAKC,YAAA,CAAQC,iBAAA,CAAc,yPAAe,CAAC,GAAG,IAAI,CAAA;AAEhE,IAAM,YAAA,GAAeF,SAAA,CAAK,YAAA,EAAc,UAAU,CAAA;AAEzD,eAAsB,SAAS,SAAA,EAAoC;AACjE,EAAA,MAAM,MAAA,GAASG,aAAQ,SAAS,CAAA;AAChC,EAAA,MAAM,WAAA,GAAcC,cAAS,MAAM,CAAA;AACnC,EAAA,MAAMC,cAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,EAAA,MAAM,QAAA,CAAS,YAAA,EAAc,MAAA,EAAQ,WAAW,CAAA;AAChD,EAAA,OAAO,MAAA;AACT;AAEA,eAAe,QAAA,CAAS,IAAA,EAAc,EAAA,EAAY,WAAA,EAAoC;AACpF,EAAA,MAAM,UAAU,MAAMC,gBAAA,CAAQ,MAAM,EAAE,aAAA,EAAe,MAAM,CAAA;AAC3D,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,MAAM,GAAA,GAAMN,SAAA,CAAK,IAAA,EAAM,KAAA,CAAM,IAAI,CAAA;AACjC,IAAA,MAAM,IAAA,GAAOA,SAAA,CAAK,EAAA,EAAI,KAAA,CAAM,IAAI,CAAA;AAChC,IAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACvB,MAAA,MAAMK,cAAA,CAAM,IAAA,EAAM,EAAE,SAAA,EAAW,MAAM,CAAA;AACrC,MAAA,MAAM,QAAA,CAAS,GAAA,EAAK,IAAA,EAAM,WAAW,CAAA;AAAA,IACvC,CAAA,MAAO;AACL,MAAA,IAAI,IAAA,GAAO,MAAME,iBAAA,CAAS,GAAA,EAAK,MAAM,CAAA;AACrC,MAAA,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,gBAAA,EAAkB,WAAW,CAAA;AACpD,MAAA,MAAMC,kBAAA,CAAU,IAAA,EAAM,IAAA,EAAM,MAAM,CAAA;AAAA,IACpC;AAAA,EACF;AACF;;;AC3BA,IAAM,IAAA,GAAO,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,IAAK,EAAA;AAEhC,IAAI,SAAS,EAAA,EAAI;AACf,EAAA,OAAA,CAAQ,MAAM,0CAA0C,CAAA;AACxD,EAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAChB;AACA,IAAI,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,EAAG;AACtB,EAAA,OAAA,CAAQ,MAAM,2CAA2C,CAAA;AACzD,EAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAChB;AAEA,eAAe,IAAA,GAAsB;AACnC,EAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,IAAI,CAAA;AAClC,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,4BAAA,EAA+B,MAAM,CAAA,CAAE,CAAA;AACnD,EAAA,OAAA,CAAQ,IAAI,OAAO,CAAA;AACnB,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,CAAA;AAC1B,EAAA,OAAA,CAAQ,IAAI,eAAe,CAAA;AAC3B,EAAA,OAAA,CAAQ,IAAI,8CAA8C,CAAA;AAC1D,EAAA,OAAA,CAAQ,IAAI,eAAe,CAAA;AAC7B;AAEA,KAAK,IAAA,EAAK","file":"cli.cjs","sourcesContent":["import { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\";\nimport { basename, dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst PROJECT_ROOT = join(dirname(fileURLToPath(import.meta.url)), \"..\");\n\nexport const TEMPLATE_DIR = join(PROJECT_ROOT, \"template\");\n\nexport async function scaffold(targetDir: string): Promise<string> {\n const target = resolve(targetDir);\n const projectName = basename(target);\n await mkdir(target, { recursive: true });\n await copyTree(TEMPLATE_DIR, target, projectName);\n return target;\n}\n\nasync function copyTree(from: string, to: string, projectName: string): Promise<void> {\n const entries = await readdir(from, { withFileTypes: true });\n for (const entry of entries) {\n const src = join(from, entry.name);\n const dest = join(to, entry.name);\n if (entry.isDirectory()) {\n await mkdir(dest, { recursive: true });\n await copyTree(src, dest, projectName);\n } else {\n let data = await readFile(src, \"utf8\");\n data = data.replaceAll(\"<PACKAGE_NAME>\", projectName);\n await writeFile(dest, data, \"utf8\");\n }\n }\n}\n","#!/usr/bin/env bun\nimport { scaffold } from \"./scaffold.js\";\n\nconst name = process.argv[2] ?? \"\";\n\nif (name === \"\") {\n console.error(\"usage: create-seyfert-bot <project-name>\");\n process.exit(1);\n}\nif (name.includes(\" \")) {\n console.error(\"error: project name must be a single word\");\n process.exit(1);\n}\n\nasync function main(): Promise<void> {\n const target = await scaffold(name);\n console.log(`scaffolded a seyfert bot at ${target}`);\n console.log(\"next:\");\n console.log(` cd ${name}`);\n console.log(\" bun install\");\n console.log(\" cp .env.example .env # add your BOT_TOKEN\");\n console.log(\" bun run dev\");\n}\n\nvoid main();\n"]}
|
package/dist/cli.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -8,28 +8,24 @@ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentS
|
|
|
8
8
|
// src/scaffold.ts
|
|
9
9
|
var PROJECT_ROOT = path.join(path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)))), "..");
|
|
10
10
|
var TEMPLATE_DIR = path.join(PROJECT_ROOT, "template");
|
|
11
|
-
var VARIABLES = {
|
|
12
|
-
"<PACKAGE_NAME>": (targetDir) => path.basename(targetDir)
|
|
13
|
-
};
|
|
14
11
|
async function scaffold(targetDir) {
|
|
15
12
|
const target = path.resolve(targetDir);
|
|
13
|
+
const projectName = path.basename(target);
|
|
16
14
|
await promises.mkdir(target, { recursive: true });
|
|
17
|
-
await copyTree(TEMPLATE_DIR, target);
|
|
15
|
+
await copyTree(TEMPLATE_DIR, target, projectName);
|
|
18
16
|
return target;
|
|
19
17
|
}
|
|
20
|
-
async function copyTree(from, to) {
|
|
18
|
+
async function copyTree(from, to, projectName) {
|
|
21
19
|
const entries = await promises.readdir(from, { withFileTypes: true });
|
|
22
20
|
for (const entry of entries) {
|
|
23
21
|
const src = path.join(from, entry.name);
|
|
24
22
|
const dest = path.join(to, entry.name);
|
|
25
23
|
if (entry.isDirectory()) {
|
|
26
24
|
await promises.mkdir(dest, { recursive: true });
|
|
27
|
-
await copyTree(src, dest);
|
|
25
|
+
await copyTree(src, dest, projectName);
|
|
28
26
|
} else {
|
|
29
27
|
let data = await promises.readFile(src, "utf8");
|
|
30
|
-
|
|
31
|
-
data = data.replaceAll(token, resolve2(to));
|
|
32
|
-
}
|
|
28
|
+
data = data.replaceAll("<PACKAGE_NAME>", projectName);
|
|
33
29
|
await promises.writeFile(dest, data, "utf8");
|
|
34
30
|
}
|
|
35
31
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scaffold.ts"],"names":["join","dirname","fileURLToPath","
|
|
1
|
+
{"version":3,"sources":["../src/scaffold.ts"],"names":["join","dirname","fileURLToPath","resolve","basename","mkdir","readdir","readFile","writeFile"],"mappings":";;;;;;;;AAIA,IAAM,YAAA,GAAeA,UAAKC,YAAA,CAAQC,iBAAA,CAAc,2PAAe,CAAC,GAAG,IAAI,CAAA;AAEhE,IAAM,YAAA,GAAeF,SAAA,CAAK,YAAA,EAAc,UAAU;AAEzD,eAAsB,SAAS,SAAA,EAAoC;AACjE,EAAA,MAAM,MAAA,GAASG,aAAQ,SAAS,CAAA;AAChC,EAAA,MAAM,WAAA,GAAcC,cAAS,MAAM,CAAA;AACnC,EAAA,MAAMC,cAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,EAAA,MAAM,QAAA,CAAS,YAAA,EAAc,MAAA,EAAQ,WAAW,CAAA;AAChD,EAAA,OAAO,MAAA;AACT;AAEA,eAAe,QAAA,CAAS,IAAA,EAAc,EAAA,EAAY,WAAA,EAAoC;AACpF,EAAA,MAAM,UAAU,MAAMC,gBAAA,CAAQ,MAAM,EAAE,aAAA,EAAe,MAAM,CAAA;AAC3D,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,MAAM,GAAA,GAAMN,SAAA,CAAK,IAAA,EAAM,KAAA,CAAM,IAAI,CAAA;AACjC,IAAA,MAAM,IAAA,GAAOA,SAAA,CAAK,EAAA,EAAI,KAAA,CAAM,IAAI,CAAA;AAChC,IAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACvB,MAAA,MAAMK,cAAA,CAAM,IAAA,EAAM,EAAE,SAAA,EAAW,MAAM,CAAA;AACrC,MAAA,MAAM,QAAA,CAAS,GAAA,EAAK,IAAA,EAAM,WAAW,CAAA;AAAA,IACvC,CAAA,MAAO;AACL,MAAA,IAAI,IAAA,GAAO,MAAME,iBAAA,CAAS,GAAA,EAAK,MAAM,CAAA;AACrC,MAAA,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,gBAAA,EAAkB,WAAW,CAAA;AACpD,MAAA,MAAMC,kBAAA,CAAU,IAAA,EAAM,IAAA,EAAM,MAAM,CAAA;AAAA,IACpC;AAAA,EACF;AACF","file":"index.cjs","sourcesContent":["import { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\";\nimport { basename, dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst PROJECT_ROOT = join(dirname(fileURLToPath(import.meta.url)), \"..\");\n\nexport const TEMPLATE_DIR = join(PROJECT_ROOT, \"template\");\n\nexport async function scaffold(targetDir: string): Promise<string> {\n const target = resolve(targetDir);\n const projectName = basename(target);\n await mkdir(target, { recursive: true });\n await copyTree(TEMPLATE_DIR, target, projectName);\n return target;\n}\n\nasync function copyTree(from: string, to: string, projectName: string): Promise<void> {\n const entries = await readdir(from, { withFileTypes: true });\n for (const entry of entries) {\n const src = join(from, entry.name);\n const dest = join(to, entry.name);\n if (entry.isDirectory()) {\n await mkdir(dest, { recursive: true });\n await copyTree(src, dest, projectName);\n } else {\n let data = await readFile(src, \"utf8\");\n data = data.replaceAll(\"<PACKAGE_NAME>\", projectName);\n await writeFile(dest, data, \"utf8\");\n }\n }\n}\n"]}
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
package/template/biome.json
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.5.12/schema.json",
|
|
3
|
+
"files": {
|
|
4
|
+
"includes": [
|
|
5
|
+
"**",
|
|
6
|
+
"!**/dist",
|
|
7
|
+
"!**/coverage",
|
|
8
|
+
"!**/node_modules",
|
|
9
|
+
"!**/bun.lock"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"formatter": {
|
|
13
|
+
"enabled": true,
|
|
14
|
+
"indentStyle": "space",
|
|
15
|
+
"indentWidth": 2,
|
|
16
|
+
"lineWidth": 120,
|
|
17
|
+
"formatWithErrors": false
|
|
18
|
+
},
|
|
19
|
+
"linter": {
|
|
20
|
+
"enabled": true,
|
|
21
|
+
"rules": {
|
|
22
|
+
"preset": "recommended"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"javascript": {
|
|
26
|
+
"formatter": {
|
|
27
|
+
"quoteStyle": "double",
|
|
28
|
+
"semicolons": "always",
|
|
29
|
+
"trailingCommas": "all"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
package/template/package.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
2
|
+
"name": "<PACKAGE_NAME>",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"private": true,
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "bun --watch src/index.ts",
|
|
8
|
+
"start": "bun src/index.ts",
|
|
9
|
+
"lint": "biome check .",
|
|
10
|
+
"typecheck": "tsc --noEmit",
|
|
11
|
+
"format": "biome format --write ."
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@dotenvx/dotenvx": "^1.40.2",
|
|
15
|
+
"seyfert": "^5.0.0"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@biomejs/biome": "^2.5.7",
|
|
19
|
+
"@types/bun": "^1.2.2",
|
|
20
|
+
"typescript": "^5.9.0"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Command, type CommandContext, Declare } from "seyfert";
|
|
2
2
|
|
|
3
3
|
@Declare({
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
name: "ping",
|
|
5
|
+
description: "Reply with pong",
|
|
6
6
|
})
|
|
7
7
|
export default class PingCommand extends Command {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
8
|
+
run(ctx: CommandContext) {
|
|
9
|
+
return ctx.write({ content: "Pong!" });
|
|
10
|
+
}
|
|
11
|
+
}
|
package/template/src/index.ts
CHANGED
|
@@ -2,15 +2,15 @@ import "@dotenvx/dotenvx/config";
|
|
|
2
2
|
import { Client } from "seyfert";
|
|
3
3
|
|
|
4
4
|
const client = new Client({
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
intents: ["Guilds", "GuildMembers", "GuildMessages", "MessageContent"],
|
|
6
|
+
locations: {
|
|
7
|
+
base: "src",
|
|
8
|
+
commands: "commands",
|
|
9
|
+
},
|
|
10
10
|
});
|
|
11
11
|
|
|
12
12
|
client.once("ready", () => {
|
|
13
|
-
|
|
13
|
+
console.log("[seyfert] bot is online");
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
-
void client.start();
|
|
16
|
+
void client.start();
|
package/template/tsconfig.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "bundler",
|
|
6
|
+
"types": ["@types/bun"],
|
|
7
|
+
"strict": true,
|
|
8
|
+
"noUncheckedIndexedAccess": true,
|
|
9
|
+
"verbatimModuleSyntax": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"skipLibCheck": true,
|
|
13
|
+
"noEmit": true,
|
|
14
|
+
"experimentalDecorators": true,
|
|
15
|
+
"emitDecoratorMetadata": true
|
|
16
|
+
},
|
|
17
|
+
"include": ["src"]
|
|
18
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scaffold.ts"],"names":["resolve"],"mappings":";;;;;AAIA,IAAM,YAAA,GAAe,KAAK,OAAA,CAAQ,aAAA,CAAc,YAAY,GAAG,CAAC,GAAG,IAAI,CAAA;AAEhE,IAAM,YAAA,GAAe,IAAA,CAAK,YAAA,EAAc,UAAU;AAEzD,IAAM,SAAA,GAA2D;AAAA,EAC/D,gBAAA,EAAkB,CAAC,SAAA,KAAc,QAAA,CAAS,SAAS;AACrD,CAAA;AAEA,eAAsB,SAAS,SAAA,EAAoC;AACjE,EAAA,MAAM,MAAA,GAAS,QAAQ,SAAS,CAAA;AAChC,EAAA,MAAM,KAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,EAAA,MAAM,QAAA,CAAS,cAAc,MAAM,CAAA;AACnC,EAAA,OAAO,MAAA;AACT;AAEA,eAAe,QAAA,CAAS,MAAc,EAAA,EAA2B;AAC/D,EAAA,MAAM,UAAU,MAAM,OAAA,CAAQ,MAAM,EAAE,aAAA,EAAe,MAAM,CAAA;AAC3D,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,IAAA,EAAM,KAAA,CAAM,IAAI,CAAA;AACjC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,EAAA,EAAI,KAAA,CAAM,IAAI,CAAA;AAChC,IAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACvB,MAAA,MAAM,KAAA,CAAM,IAAA,EAAM,EAAE,SAAA,EAAW,MAAM,CAAA;AACrC,MAAA,MAAM,QAAA,CAAS,KAAK,IAAI,CAAA;AAAA,IAC1B,CAAA,MAAO;AACL,MAAA,IAAI,IAAA,GAAO,MAAM,QAAA,CAAS,GAAA,EAAK,MAAM,CAAA;AACrC,MAAA,KAAA,MAAW,CAAC,KAAA,EAAOA,QAAO,KAAK,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,EAAG;AACxD,QAAA,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,KAAA,EAAOA,QAAAA,CAAQ,EAAE,CAAC,CAAA;AAAA,MAC3C;AACA,MAAA,MAAM,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,MAAM,CAAA;AAAA,IACpC;AAAA,EACF;AACF","file":"chunk-H36REW25.js","sourcesContent":["import { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\";\nimport { basename, dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst PROJECT_ROOT = join(dirname(fileURLToPath(import.meta.url)), \"..\");\n\nexport const TEMPLATE_DIR = join(PROJECT_ROOT, \"template\");\n\nconst VARIABLES: Record<string, (targetDir: string) => string> = {\n \"<PACKAGE_NAME>\": (targetDir) => basename(targetDir),\n};\n\nexport async function scaffold(targetDir: string): Promise<string> {\n const target = resolve(targetDir);\n await mkdir(target, { recursive: true });\n await copyTree(TEMPLATE_DIR, target);\n return target;\n}\n\nasync function copyTree(from: string, to: string): Promise<void> {\n const entries = await readdir(from, { withFileTypes: true });\n for (const entry of entries) {\n const src = join(from, entry.name);\n const dest = join(to, entry.name);\n if (entry.isDirectory()) {\n await mkdir(dest, { recursive: true });\n await copyTree(src, dest);\n } else {\n let data = await readFile(src, \"utf8\");\n for (const [token, resolve] of Object.entries(VARIABLES)) {\n data = data.replaceAll(token, resolve(to));\n }\n await writeFile(dest, data, \"utf8\");\n }\n }\n}\n"]}
|