@ducky7go/ducky-cli 0.0.4-dev.1 → 0.0.5-dev.1

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 (61) hide show
  1. package/README.md +47 -199
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +2 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/steam/index.d.ts +3 -0
  6. package/dist/commands/steam/index.d.ts.map +1 -0
  7. package/dist/commands/steam/index.js +21 -0
  8. package/dist/commands/steam/index.js.map +1 -0
  9. package/dist/commands/steam/push.d.ts +3 -0
  10. package/dist/commands/steam/push.d.ts.map +1 -0
  11. package/dist/commands/steam/push.js +29 -0
  12. package/dist/commands/steam/push.js.map +1 -0
  13. package/dist/commands/steam/validate.d.ts +3 -0
  14. package/dist/commands/steam/validate.d.ts.map +1 -0
  15. package/dist/commands/steam/validate.js +47 -0
  16. package/dist/commands/steam/validate.js.map +1 -0
  17. package/dist/formats/steam/config.d.ts +23 -0
  18. package/dist/formats/steam/config.d.ts.map +1 -0
  19. package/dist/formats/steam/config.js +32 -0
  20. package/dist/formats/steam/config.js.map +1 -0
  21. package/dist/formats/steam/metadata.d.ts +45 -0
  22. package/dist/formats/steam/metadata.d.ts.map +1 -0
  23. package/dist/formats/steam/metadata.js +293 -0
  24. package/dist/formats/steam/metadata.js.map +1 -0
  25. package/dist/formats/steam/parser.d.ts +20 -0
  26. package/dist/formats/steam/parser.d.ts.map +1 -0
  27. package/dist/formats/steam/parser.js +88 -0
  28. package/dist/formats/steam/parser.js.map +1 -0
  29. package/dist/formats/steam/progress-display.d.ts +38 -0
  30. package/dist/formats/steam/progress-display.d.ts.map +1 -0
  31. package/dist/formats/steam/progress-display.js +123 -0
  32. package/dist/formats/steam/progress-display.js.map +1 -0
  33. package/dist/formats/steam/progress.d.ts +79 -0
  34. package/dist/formats/steam/progress.d.ts.map +1 -0
  35. package/dist/formats/steam/progress.js +126 -0
  36. package/dist/formats/steam/progress.js.map +1 -0
  37. package/dist/formats/steam/push-handler.d.ts +22 -0
  38. package/dist/formats/steam/push-handler.d.ts.map +1 -0
  39. package/dist/formats/steam/push-handler.js +31 -0
  40. package/dist/formats/steam/push-handler.js.map +1 -0
  41. package/dist/formats/steam/upload-standalone.d.ts +20 -0
  42. package/dist/formats/steam/upload-standalone.d.ts.map +1 -0
  43. package/dist/formats/steam/upload-standalone.js +221 -0
  44. package/dist/formats/steam/upload-standalone.js.map +1 -0
  45. package/dist/formats/steam/validator.d.ts +58 -0
  46. package/dist/formats/steam/validator.d.ts.map +1 -0
  47. package/dist/formats/steam/validator.js +136 -0
  48. package/dist/formats/steam/validator.js.map +1 -0
  49. package/dist/formats/steam/workshop.d.ts +72 -0
  50. package/dist/formats/steam/workshop.d.ts.map +1 -0
  51. package/dist/formats/steam/workshop.js +221 -0
  52. package/dist/formats/steam/workshop.js.map +1 -0
  53. package/dist/utils/errors.d.ts +24 -0
  54. package/dist/utils/errors.d.ts.map +1 -1
  55. package/dist/utils/errors.js +51 -0
  56. package/dist/utils/errors.js.map +1 -1
  57. package/dist/utils/fs.d.ts +8 -0
  58. package/dist/utils/fs.d.ts.map +1 -1
  59. package/dist/utils/fs.js +22 -0
  60. package/dist/utils/fs.js.map +1 -1
  61. package/package.json +2 -1
