@ecmaos/coreutils 0.5.1 → 0.5.3

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.
@@ -1,5 +1,5 @@
1
1
 
2
2
 
3
- > @ecmaos/coreutils@0.5.1 build /home/archmag0s/code/ecmaos/core/utils
3
+ > @ecmaos/coreutils@0.5.3 build /home/archmag0s/code/ecmaos/core/utils
4
4
  > tsc
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @ecmaos/coreutils
2
2
 
3
+ ## 0.5.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 9864d20: Major Features:
8
+ Git coreutil: New git command implementation (core/utils/src/commands/git.ts - 843 lines)
9
+ Export command: Environment variable management with HOSTNAME set in shell environment
10
+ WASM/WASI improvements: Enhanced WASI support with preview1 and preview2 implementations
11
+ Web Kernel → Web OS: Renamed across documentation and meta tags
12
+ Improvements:
13
+ BIOS improvements (WIP) and UI HTML sync
14
+ Terminal command refactoring and structure changes
15
+ Documentation updates (392 files changed, mostly doc regeneration)
16
+ - Updated dependencies [9864d20]
17
+ - @ecmaos/types@0.7.4
18
+
19
+ ## 0.5.2
20
+
21
+ ### Patch Changes
22
+
23
+ - 472a7f1: feat: i18n filesystem loading, browser detection, and Spanish translations
24
+
25
+ - Load locales from filesystem at /usr/share/locales
26
+ - Auto-detect browser language and configure locale
27
+ - Add Spanish translations for all namespaces
28
+ - Add dd coreutil command
29
+ - Fix shell command not found errors
30
+ - Update dependencies (turbo 2.7.5)
31
+
32
+ - Updated dependencies [472a7f1]
33
+ - @ecmaos/types@0.7.3
34
+
3
35
  ## 0.5.1
4
36
 
5
37
  ### Patch Changes
