@serveryyswys/node.operit 0.1.4 → 0.1.6

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/dist/buffer.d.ts CHANGED
@@ -57,4 +57,11 @@ export declare const kMaxLength: number;
57
57
  export declare const INSPECT_MAX_BYTES = 50;
58
58
  /** 把普通 Uint8Array 变成 Buffer 实例(不改内容、不拷贝)。 */
59
59
  export declare function wrap(source: Uint8Array): Buffer;
60
+ /**
61
+ * Node 的 buffer **模块**把这些直接挂在模块上(不只是挂在 Buffer 类上)。
62
+ * 包写 `require('buffer').SlowBuffer` 是能拿到的,所以两边都要有。
63
+ */
64
+ export declare const SlowBuffer: typeof Buffer;
65
+ /** 需要 ICU 字符集转换,运行时没有 —— 显式拒绝而不是静默返回空 Buffer。 */
66
+ export declare function transcode(): never;
60
67
  export default Buffer;
package/dist/buffer.js CHANGED
@@ -33,8 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.INSPECT_MAX_BYTES = exports.kMaxLength = exports.constants = exports.Buffer = void 0;
36
+ exports.SlowBuffer = exports.INSPECT_MAX_BYTES = exports.kMaxLength = exports.constants = exports.Buffer = void 0;
37
37
  exports.wrap = wrap;
38
+ exports.transcode = transcode;
39
+ const unsupportedNodeBuiltin = require("./unsupported");
38
40
  /**
39
41
  * Node Buffer 的移植。
40
42
  *
@@ -498,6 +500,18 @@ function checkOffset(offset, size, length) {
498
500
  }
499
501
  return offset;
500
502
  }
503
+ /**
504
+ * Node 的 Buffer.SlowBuffer:历史别名,等价于 Buffer 本身。
505
+ * 放在可枚举化那一遍**之前**,这样它和别的静态成员一样可枚举。
506
+ */
507
+ Buffer.SlowBuffer = Buffer;
508
+ /**
509
+ * Node 的 Buffer.transcode 做的是 ICU 字符集转换,运行时没有 ICU。
510
+ * 显式抛 ONJ_UNSUPPORTED,而不是给一个静默返回空 Buffer 的实现。
511
+ */
512
+ Buffer.transcode = function transcode() {
513
+ return unsupportedNodeBuiltin('Buffer.transcode');
514
+ };
501
515
  /**
502
516
  * 把静态成员补成**可枚举的自有属性**。
503
517
  *
@@ -521,4 +535,13 @@ for (const staticKey of Object.getOwnPropertyNames(Buffer)) {
521
535
  });
522
536
  }
523
537
  }
538
+ /**
539
+ * Node 的 buffer **模块**把这些直接挂在模块上(不只是挂在 Buffer 类上)。
540
+ * 包写 `require('buffer').SlowBuffer` 是能拿到的,所以两边都要有。
541
+ */
542
+ exports.SlowBuffer = Buffer;
543
+ /** 需要 ICU 字符集转换,运行时没有 —— 显式拒绝而不是静默返回空 Buffer。 */
544
+ function transcode() {
545
+ return unsupportedNodeBuiltin('Buffer.transcode');
546
+ }
524
547
  exports.default = Buffer;
package/dist/crypto.d.ts CHANGED
@@ -42,6 +42,11 @@ declare function createVerify(): never;
42
42
  declare function generateKeyPairSync(): never;
43
43
  declare function createDiffieHellman(): never;