@@ -0,0 +1,136 @@
1
+ import { fileExists, directoryExists } from '../../utils/fs.js';
2
+ import { join } from 'path';
3
+ import { getSteamAppId } from './config.js';
4
+ /**
5
+ * Steam Workshop validator
6
+ */
7
+ export class SteamValidator {
8
+ logger;
9
+ constructor(logger) {
10
+ this.logger = logger;
11
+ }
12
+ /**
13
+ * Validate all aspects of a mod for Steam Workshop publishing
14
+ */
15
+ async validate(directory) {
16
+ const errors = [];
17
+ // Validate App ID
18
+ const appIdError = this.validateAppId(getSteamAppId());
19
+ if (appIdError) {
20
+ errors.push(appIdError);
21
+ }
22
+ // Validate mod directory exists
23
+ const dirError = await this.validateDirectoryExists(directory);
24
+ if (dirError) {
25
+ errors.push(dirError);
26
+ return { isValid: false, errors };
27
+ }
28
+ // Validate info.ini exists
29
+ const infoIniError = await this.validateInfoIniExists(directory);
30
+ if (infoIniError) {
31
+ errors.push(infoIniError);
32
+ }
33
+ // Validate preview.png exists
34
+ const previewError = await this.validatePreviewImage(directory);
35
+ if (previewError) {
36
+ errors.push(previewError);
37
+ }
38
+ // Validate mod structure
39
+ const structureErrors = await this.validateModStructure(directory);
40
+ errors.push(...structureErrors);
41
+ return {
42
+ isValid: errors.length === 0,
43
+ errors,
44
+ };
45
+ }
46
+ /**
47
+ * Validate Steam App ID
48
+ */
49
+ validateAppId(appId) {
50
+ if (!appId || appId <= 0) {
51
+ return {
52
+ message: `Invalid Steam App ID: ${appId}`,
53
+ suggestions: [
54
+ 'Set the STEAM_APP_ID environment variable to a valid App ID',
55
+ 'Default App ID is 3167020',
56
+ ],
57
+ };
58
+ }
59
+ return null;
60
+ }
61
+ /**
62
+ * Validate directory exists
63
+ */
64
+ async validateDirectoryExists(directory) {
65
+ if (!(await directoryExists(directory))) {
66
+ return {
67
+ message: `Directory does not exist: ${directory}`,
68
+ suggestions: [
69
+ 'Ensure the mod directory path is correct',
70
+ 'Create the directory if it does not exist',
71
+ ],
72
+ };
73
+ }
74
+ return null;
75
+ }
76
+ /**
77
+ * Validate info.ini exists
78
+ */
79
+ async validateInfoIniExists(directory) {
80
+ const infoIniPath = join(directory, 'info.ini');
81
+ if (!(await fileExists(infoIniPath))) {
82
+ return {
83
+ message: 'info.ini not found in mod directory',
84
+ suggestions: [
85
+ 'Create an info.ini file in the mod directory',
86
+ 'Include required fields: name, version',
87
+ ],
88
+ };
89
+ }
90
+ return null;
91
+ }
92
+ /**
93
+ * Validate preview.png exists
94
+ */
95
+ async validatePreviewImage(directory) {
96
+ const previewPath = join(directory, 'preview.png');
97
+ if (!(await fileExists(previewPath))) {
98
+ return {
99
+ message: 'preview.png not found in mod directory',
100
+ suggestions: [
101
+ 'Add a preview.png image to the mod directory',
102
+ 'Recommended size: 512x512 pixels or larger',
103
+ 'Supported formats: PNG, JPG',
104
+ ],
105
+ };
106
+ }
107
+ return null;
108
+ }
109
+ /**
110
+ * Validate mod structure
111
+ */
112
+ async validateModStructure(directory) {
113
+ const errors = [];
114
+ // Check for common mod structure files
115
+ // This is a basic check - can be extended based on specific requirements
116
+ // Check if directory is empty
117
+ const fs = await import('fs/promises');
118
+ try {
119
+ const files = await fs.readdir(directory);
120
+ if (files.length === 0) {
121
+ errors.push({
122
+ message: 'Mod directory is empty',
123
+ suggestions: [
124
+ 'Add mod files to the directory',
125
+ 'Include at least info.ini and some content',
126
+ ],
127
+ });
128
+ }
129
+ }
130
+ catch (error) {
131
+ // Already handled by validateDirectoryExists
132
+ }
133
+ return errors;
134
+ }
135
+ }
136
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/formats/steam/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Steam Workshop client wrapper
3
+ * Wraps steamworks.js for Workshop operations
4
+ * Uses child process for proper cleanup of Steamworks proxy
5
+ */
6
+ import type { Logger } from '../../utils/logger.js';
7
+ /**
8
+ * Run Steam upload in a child process
9
+ * @param modPath - Path to the mod directory
10
+ * @param options - Upload options
11
+ * @param logger - Logger instance
12
+ * @returns Promise that resolves when upload completes
13
+ */
14
+ export declare function runSteamUploadInChildProcess(modPath: string, options: {
15
+ updateDescription: boolean;
16
+ changelog?: string;
17
+ skipTail?: boolean;
18
+ }, logger: Logger, _onProgress?: (bytesProcessed: number, bytesTotal: number) => void): Promise<void>;
19
+ /**
20
+ * Kill the current upload child process if running
21
+ */
22
+ export declare function killSteamUploadProcess(): void;
23
+ /**
24
+ * Initialize Steamworks
25
+ * @throws {SteamConfigError} If Steamworks initialization fails
26
+ */
27
+ export declare function initSteamworks(): Promise<void>;
28
+ /**
29
+ * Shutdown Steamworks
30
+ * Note: steamworks.js doesn't have a shutdown method, so we just clear our references
31
+ */
32
+ export declare function shutdownSteamworks(): void;
33
+ /**
34
+ * Create a new Workshop item
35
+ * @returns The published file ID
36
+ * @throws {SteamUploadError} If creation fails
37
+ */
38
+ export declare function createWorkshopItem(): Promise<number>;
39
+ /**
40
+ * Workshop update details
41
+ */
42
+ export interface WorkshopUpdateDetails {
43
+ title?: string;
44
+ description?: string;
45
+ changeNote?: string;
46
+ previewPath?: string;
47
+ contentPath?: string;
48
+ tags?: Array<string>;
49
+ visibility?: number;
50
+ language?: string;
51
+ }
52
+ /**
53
+ * Update a Workshop item (Promise-based)
54
+ * @param publishedFileId - The published file ID
55
+ * @param details - Update details
56
+ * @returns Promise that resolves when update completes
57
+ */
58
+ export declare function updateWorkshopItem(publishedFileId: number, details: WorkshopUpdateDetails): Promise<void>;
59
+ /**
60
+ * Update a Workshop item with progress tracking
61
+ * @param publishedFileId - The published file ID
62
+ * @param details - Update details
63
+ * @param logger - Logger instance
64
+ * @param onProgress - Progress callback
65
+ * @returns Promise that resolves when update completes
66
+ */
67
+ export declare function updateWorkshopItemWithProgress(publishedFileId: number, details: WorkshopUpdateDetails, _logger: Logger, onProgress?: (bytesProcessed: number, bytesTotal: number) => void): Promise<void>;
68
+ /**
69
+ * Check if Steamworks is available
70
+ */
71
+ export declare function isSteamworksAvailable(): boolean;
72
+ //# sourceMappingURL=workshop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workshop.d.ts","sourceRoot":"","sources":["../../../src/formats/steam/workshop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQpD;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,EACD,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GACjE,OAAO,CAAC,IAAI,CAAC,CAsEf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAM7C;AAqBD;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CpD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAoB1D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAChE,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Steam Workshop client wrapper
3
+ * Wraps steamworks.js for Workshop operations
4
+ * Uses child process for proper cleanup of Steamworks proxy
5
+ */
6
+ import { SteamAuthError, SteamUploadError, SteamConfigError } from '../../utils/errors.js';
7
+ import { getSteamAppId } from './config.js';
8
+ import { spawn } from 'child_process';
9
+ import { resolve } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = resolve(__filename, '..');
13
+ /**
14
+ * Run Steam upload in a child process
15
+ * @param modPath - Path to the mod directory
16
+ * @param options - Upload options
17
+ * @param logger - Logger instance
18
+ * @returns Promise that resolves when upload completes
19
+ */
20
+ export async function runSteamUploadInChildProcess(modPath, options, logger, _onProgress) {
21
+ const args = [modPath];
22
+ if (options.updateDescription) {
23
+ args.push('--update-description');
24
+ }
25
+ if (options.changelog) {
26
+ args.push('--changelog', options.changelog);
27
+ }
28
+ if (options.skipTail) {
29
+ args.push('--skip-tail');
30
+ }
31
+ const scriptPath = resolve(__dirname, 'upload-standalone.js');
32
+ return new Promise((resolve, reject) => {
33
+ const child = spawn('node', [scriptPath, ...args], {
34
+ stdio: ['ignore', 'pipe', 'pipe'],
35
+ env: { ...process.env },
36
+ });
37
+ let stdout = '';
38
+ let stderr = '';
39
+ child.stdout?.on('data', (data) => {
40
+ const text = data.toString();
41
+ stdout += text;
42
+ // Log output line by line
43
+ text.split('\n').filter(Boolean).forEach((line) => {
44
+ if (line.includes('[SUCCESS]')) {
45
+ logger.success(line.replace(/\[SUCCESS\]\s*/g, ''));
46
+ }
47
+ else if (line.includes('[ERROR]')) {
48
+ logger.error(line.replace(/\[ERROR\]\s*/g, ''));
49
+ }
50
+ else if (line.includes('[INFO]')) {
51
+ logger.info(line.replace(/\[INFO\]\s*/g, ''));
52
+ }
53
+ else if (line.includes('[WARN]')) {
54
+ logger.warn(line.replace(/\[WARN\]\s*/g, ''));
55
+ }
56
+ else if (line.includes('[DEBUG]')) {
57
+ logger.debug(line.replace(/\[DEBUG\]\s*/g, ''));
58
+ }
59
+ else {
60
+ logger.info(line);
61
+ }
62
+ });
63
+ });
64
+ child.stderr?.on('data', (data) => {
65
+ stderr += data;
66
+ });
67
+ child.on('close', (code) => {
68
+ if (code === 0) {
69
+ resolve();
70
+ }
71
+ else {
72
+ reject(new Error(`Upload process exited with code ${code}${stderr ? ': ' + stderr : ''}`));
73
+ }
74
+ });
75
+ child.on('error', (err) => {
76
+ reject(new SteamUploadError(`Failed to spawn upload process: ${err.message}`, [
77
+ 'Ensure Node.js is properly installed',
78
+ 'Check that the upload script exists',
79
+ ]));
80
+ });
81
+ // Store child process reference for cleanup
82
+ runSteamUploadInChildProcess.currentChild = child;
83
+ });
84
+ }
85
+ /**
86
+ * Kill the current upload child process if running
87
+ */
88
+ export function killSteamUploadProcess() {
89
+ const child = runSteamUploadInChildProcess.currentChild;
90
+ if (child && !child.killed) {
91
+ child.kill('SIGKILL');
92
+ runSteamUploadInChildProcess.currentChild = null;
93
+ }
94
+ }
95
+ let steamworks = null;
96
+ /**
97
+ * Initialize Steamworks
98
+ * @throws {SteamConfigError} If Steamworks initialization fails
99
+ */
100
+ export async function initSteamworks() {
101
+ if (steamworks) {
102
+ return; // Already initialized
103
+ }
104
+ try {
105
+ // Import steamworks.js
106
+ const steamworksModule = await import('@ducky7go/steamworks.js');
107
+ const appId = getSteamAppId();
108
+ // Initialize Steamworks - init is a named export, not default
109
+ // @ts-ignore - init exists on the module
110
+ const api = steamworksModule.init ? steamworksModule.init(appId) : steamworksModule.default.init(appId);
111
+ steamworks = api;
112
+ if (!steamworks) {
113
+ throw new SteamConfigError('Failed to initialize Steamworks', [
114
+ 'Ensure Steam is running',
115
+ 'Ensure you are logged into Steam',
116
+ 'Check that the Steam App ID is correct',
117
+ 'Try restarting Steam',
118
+ ]);
119
+ }
120
+ // Wait a bit for Steam to fully initialize
121
+ await new Promise((resolve) => setTimeout(resolve, 1000));
122
+ }
123
+ catch (error) {
124
+ if (error instanceof SteamConfigError || error instanceof SteamAuthError) {
125
+ throw error;
126
+ }
127
+ throw new SteamConfigError(`Failed to load Steamworks: ${error instanceof Error ? error.message : String(error)}`, [
128
+ 'Ensure @ducky7go/steamworks.js is installed',
129
+ 'Try running: npm install',
130
+ 'Ensure Steam is installed and running',
131
+ ]);
132
+ }
133
+ }
134
+ /**
135
+ * Shutdown Steamworks
136
+ * Note: steamworks.js doesn't have a shutdown method, so we just clear our references
137
+ */
138
+ export function shutdownSteamworks() {
139
+ steamworks = null;
140
+ }
141
+ /**
142
+ * Create a new Workshop item
143
+ * @returns The published file ID
144
+ * @throws {SteamUploadError} If creation fails
145
+ */
146
+ export async function createWorkshopItem() {
147
+ if (!steamworks?.workshop) {
148
+ throw new SteamUploadError('Steamworks not initialized');
149
+ }
150
+ const appId = getSteamAppId();
151
+ const result = await steamworks.workshop.createItem(appId);
152
+ if (!result.itemId || result.itemId === 0n) {
153
+ throw new SteamUploadError('Failed to create Workshop item', [
154
+ 'Ensure you have permission to create Workshop items',
155
+ 'Check that your Steam account is in good standing',
156
+ 'Try again later',
157
+ ]);
158
+ }
159
+ return Number(result.itemId);
160
+ }
161
+ /**
162
+ * Update a Workshop item (Promise-based)
163
+ * @param publishedFileId - The published file ID
164
+ * @param details - Update details
165
+ * @returns Promise that resolves when update completes
166
+ */
167
+ export async function updateWorkshopItem(publishedFileId, details) {
168
+ if (!steamworks?.workshop) {
169
+ throw new SteamUploadError('Steamworks not initialized');
170
+ }
171
+ const appId = getSteamAppId();
172
+ const itemId = BigInt(publishedFileId);
173
+ await steamworks.workshop.updateItem(itemId, details, appId);
174
+ }
175
+ /**
176
+ * Update a Workshop item with progress tracking
177
+ * @param publishedFileId - The published file ID
178
+ * @param details - Update details
179
+ * @param logger - Logger instance
180
+ * @param onProgress - Progress callback
181
+ * @returns Promise that resolves when update completes
182
+ */
183
+ export async function updateWorkshopItemWithProgress(publishedFileId, details, _logger, onProgress) {
184
+ if (!steamworks?.workshop) {
185
+ throw new SteamUploadError('Steamworks not initialized');
186
+ }
187
+ const appId = getSteamAppId();
188
+ const itemId = BigInt(publishedFileId);
189
+ return new Promise((resolve, reject) => {
190
+ steamworks.workshop.updateItemWithCallback(itemId, details, appId,
191
+ // Success callback
192
+ () => {
193
+ resolve();
194
+ },
195
+ // Error callback
196
+ (err) => {
197
+ const errorMessage = err && typeof err === 'object' && 'message' in err
198
+ ? String(err.message)
199
+ : String(err);
200
+ reject(new SteamUploadError(`Workshop upload failed: ${errorMessage}`, [
201
+ 'Check your internet connection',
202
+ 'Ensure Steam is running and logged in',
203
+ 'Try again later',
204
+ ]));
205
+ },
206
+ // Progress callback
207
+ onProgress ? (data) => {
208
+ const processed = Number(data.progress);
209
+ const total = Number(data.total);
210
+ onProgress(processed, total);
211
+ } : undefined, 100 // Progress callback interval in ms
212
+ );
213
+ });
214
+ }
215
+ /**
216
+ * Check if Steamworks is available
217
+ */
218
+ export function isSteamworksAvailable() {
219
+ return steamworks !== null;
220
+ }
221
+ //# sourceMappingURL=workshop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workshop.js","sourceRoot":"","sources":["../../../src/formats/steam/workshop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAe,EACf,OAIC,EACD,MAAc,EACd,WAAkE;IAElE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAE9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE;YACjD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,IAAI,CAAC;YACf,0BAA0B;YAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;gBACtD,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,IAAI,gBAAgB,CACzB,mCAAmC,GAAG,CAAC,OAAO,EAAE,EAChD;gBACE,sCAAsC;gBACtC,qCAAqC;aACtC,CACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC3C,4BAAoC,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,KAAK,GAAI,4BAAoC,CAAC,YAAY,CAAC;IACjE,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,4BAAoC,CAAC,YAAY,GAAG,IAAI,CAAC;IAC5D,CAAC;AACH,CAAC;AAmBD,IAAI,UAAU,GAA4B,IAAI,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,sBAAsB;IAChC,CAAC;IAED,IAAI,CAAC;QACH,uBAAuB;QACvB,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAE9B,8DAA8D;QAC9D,yCAAyC;QACzC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxG,UAAU,GAAG,GAAuB,CAAC;QAErC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,CACxB,iCAAiC,EACjC;gBACE,yBAAyB;gBACzB,kCAAkC;gBAClC,wCAAwC;gBACxC,sBAAsB;aACvB,CACF,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACzE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,gBAAgB,CACxB,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACtF;YACE,6CAA6C;YAC7C,0BAA0B;YAC1B,uCAAuC;SACxC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAE3D,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,gBAAgB,CACxB,gCAAgC,EAChC;YACE,qDAAqD;YACrD,mDAAmD;YACnD,iBAAiB;SAClB,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAgBD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,eAAuB,EACvB,OAA8B;IAE9B,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAEvC,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,eAAuB,EACvB,OAA8B,EAC9B,OAAe,EACf,UAAiE;IAEjE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAEvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,UAAW,CAAC,QAAS,CAAC,sBAAsB,CAC1C,MAAM,EACN,OAAO,EACP,KAAK;QACL,mBAAmB;QACnB,GAAG,EAAE;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,iBAAiB;QACjB,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,YAAY,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG;gBACrE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;gBACrB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,gBAAgB,CACzB,2BAA2B,YAAY,EAAE,EACzC;gBACE,gCAAgC;gBAChC,uCAAuC;gBACvC,iBAAiB;aAClB,CACF,CAAC,CAAC;QACL,CAAC;QACD,oBAAoB;QACpB,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC,SAAS,EACb,GAAG,CAAC,mCAAmC;SACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,UAAU,KAAK,IAAI,CAAC;AAC7B,CAAC"}
@@ -40,4 +40,28 @@ export declare class FileSystemError extends DuckyError {
40
40
  export declare class NuGetError extends DuckyError {
41
41
  constructor(message: string, suggestions?: string[]);
42
42
  }
43
+ /**
44
+ * Error raised when Steam operations fail
45
+ */
46
+ export declare class SteamError extends DuckyError {
47
+ constructor(message: string, suggestions?: string[]);
48
+ }
49
+ /**
50
+ * Error raised when Steam authentication fails
51
+ */
52
+ export declare class SteamAuthError extends SteamError {
53
+ constructor(message: string, suggestions?: string[]);
54
+ }
55
+ /**
56
+ * Error raised when Steam upload fails
57
+ */
58
+ export declare class SteamUploadError extends SteamError {
59
+ constructor(message: string, suggestions?: string[]);
60
+ }
61
+ /**
62
+ * Error raised when Steam configuration is invalid
63
+ */
64
+ export declare class SteamConfigError extends SteamError {
65
+ constructor(message: string, suggestions?: string[]);
66
+ }
43
67
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,IAAI,EAAE,MAAM;aACZ,WAAW,CAAC,EAAE,MAAM,EAAE;gBAFtC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EAAE,YAAA;IAOxC;;OAEG;IACH,MAAM,IAAI,MAAM;CAUjB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;gBAC7B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,IAAI,EAAE,MAAM;aACZ,WAAW,CAAC,EAAE,MAAM,EAAE;gBAFtC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EAAE,YAAA;IAOxC;;OAEG;IACH,MAAM,IAAI,MAAM;CAUjB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;gBAC7B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CAIpD;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;gBAChC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CASpD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;gBAClC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CASpD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;gBAClC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;CASpD"}
@@ -70,4 +70,55 @@ export class NuGetError extends DuckyError {
70
70
  this.name = 'NuGetError';
71
71
  }
72
72
  }
