From 3a3837545ce6f585f718069cc05d96f765a05d3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 12 Sep 2024 01:25:46 +0100 Subject: [PATCH] feat(ext/node): export missing symbols from domain, puncode, repl, tls (#25585) --- ext/node/polyfills/async_hooks.ts | 67 +++++++++++++++++++++++++- ext/node/polyfills/domain.ts | 14 ++++++ ext/node/polyfills/internal/buffer.mjs | 1 + ext/node/polyfills/punycode.ts | 5 +- ext/node/polyfills/repl.ts | 7 +++ ext/node/polyfills/tls.ts | 4 ++ 6 files changed, 96 insertions(+), 2 deletions(-) diff --git a/ext/node/polyfills/async_hooks.ts b/ext/node/polyfills/async_hooks.ts index 017e9e9bc7..7a2f153dac 100644 --- a/ext/node/polyfills/async_hooks.ts +++ b/ext/node/polyfills/async_hooks.ts @@ -157,7 +157,72 @@ export function executionAsyncResource() { return {}; } -export const asyncWrapProviders = ObjectFreeze({ __proto__: null }); +export const asyncWrapProviders = ObjectFreeze({ + __proto__: null, + NONE: 0, + DIRHANDLE: 1, + DNSCHANNEL: 2, + ELDHISTOGRAM: 3, + FILEHANDLE: 4, + FILEHANDLECLOSEREQ: 5, + BLOBREADER: 6, + FSEVENTWRAP: 7, + FSREQCALLBACK: 8, + FSREQPROMISE: 9, + GETADDRINFOREQWRAP: 10, + GETNAMEINFOREQWRAP: 11, + HEAPSNAPSHOT: 12, + HTTP2SESSION: 13, + HTTP2STREAM: 14, + HTTP2PING: 15, + HTTP2SETTINGS: 16, + HTTPINCOMINGMESSAGE: 17, + HTTPCLIENTREQUEST: 18, + JSSTREAM: 19, + JSUDPWRAP: 20, + MESSAGEPORT: 21, + PIPECONNECTWRAP: 22, + PIPESERVERWRAP: 23, + PIPEWRAP: 24, + PROCESSWRAP: 25, + PROMISE: 26, + QUERYWRAP: 27, + QUIC_ENDPOINT: 28, + QUIC_LOGSTREAM: 29, + QUIC_PACKET: 30, + QUIC_SESSION: 31, + QUIC_STREAM: 32, + QUIC_UDP: 33, + SHUTDOWNWRAP: 34, + SIGNALWRAP: 35, + STATWATCHER: 36, + STREAMPIPE: 37, + TCPCONNECTWRAP: 38, + TCPSERVERWRAP: 39, + TCPWRAP: 40, + TTYWRAP: 41, + UDPSENDWRAP: 42, + UDPWRAP: 43, + SIGINTWATCHDOG: 44, + WORKER: 45, + WORKERHEAPSNAPSHOT: 46, + WRITEWRAP: 47, + ZLIB: 48, + CHECKPRIMEREQUEST: 49, + PBKDF2REQUEST: 50, + KEYPAIRGENREQUEST: 51, + KEYGENREQUEST: 52, + KEYEXPORTREQUEST: 53, + CIPHERREQUEST: 54, + DERIVEBITSREQUEST: 55, + HASHREQUEST: 56, + RANDOMBYTESREQUEST: 57, + RANDOMPRIMEREQUEST: 58, + SCRYPTREQUEST: 59, + SIGNREQUEST: 60, + TLSWRAP: 61, + VERIFYREQUEST: 62, +}); class AsyncHook { enable() { diff --git a/ext/node/polyfills/domain.ts b/ext/node/polyfills/domain.ts index f9c99f7254..7093779966 100644 --- a/ext/node/polyfills/domain.ts +++ b/ext/node/polyfills/domain.ts @@ -15,9 +15,20 @@ function emitError(e) { this.emit("error", e); } +// TODO(bartlomieju): maybe use this one +// deno-lint-ignore prefer-const +let stack = []; +export const _stack = stack; +export const active = null; + export function create() { return new Domain(); } + +export function createDomain() { + return new Domain(); +} + export class Domain extends EventEmitter { #handler; @@ -85,6 +96,9 @@ export class Domain extends EventEmitter { } } export default { + _stack, create, + active, + createDomain, Domain, }; diff --git a/ext/node/polyfills/internal/buffer.mjs b/ext/node/polyfills/internal/buffer.mjs index 48b102a77b..6e43a49031 100644 --- a/ext/node/polyfills/internal/buffer.mjs +++ b/ext/node/polyfills/internal/buffer.mjs @@ -2606,6 +2606,7 @@ export default { constants, isAscii, isUtf8, + INSPECT_MAX_BYTES, kMaxLength, kStringMaxLength, SlowBuffer, diff --git a/ext/node/polyfills/punycode.ts b/ext/node/polyfills/punycode.ts index e89be15a22..adecdf4f9a 100644 --- a/ext/node/polyfills/punycode.ts +++ b/ext/node/polyfills/punycode.ts @@ -11,6 +11,8 @@ import { deprecate } from "node:util"; import { ucs2 } from "ext:deno_node/internal/idna.ts"; +const version = "2.1.0"; + // deno-lint-ignore no-explicit-any function punyDeprecated(fn: any) { return deprecate( @@ -37,7 +39,7 @@ function encode(domain) { return punyDeprecated(op_node_idna_punycode_encode)(domain); } -export { decode, encode, toASCII, toUnicode, ucs2 }; +export { decode, encode, toASCII, toUnicode, ucs2, version }; export default { decode, @@ -45,4 +47,5 @@ export default { toASCII, toUnicode, ucs2, + version, }; diff --git a/ext/node/polyfills/repl.ts b/ext/node/polyfills/repl.ts index 70fe52ce4f..a7acc5b19a 100644 --- a/ext/node/polyfills/repl.ts +++ b/ext/node/polyfills/repl.ts @@ -1,7 +1,12 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. // Copyright Joyent and Node contributors. All rights reserved. MIT license. +import { primordials } from "ext:core/mod.js"; import { notImplemented } from "ext:deno_node/_utils.ts"; +const { Symbol } = primordials; + +export const REPL_MODE_SLOPPY = Symbol("repl-sloppy"); +export const REPL_MODE_STRICT = Symbol("repl-strict"); export class REPLServer { constructor() { @@ -61,4 +66,6 @@ export default { builtinModules, _builtinLibs, start, + REPL_MODE_SLOPPY, + REPL_MODE_STRICT, }; diff --git a/ext/node/polyfills/tls.ts b/ext/node/polyfills/tls.ts index 6db2bc68c2..a604690835 100644 --- a/ext/node/polyfills/tls.ts +++ b/ext/node/polyfills/tls.ts @@ -34,6 +34,8 @@ export const rootCertificates = undefined; export const DEFAULT_ECDH_CURVE = "auto"; export const DEFAULT_MAX_VERSION = "TLSv1.3"; export const DEFAULT_MIN_VERSION = "TLSv1.2"; +export const CLIENT_RENEG_LIMIT = 3; +export const CLIENT_RENEG_WINDOW = 600; export class CryptoStream {} export class SecurePair {} @@ -58,6 +60,8 @@ export default { DEFAULT_ECDH_CURVE, DEFAULT_MAX_VERSION, DEFAULT_MIN_VERSION, + CLIENT_RENEG_LIMIT, + CLIENT_RENEG_WINDOW, }; export const checkServerIdentity = tlsWrap.checkServerIdentity;