@5ive-tech/cli 1.0.4
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/README.md +226 -0
- package/dist/assets/vm/five_vm_wasm.d.ts +762 -0
- package/dist/assets/vm/five_vm_wasm.js +3754 -0
- package/dist/assets/vm/five_vm_wasm_bg.wasm +0 -0
- package/dist/assets/vm/five_vm_wasm_bg.wasm.d.ts +247 -0
- package/dist/assets/vm/package.json +11 -0
- package/dist/cli.d.ts +47 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +343 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/analyze.d.ts +3 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +435 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/build.d.ts +3 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +66 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/compile.d.ts +3 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +872 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +431 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/deploy-and-execute.d.ts +3 -0
- package/dist/commands/deploy-and-execute.d.ts.map +1 -0
- package/dist/commands/deploy-and-execute.js +317 -0
- package/dist/commands/deploy-and-execute.js.map +1 -0
- package/dist/commands/deploy.d.ts +21 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +806 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/donate.d.ts +4 -0
- package/dist/commands/donate.d.ts.map +1 -0
- package/dist/commands/donate.js +104 -0
- package/dist/commands/donate.js.map +1 -0
- package/dist/commands/execute.d.ts +6 -0
- package/dist/commands/execute.d.ts.map +1 -0
- package/dist/commands/execute.js +749 -0
- package/dist/commands/execute.js.map +1 -0
- package/dist/commands/fmt.d.ts +3 -0
- package/dist/commands/fmt.d.ts.map +1 -0
- package/dist/commands/fmt.js +327 -0
- package/dist/commands/fmt.js.map +1 -0
- package/dist/commands/help.d.ts +6 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +224 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/index.d.ts +45 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +119 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +887 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/local.d.ts +3 -0
- package/dist/commands/local.d.ts.map +1 -0
- package/dist/commands/local.js +703 -0
- package/dist/commands/local.js.map +1 -0
- package/dist/commands/namespace.d.ts +3 -0
- package/dist/commands/namespace.d.ts.map +1 -0
- package/dist/commands/namespace.js +328 -0
- package/dist/commands/namespace.js.map +1 -0
- package/dist/commands/template.d.ts +4 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +486 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/test.d.ts +6 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +890 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/version.d.ts +6 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +339 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +69 -0
- package/dist/config/ConfigManager.d.ts.map +1 -0
- package/dist/config/ConfigManager.js +261 -0
- package/dist/config/ConfigManager.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +21 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +35 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +105 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/project/ProjectLoader.d.ts +12 -0
- package/dist/project/ProjectLoader.d.ts.map +1 -0
- package/dist/project/ProjectLoader.js +115 -0
- package/dist/project/ProjectLoader.js.map +1 -0
- package/dist/types.d.ts +334 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/AccountFixtureGenerator.d.ts +48 -0
- package/dist/utils/AccountFixtureGenerator.d.ts.map +1 -0
- package/dist/utils/AccountFixtureGenerator.js +265 -0
- package/dist/utils/AccountFixtureGenerator.js.map +1 -0
- package/dist/utils/FiveFileManager.d.ts +96 -0
- package/dist/utils/FiveFileManager.d.ts.map +1 -0
- package/dist/utils/FiveFileManager.js +329 -0
- package/dist/utils/FiveFileManager.js.map +1 -0
- package/dist/utils/ascii-art.d.ts +72 -0
- package/dist/utils/ascii-art.d.ts.map +1 -0
- package/dist/utils/ascii-art.js +314 -0
- package/dist/utils/ascii-art.js.map +1 -0
- package/dist/utils/cli-ui.d.ts +39 -0
- package/dist/utils/cli-ui.d.ts.map +1 -0
- package/dist/utils/cli-ui.js +75 -0
- package/dist/utils/cli-ui.js.map +1 -0
- package/dist/utils/fileUtils.d.ts +25 -0
- package/dist/utils/fileUtils.d.ts.map +1 -0
- package/dist/utils/fileUtils.js +50 -0
- package/dist/utils/fileUtils.js.map +1 -0
- package/dist/utils/logger.d.ts +53 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +287 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/wasm/compiler.d.ts +101 -0
- package/dist/wasm/compiler.d.ts.map +1 -0
- package/dist/wasm/compiler.js +906 -0
- package/dist/wasm/compiler.js.map +1 -0
- package/dist/wasm/loader.d.ts +2 -0
- package/dist/wasm/loader.d.ts.map +1 -0
- package/dist/wasm/loader.js +90 -0
- package/dist/wasm/loader.js.map +1 -0
- package/dist/wasm/vm.d.ts +32 -0
- package/dist/wasm/vm.d.ts.map +1 -0
- package/dist/wasm/vm.js +440 -0
- package/dist/wasm/vm.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountFixtureGenerator.js","sourceRoot":"","sources":["../../src/utils/AccountFixtureGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export interface FiveCompiledFile {
|
|
2
|
+
bytecode: string;
|
|
3
|
+
abi: {
|
|
4
|
+
functions: Record<string, {
|
|
5
|
+
index: number;
|
|
6
|
+
parameters: any[];
|
|
7
|
+
accounts: any[];
|
|
8
|
+
}>;
|
|
9
|
+
fields: any[];
|
|
10
|
+
version: string;
|
|
11
|
+
};
|
|
12
|
+
version: string;
|
|
13
|
+
disassembly?: string[];
|
|
14
|
+
metadata?: {
|
|
15
|
+
sourceFile?: string;
|
|
16
|
+
compilationTime?: number;
|
|
17
|
+
optimizationLevel?: string;
|
|
18
|
+
compilerVersion?: string;
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
};
|
|
21
|
+
debug?: any;
|
|
22
|
+
}
|
|
23
|
+
export interface LoadedFiveFile {
|
|
24
|
+
bytecode: Uint8Array;
|
|
25
|
+
abi?: any;
|
|
26
|
+
metadata?: any;
|
|
27
|
+
debug?: any;
|
|
28
|
+
format: 'five' | 'bin' | 'v';
|
|
29
|
+
sourceFile: string;
|
|
30
|
+
size: number;
|
|
31
|
+
}
|
|
32
|
+
export interface FiveFileValidationResult {
|
|
33
|
+
valid: boolean;
|
|
34
|
+
errors: string[];
|
|
35
|
+
warnings: string[];
|
|
36
|
+
format: string;
|
|
37
|
+
size: number;
|
|
38
|
+
}
|
|
39
|
+
export interface SaveOptions {
|
|
40
|
+
preserveMetadata?: boolean;
|
|
41
|
+
indent?: number;
|
|
42
|
+
compression?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface LoadOptions {
|
|
45
|
+
validateFormat?: boolean;
|
|
46
|
+
requireABI?: boolean;
|
|
47
|
+
cacheable?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare class FiveFileManager {
|
|
50
|
+
private static instance;
|
|
51
|
+
private fileCache;
|
|
52
|
+
private readonly supportedExtensions;
|
|
53
|
+
static getInstance(): FiveFileManager;
|
|
54
|
+
loadFile(filePath: string, options?: LoadOptions): Promise<LoadedFiveFile>;
|
|
55
|
+
saveFiveFile(filePath: string, bytecode: Uint8Array, abi: any, metadata?: any, disassembly?: string[], options?: SaveOptions): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Save raw bytecode to .bin format
|
|
58
|
+
*/
|
|
59
|
+
saveBinFile(filePath: string, bytecode: Uint8Array): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Detect file format without loading content
|
|
62
|
+
*/
|
|
63
|
+
detectFormat(filePath: string): 'five' | 'bin' | 'v' | 'unknown';
|
|
64
|
+
validateFileContent(file: LoadedFiveFile): FiveFileValidationResult;
|
|
65
|
+
getFileInfo(filePath: string): Promise<{
|
|
66
|
+
exists: boolean;
|
|
67
|
+
size: number;
|
|
68
|
+
format: string;
|
|
69
|
+
lastModified: Date;
|
|
70
|
+
}>;
|
|
71
|
+
convertFormat(inputPath: string, outputPath: string, options?: {
|
|
72
|
+
preserveMetadata?: boolean;
|
|
73
|
+
}): Promise<void>;
|
|
74
|
+
clearCache(): void;
|
|
75
|
+
getCacheStats(): {
|
|
76
|
+
size: number;
|
|
77
|
+
keys: string[];
|
|
78
|
+
};
|
|
79
|
+
private loadFiveFile;
|
|
80
|
+
private loadBinFile;
|
|
81
|
+
private loadSourceFile;
|
|
82
|
+
private validateFilePath;
|
|
83
|
+
private getCompilerVersion;
|
|
84
|
+
private arraysEqual;
|
|
85
|
+
}
|
|
86
|
+
export declare class FiveFileError extends Error {
|
|
87
|
+
readonly code: string;
|
|
88
|
+
readonly details: any;
|
|
89
|
+
constructor(message: string, code: string, details?: any);
|
|
90
|
+
}
|
|
91
|
+
export declare function loadFiveFile(filePath: string): Promise<LoadedFiveFile>;
|
|
92
|
+
export declare function saveFiveFile(filePath: string, bytecode: Uint8Array, abi: any, metadata?: any, disassembly?: string[]): Promise<void>;
|
|
93
|
+
export declare function extractBytecode(filePath: string): Promise<Uint8Array>;
|
|
94
|
+
export declare function extractABI(filePath: string): Promise<any>;
|
|
95
|
+
export declare function validateFiveFile(filePath: string): Promise<FiveFileValidationResult>;
|
|
96
|
+
//# sourceMappingURL=FiveFileManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FiveFileManager.d.ts","sourceRoot":"","sources":["../../src/utils/FiveFileManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
// Five file format manager for .five/.bin/.v.
|
|
2
|
+
import { readFile, writeFile, stat } from 'fs/promises';
|
|
3
|
+
import { extname } from 'path';
|
|
4
|
+
import { Buffer } from 'buffer';
|
|
5
|
+
export class FiveFileManager {
|
|
6
|
+
static instance;
|
|
7
|
+
fileCache = new Map();
|
|
8
|
+
supportedExtensions = ['.five', '.bin', '.v'];
|
|
9
|
+
static getInstance() {
|
|
10
|
+
if (!FiveFileManager.instance) {
|
|
11
|
+
FiveFileManager.instance = new FiveFileManager();
|
|
12
|
+
}
|
|
13
|
+
return FiveFileManager.instance;
|
|
14
|
+
}
|
|
15
|
+
async loadFile(filePath, options = {}) {
|
|
16
|
+
// Input validation
|
|
17
|
+
await this.validateFilePath(filePath);
|
|
18
|
+
const ext = extname(filePath).toLowerCase();
|
|
19
|
+
const cacheKey = `${filePath}:${JSON.stringify(options)}`;
|
|
20
|
+
if (options.cacheable && this.fileCache.has(cacheKey)) {
|
|
21
|
+
return this.fileCache.get(cacheKey);
|
|
22
|
+
}
|
|
23
|
+
let result;
|
|
24
|
+
switch (ext) {
|
|
25
|
+
case '.five':
|
|
26
|
+
result = await this.loadFiveFile(filePath, options);
|
|
27
|
+
break;
|
|
28
|
+
case '.bin':
|
|
29
|
+
result = await this.loadBinFile(filePath, options);
|
|
30
|
+
break;
|
|
31
|
+
case '.v':
|
|
32
|
+
result = await this.loadSourceFile(filePath, options);
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
throw new FiveFileError(`Unsupported file format: ${ext}. Supported: ${this.supportedExtensions.join(', ')}`, 'UNSUPPORTED_FORMAT', { filePath, extension: ext });
|
|
36
|
+
}
|
|
37
|
+
if (options.validateFormat) {
|
|
38
|
+
const validation = this.validateFileContent(result);
|
|
39
|
+
if (!validation.valid) {
|
|
40
|
+
throw new FiveFileError(`File validation failed: ${validation.errors.join(', ')}`, 'VALIDATION_FAILED', { filePath, errors: validation.errors });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (options.requireABI && !result.abi) {
|
|
44
|
+
throw new FiveFileError(`ABI required but not found in ${ext} file`, 'ABI_REQUIRED', { filePath, format: result.format });
|
|
45
|
+
}
|
|
46
|
+
if (options.cacheable) {
|
|
47
|
+
this.fileCache.set(cacheKey, result);
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
async saveFiveFile(filePath, bytecode, abi, metadata, disassembly, options = {}) {
|
|
52
|
+
const fiveFile = {
|
|
53
|
+
bytecode: Buffer.from(bytecode).toString('base64'),
|
|
54
|
+
abi: {
|
|
55
|
+
functions: abi.functions || {},
|
|
56
|
+
fields: abi.fields || [],
|
|
57
|
+
version: abi.version || '1.0'
|
|
58
|
+
},
|
|
59
|
+
version: '1.0',
|
|
60
|
+
metadata: {
|
|
61
|
+
compilationTime: Date.now(),
|
|
62
|
+
compilerVersion: await this.getCompilerVersion(),
|
|
63
|
+
...metadata
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
if (disassembly && disassembly.length > 0) {
|
|
67
|
+
fiveFile.disassembly = disassembly;
|
|
68
|
+
}
|
|
69
|
+
if (metadata?.debug) {
|
|
70
|
+
fiveFile.debug = metadata.debug;
|
|
71
|
+
}
|
|
72
|
+
const jsonContent = JSON.stringify(fiveFile, null, options.indent || 2);
|
|
73
|
+
try {
|
|
74
|
+
await writeFile(filePath, jsonContent, 'utf8');
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
throw new FiveFileError(`Failed to save .five file: ${error instanceof Error ? error.message : 'Unknown error'}`, 'SAVE_FAILED', { filePath, error });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Save raw bytecode to .bin format
|
|
82
|
+
*/
|
|
83
|
+
async saveBinFile(filePath, bytecode) {
|
|
84
|
+
try {
|
|
85
|
+
await writeFile(filePath, bytecode);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw new FiveFileError(`Failed to save .bin file: ${error instanceof Error ? error.message : 'Unknown error'}`, 'SAVE_FAILED', { filePath, error });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Detect file format without loading content
|
|
93
|
+
*/
|
|
94
|
+
detectFormat(filePath) {
|
|
95
|
+
const ext = extname(filePath).toLowerCase();
|
|
96
|
+
switch (ext) {
|
|
97
|
+
case '.five': return 'five';
|
|
98
|
+
case '.bin': return 'bin';
|
|
99
|
+
case '.v': return 'v';
|
|
100
|
+
default: return 'unknown';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
validateFileContent(file) {
|
|
104
|
+
const errors = [];
|
|
105
|
+
const warnings = [];
|
|
106
|
+
if (!file.bytecode || file.bytecode.length === 0) {
|
|
107
|
+
errors.push('Bytecode is empty or missing');
|
|
108
|
+
}
|
|
109
|
+
if (file.format === 'five') {
|
|
110
|
+
if (!file.abi) {
|
|
111
|
+
errors.push('ABI is missing in .five file');
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
if (!file.abi.functions) {
|
|
115
|
+
warnings.push('No functions defined in ABI');
|
|
116
|
+
}
|
|
117
|
+
if (!file.abi.version) {
|
|
118
|
+
warnings.push('ABI version not specified');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (file.bytecode.length < 4) {
|
|
123
|
+
errors.push('Bytecode too short to be valid');
|
|
124
|
+
}
|
|
125
|
+
const expectedMagic = [0x35, 0x49, 0x56, 0x45]; // "5IVE"
|
|
126
|
+
const actualMagic = Array.from(file.bytecode.slice(0, 4));
|
|
127
|
+
if (!this.arraysEqual(expectedMagic, actualMagic)) {
|
|
128
|
+
warnings.push('Bytecode does not start with Five VM magic bytes');
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
valid: errors.length === 0,
|
|
132
|
+
errors,
|
|
133
|
+
warnings,
|
|
134
|
+
format: file.format,
|
|
135
|
+
size: file.size
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
async getFileInfo(filePath) {
|
|
139
|
+
try {
|
|
140
|
+
const stats = await stat(filePath);
|
|
141
|
+
return {
|
|
142
|
+
exists: true,
|
|
143
|
+
size: stats.size,
|
|
144
|
+
format: this.detectFormat(filePath),
|
|
145
|
+
lastModified: stats.mtime
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
return {
|
|
150
|
+
exists: false,
|
|
151
|
+
size: 0,
|
|
152
|
+
format: 'unknown',
|
|
153
|
+
lastModified: new Date(0)
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async convertFormat(inputPath, outputPath, options = {}) {
|
|
158
|
+
const inputFile = await this.loadFile(inputPath, { validateFormat: true });
|
|
159
|
+
const outputFormat = this.detectFormat(outputPath);
|
|
160
|
+
switch (outputFormat) {
|
|
161
|
+
case 'five':
|
|
162
|
+
await this.saveFiveFile(outputPath, inputFile.bytecode, inputFile.abi || { functions: {}, fields: [], version: '1.0' }, options.preserveMetadata ? inputFile.metadata : undefined);
|
|
163
|
+
break;
|
|
164
|
+
case 'bin':
|
|
165
|
+
await this.saveBinFile(outputPath, inputFile.bytecode);
|
|
166
|
+
break;
|
|
167
|
+
default:
|
|
168
|
+
throw new FiveFileError(`Cannot convert to format: ${outputFormat}`, 'CONVERSION_UNSUPPORTED', { inputPath, outputPath, outputFormat });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
clearCache() {
|
|
172
|
+
this.fileCache.clear();
|
|
173
|
+
}
|
|
174
|
+
getCacheStats() {
|
|
175
|
+
return {
|
|
176
|
+
size: this.fileCache.size,
|
|
177
|
+
keys: Array.from(this.fileCache.keys())
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
async loadFiveFile(filePath, options) {
|
|
181
|
+
try {
|
|
182
|
+
const fileContent = await readFile(filePath, 'utf8');
|
|
183
|
+
const stats = await stat(filePath);
|
|
184
|
+
let fiveFile;
|
|
185
|
+
try {
|
|
186
|
+
fiveFile = JSON.parse(fileContent);
|
|
187
|
+
}
|
|
188
|
+
catch (parseError) {
|
|
189
|
+
// Check if it's a binary file (starts with FIVE magic bytes)
|
|
190
|
+
// We need to read it as a buffer to check magic bytes
|
|
191
|
+
const buffer = await readFile(filePath);
|
|
192
|
+
const magic = buffer.subarray(0, 4).toString('utf8');
|
|
193
|
+
if (magic === 'FIVE') {
|
|
194
|
+
// It's a binary .five file!
|
|
195
|
+
// Treat as binary file; full TS parser not available
|
|
196
|
+
return {
|
|
197
|
+
bytecode: new Uint8Array(buffer),
|
|
198
|
+
format: 'bin', // Treat as bin for now, but it's actually binary .five
|
|
199
|
+
sourceFile: filePath,
|
|
200
|
+
size: stats.size,
|
|
201
|
+
metadata: {
|
|
202
|
+
isBinaryFive: true
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
throw new FiveFileError('Invalid JSON in .five file and not a valid binary format', 'JSON_PARSE_ERROR', { filePath, parseError });
|
|
207
|
+
}
|
|
208
|
+
// Validate required fields
|
|
209
|
+
if (!fiveFile.bytecode) {
|
|
210
|
+
throw new FiveFileError('Missing bytecode field in .five file', 'INVALID_FORMAT', { filePath });
|
|
211
|
+
}
|
|
212
|
+
if (!fiveFile.abi) {
|
|
213
|
+
throw new FiveFileError('Missing abi field in .five file', 'INVALID_FORMAT', { filePath });
|
|
214
|
+
}
|
|
215
|
+
// Decode base64 bytecode
|
|
216
|
+
let bytecode;
|
|
217
|
+
try {
|
|
218
|
+
bytecode = new Uint8Array(Buffer.from(fiveFile.bytecode, 'base64'));
|
|
219
|
+
}
|
|
220
|
+
catch (decodeError) {
|
|
221
|
+
throw new FiveFileError('Invalid base64 bytecode in .five file', 'BYTECODE_DECODE_ERROR', { filePath, decodeError });
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
bytecode,
|
|
225
|
+
abi: fiveFile.abi,
|
|
226
|
+
metadata: fiveFile.metadata,
|
|
227
|
+
debug: fiveFile.debug,
|
|
228
|
+
format: 'five',
|
|
229
|
+
sourceFile: filePath,
|
|
230
|
+
size: stats.size
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
if (error instanceof FiveFileError) {
|
|
235
|
+
throw error;
|
|
236
|
+
}
|
|
237
|
+
throw new FiveFileError(`Failed to load .five file: ${error instanceof Error ? error.message : 'Unknown error'}`, 'LOAD_FAILED', { filePath, error });
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
async loadBinFile(filePath, options) {
|
|
241
|
+
try {
|
|
242
|
+
const bytecode = await readFile(filePath);
|
|
243
|
+
const stats = await stat(filePath);
|
|
244
|
+
return {
|
|
245
|
+
bytecode: new Uint8Array(bytecode),
|
|
246
|
+
format: 'bin',
|
|
247
|
+
sourceFile: filePath,
|
|
248
|
+
size: stats.size
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
throw new FiveFileError(`Failed to load .bin file: ${error instanceof Error ? error.message : 'Unknown error'}`, 'LOAD_FAILED', { filePath, error });
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
async loadSourceFile(filePath, options) {
|
|
256
|
+
try {
|
|
257
|
+
const sourceCode = await readFile(filePath, 'utf8');
|
|
258
|
+
const stats = await stat(filePath);
|
|
259
|
+
const sourceBuffer = Buffer.from(sourceCode, 'utf8');
|
|
260
|
+
return {
|
|
261
|
+
bytecode: new Uint8Array(sourceBuffer),
|
|
262
|
+
format: 'v',
|
|
263
|
+
sourceFile: filePath,
|
|
264
|
+
size: stats.size,
|
|
265
|
+
metadata: {
|
|
266
|
+
isSourceCode: true,
|
|
267
|
+
sourceLength: sourceCode.length
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
throw new FiveFileError(`Failed to load .v file: ${error instanceof Error ? error.message : 'Unknown error'}`, 'LOAD_FAILED', { filePath, error });
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
async validateFilePath(filePath) {
|
|
276
|
+
if (!filePath || typeof filePath !== 'string') {
|
|
277
|
+
throw new FiveFileError('File path is required and must be a string', 'INVALID_PATH', { filePath });
|
|
278
|
+
}
|
|
279
|
+
const info = await this.getFileInfo(filePath);
|
|
280
|
+
if (!info.exists) {
|
|
281
|
+
throw new FiveFileError(`File does not exist: ${filePath}`, 'FILE_NOT_FOUND', { filePath });
|
|
282
|
+
}
|
|
283
|
+
const format = this.detectFormat(filePath);
|
|
284
|
+
if (format === 'unknown') {
|
|
285
|
+
throw new FiveFileError(`Unsupported file extension. Supported: ${this.supportedExtensions.join(', ')}`, 'UNSUPPORTED_EXTENSION', { filePath, supportedExtensions: this.supportedExtensions });
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
async getCompilerVersion() {
|
|
289
|
+
return '1.0.0';
|
|
290
|
+
}
|
|
291
|
+
arraysEqual(a, b) {
|
|
292
|
+
return a.length === b.length && a.every((val, i) => val === b[i]);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
export class FiveFileError extends Error {
|
|
296
|
+
code;
|
|
297
|
+
details;
|
|
298
|
+
constructor(message, code, details) {
|
|
299
|
+
super(message);
|
|
300
|
+
this.name = 'FiveFileError';
|
|
301
|
+
this.code = code;
|
|
302
|
+
this.details = details;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
export async function loadFiveFile(filePath) {
|
|
306
|
+
const manager = FiveFileManager.getInstance();
|
|
307
|
+
return manager.loadFile(filePath, { validateFormat: true });
|
|
308
|
+
}
|
|
309
|
+
export async function saveFiveFile(filePath, bytecode, abi, metadata, disassembly) {
|
|
310
|
+
const manager = FiveFileManager.getInstance();
|
|
311
|
+
return manager.saveFiveFile(filePath, bytecode, abi, metadata, disassembly);
|
|
312
|
+
}
|
|
313
|
+
export async function extractBytecode(filePath) {
|
|
314
|
+
const file = await loadFiveFile(filePath);
|
|
315
|
+
return file.bytecode;
|
|
316
|
+
}
|
|
317
|
+
export async function extractABI(filePath) {
|
|
318
|
+
const file = await loadFiveFile(filePath);
|
|
319
|
+
if (!file.abi) {
|
|
320
|
+
throw new FiveFileError(`No ABI available in ${file.format} file`, 'NO_ABI', { filePath, format: file.format });
|
|
321
|
+
}
|
|
322
|
+
return file.abi;
|
|
323
|
+
}
|
|
324
|
+
export async function validateFiveFile(filePath) {
|
|
325
|
+
const manager = FiveFileManager.getInstance();
|
|
326
|
+
const file = await manager.loadFile(filePath);
|
|
327
|
+
return manager.validateFileContent(file);
|
|
328
|
+
}
|
|
329
|
+
//# sourceMappingURL=FiveFileManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FiveFileManager.js","sourceRoot":"","sources":["../../src/utils/FiveFileManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Five CLI ASCII Art and Visual Effects
|
|
3
|
+
*
|
|
4
|
+
* Cool 2000s-style terminal aesthetics with colorful ASCII art,
|
|
5
|
+
* gradients, and retro visual effects.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Main 5IVE ASCII art banner with demoscene styling
|
|
9
|
+
* Enhanced step by step following user's iterative approach
|
|
10
|
+
*/
|
|
11
|
+
export declare function getFiveASCIIBanner(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Alternative retro computer style banner
|
|
14
|
+
*/
|
|
15
|
+
export declare function getRetroComputerBanner(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Compact matrix/digital style banner
|
|
18
|
+
*/
|
|
19
|
+
export declare function getMatrixStyleBanner(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Alternative stylized 5IVE logo for compact display
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCompactFiveLogo(): string;
|
|
24
|
+
/**
|
|
25
|
+
* 2000s-style welcome message with decorative elements
|
|
26
|
+
*/
|
|
27
|
+
export declare function getWelcomeMessage(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Stylized section header with 2000s aesthetics
|
|
30
|
+
*/
|
|
31
|
+
export declare function createSectionHeader(title: string, color?: 'cyan' | 'magenta' | 'yellow' | 'green'): string;
|
|
32
|
+
/**
|
|
33
|
+
* Retro-style command example with syntax highlighting
|
|
34
|
+
*/
|
|
35
|
+
export declare function styleCommandExample(command: string, description: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* 2000s-style loading animation frames
|
|
38
|
+
*/
|
|
39
|
+
export declare const loadingFrames: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Status indicator with retro styling
|
|
42
|
+
*/
|
|
43
|
+
export declare function getStatusIndicator(status: 'success' | 'error' | 'warning' | 'info'): string;
|
|
44
|
+
/**
|
|
45
|
+
* Retro progress bar
|
|
46
|
+
*/
|
|
47
|
+
export declare function createProgressBar(progress: number, width?: number): string;
|
|
48
|
+
/**
|
|
49
|
+
* Test responsive banner at different widths (for debugging)
|
|
50
|
+
*/
|
|
51
|
+
export declare function testResponsiveBanner(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Network status display with colors
|
|
54
|
+
*/
|
|
55
|
+
export declare function getNetworkDisplay(network: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Error message with retro styling
|
|
58
|
+
*/
|
|
59
|
+
export declare function styleError(message: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Success message with celebration
|
|
62
|
+
*/
|
|
63
|
+
export declare function styleSuccess(message: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* Info box with decorative border
|
|
66
|
+
*/
|
|
67
|
+
export declare function createInfoBox(title: string, content: string[]): string;
|
|
68
|
+
/**
|
|
69
|
+
* Command not found with suggestions
|
|
70
|
+
*/
|
|
71
|
+
export declare function styleCommandNotFound(command: string, suggestions: string[]): string;
|
|
72
|
+
//# sourceMappingURL=ascii-art.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ascii-art.d.ts","sourceRoot":"","sources":["../../src/utils/ascii-art.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAmH3C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAU/C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAY7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAY1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAgB,GAAG,MAAM,CAQlH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAchF;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,UAWzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAS3F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CAS9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAkB3C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAWtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAOnF"}
|