instrumentality 0.0.10 → 0.0.12

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 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
package/dist/base.js CHANGED
@@ -100,6 +100,8 @@ export const BASE122_ILLEGAL_INDEX = {
100
100
  };
101
101
  /** Shortened payload marker used when escaping an illegal 7-bit value and no subsequent 7-bit chunk is available (the current chunk is reused as payload). */
102
102
  export const BASE122_SHORT = 0b111;
103
+ /** Lazy-initialized TextDecoder instance used for decoding base-122 encoded data. */
104
+ let DECODER;
103
105
  /**
104
106
  * Encodes indexed data into a base-122 representation.
105
107
  *
@@ -140,7 +142,7 @@ export function encode122(data_) {
140
142
  out[outIndex++] = 0b10000000 | (payload & 0b00111111);
141
143
  }
142
144
  }
143
- return new TextDecoder("utf-8", { fatal: true }).decode(out.subarray(0, outIndex));
145
+ return (DECODER ??= new TextDecoder("utf-8", { fatal: true })).decode(out.subarray(0, outIndex));
144
146
  }
145
147
  /**
146
148
  * Decodes a base-122 encoded string back into its original byte representation.
package/dist/road.d.ts CHANGED
@@ -202,12 +202,17 @@ export declare class File extends Road {
202
202
  writeAtomicSync(data_: Buffer | string, options_?: fs.WriteFileOptions): void;
203
203
  write(data_: Buffer | string, options_?: fs.WriteFileOptions): Promise<void>;
204
204
  writeSync(data_: Buffer | string, options_?: fs.WriteFileOptions): void;
205
+ writePast(offset_: number, data_: Buffer | string): Promise<void>;
206
+ writePastSync(offset_: number, data_: Buffer | string): void;
207
+ truncWritePast(offset_: number, data_: Buffer | string): Promise<void>;
208
+ truncWritePastSync(offset_: number, data_: Buffer | string): void;
205
209
  append(data_: Buffer | string, options_?: fs.WriteFileOptions): Promise<void>;
206
210
  appendSync(data_: Buffer | string, options_?: fs.WriteFileOptions): void;
207
211
  check(): Promise<boolean>;
208
212
  checkSync(): boolean;
209
213
  isFile(): this is File;
210
214
  }
215
+ export declare function file(...args: ConstructorParameters<typeof File>): File;
211
216
  /** Helper type for filtering {@link Road} instances. */
212
217
  export type filter_t<T extends Road> = ((road: Road) => road is T);