73
+ /**
74
+ * Error raised when Steam operations fail
75
+ */
76
+ export class SteamError extends DuckyError {
77
+ constructor(message, suggestions) {
78
+ super(message, 'STEAM_ERROR', suggestions);
79
+ this.name = 'SteamError';
80
+ }
81
+ }
82
+ /**
83
+ * Error raised when Steam authentication fails
84
+ */
85
+ export class SteamAuthError extends SteamError {
86
+ constructor(message, suggestions) {
87
+ super(message, suggestions);
88
+ Object.defineProperty(this, 'code', {
89
+ value: 'STEAM_AUTH_ERROR',
90
+ enumerable: true,
91
+ writable: false,
92
+ });
93
+ this.name = 'SteamAuthError';
94
+ }
95
+ }
96
+ /**
97
+ * Error raised when Steam upload fails
98
+ */
99
+ export class SteamUploadError extends SteamError {
100
+ constructor(message, suggestions) {
101
+ super(message, suggestions);
102
+ Object.defineProperty(this, 'code', {
103
+ value: 'STEAM_UPLOAD_ERROR',
104
+ enumerable: true,
105
+ writable: false,
106
+ });
107
+ this.name = 'SteamUploadError';
108
+ }
109
+ }
110
+ /**
111
+ * Error raised when Steam configuration is invalid
112
+ */
113
+ export class SteamConfigError extends SteamError {
114
+ constructor(message, suggestions) {
115
+ super(message, suggestions);
116
+ Object.defineProperty(this, 'code', {
117
+ value: 'STEAM_CONFIG_ERROR',
118
+ enumerable: true,
119
+ writable: false,
120
+ });
121
+ this.name = 'SteamConfigError';
122
+ }
123
+ }
73
124
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGjB;IACA;IAHlB,YACE,OAAe,EACC,IAAY,EACZ,WAAsB;QAEtC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAW;QAGtC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,MAAM,GAAG,aAAa,IAAI,CAAC,OAAO,SAAS,CAAC;QAChD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,kBAAkB,CAAC;YAC7B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,IAAI,SAAS,UAAU,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe,EAAE,WAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IACzC,YAAY,OAAe,EAAE,WAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,OAAe,EAAE,WAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe,EAAE,WAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC,YAAY,OAAe,EAAE,WAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -39,4 +39,12 @@ export declare function isDirectory(path: string): Promise<boolean>;
39
39
  * Check if a path is a file
