@bf6mods/cli 1.0.0

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.
Files changed (30) hide show
  1. package/dist/cli/index.d.ts +1 -0
  2. package/dist/cli/index.js +196 -0
  3. package/dist/cli/index.js.map +1 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/resources/prepare/tsconfig.json +15 -0
  8. package/dist/resources/prepare/types/config.ts +10 -0
  9. package/dist/resources/templates/AcePursuit/src/config.json +1 -0
  10. package/dist/resources/templates/AcePursuit/src/index.ts +3421 -0
  11. package/dist/resources/templates/AcePursuit/src/levels.tscn +6922 -0
  12. package/dist/resources/templates/AcePursuit/src/strings.json +191 -0
  13. package/dist/resources/templates/All/bf6.config.ts +6 -0
  14. package/dist/resources/templates/All/package.json +13 -0
  15. package/dist/resources/templates/All/tsconfig.json +4 -0
  16. package/dist/resources/templates/Basic/bf6.config.ts +3 -0
  17. package/dist/resources/templates/Basic/src/index.ts +112 -0
  18. package/dist/resources/templates/BombSquad/src/config.json +1 -0
  19. package/dist/resources/templates/BombSquad/src/index.ts +3683 -0
  20. package/dist/resources/templates/BombSquad/src/levels.tscn +3212 -0
  21. package/dist/resources/templates/BombSquad/src/strings.json +123 -0
  22. package/dist/resources/templates/Exfil/src/config.json +1 -0
  23. package/dist/resources/templates/Exfil/src/index.ts +2393 -0
  24. package/dist/resources/templates/Exfil/src/levels.tscn +5600 -0
  25. package/dist/resources/templates/Exfil/src/strings.json +185 -0
  26. package/dist/resources/templates/Vertigo/src/config.json +1 -0
  27. package/dist/resources/templates/Vertigo/src/index.ts +1948 -0
  28. package/dist/resources/templates/Vertigo/src/levels.tscn +6387 -0
  29. package/dist/resources/templates/Vertigo/src/strings.json +308 -0
  30. package/package.json +41 -0
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node
@@ -0,0 +1,196 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/cli/index.ts
4
+ import { Command } from "commander";
5
+
6
+ // package.json
7
+ var package_default = {
8
+ name: "@bf6mods/cli",
9
+ version: "1.0.0",
10
+ description: "CLI and library for bundling BF6 mods",
11
+ license: "MIT",
12
+ type: "module",
13
+ bin: {
14
+ bf6mods: "./dist/cli/index.js"
15
+ },
16
+ main: "./dist/index.js",
17
+ types: "./dist/index.d.ts",
18
+ scripts: {
19
+ build: "tsup",
20
+ start: "cross-env EXIT_CODE=none tsx ./src/cli/index.ts"
21
+ },
22
+ exports: {
23
+ ".": {
24
+ types: "./dist/index.d.ts",
25
+ import: "./dist/index.js"
26
+ }
27
+ },
28
+ files: [
29
+ "dist/"
30
+ ],
31
+ dependencies: {
32
+ "@bf6mods/sdk": "1.0.1",
33
+ chokidar: "^4.0.3",
34
+ colors: "^1.4.0",
35
+ commander: "^14.0.1",
36
+ inquirer: "^12.9.6",
37
+ jiti: "^2.6.1",
38
+ knitwork: "^1.2.0"
39
+ },
40
+ publishConfig: {
41
+ access: "public"
42
+ },
43
+ devDependencies: {
44
+ "cross-env": "^10.1.0",
45
+ tsx: "^4.20.6"
46
+ }
47
+ };
48
+
49
+ // src/cli/init.ts
50
+ import inquirer from "inquirer";
51
+ import path from "path";
52
+ import { fileURLToPath } from "url";
53
+ import fs from "fs";
54
+ var __filename = fileURLToPath(import.meta.url);
55
+ var __dirname = path.dirname(__filename);
56
+ var templates = path.resolve(__dirname, "../resources/templates");
57
+ function renameFilesRecursively(dir, modName) {
58
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
59
+ for (const entry of entries) {
60
+ const oldPath = path.join(dir, entry.name);
61
+ let newPath = oldPath;
62
+ if (entry.name.includes("{name}")) {
63
+ const newName = entry.name.replace("{name}", modName);
64
+ newPath = path.join(dir, newName);
65
+ fs.renameSync(oldPath, newPath);
66
+ }
67
+ if (entry.name === "package.json") {
68
+ const pkg = JSON.parse(fs.readFileSync(newPath, "utf-8"));
69
+ pkg.name = modName;
70
+ fs.writeFileSync(newPath, JSON.stringify(pkg, null, 2));
71
+ }
72
+ if (fs.statSync(newPath).isDirectory()) {
73
+ renameFilesRecursively(newPath, modName);
74
+ }
75
+ }
76
+ }
77
+ async function init() {
78
+ inquirer.prompt([
79
+ {
80
+ type: "input",
81
+ name: "mod_name",
82
+ message: "What's your mod's name",
83
+ validate: ((value) => {
84
+ if (value.trim() === "") return "Please provide a value";
85
+ return true;
86
+ })
87
+ },
88
+ {
89
+ type: "list",
90
+ name: "template",
91
+ message: "Which template should be used",
92
+ choices: ["Basic", "AcePursuit", "BombSquad", "Exfil", "Vertigo"]
93
+ }
94
+ ]).then((answers) => {
95
+ const template = path.resolve(templates, answers.template);
96
+ const newProject = path.resolve(".", answers.mod_name);
97
+ console.log("template:", template);
98
+ console.log("newProject:", newProject);
99
+ fs.cpSync(path.resolve(templates, "All"), newProject, { recursive: true });
100
+ fs.cpSync(template, newProject, { recursive: true });
101
+ renameFilesRecursively(newProject, answers.mod_name);
102
+ }).catch((error) => {
103
+ if (error.isTtyError) {
104
+ console.error("TTY Error:", error);
105
+ } else {
106
+ console.error("Error occurred:", error);
107
+ }
108
+ });
109
+ }
110
+
111
+ // src/cli/build.ts
112
+ import { createJiti } from "jiti";
113
+ import path2 from "path";
114
+ var getBf6Config = async (rootDir) => {
115
+ const jiti = createJiti(rootDir, { interopDefault: true });
116
+ const result = await jiti.import("./bf6.config", { default: true });
117
+ return result;
118
+ };
119
+ async function build() {
120
+ const workingDir = path2.resolve(".");
121
+ getBf6Config(workingDir);
122
+ }
123
+
124
+ // src/cli/prepare.ts
125
+ import path3 from "path";
126
+ import { fileURLToPath as fileURLToPath2 } from "url";
127
+ import fs2 from "fs";
128
+ import { genExport } from "knitwork";
129
+
130
+ // ../../node_modules/ansi-regex/index.js
131
+ function ansiRegex({ onlyFirst = false } = {}) {
132
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
133
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
134
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
135
+ const pattern = `${osc}|${csi}`;
136
+ return new RegExp(pattern, onlyFirst ? void 0 : "g");
137
+ }
138
+
139
+ // ../../node_modules/strip-ansi/index.js
140
+ var regex = ansiRegex();
141
+ function stripAnsi(string) {
142
+ if (typeof string !== "string") {
143
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
144
+ }
145
+ return string.replace(regex, "");
146
+ }
147
+
148
+ // src/cli/utils.ts
149
+ import colors from "colors";
150
+ var printToConsole = (message) => {
151
+ const now = /* @__PURE__ */ new Date();
152
+ const formattedTime = colors.grey(now.toLocaleTimeString());
153
+ const terminalWidth = process.stdout.columns || 80;
154
+ const timeLength = stripAnsi(formattedTime).length;
155
+ const messageLength = stripAnsi(message).length;
156
+ console.log(`${message}${" ".repeat(terminalWidth - (messageLength + timeLength))}${formattedTime}`);
157
+ };
158
+
159
+ // src/cli/prepare.ts
160
+ async function prepare() {
161
+ try {
162
+ const __filename2 = fileURLToPath2(import.meta.url);
163
+ const __dirname2 = path3.dirname(__filename2);
164
+ const workingDir = path3.resolve(".");
165
+ const buildDir = path3.resolve(".bf6");
166
+ const resources = path3.resolve(__dirname2, "../../resources/prepare");
167
+ fs2.cpSync(path3.resolve(resources, "tsconfig.json"), path3.resolve(buildDir, "tsconfig.json"));
168
+ fs2.cpSync(path3.resolve(resources, "bf6.d.ts"), path3.resolve(buildDir, "bf6.d.ts"));
169
+ fs2.cpSync(path3.resolve(resources, "types", "config.ts"), path3.resolve(buildDir, "types", "config.ts"));
170
+ const ConfigFileExports = genExport("./types/config", ["defineBf6Config"]);
171
+ fs2.writeFileSync(path3.resolve(buildDir, "imports.d.ts"), `${ConfigFileExports}
172
+ `);
173
+ printToConsole(`${"\u2714".green} Types generated in .bf6`);
174
+ } catch (error) {
175
+ console.error(error);
176
+ printToConsole(`${"\u2717".red} Types failed to generate in .bf6`);
177
+ }
178
+ }
179
+
180
+ // src/cli/index.ts
181
+ var program = new Command();
182
+ program.name(Object.keys(package_default.bin)[0]).description(package_default.description).version(package_default.version);
183
+ program.command("init").description("Create a new bf6 mod").action(async () => {
184
+ await init();
185
+ });
186
+ program.command("build").description("build the bf6 mod").action(async () => {
187
+ await build();
188
+ });
189
+ program.command("prepare").description("prepare the types for bf6 mod").action(async () => {
190
+ await prepare();
191
+ });
192
+ program.exitOverride((_err) => {
193
+ if (process.env.EXIT_CODE === "none") process.exit(0);
194
+ });
195
+ program.parse();
196
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/cli/index.ts","../../package.json","../../src/cli/init.ts","../../src/cli/build.ts","../../src/cli/prepare.ts","../../../../node_modules/ansi-regex/index.js","../../../../node_modules/strip-ansi/index.js","../../src/cli/utils.ts"],"sourcesContent":["#!/usr/bin/env node\r\nimport { Command } from 'commander';\r\nimport pkg from \"../../package.json\" with { type: \"json\" };\r\nimport { init } from './init.js';\r\nimport { build } from './build.js';\r\nimport { prepare } from './prepare.js';\r\n\r\nconst program = new Command();\r\n\r\nprogram\r\n .name(Object.keys(pkg.bin)[0])\r\n .description(pkg.description)\r\n .version(pkg.version);\r\n\r\nprogram.command('init')\r\n .description('Create a new bf6 mod')\r\n .action(async () => {\r\n await init();\r\n });\r\n\r\nprogram.command('build')\r\n .description('build the bf6 mod')\r\n .action(async () => {\r\n await build();\r\n });\r\n\r\nprogram.command('prepare')\r\n .description('prepare the types for bf6 mod')\r\n .action(async () => {\r\n await prepare();\r\n });\r\n\r\nprogram.exitOverride((_err) => {\r\n if (process.env.EXIT_CODE === 'none') process.exit(0);\r\n});\r\n\r\nprogram.parse();\r\n","{\r\n \"name\": \"@bf6mods/cli\",\r\n \"version\": \"1.0.0\",\r\n \"description\": \"CLI and library for bundling BF6 mods\",\r\n \"license\": \"MIT\",\r\n \"type\": \"module\",\r\n \"bin\": {\r\n \"bf6mods\": \"./dist/cli/index.js\"\r\n },\r\n \"main\": \"./dist/index.js\",\r\n \"types\": \"./dist/index.d.ts\",\r\n \"scripts\": {\r\n \"build\": \"tsup\",\r\n \"start\": \"cross-env EXIT_CODE=none tsx ./src/cli/index.ts\"\r\n },\r\n \"exports\": {\r\n \".\": {\r\n \"types\": \"./dist/index.d.ts\",\r\n \"import\": \"./dist/index.js\"\r\n }\r\n },\r\n \"files\": [\r\n \"dist/\"\r\n ],\r\n \"dependencies\": {\r\n \"@bf6mods/sdk\": \"1.0.1\",\r\n \"chokidar\": \"^4.0.3\",\r\n \"colors\": \"^1.4.0\",\r\n \"commander\": \"^14.0.1\",\r\n \"inquirer\": \"^12.9.6\",\r\n \"jiti\": \"^2.6.1\",\r\n \"knitwork\": \"^1.2.0\"\r\n },\r\n \"publishConfig\": {\r\n \"access\": \"public\"\r\n },\r\n \"devDependencies\": {\r\n \"cross-env\": \"^10.1.0\",\r\n \"tsx\": \"^4.20.6\"\r\n }\r\n}\r\n","import inquirer from 'inquirer';\r\nimport path from 'path';\r\nimport { fileURLToPath } from 'url';\r\nimport fs from 'fs';\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = path.dirname(__filename);\r\n\r\nconst templates = path.resolve(__dirname, '../resources/templates');\r\n\r\nfunction renameFilesRecursively(dir: string, modName: string) {\r\n const entries = fs.readdirSync(dir, { withFileTypes: true });\r\n for (const entry of entries) {\r\n const oldPath = path.join(dir, entry.name);\r\n let newPath = oldPath;\r\n\r\n // Rename file or folder if it includes {name}\r\n if (entry.name.includes('{name}')) {\r\n const newName = entry.name.replace('{name}', modName);\r\n newPath = path.join(dir, newName);\r\n fs.renameSync(oldPath, newPath);\r\n }\r\n\r\n // If it's a package.json, rewrite the \"name\" field\r\n if (entry.name === 'package.json') {\r\n const pkg = JSON.parse(fs.readFileSync(newPath, 'utf-8'));\r\n pkg.name = modName;\r\n fs.writeFileSync(newPath, JSON.stringify(pkg, null, 2));\r\n }\r\n\r\n // Recurse into directories (using the new name if renamed)\r\n if (fs.statSync(newPath).isDirectory()) {\r\n renameFilesRecursively(newPath, modName);\r\n }\r\n }\r\n}\r\n\r\nexport async function init() {\r\n inquirer\r\n .prompt([\r\n {\r\n type: 'input',\r\n name: 'mod_name',\r\n message: \"What's your mod's name\",\r\n validate: ((value: string) => {\r\n if (value.trim() === '') return 'Please provide a value';\r\n return true;\r\n })\r\n },\r\n {\r\n type: 'list',\r\n name: 'template',\r\n message: \"Which template should be used\",\r\n choices: ['Basic', 'AcePursuit', 'BombSquad', 'Exfil', 'Vertigo'],\r\n },\r\n ])\r\n .then((answers) => {\r\n const template = path.resolve(templates, answers.template);\r\n const newProject = path.resolve('.', answers.mod_name);\r\n\r\n console.log('template:', template);\r\n console.log('newProject:', newProject);\r\n\r\n fs.cpSync(path.resolve(templates, 'All'), newProject, { recursive: true })\r\n fs.cpSync(template, newProject, { recursive: true });\r\n\r\n renameFilesRecursively(newProject, answers.mod_name);\r\n })\r\n .catch((error) => {\r\n if (error.isTtyError) {\r\n console.error('TTY Error:', error);\r\n } else {\r\n console.error('Error occurred:', error);\r\n }\r\n });\r\n\r\n}\r\n","import { createJiti } from \"jiti\";\r\nimport path from \"path\";\r\n\r\nexport const getBf6Config = async (rootDir: string) => {\r\n const jiti = createJiti(rootDir, { interopDefault: true });\r\n const result = await jiti.import('./bf6.config', { default: true })\r\n\treturn result;\r\n}\r\n\r\n\r\nexport async function build() {\r\n const workingDir = path.resolve('.');\r\n getBf6Config(workingDir)\r\n}\r\n","import path from \"path\";\r\nimport { fileURLToPath } from \"url\";\r\nimport fs from 'fs';\r\nimport { genExport } from \"knitwork\";\r\nimport * as colors from 'colors'\r\nimport { printToConsole } from \"./utils.js\";\r\n\r\nexport async function prepare() {\r\n try {\r\n const __filename = fileURLToPath(import.meta.url);\r\n const __dirname = path.dirname(__filename);\r\n\r\n const workingDir = path.resolve('.');\r\n const buildDir = path.resolve('.bf6');\r\n\r\n const resources = path.resolve(__dirname, '../../resources/prepare');\r\n\r\n fs.cpSync(path.resolve(resources, 'tsconfig.json'), path.resolve(buildDir, 'tsconfig.json'));\r\n fs.cpSync(path.resolve(resources, 'bf6.d.ts'), path.resolve(buildDir, 'bf6.d.ts'));\r\n fs.cpSync(path.resolve(resources, 'types', 'config.ts'), path.resolve(buildDir, 'types', 'config.ts'));\r\n\r\n const ConfigFileExports = genExport('./types/config', ['defineBf6Config']);\r\n fs.writeFileSync(path.resolve(buildDir, 'imports.d.ts'), `${ConfigFileExports}\\n`);\r\n\r\n printToConsole(`${'✔'.green} Types generated in .bf6`)\r\n } catch (error) {\r\n\t\tconsole.error(error)\r\n\t\tprintToConsole(`${'✗'.red} Types failed to generate in .bf6`)\r\n\t}\r\n}\r\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n\tconst osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","import stripAnsi from 'strip-ansi';\r\nimport colors from 'colors';\r\n\r\nexport const printToConsole = (message: string) => {\r\n const now = new Date();\r\n const formattedTime = colors.grey(now.toLocaleTimeString());\r\n\r\n const terminalWidth = process.stdout.columns || 80; // Default to 80 if terminal width is not available\r\n const timeLength = stripAnsi(formattedTime).length;\r\n const messageLength = stripAnsi(message).length;\r\n\r\n console.log(`${message}${' '.repeat(terminalWidth - (messageLength + timeLength))}${formattedTime}`);\r\n};\r\n"],"mappings":"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","names":["path","path","fileURLToPath","fs","__filename","fileURLToPath","__dirname","path","fs"]}
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": "..",
4
+ "paths": { "#imports": ["./.bf6/imports"] },
5
+ "target": "ES2020",
6
+ "module": "NodeNext",
7
+ "moduleResolution": "nodenext",
8
+ "strict": true,
9
+ "outDir": "dist",
10
+ "types": [
11
+ "@bf6mods/sdk"
12
+ ],
13
+ },
14
+ "include": ["../**/*", "./bf6.d.ts"]
15
+ }
@@ -0,0 +1,10 @@
1
+ export type Bf6Config = {
2
+ entrypoint?: string;
3
+ tscn?: string;
4
+ strings?: string;
5
+ config?: string;
6
+ }
7
+
8
+ export function defineBf6Config(bf6Config: Bf6Config): Bf6Config {
9
+ return bf6Config;
10
+ };