213
218
  export declare class Folder extends Road {
@@ -254,6 +259,8 @@ export declare class Folder extends Road {
254
259
  isDir(): this is Folder;
255
260
  isDirectory(): this is Folder;
256
261
  }
262
+ export declare function folder(...args: ConstructorParameters<typeof Folder>): Folder;
263
+ export declare function dir(...args: ConstructorParameters<typeof Folder>): Folder;
257
264
  export declare function sysRoot(): Folder;
258
265
  export declare function home(): Folder;
259
266
  export declare function tmp(): Folder;
@@ -278,6 +285,7 @@ export declare class SymbolicLink extends Road {
278
285
  isSymbolicLink(): this is SymbolicLink;
279
286
  }
280
287
  export { SymbolicLink as Symlink };
288
+ export declare function symlink(...args: ConstructorParameters<typeof SymbolicLink>): SymbolicLink;
281
289
  export declare abstract class UnusableRoad extends Road {
282
290
  readonly mutable: false;
283
291
  size(): Promise<0>;
@@ -310,19 +318,23 @@ export declare class BlockDevice extends UnusableRoad {
310
318
  checkSync(): boolean;
311
319
  isBlockDevice(): this is BlockDevice;
312
320
  }
321
+ export declare function blockDevice(...args: ConstructorParameters<typeof BlockDevice>): BlockDevice;
313
322
  export declare class CharacterDevice extends UnusableRoad {
314
323
  check(): Promise<boolean>;
315
324
  checkSync(): boolean;
316
325
  isCharacterDevice(): this is CharacterDevice;
317
326
  }
327
+ export declare function characterDevice(...args: ConstructorParameters<typeof CharacterDevice>): CharacterDevice;
318
328
  export declare class Fifo extends UnusableRoad {
319
329
  check(): Promise<boolean>;
320
330
  checkSync(): boolean;
321
331
  isFifo(): this is Fifo;
322
332
  }
333
+ export declare function fifo(...args: ConstructorParameters<typeof Fifo>): Fifo;
323
334
  export declare class Socket extends UnusableRoad {
324
335
  check(): Promise<boolean>;
325
336
  checkSync(): boolean;
326
337
  isSocket(): this is Socket;
327
338
  }
339
+ export declare function socket(...args: ConstructorParameters<typeof Socket>): Socket;
328
340
  //# sourceMappingURL=road.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"road.d.ts","sourceRoot":"","sources":["../src/road.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"road.d.ts","sourceRoot":"","sources":["../src/road.ts"],"names":[],"mappings":"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"}
package/dist/road.js CHANGED
@@ -332,7 +332,7 @@ export class File extends Road {
332
332
  return fs.readFileSync(this.isAt, options_);
333
333
  }
334
334
  async *itBuff(options_) {
335
- const stream = fs.createReadStream(this.isAt, { ...options_, encoding: undefined });
335
+ const stream = fs.createReadStream(this.isAt, { ...options_ });
336
336
  try {
337
337
  for await (const chunk of stream)
338
338
  yield chunk;
@@ -453,6 +453,52 @@ export class File extends Road {
453
453
  using _ = this.lockSync();
454
454
  fs.writeFileSync(this.isAt, data_, options_);
455
455
  }
456
+ async writePast(offset_, data_) {
457
+ using _ = await this.lock();
458
+ const fd = await fp.open(this.isAt, 'r+');
459
+ try {
460
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_;
461
+ await fd.write(buf, 0, buf.length, offset_);
462
+ }
463
+ finally {
464
+ await fd.close();
465
+ }
466
+ }
467
+ writePastSync(offset_, data_) {
468
+ using _ = this.lockSync();
469
+ const fd = fs.openSync(this.isAt, 'r+');
470
+ try {
471
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_;
472
+ fs.writeSync(fd, buf, 0, buf.length, offset_);
473
+ }
474
+ finally {
475
+ fs.closeSync(fd);
476
+ }
477
+ }
478
+ async truncWritePast(offset_, data_) {
479
+ using _ = await this.lock();
480
+ const fd = await fp.open(this.isAt, 'r+');
481
+ try {
482
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_;
483
+ await fd.write(buf, 0, buf.length, offset_);
484
+ await fd.truncate(offset_ + buf.length);
485
+ }
486
+ finally {
487
+ await fd.close();
488
+ }
489
+ }
490
+ truncWritePastSync(offset_, data_) {
491
+ using _ = this.lockSync();
492
+ const fd = fs.openSync(this.isAt, 'r+');
493
+ try {
494
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_;
495
+ fs.writeSync(fd, buf, 0, buf.length, offset_);
496
+ fs.truncateSync(this.isAt, offset_ + buf.length);
497
+ }
498
+ finally {
499
+ fs.closeSync(fd);
500
+ }
501
+ }
456
502
  async append(data_, options_) {
457
503
  using _ = await this.lock();
458
504
  await fp.appendFile(this.isAt, data_, options_);
@@ -475,6 +521,7 @@ export class File extends Road {
475
521
  } }
476
522
  isFile() { return true; }
477
523
  }
524
+ export function file(...args) { return new File(...args); }
478
525
  export class Folder extends Road {
479
526
  static async create(at_) {
480
527
  try {
@@ -619,6 +666,8 @@ export class Folder extends Road {
619
666
  isDir() { return true; }
620
667
  isDirectory() { return true; }
621
668
  }
669
+ export function folder(...args) { return new Folder(...args); }
670
+ export function dir(...args) { return new Folder(...args); }
622
671
  export function sysRoot() { return new Folder(ph.parse(process.cwd()).root, false); }
623
672
  export function home() { return new Folder(os.homedir(), false); }
624
673
  export function tmp() { return new Folder(os.tmpdir(), false); }
@@ -687,6 +736,7 @@ export class SymbolicLink extends Road {
687
736
  isSymbolicLink() { return true; }
688
737
  }
689
738
  export { SymbolicLink as Symlink };
739
+ export function symlink(...args) { return new SymbolicLink(...args); }
690
740
  export class UnusableRoad extends Road {
691
741
  mutable = false; // Modification will cause system issues (e.g. deleting a device file)
692
742
  async size() { return 0; }
@@ -729,6 +779,7 @@ export class BlockDevice extends UnusableRoad {
729
779
  } }
730
780
  isBlockDevice() { return true; }
731
781
  }
782
+ export function blockDevice(...args) { return new BlockDevice(...args); }
732
783
  export class CharacterDevice extends UnusableRoad {
733
784
  async check() { try {
734
785
  return (await fp.lstat(this.isAt)).isCharacterDevice();
@@ -744,6 +795,7 @@ export class CharacterDevice extends UnusableRoad {
744
795
  } }
745
796
  isCharacterDevice() { return true; }
746
797
  }
798
+ export function characterDevice(...args) { return new CharacterDevice(...args); }
747
799
  export class Fifo extends UnusableRoad {
748
800
  async check() { try {
749
801
  return (await fp.lstat(this.isAt)).isFIFO();
@@ -759,6 +811,7 @@ export class Fifo extends UnusableRoad {
759
811
  } }
760
812
  isFifo() { return true; }
761
813
  }
814
+ export function fifo(...args) { return new Fifo(...args); }
762
815
  export class Socket extends UnusableRoad {
763
816
  async check() { try {
764
817
  return (await fp.lstat(this.isAt)).isSocket();
@@ -774,3 +827,4 @@ export class Socket extends UnusableRoad {
774
827
  } }
775
828
  isSocket() { return true; }
776
829
  }
830
+ export function socket(...args) { return new Socket(...args); }
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "url": "https://github.com/clerkburk/instrumentality.git"
6
6
  },
7
7
  "type": "module",
8
- "version": "0.0.10",
8
+ "version": "0.0.12",
9
9
  "main": "./dist/base.js",
10
10
  "types": "./dist/base.d.ts",
11
11
  "devDependencies": {
package/src/base.ts CHANGED
@@ -177,6 +177,10 @@ export const BASE122_ILLEGAL_INDEX: Readonly<Record<number, number>> = {
177
177
  export const BASE122_SHORT = 0b111 as const
178
178
 
179
179
 
180
+ /** Lazy-initialized TextDecoder instance used for decoding base-122 encoded data. */
181
+ let DECODER: TextDecoder
182
+
183
+
180
184
  /**
181
185
  * Encodes indexed data into a base-122 representation.
182
186
  *
@@ -219,7 +223,7 @@ export function encode122(data_: ArrayLike<number>): string {
219
223
  out[outIndex++] = 0b10000000 | (payload & 0b00111111)
220
224
  }
221
225
  }
222
- return new TextDecoder("utf-8", { fatal: true }).decode(out.subarray(0, outIndex))
226
+ return (DECODER ??= new TextDecoder("utf-8", { fatal: true })).decode(out.subarray(0, outIndex))
223
227
  }
224
228
 
225
229
 
package/src/road.ts CHANGED
@@ -351,7 +351,7 @@ export class File extends Road {
351
351
  }
352
352
 
353
353
  async *itBuff(options_?: Exclude<Parameters<typeof fs.createReadStream>[1], BufferEncoding> & {encoding?:never}): AsyncGenerator<Buffer> {
354
- const stream = fs.createReadStream(this.isAt, { ...options_, encoding: undefined })
354
+ const stream = fs.createReadStream(this.isAt, { ...options_ })
355
355
  try {
356
356
  for await (const chunk of stream)
357
357
  yield chunk
@@ -456,6 +456,42 @@ export class File extends Road {
456
456
  using _ = this.lockSync()
457
457
  fs.writeFileSync(this.isAt, data_, options_)
458
458
  }
459
+ async writePast(offset_: number, data_: Buffer | string) {
460
+ using _ = await this.lock()
461
+ const fd = await fp.open(this.isAt, 'r+')
462
+ try {
463
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_
464
+ await fd.write(buf, 0, buf.length, offset_)
465
+ } finally { await fd.close() }
466
+ }
467
+ writePastSync(offset_: number, data_: Buffer | string) {
468
+ using _ = this.lockSync()
469
+ const fd = fs.openSync(this.isAt, 'r+')
470
+ try {
471
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_
472
+ fs.writeSync(fd, buf, 0, buf.length, offset_)
473
+ } finally { fs.closeSync(fd) }
474
+ }
475
+ async truncWritePast(offset_: number, data_: Buffer | string) {
476
+ using _ = await this.lock()
477
+ const fd = await fp.open(this.isAt, 'r+')
478
+ try {
479
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_
480
+ await fd.write(buf, 0, buf.length, offset_)
481
+ await fd.truncate(offset_ + buf.length)
482
+ }
483
+ finally { await fd.close() }
484
+ }
485
+ truncWritePastSync(offset_: number, data_: Buffer | string) {
486
+ using _ = this.lockSync()
487
+ const fd = fs.openSync(this.isAt, 'r+')
488
+ try {
489
+ const buf = typeof data_ === 'string' ? Buffer.from(data_) : data_
490
+ fs.writeSync(fd, buf, 0, buf.length, offset_)
491
+ fs.truncateSync(this.isAt, offset_ + buf.length)
492
+ }
493
+ finally { fs.closeSync(fd) }
494
+ }
459
495
  async append(data_: Buffer | string, options_?: fs.WriteFileOptions) {
460
496
  using _ = await this.lock()
461
497
  await fp.appendFile(this.isAt, data_, options_)
@@ -472,6 +508,9 @@ export class File extends Road {
472
508
  }
473
509
 
474
510
 
511
+ export function file(...args: ConstructorParameters<typeof File>): File { return new File(...args) }
512
+
513
+
475
514
 
476
515
  /** Helper type for filtering {@link Road} instances. */
477
516
  export type filter_t<T extends Road> = ((road: Road) => road is T)
@@ -622,6 +661,10 @@ export class Folder extends Road {
622
661
  }
623
662
 
624
663
 
664
+ export function folder(...args: ConstructorParameters<typeof Folder>): Folder { return new Folder(...args) }
665
+ export function dir(...args: ConstructorParameters<typeof Folder>): Folder { return new Folder(...args) }
666
+
667
+
625
668
  export function sysRoot() { return new Folder(ph.parse(process.cwd()).root, false) }
626
669
  export function home() { return new Folder(os.homedir(), false) }
627
670
  export function tmp() { return new Folder(os.tmpdir(), false) }
@@ -679,9 +722,14 @@ export class SymbolicLink extends Road {
679
722
  override isSymlink(): this is SymbolicLink { return true as const }
680
723
  override isSymbolicLink(): this is SymbolicLink { return true as const }
681
724
  }
725
+
726
+
682
727
  export { SymbolicLink as Symlink }
683
728
 
684
729
 
730
+ export function symlink(...args: ConstructorParameters<typeof SymbolicLink>): SymbolicLink { return new SymbolicLink(...args) }
731
+
732
+
685
733
 
686
734
  export abstract class UnusableRoad extends Road {
687
735
  override readonly mutable = false as const // Modification will cause system issues (e.g. deleting a device file)
@@ -716,18 +764,22 @@ export class BlockDevice extends UnusableRoad {
716
764
  checkSync(): boolean { try { return fs.lstatSync(this.isAt).isBlockDevice() } catch { return false } }
717
765
  override isBlockDevice(): this is BlockDevice { return true as const }
718
766
  }
767
+ export function blockDevice(...args: ConstructorParameters<typeof BlockDevice>): BlockDevice { return new BlockDevice(...args) }
719
768
  export class CharacterDevice extends UnusableRoad {
720
769
  async check(): Promise<boolean> { try { return (await fp.lstat(this.isAt)).isCharacterDevice() } catch { return false } }
721
770
  checkSync(): boolean { try { return fs.lstatSync(this.isAt).isCharacterDevice() } catch { return false } }
722
771
  override isCharacterDevice(): this is CharacterDevice { return true as const }
723
772
  }
773
+ export function characterDevice(...args: ConstructorParameters<typeof CharacterDevice>): CharacterDevice { return new CharacterDevice(...args) }
724
774
  export class Fifo extends UnusableRoad {
725
775
  async check(): Promise<boolean> { try { return (await fp.lstat(this.isAt)).isFIFO() } catch { return false } }
726
776
  checkSync(): boolean { try { return fs.lstatSync(this.isAt).isFIFO() } catch { return false } }
727
777
  override isFifo(): this is Fifo { return true as const }
728
778
  }
779
+ export function fifo(...args: ConstructorParameters<typeof Fifo>): Fifo { return new Fifo(...args) }
729
780
  export class Socket extends UnusableRoad {
730
781
  async check(): Promise<boolean> { try { return (await fp.lstat(this.isAt)).isSocket() } catch { return false } }
731
782
  checkSync(): boolean { try { return fs.lstatSync(this.isAt).isSocket() } catch { return false } }
732
783
  override isSocket(): this is Socket { return true as const }
733
- }
784
+ }
785
+ export function socket(...args: ConstructorParameters<typeof Socket>): Socket { return new Socket(...args) }