40
40
  */
41
41
  export declare function isFile(path: string): Promise<boolean>;
42
+ /**
43
+ * Write text to a file
44
+ */
45
+ export declare function writeTextFile(filePath: string, content: string): Promise<void>;
46
+ /**
47
+ * Format bytes to human-readable size
48
+ */
49
+ export declare function formatBytes(bytes: number): string;
42
50
  //# sourceMappingURL=fs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASpE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUnE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASpE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUnE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQjD"}
package/dist/utils/fs.js CHANGED
@@ -122,4 +122,26 @@ export async function isFile(path) {
122
122
  return false;
123
123
  }
124
124
  }
125
+ /**
126
+ * Write text to a file
127
+ */
128
+ export async function writeTextFile(filePath, content) {
129
+ try {
130
+ await fsPromises.writeFile(filePath, content, 'utf-8');
131
+ }
132
+ catch (error) {
133
+ throw new FileSystemError(`Failed to write file: ${filePath}`, [`Ensure you have permission to write to the file`]);
134
+ }
135
+ }
136
+ /**
137
+ * Format bytes to human-readable size
138
+ */
139
+ export function formatBytes(bytes) {
140
+ if (bytes === 0)
141
+ return '0 B';
142
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
143
+ const k = 1024;
144
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
145
+ return `${(bytes / Math.pow(k, i)).toFixed(i > 0 ? 2 : 0)} ${units[i]}`;
146
+ }
125
147
  //# sourceMappingURL=fs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ducky7go/ducky-cli",
3
- "version": "0.0.4-dev.1",
3
+ "version": "0.0.5-dev.1",
4
4
  "description": "CLI tool for packaging and publishing game mods to NuGet",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -55,6 +55,7 @@
55
55
  "vitest": "^2.0.0"
56
56
  },
57
57
  "dependencies": {
58
+ "@ducky7go/steamworks.js": "^0.1.3",
58
59
  "chalk": "^5.3.0",
59
60
  "commander": "^12.0.0",
60
61
  "dotenv": "^17.2.3",