@@ -0,0 +1,4 @@
1
+ import type { Kernel, Shell, Terminal } from '@ecmaos/types';
2
+ import { TerminalCommand } from '../shared/terminal-command.js';
3
+ export declare function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal): TerminalCommand;
4
+ //# sourceMappingURL=dd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dd.d.ts","sourceRoot":"","sources":["../../src/commands/dd.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAoG/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA4b/F"}
@@ -0,0 +1,525 @@
1
+ import path from 'path';
2
+ import { TerminalCommand } from '../shared/terminal-command.js';
3
+ import { writelnStderr } from '../shared/helpers.js';
4
+ function printUsage(process, terminal) {
5
+ const usage = `Usage: dd [OPERAND]...
6
+ Copy a file, converting and formatting according to the operands.
7
+
8
+ Operands:
9
+
10
+ if=FILE read from FILE instead of stdin
11
+ of=FILE write to FILE instead of stdout
12
+ bs=BYTES read and write up to BYTES bytes at a time
13
+ ibs=BYTES read up to BYTES bytes at a time (default: 512)
14
+ obs=BYTES write BYTES bytes at a time (default: 512)
15
+ count=N copy only N input blocks
16
+ skip=N skip N input blocks before copying
17
+ seek=N skip N output blocks before copying
18
+ conv=CONVS convert the file as per the comma separated symbol list:
19
+ ucase convert to uppercase
20
+ lcase convert to lowercase
21
+ swab swap every pair of input bytes
22
+ noerror continue after read errors
23
+ notrunc do not truncate the output file
24
+ sync pad every input block to ibs
25
+
26
+ status=LEVEL
27
+ The LEVEL of information to print to stderr:
28
+ 'none' suppress all output
29
+ 'noxfer' suppress final transfer statistics
30
+ 'progress' show periodic transfer statistics
31
+
32
+ --help display this help and exit`;
33
+ writelnStderr(process, terminal, usage);
34
+ }
35
+ function parseBytes(value) {
36
+ const match = value.match(/^([0-9]+)([kmgKMG]?)$/);
37
+ if (!match?.[1])
38
+ return NaN;
39
+ const num = parseInt(match[1], 10);
40
+ if (isNaN(num))
41
+ return NaN;
42
+ const suffix = (match[2] || '').toLowerCase();
43
+ switch (suffix) {
44
+ case 'k':
45
+ return num * 1024;
46
+ case 'm':
47
+ return num * 1024 * 1024;
48
+ case 'g':
49
+ return num * 1024 * 1024 * 1024;
50
+ default:
51
+ return num;
52
+ }
53
+ }
54
+ function parseBlocks(value) {
55
+ const num = parseInt(value, 10);
56
+ return isNaN(num) ? NaN : num;
57
+ }
58
+ function applyConversions(data, conversions) {
59
+ let result = new Uint8Array(data);
60
+ for (const conv of conversions) {
61
+ switch (conv) {
62
+ case 'ucase': {
63
+ const text = new TextDecoder().decode(result);
64
+ result = new TextEncoder().encode(text.toUpperCase());
65
+ break;
66
+ }
67
+ case 'lcase': {
68
+ const text = new TextDecoder().decode(result);
69
+ result = new TextEncoder().encode(text.toLowerCase());
70
+ break;
71
+ }
72
+ case 'swab': {
73
+ const swapped = new Uint8Array(result.length);
74
+ for (let i = 0; i < result.length - 1; i += 2) {
75
+ const a = result[i];
76
+ const b = result[i + 1];
77
+ if (a !== undefined && b !== undefined) {
78
+ swapped[i] = b;
79
+ swapped[i + 1] = a;
80
+ }
81
+ }
82
+ if (result.length % 2 === 1) {
83
+ const last = result[result.length - 1];
84
+ if (last !== undefined) {
85
+ swapped[result.length - 1] = last;
86
+ }
87
+ }
88
+ result = swapped;
89
+ break;
90
+ }
91
+ }
92
+ }
93
+ return result;
94
+ }
95
+ export function createCommand(kernel, shell, terminal) {
96
+ return new TerminalCommand({
97
+ command: 'dd',
98
+ description: 'Copy and convert files with block-level operations',
99
+ kernel,
100
+ shell,
101
+ terminal,
102
+ run: async (pid, argv) => {
103
+ const process = kernel.processes.get(pid);
104
+ if (!process)
105
+ return 1;
106
+ if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
107
+ printUsage(process, terminal);
108
+ return 0;
109
+ }
110
+ let inputFile;
111
+ let outputFile;
112
+ let blockSize;
113
+ let inputBlockSize = 512;
114
+ let outputBlockSize = 512;
115
+ let count;
116
+ let skip = 0;
117
+ let seek = 0;
118
+ const conversions = [];
119
+ let status = 'noxfer';
120
+ let noError = false;
121
+ let noTrunc = false;
122
+ let sync = false;
123
+ for (const arg of argv) {
124
+ if (!arg)
125
+ continue;
126
+ if (arg === '--help' || arg === '-h') {
127
+ printUsage(process, terminal);
128
+ return 0;
129
+ }
130
+ else if (arg.startsWith('if=')) {
131
+ inputFile = arg.slice(3);
132
+ }
133
+ else if (arg.startsWith('of=')) {
134
+ outputFile = arg.slice(3);
135
+ }
136
+ else if (arg.startsWith('bs=')) {
137
+ const bytes = parseBytes(arg.slice(3));
138
+ if (isNaN(bytes)) {
139
+ await writelnStderr(process, terminal, `dd: invalid block size: ${arg.slice(3)}`);
140
+ return 1;
141
+ }
142
+ blockSize = bytes;
143
+ inputBlockSize = bytes;
144
+ outputBlockSize = bytes;
145
+ }
146
+ else if (arg.startsWith('ibs=')) {
147
+ const bytes = parseBytes(arg.slice(4));
148
+ if (isNaN(bytes)) {
149
+ await writelnStderr(process, terminal, `dd: invalid input block size: ${arg.slice(4)}`);
150
+ return 1;
151
+ }
152
+ inputBlockSize = bytes;
153
+ }
154
+ else if (arg.startsWith('obs=')) {
155
+ const bytes = parseBytes(arg.slice(4));
156
+ if (isNaN(bytes)) {
157
+ await writelnStderr(process, terminal, `dd: invalid output block size: ${arg.slice(4)}`);
158
+ return 1;
159
+ }
160
+ outputBlockSize = bytes;
161
+ }
162
+ else if (arg.startsWith('count=')) {
163
+ const blocks = parseBlocks(arg.slice(6));
164
+ if (isNaN(blocks)) {
165
+ await writelnStderr(process, terminal, `dd: invalid count: ${arg.slice(6)}`);
166
+ return 1;
167
+ }
168
+ count = blocks;
169
+ }
170
+ else if (arg.startsWith('skip=')) {
171
+ const blocks = parseBlocks(arg.slice(5));
172
+ if (isNaN(blocks)) {
173
+ await writelnStderr(process, terminal, `dd: invalid skip: ${arg.slice(5)}`);
174
+ return 1;
175
+ }
176
+ skip = blocks;
177
+ }
178
+ else if (arg.startsWith('seek=')) {
179
+ const blocks = parseBlocks(arg.slice(5));
180
+ if (isNaN(blocks)) {
181
+ await writelnStderr(process, terminal, `dd: invalid seek: ${arg.slice(5)}`);
182
+ return 1;
183
+ }
184
+ seek = blocks;
185
+ }
186
+ else if (arg.startsWith('conv=')) {
187
+ const convs = arg.slice(5).split(',').map(c => c.trim());
188
+ for (const conv of convs) {
189
+ if (['ucase', 'lcase', 'swab', 'noerror', 'notrunc', 'sync'].includes(conv)) {
190
+ if (conv === 'noerror')
191
+ noError = true;
192
+ else if (conv === 'notrunc')
193
+ noTrunc = true;
194
+ else if (conv === 'sync')
195
+ sync = true;
196
+ else
197
+ conversions.push(conv);
198
+ }
199
+ else {
200
+ await writelnStderr(process, terminal, `dd: invalid conversion: ${conv}`);
201
+ return 1;
202
+ }
203
+ }
204
+ }
205
+ else if (arg.startsWith('status=')) {
206
+ const level = arg.slice(7);
207
+ if (['none', 'noxfer', 'progress'].includes(level)) {
208
+ status = level;
209
+ }
210
+ else {
211
+ await writelnStderr(process, terminal, `dd: invalid status level: ${level}`);
212
+ return 1;
213
+ }
214
+ }
215
+ else {
216
+ await writelnStderr(process, terminal, `dd: invalid operand: ${arg}`);
217
+ await writelnStderr(process, terminal, "Try 'dd --help' for more information.");
218
+ return 1;
219
+ }
220
+ }
221
+ if (blockSize !== undefined) {
222
+ inputBlockSize = blockSize;
223
+ outputBlockSize = blockSize;
224
+ }
225
+ let inputFileHandle;
226
+ let inputReader;
227
+ let outputFileHandle;
228
+ let outputWriter;
229
+ try {
230
+ if (inputFile) {
231
+ const inputPath = path.resolve(shell.cwd, inputFile);
232
+ const isDevice = inputPath.startsWith('/dev');
233
+ inputFileHandle = await shell.context.fs.promises.open(inputPath, isDevice ? undefined : 'r');
234
+ }
235
+ else {
236
+ if (!process.stdin) {
237
+ await writelnStderr(process, terminal, 'dd: stdin not available');
238
+ return 1;
239
+ }
240
+ inputReader = process.stdin.getReader();
241
+ }
242
+ if (outputFile) {
243
+ const outputPath = path.resolve(shell.cwd, outputFile);
244
+ const flags = noTrunc ? 'r+' : 'w';
245
+ outputFileHandle = await shell.context.fs.promises.open(outputPath, flags).catch(async () => {
246
+ if (noTrunc) {
247
+ return await shell.context.fs.promises.open(outputPath, 'w');
248
+ }
249
+ throw new Error(`Cannot open ${outputFile}`);
250
+ });
251
+ let outputPosition = 0;
252
+ if (seek > 0) {
253
+ outputPosition = seek * outputBlockSize;
254
+ const zeros = new Uint8Array(outputPosition);
255
+ await outputFileHandle.write(zeros);
256
+ }
257
+ outputWriter = {
258
+ write: async (chunk) => {
259
+ await outputFileHandle.write(chunk);
260
+ },
261
+ releaseLock: async () => {
262
+ await outputFileHandle.close();
263
+ }
264
+ };
265
+ }
266
+ else {
267
+ if (!process.stdout) {
268
+ await writelnStderr(process, terminal, 'dd: stdout not available');
269
+ return 1;
270
+ }
271
+ outputWriter = process.stdout.getWriter();
272
+ if (seek > 0 && outputWriter) {
273
+ const seekBytes = seek * outputBlockSize;
274
+ const zeros = new Uint8Array(seekBytes);
275
+ await outputWriter.write(zeros);
276
+ }
277
+ }
278
+ if (!outputWriter) {
279
+ await writelnStderr(process, terminal, 'dd: no output writer available');
280
+ return 1;
281
+ }
282
+ let totalBytesRead = 0;
283
+ let totalBytesWritten = 0;
284
+ let blocksRead = 0;
285
+ let blocksWritten = 0;
286
+ if (inputFileHandle && inputFile) {
287
+ const inputPath = path.resolve(shell.cwd, inputFile);
288
+ const isDevice = inputPath.startsWith('/dev');
289
+ if (isDevice) {
290
+ const buffer = new Uint8Array(inputBlockSize);
291
+ let skipBytes = skip * inputBlockSize;
292
+ let skipped = 0;
293
+ while (true) {
294
+ if (count !== undefined && blocksRead >= count) {
295
+ break;
296
+ }
297
+ const result = await inputFileHandle.read(buffer);
298
+ const bytesRead = result.bytesRead;
299
+ if (bytesRead === 0) {
300
+ if (sync && blocksRead > 0) {
301
+ const padded = new Uint8Array(inputBlockSize);
302
+ let data = padded;
303
+ if (conversions.length > 0) {
304
+ data = applyConversions(data, conversions);
305
+ }
306
+ await outputWriter.write(data);
307
+ totalBytesWritten += data.length;
308
+ blocksWritten++;
309
+ }
310
+ break;
311
+ }
312
+ let data = buffer.subarray(0, bytesRead);
313
+ if (skipBytes > 0) {
314
+ const toSkip = Math.min(data.length, skipBytes - skipped);
315
+ skipped += toSkip;
316
+ if (toSkip < data.length) {
317
+ data = data.subarray(toSkip);
318
+ }
319
+ else {
320
+ continue;
321
+ }
322
+ }
323
+ totalBytesRead += data.length;
324
+ blocksRead++;
325
+ if (data.length < inputBlockSize && sync) {
326
+ const padded = new Uint8Array(inputBlockSize);
327
+ padded.set(data);
328
+ data = padded;
329
+ }
330
+ if (conversions.length > 0) {
331
+ const converted = applyConversions(data, conversions);
332
+ data = new Uint8Array(converted);
333
+ }
334
+ if (data.length > outputBlockSize) {
335
+ let offset = 0;
336
+ while (offset < data.length) {
337
+ const chunk = data.slice(offset, offset + outputBlockSize);
338
+ await outputWriter.write(chunk);
339
+ totalBytesWritten += chunk.length;
340
+ blocksWritten++;
341
+ offset += outputBlockSize;
342
+ }
343
+ }
344
+ else {
345
+ await outputWriter.write(data);
346
+ totalBytesWritten += data.length;
347
+ blocksWritten++;
348
+ }
349
+ if (status === 'progress' && blocksRead % 100 === 0) {
350
+ await writelnStderr(process, terminal, `dd: ${blocksRead} blocks read, ${blocksWritten} blocks written`);
351
+ }
352
+ }
353
+ }
354
+ else {
355
+ const stat = await shell.context.fs.promises.stat(inputPath);
356
+ const fileSize = stat.size;
357
+ let inputPosition = 0;
358
+ if (skip > 0) {
359
+ inputPosition = skip * inputBlockSize;
360
+ if (inputPosition > fileSize) {
361
+ inputPosition = fileSize;
362
+ }
363
+ }
364
+ const buffer = new Uint8Array(inputBlockSize);
365
+ while (true) {
366
+ if (count !== undefined && blocksRead >= count) {
367
+ break;
368
+ }
369
+ if (inputPosition >= fileSize) {
370
+ if (sync && blocksRead > 0) {
371
+ const padded = new Uint8Array(inputBlockSize);
372
+ let data = padded;
373
+ if (conversions.length > 0) {
374
+ data = applyConversions(data, conversions);
375
+ }
376
+ await outputWriter.write(data);
377
+ totalBytesWritten += data.length;
378
+ blocksWritten++;
379
+ }
380
+ break;
381
+ }
382
+ const bytesToRead = Math.min(inputBlockSize, fileSize - inputPosition);
383
+ await inputFileHandle.read(buffer, 0, bytesToRead, inputPosition);
384
+ let data = new Uint8Array(buffer.buffer, buffer.byteOffset, bytesToRead);
385
+ totalBytesRead += data.length;
386
+ blocksRead++;
387
+ inputPosition += bytesToRead;
388
+ if (data.length < inputBlockSize && sync) {
389
+ const padded = new Uint8Array(inputBlockSize);
390
+ padded.set(data);
391
+ data = padded;
392
+ }
393
+ if (conversions.length > 0) {
394
+ const converted = applyConversions(data, conversions);
395
+ data = new Uint8Array(converted);
396
+ }
397
+ if (data.length > outputBlockSize) {
398
+ let offset = 0;
399
+ while (offset < data.length) {
400
+ const chunk = data.slice(offset, offset + outputBlockSize);
401
+ await outputWriter.write(chunk);
402
+ totalBytesWritten += chunk.length;
403
+ blocksWritten++;
404
+ offset += outputBlockSize;
405
+ }
406
+ }
407
+ else {
408
+ await outputWriter.write(data);
409
+ totalBytesWritten += data.length;
410
+ blocksWritten++;
411
+ }
412
+ if (status === 'progress' && blocksRead % 100 === 0) {
413
+ await writelnStderr(process, terminal, `dd: ${blocksRead} blocks read, ${blocksWritten} blocks written`);
414
+ }
415
+ }
416
+ }
417
+ }
418
+ else if (inputReader) {
419
+ if (skip > 0) {
420
+ const skipBytes = skip * inputBlockSize;
421
+ let skipped = 0;
422
+ while (skipped < skipBytes) {
423
+ const { done, value } = await inputReader.read();
424
+ if (done)
425
+ break;
426
+ if (value) {
427
+ skipped += value.length;
428
+ }
429
+ }
430
+ }
431
+ let partialBlock;
432
+ while (true) {
433
+ if (count !== undefined && blocksRead >= count) {
434
+ break;
435
+ }
436
+ let data;
437
+ if (partialBlock) {
438
+ data = partialBlock;
439
+ partialBlock = undefined;
440
+ }
441
+ else {
442
+ const result = await inputReader.read();
443
+ if (result.done) {
444
+ if (sync && blocksRead > 0) {
445
+ const padded = new Uint8Array(inputBlockSize);
446
+ data = padded;
447
+ }
448
+ else {
449
+ break;
450
+ }
451
+ }
452
+ else {
453
+ data = result.value;
454
+ }
455
+ }
456
+ if (!data || data.length === 0) {
457
+ if (sync && blocksRead > 0) {
458
+ data = new Uint8Array(inputBlockSize);
459
+ }
460
+ else {
461
+ break;
462
+ }
463
+ }
464
+ totalBytesRead += data.length;
465
+ blocksRead++;
466
+ if (data.length < inputBlockSize && sync) {
467
+ const padded = new Uint8Array(inputBlockSize);
468
+ padded.set(data);
469
+ data = padded;
470
+ }
471
+ if (conversions.length > 0) {
472
+ data = applyConversions(data, conversions);
473
+ }
474
+ if (!data) {
475
+ break;
476
+ }
477
+ if (data.length > outputBlockSize) {
478
+ let offset = 0;
479
+ while (offset < data.length) {
480
+ const chunk = data.slice(offset, offset + outputBlockSize);
481
+ await outputWriter.write(chunk);
482
+ totalBytesWritten += chunk.length;
483
+ blocksWritten++;
484
+ offset += outputBlockSize;
485
+ }
486
+ }
487
+ else {
488
+ await outputWriter.write(data);
489
+ totalBytesWritten += data.length;
490
+ blocksWritten++;
491
+ }
492
+ if (status === 'progress' && blocksRead % 100 === 0) {
493
+ await writelnStderr(process, terminal, `dd: ${blocksRead} blocks read, ${blocksWritten} blocks written`);
494
+ }
495
+ }
496
+ }
497
+ if (status !== 'none') {
498
+ await writelnStderr(process, terminal, `${blocksRead}+${Math.floor((totalBytesRead % inputBlockSize) / (inputBlockSize || 1))} records in`);
499
+ await writelnStderr(process, terminal, `${blocksWritten}+${Math.floor((totalBytesWritten % outputBlockSize) / (outputBlockSize || 1))} records out`);
500
+ await writelnStderr(process, terminal, `${totalBytesWritten} bytes copied`);
501
+ }
502
+ return 0;
503
+ }
504
+ catch (error) {
505
+ if (!noError) {
506
+ await writelnStderr(process, terminal, `dd: ${error instanceof Error ? error.message : 'Unknown error'}`);
507
+ return 1;
508
+ }
509
+ return 0;
510
+ }
511
+ finally {
512
+ if (inputFileHandle) {
513
+ await inputFileHandle.close();
514
+ }
515
+ if (inputReader) {
516
+ inputReader.releaseLock();
517
+ }
518
+ if (outputWriter && 'releaseLock' in outputWriter) {
519
+ await outputWriter.releaseLock();
520
+ }
521
+ }
522
+ }
523
+ });
524
+ }
525
+ //# sourceMappingURL=dd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dd.js","sourceRoot":"","sources":["../../src/commands/dd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Kernel, Shell, Terminal } from '@ecmaos/types';
2
+ import { TerminalCommand } from '../shared/terminal-command.js';
3
+ export declare function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal): TerminalCommand;
4
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAuwB/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA8D/F"}