44
44
  declare const crypto: {
45
+ webcrypto: {
46
+ getRandomValues<T extends ArrayBufferView>(array: T): T;
47
+ randomUUID: typeof randomUUID;
48
+ subtle: Record<string | symbol, unknown>;
49
+ };
45
50
  createHash: typeof createHash;
46
51
  createHmac: typeof createHmac;
47
52
  randomBytes: typeof randomBytes;
package/dist/crypto.js CHANGED
@@ -287,7 +287,31 @@ const constants = {
287
287
  SSL_OP_NO_SSLv3: 0,
288
288
  SSL_OP_NO_TLSv1: 0
289
289
  };
290
+ /**
291
+ * Web Crypto 的最小可用面。
292
+ *
293
+ * getRandomValues / randomUUID 是真实现的(走同一条强随机源);
294
+ * subtle 整个是"存在但每个操作都显式拒绝"—— 运行时不提供 WebCrypto 的算法实现,
295
+ * 给一个看起来像但结果不对的契约比明确报错更糟。
296
+ */
297
+ const webcrypto = {
298
+ getRandomValues(array) {
299
+ const bytes = randomBytes(array.length);
300
+ array.set(bytes);
301
+ return array;
302
+ },
303
+ randomUUID: randomUUID,
304
+ subtle: new Proxy({}, {
305
+ get(_target, property) {
306
+ if (property === Symbol.toStringTag || property === 'then' || property === 'toJSON' || property === 'inspect') {
307
+ return undefined;
308
+ }
309
+ throw unsupported('crypto.webcrypto.subtle.' + String(property));
310
+ }
311
+ })
312
+ };
290
313
  const crypto = {
314
+ webcrypto: webcrypto,
291
315
  createHash: createHash,
292
316
  createHmac: createHmac,
293
317
  randomBytes: randomBytes,
package/dist/events.d.ts CHANGED
@@ -37,4 +37,10 @@ declare class EventEmitter {
37
37
  listenerCount(name: EventName): number;
38
38
  eventNames(): EventName[];
39
39
  }
40
- export = EventEmitter;
40
+ /**
41
+ * 运行期导出的是**可调用包装**:Node 的 EventEmitter 是普通函数,
42
+ * 老包的 `EventEmitter.call(this)` 依赖这一点;class 做不到。
43
+ * 类型仍标注为 class,这样 stream.ts 里 `class Readable extends EventEmitter` 照常可用。
44
+ */
45
+ declare const EventEmitterExport: typeof EventEmitter;
46
+ export = EventEmitterExport;
package/dist/events.js CHANGED
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ const legacy_callable_1 = require("./lib/legacy-callable");
2
3
  const registry = new WeakMap();
3
4
  /** Node 用它旁听 error 事件而不消费它。 */
4
5
  const errorMonitor = Symbol.for('nodejs.errorMonitor');
@@ -31,6 +32,15 @@ function indexFromEnd(list, fn) {
31
32
  }
32
33
  return -1;
33
34
  }
35
+ /**
36
+ * EventEmitter 的"初始化"。
37
+ *
38
+ * 抽成独立函数是为了让老式 `EventEmitter.call(this)` 能用 —— 见 lib/legacy-callable.ts。
39
+ * stateOf(this) 是按对象惰性建状态的,所以它对任意 this 都成立。
40
+ */
41
+ function initEventEmitter(self) {
42
+ stateOf(self);
43
+ }
34
44
  class EventEmitter {
35
45
  static listenerCount(emitter, name) {
36
46
  return emitter.listenerCount(name);
@@ -60,7 +70,7 @@ class EventEmitter {
60
70
  throw new Error('node.operit 尚未实现 events.on()(异步迭代器)。');
61
71
  }
62
72
  constructor() {
63
- stateOf(this);
73
+ initEventEmitter(this);
64
74
  }
65
75
  get maxListeners() {
66
76
  const current = stateOf(this).maxListeners;
@@ -234,4 +244,14 @@ function removeEntry(emitter, name, fn) {
234
244
  }
235
245
  }
236
246
  }
237
- module.exports = EventEmitter;
247
+ /**
248
+ * 运行期导出的是**可调用包装**:Node 的 EventEmitter 是普通函数,
249
+ * 老包的 `EventEmitter.call(this)` 依赖这一点;class 做不到。
250
+ * 类型仍标注为 class,这样 stream.ts 里 `class Readable extends EventEmitter` 照常可用。
251
+ */
252
+ const EventEmitterExport = (0, legacy_callable_1.makeLegacyCallable)(EventEmitter, 'EventEmitter', (self) => { initEventEmitter(self); });
253
+ // 类上有 EventEmitter 自引用(Node 的 events.EventEmitter === events),
254
+ // 包装层从 class 拷贝静态成员时会把它指回 class —— 必须改指包装本身,
255
+ // 否则通过 index 聚合拿到的仍是 class,.call(this) 照样抛。
256
+ EventEmitterExport.EventEmitter = EventEmitterExport;
257
+ module.exports = EventEmitterExport;
package/dist/fs.d.ts CHANGED
@@ -115,6 +115,13 @@ declare function createReadStream(target: unknown, options?: ReadStreamOptions):
115
115
  */
116
116
  declare function createWriteStream(target: unknown, options?: WriteStreamOptions): WriteStreamLike;
117
117
  declare const fs: {
118
+ /**
119
+ * `require('fs').promises` —— 与 fs/promises 子路径**同一个对象**。
120
+ *
121
+ * 用惰性 getter 而不是直接 require:fs/promises 自己也 require fs,直接写会成环。
122
+ * getter 在对象字面量里是可枚举的,所以 for...in 探测(safer-buffer 那种)也能看到它。
123
+ */
124
+ readonly promises: unknown;
118
125
  readFileSync: typeof readFileSync;
119
126
  writeFileSync: typeof writeFileSync;
120
127
  appendFileSync: typeof appendFileSync;
package/dist/fs.js CHANGED
@@ -882,6 +882,15 @@ const constants = {
882
882
  S_IXOTH: 1
883
883
  };
884
884
  const fs = {
885
+ /**
886
+ * `require('fs').promises` —— 与 fs/promises 子路径**同一个对象**。
887
+ *
888
+ * 用惰性 getter 而不是直接 require:fs/promises 自己也 require fs,直接写会成环。
889
+ * getter 在对象字面量里是可枚举的,所以 for...in 探测(safer-buffer 那种)也能看到它。
890
+ */
891
+ get promises() {
892
+ return require('./fs/promises');
893
+ },
885
894
  readFileSync: readFileSync,
886
895
  writeFileSync: writeFileSync,
887
896
  appendFileSync: appendFileSync,