veryfront 0.0.62 → 0.0.64

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/index.js CHANGED
@@ -131,6 +131,7 @@ function __loggerResetForTests(options = {}) {
131
131
  var LogLevel, originalConsole, cachedLogLevel, ConsoleLogger, getDefaultLevel, trackedLoggers, cliLogger, serverLogger, rendererLogger, bundlerLogger, agentLogger, logger;
132
132
  var init_logger = __esm({
133
133
  "src/core/utils/logger/logger.ts"() {
134
+ "use strict";
134
135
  init_env();
135
136
  LogLevel = /* @__PURE__ */ ((LogLevel2) => {
136
137
  LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
@@ -236,6 +237,7 @@ var init_build = __esm({
236
237
  var SECONDS_PER_MINUTE, MINUTES_PER_HOUR, HOURS_PER_DAY, MS_PER_SECOND, DEFAULT_LRU_MAX_ENTRIES, COMPONENT_LOADER_MAX_ENTRIES, COMPONENT_LOADER_TTL_MS, MDX_RENDERER_MAX_ENTRIES, MDX_RENDERER_TTL_MS, RENDERER_CORE_MAX_ENTRIES, RENDERER_CORE_TTL_MS, TSX_LAYOUT_MAX_ENTRIES, TSX_LAYOUT_TTL_MS, DATA_FETCHING_MAX_ENTRIES, DATA_FETCHING_TTL_MS, MDX_CACHE_TTL_PRODUCTION_MS, MDX_CACHE_TTL_DEVELOPMENT_MS, BUNDLE_CACHE_TTL_PRODUCTION_MS, BUNDLE_CACHE_TTL_DEVELOPMENT_MS, BUNDLE_MANIFEST_PROD_TTL_MS, BUNDLE_MANIFEST_DEV_TTL_MS, RSC_MANIFEST_CACHE_TTL_MS, SERVER_ACTION_DEFAULT_TTL_SEC, DENO_KV_SAFE_SIZE_LIMIT_BYTES, HTTP_CACHE_SHORT_MAX_AGE_SEC, HTTP_CACHE_MEDIUM_MAX_AGE_SEC, HTTP_CACHE_LONG_MAX_AGE_SEC, ONE_DAY_MS, CACHE_CLEANUP_INTERVAL_MS, LRU_DEFAULT_MAX_ENTRIES, LRU_DEFAULT_MAX_SIZE_BYTES, CLEANUP_INTERVAL_MULTIPLIER;
237
238
  var init_cache = __esm({
238
239
  "src/core/utils/constants/cache.ts"() {
240
+ "use strict";
239
241
  SECONDS_PER_MINUTE = 60;
240
242
  MINUTES_PER_HOUR = 60;
241
243
  HOURS_PER_DAY = 24;
@@ -277,14 +279,14 @@ var init_deno = __esm({
277
279
  "deno.json"() {
278
280
  deno_default = {
279
281
  name: "veryfront",
280
- version: "0.0.62",
282
+ version: "0.0.64",
283
+ nodeModulesDir: "auto",
281
284
  exclude: [
282
285
  "npm/",
283
286
  "dist/",
284
287
  "coverage/",
285
288
  "scripts/",
286
289
  "examples/",
287
- "tests/",
288
290
  "src/cli/templates/files/",
289
291
  "src/cli/templates/integrations/"
290
292
  ],
@@ -368,34 +370,36 @@ var init_deno = __esm({
368
370
  "react-dom/client": "https://esm.sh/react-dom@18.3.1/client",
369
371
  "react/jsx-runtime": "https://esm.sh/react@18.3.1/jsx-runtime",
370
372
  "react/jsx-dev-runtime": "https://esm.sh/react@18.3.1/jsx-dev-runtime",
371
- "@mdx-js/mdx": "https://esm.sh/@mdx-js/mdx@3.0.0?deps=react@18.3.1,react-dom@18.3.1",
372
- "@mdx-js/react": "https://esm.sh/@mdx-js/react@3.0.0?deps=react@18.3.1,react-dom@18.3.1",
373
- "unist-util-visit": "https://esm.sh/unist-util-visit@5.0.0",
374
- "mdast-util-to-string": "https://esm.sh/mdast-util-to-string@4.0.0",
375
- "github-slugger": "https://esm.sh/github-slugger@2.0.0",
376
- "remark-gfm": "https://esm.sh/remark-gfm@4.0.1",
377
- "remark-frontmatter": "https://esm.sh/remark-frontmatter@5.0.0",
378
- "rehype-highlight": "https://esm.sh/rehype-highlight@7.0.2",
379
- "rehype-slug": "https://esm.sh/rehype-slug@6.0.0",
373
+ "@mdx-js/mdx": "npm:@mdx-js/mdx@3.0.0",
374
+ "@mdx-js/react": "npm:@mdx-js/react@3.0.0",
375
+ "unist-util-visit": "npm:unist-util-visit@5.0.0",
376
+ "mdast-util-to-string": "npm:mdast-util-to-string@4.0.0",
377
+ "github-slugger": "npm:github-slugger@2.0.0",
378
+ "remark-gfm": "npm:remark-gfm@4.0.1",
379
+ "remark-frontmatter": "npm:remark-frontmatter@5.0.0",
380
+ "rehype-highlight": "npm:rehype-highlight@7.0.2",
381
+ "rehype-slug": "npm:rehype-slug@6.0.0",
380
382
  esbuild: "https://deno.land/x/esbuild@v0.20.1/wasm.js",
381
383
  "esbuild/mod.js": "https://deno.land/x/esbuild@v0.20.1/mod.js",
382
- "es-module-lexer": "https://esm.sh/es-module-lexer@1.5.0",
383
- zod: "https://esm.sh/zod@3.22.0",
384
- "mime-types": "https://esm.sh/mime-types@2.1.35",
385
- mdast: "https://esm.sh/@types/mdast@4.0.3",
386
- hast: "https://esm.sh/@types/hast@3.0.3",
387
- unist: "https://esm.sh/@types/unist@3.0.2",
388
- unified: "https://esm.sh/unified@11.0.5?dts",
389
- ai: "https://esm.sh/ai@5.0.76?deps=react@18.3.1,react-dom@18.3.1",
390
- "ai/react": "https://esm.sh/@ai-sdk/react@2.0.59?deps=react@18.3.1,react-dom@18.3.1",
391
- "@ai-sdk/react": "https://esm.sh/@ai-sdk/react@2.0.59?deps=react@18.3.1,react-dom@18.3.1",
392
- "@ai-sdk/openai": "https://esm.sh/@ai-sdk/openai@2.0.1",
393
- "@ai-sdk/anthropic": "https://esm.sh/@ai-sdk/anthropic@2.0.4",
384
+ "es-module-lexer": "npm:es-module-lexer@1.5.0",
385
+ zod: "npm:zod@3.23.8",
386
+ "mime-types": "npm:mime-types@2.1.35",
387
+ mdast: "npm:@types/mdast@4.0.3",
388
+ hast: "npm:@types/hast@3.0.3",
389
+ unist: "npm:@types/unist@3.0.2",
390
+ unified: "npm:unified@11.0.5",
391
+ ai: "https://esm.sh/ai@5.0.108?deps=react@18.3.1,react-dom@18.3.1",
392
+ "ai/react": "https://esm.sh/@ai-sdk/react@2.0.109?deps=react@18.3.1,react-dom@18.3.1",
393
+ "@ai-sdk/react": "https://esm.sh/@ai-sdk/react@2.0.109?deps=react@18.3.1,react-dom@18.3.1",
394
+ "@ai-sdk/openai": "https://esm.sh/@ai-sdk/openai@2.0.80",
395
+ "@ai-sdk/anthropic": "https://esm.sh/@ai-sdk/anthropic@2.0.54",
394
396
  unocss: "https://esm.sh/unocss@0.59.0",
395
397
  "@unocss/core": "https://esm.sh/@unocss/core@0.59.0",
396
398
  "@unocss/preset-wind": "https://esm.sh/@unocss/preset-wind@0.59.0",
397
399
  redis: "npm:redis",
398
- pg: "npm:pg"
400
+ pg: "npm:pg",
401
+ "@opentelemetry/api": "npm:@opentelemetry/api@1",
402
+ "@opentelemetry/core": "npm:@opentelemetry/core@1"
399
403
  },
400
404
  compilerOptions: {
401
405
  jsx: "react-jsx",
@@ -602,6 +606,7 @@ function getUnoCSSTailwindResetUrl() {
602
606
  var ESM_CDN_BASE, JSDELIVR_CDN_BASE, DENO_STD_BASE, REACT_VERSION_17, REACT_VERSION_18_2, REACT_VERSION_18_3, REACT_VERSION_19_RC, REACT_VERSION_19, REACT_DEFAULT_VERSION, DEFAULT_ALLOWED_CDN_HOSTS, DENO_STD_VERSION, UNOCSS_VERSION;
603
607
  var init_cdn = __esm({
604
608
  "src/core/utils/constants/cdn.ts"() {
609
+ "use strict";
605
610
  init_version();
606
611
  ESM_CDN_BASE = "https://esm.sh";
607
612
  JSDELIVR_CDN_BASE = "https://cdn.jsdelivr.net";
@@ -652,6 +657,7 @@ var init_env2 = __esm({
652
657
  var HASH_SEED_DJB2, HASH_SEED_FNV1A;
653
658
  var init_hash = __esm({
654
659
  "src/core/utils/constants/hash.ts"() {
660
+ "use strict";
655
661
  HASH_SEED_DJB2 = 5381;
656
662
  HASH_SEED_FNV1A = 2166136261;
657
663
  }
@@ -661,6 +667,7 @@ var init_hash = __esm({
661
667
  var KB_IN_BYTES, HTTP_MODULE_FETCH_TIMEOUT_MS, HMR_RECONNECT_DELAY_MS, HMR_RELOAD_DELAY_MS, HMR_FILE_WATCHER_DEBOUNCE_MS, HMR_KEEP_ALIVE_INTERVAL_MS, DASHBOARD_RECONNECT_DELAY_MS, SERVER_FUNCTION_DEFAULT_TIMEOUT_MS, PREFETCH_MAX_SIZE_BYTES, PREFETCH_DEFAULT_TIMEOUT_MS, PREFETCH_DEFAULT_DELAY_MS, HTTP_OK, HTTP_NO_CONTENT, HTTP_CREATED, HTTP_REDIRECT_FOUND, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST, HTTP_UNAUTHORIZED, HTTP_FORBIDDEN, HTTP_NOT_FOUND, HTTP_METHOD_NOT_ALLOWED, HTTP_GONE, HTTP_PAYLOAD_TOO_LARGE, HTTP_URI_TOO_LONG, HTTP_TOO_MANY_REQUESTS, HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE, HTTP_SERVER_ERROR, HTTP_INTERNAL_SERVER_ERROR, HTTP_BAD_GATEWAY, HTTP_NOT_IMPLEMENTED, HTTP_UNAVAILABLE, HTTP_NETWORK_CONNECT_TIMEOUT, HTTP_STATUS_SUCCESS_MIN, HTTP_STATUS_REDIRECT_MIN, HTTP_STATUS_CLIENT_ERROR_MIN, HTTP_STATUS_SERVER_ERROR_MIN, HTTP_CONTENT_TYPES, MS_PER_MINUTE, HTTP_CONTENT_TYPE_IMAGE_PNG, HTTP_CONTENT_TYPE_IMAGE_JPEG, HTTP_CONTENT_TYPE_IMAGE_WEBP, HTTP_CONTENT_TYPE_IMAGE_AVIF, HTTP_CONTENT_TYPE_IMAGE_SVG, HTTP_CONTENT_TYPE_IMAGE_GIF, HTTP_CONTENT_TYPE_IMAGE_ICO;
662
668
  var init_http = __esm({
663
669
  "src/core/utils/constants/http.ts"() {
670
+ "use strict";
664
671
  init_cache();
665
672
  KB_IN_BYTES = 1024;
666
673
  HTTP_MODULE_FETCH_TIMEOUT_MS = 2500;
@@ -764,6 +771,7 @@ var init_html = __esm({
764
771
  var DEFAULT_DEV_SERVER_PORT, DEFAULT_REDIS_PORT, DEFAULT_API_SERVER_PORT, DEFAULT_PREVIEW_SERVER_PORT, DEFAULT_METRICS_PORT, BYTES_PER_KB, BYTES_PER_MB, DEFAULT_IMAGE_THUMBNAIL_SIZE, DEFAULT_IMAGE_SMALL_SIZE, DEFAULT_IMAGE_LARGE_SIZE, RESPONSIVE_IMAGE_WIDTH_XS, RESPONSIVE_IMAGE_WIDTH_SM, RESPONSIVE_IMAGE_WIDTH_MD, RESPONSIVE_IMAGE_WIDTH_LG, RESPONSIVE_IMAGE_WIDTHS, MAX_CHUNK_SIZE_KB, MIN_PORT, MAX_PORT, DEFAULT_SERVER_PORT;
765
772
  var init_network = __esm({
766
773
  "src/core/utils/constants/network.ts"() {
774
+ "use strict";
767
775
  DEFAULT_DEV_SERVER_PORT = 3e3;
768
776
  DEFAULT_REDIS_PORT = 6379;
769
777
  DEFAULT_API_SERVER_PORT = 8080;
@@ -1149,7 +1157,6 @@ function fromBase64Url(encoded) {
1149
1157
  }
1150
1158
  var init_path_utils = __esm({
1151
1159
  "src/core/utils/path-utils.ts"() {
1152
- "use strict";
1153
1160
  init_logger();
1154
1161
  }
1155
1162
  });
@@ -2481,119 +2488,19 @@ var init_environment_adapter = __esm({
2481
2488
  }
2482
2489
  });
2483
2490
 
2484
- // ../../../../node_modules/ws/lib/stream.js
2485
- var require_stream = __commonJS({
2486
- "../../../../node_modules/ws/lib/stream.js"(exports, module) {
2487
- "use strict";
2488
- var { Duplex } = __require2("stream");
2489
- function emitClose(stream2) {
2490
- stream2.emit("close");
2491
- }
2492
- function duplexOnEnd() {
2493
- if (!this.destroyed && this._writableState.finished) {
2494
- this.destroy();
2495
- }
2496
- }
2497
- function duplexOnError(err) {
2498
- this.removeListener("error", duplexOnError);
2499
- this.destroy();
2500
- if (this.listenerCount("error") === 0) {
2501
- this.emit("error", err);
2502
- }
2503
- }
2504
- function createWebSocketStream2(ws, options) {
2505
- let terminateOnDestroy = true;
2506
- const duplex = new Duplex({
2507
- ...options,
2508
- autoDestroy: false,
2509
- emitClose: false,
2510
- objectMode: false,
2511
- writableObjectMode: false
2512
- });
2513
- ws.on("message", function message(msg, isBinary) {
2514
- const data = !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;
2515
- if (!duplex.push(data))
2516
- ws.pause();
2517
- });
2518
- ws.once("error", function error2(err) {
2519
- if (duplex.destroyed)
2520
- return;
2521
- terminateOnDestroy = false;
2522
- duplex.destroy(err);
2523
- });
2524
- ws.once("close", function close() {
2525
- if (duplex.destroyed)
2526
- return;
2527
- duplex.push(null);
2528
- });
2529
- duplex._destroy = function(err, callback) {
2530
- if (ws.readyState === ws.CLOSED) {
2531
- callback(err);
2532
- process.nextTick(emitClose, duplex);
2533
- return;
2534
- }
2535
- let called = false;
2536
- ws.once("error", function error2(err2) {
2537
- called = true;
2538
- callback(err2);
2539
- });
2540
- ws.once("close", function close() {
2541
- if (!called)
2542
- callback(err);
2543
- process.nextTick(emitClose, duplex);
2544
- });
2545
- if (terminateOnDestroy)
2546
- ws.terminate();
2547
- };
2548
- duplex._final = function(callback) {
2549
- if (ws.readyState === ws.CONNECTING) {
2550
- ws.once("open", function open() {
2551
- duplex._final(callback);
2552
- });
2553
- return;
2554
- }
2555
- if (ws._socket === null)
2556
- return;
2557
- if (ws._socket._writableState.finished) {
2558
- callback();
2559
- if (duplex._readableState.endEmitted)
2560
- duplex.destroy();
2561
- } else {
2562
- ws._socket.once("finish", function finish() {
2563
- callback();
2564
- });
2565
- ws.close();
2566
- }
2567
- };
2568
- duplex._read = function() {
2569
- if (ws.isPaused)
2570
- ws.resume();
2571
- };
2572
- duplex._write = function(chunk, encoding, callback) {
2573
- if (ws.readyState === ws.CONNECTING) {
2574
- ws.once("open", function open() {
2575
- duplex._write(chunk, encoding, callback);
2576
- });
2577
- return;
2578
- }
2579
- ws.send(chunk, callback);
2580
- };
2581
- duplex.on("end", duplexOnEnd);
2582
- duplex.on("error", duplexOnError);
2583
- return duplex;
2584
- }
2585
- module.exports = createWebSocketStream2;
2586
- }
2587
- });
2588
-
2589
- // ../../../../node_modules/ws/lib/constants.js
2491
+ // ../node_modules/ws/lib/constants.js
2590
2492
  var require_constants = __commonJS({
2591
- "../../../../node_modules/ws/lib/constants.js"(exports, module) {
2493
+ "../node_modules/ws/lib/constants.js"(exports, module) {
2592
2494
  "use strict";
2495
+ var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
2496
+ var hasBlob = typeof Blob !== "undefined";
2497
+ if (hasBlob)
2498
+ BINARY_TYPES.push("blob");
2593
2499
  module.exports = {
2594
- BINARY_TYPES: ["nodebuffer", "arraybuffer", "fragments"],
2500
+ BINARY_TYPES,
2595
2501
  EMPTY_BUFFER: Buffer.alloc(0),
2596
2502
  GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11",
2503
+ hasBlob,
2597
2504
  kForOnEventAttribute: Symbol("kIsForOnEventAttribute"),
2598
2505
  kListener: Symbol("kListener"),
2599
2506
  kStatusCode: Symbol("status-code"),
@@ -2604,9 +2511,9 @@ var require_constants = __commonJS({
2604
2511
  }
2605
2512
  });
2606
2513
 
2607
- // ../../../../node_modules/ws/lib/buffer-util.js
2514
+ // ../node_modules/ws/lib/buffer-util.js
2608
2515
  var require_buffer_util = __commonJS({
2609
- "../../../../node_modules/ws/lib/buffer-util.js"(exports, module) {
2516
+ "../node_modules/ws/lib/buffer-util.js"(exports, module) {
2610
2517
  "use strict";
2611
2518
  var { EMPTY_BUFFER } = require_constants();
2612
2519
  var FastBuffer = Buffer[Symbol.species];
@@ -2686,9 +2593,9 @@ var require_buffer_util = __commonJS({
2686
2593
  }
2687
2594
  });
2688
2595
 
2689
- // ../../../../node_modules/ws/lib/limiter.js
2596
+ // ../node_modules/ws/lib/limiter.js
2690
2597
  var require_limiter = __commonJS({
2691
- "../../../../node_modules/ws/lib/limiter.js"(exports, module) {
2598
+ "../node_modules/ws/lib/limiter.js"(exports, module) {
2692
2599
  "use strict";
2693
2600
  var kDone = Symbol("kDone");
2694
2601
  var kRun = Symbol("kRun");
@@ -2737,9 +2644,9 @@ var require_limiter = __commonJS({
2737
2644
  }
2738
2645
  });
2739
2646
 
2740
- // ../../../../node_modules/ws/lib/permessage-deflate.js
2647
+ // ../node_modules/ws/lib/permessage-deflate.js
2741
2648
  var require_permessage_deflate = __commonJS({
2742
- "../../../../node_modules/ws/lib/permessage-deflate.js"(exports, module) {
2649
+ "../node_modules/ws/lib/permessage-deflate.js"(exports, module) {
2743
2650
  "use strict";
2744
2651
  var zlib = __require2("zlib");
2745
2652
  var bufferUtil = require_buffer_util();
@@ -3111,17 +3018,22 @@ var require_permessage_deflate = __commonJS({
3111
3018
  }
3112
3019
  function inflateOnError(err) {
3113
3020
  this[kPerMessageDeflate]._inflate = null;
3021
+ if (this[kError]) {
3022
+ this[kCallback](this[kError]);
3023
+ return;
3024
+ }
3114
3025
  err[kStatusCode] = 1007;
3115
3026
  this[kCallback](err);
3116
3027
  }
3117
3028
  }
3118
3029
  });
3119
3030
 
3120
- // ../../../../node_modules/ws/lib/validation.js
3031
+ // ../node_modules/ws/lib/validation.js
3121
3032
  var require_validation = __commonJS({
3122
- "../../../../node_modules/ws/lib/validation.js"(exports, module) {
3033
+ "../node_modules/ws/lib/validation.js"(exports, module) {
3123
3034
  "use strict";
3124
3035
  var { isUtf8 } = __require2("buffer");
3036
+ var { hasBlob } = require_constants();
3125
3037
  var tokenChars = [
3126
3038
  0,
3127
3039
  0,
@@ -3292,7 +3204,11 @@ var require_validation = __commonJS({
3292
3204
  }
3293
3205
  return true;
3294
3206
  }
3207
+ function isBlob(value) {
3208
+ return hasBlob && typeof value === "object" && typeof value.arrayBuffer === "function" && typeof value.type === "string" && typeof value.stream === "function" && (value[Symbol.toStringTag] === "Blob" || value[Symbol.toStringTag] === "File");
3209
+ }
3295
3210
  module.exports = {
3211
+ isBlob,
3296
3212
  isValidStatusCode,
3297
3213
  isValidUTF8: _isValidUTF8,
3298
3214
  tokenChars
@@ -3313,9 +3229,9 @@ var require_validation = __commonJS({
3313
3229
  }
3314
3230
  });
3315
3231
 
3316
- // ../../../../node_modules/ws/lib/receiver.js
3232
+ // ../node_modules/ws/lib/receiver.js
3317
3233
  var require_receiver = __commonJS({
3318
- "../../../../node_modules/ws/lib/receiver.js"(exports, module) {
3234
+ "../node_modules/ws/lib/receiver.js"(exports, module) {
3319
3235
  "use strict";
3320
3236
  var { Writable } = __require2("stream");
3321
3237
  var PerMessageDeflate = require_permessage_deflate();
@@ -3785,6 +3701,8 @@ var require_receiver = __commonJS({
3785
3701
  data = concat(fragments, messageLength);
3786
3702
  } else if (this._binaryType === "arraybuffer") {
3787
3703
  data = toArrayBuffer(concat(fragments, messageLength));
3704
+ } else if (this._binaryType === "blob") {
3705
+ data = new Blob(fragments);
3788
3706
  } else {
3789
3707
  data = fragments;
3790
3708
  }
@@ -3914,18 +3832,24 @@ var require_receiver = __commonJS({
3914
3832
  }
3915
3833
  });
3916
3834
 
3917
- // ../../../../node_modules/ws/lib/sender.js
3835
+ // ../node_modules/ws/lib/sender.js
3918
3836
  var require_sender = __commonJS({
3919
- "../../../../node_modules/ws/lib/sender.js"(exports, module) {
3837
+ "../node_modules/ws/lib/sender.js"(exports, module) {
3920
3838
  "use strict";
3921
3839
  var { Duplex } = __require2("stream");
3922
3840
  var { randomFillSync } = __require2("crypto");
3923
3841
  var PerMessageDeflate = require_permessage_deflate();
3924
- var { EMPTY_BUFFER } = require_constants();
3925
- var { isValidStatusCode } = require_validation();
3842
+ var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants();
3843
+ var { isBlob, isValidStatusCode } = require_validation();
3926
3844
  var { mask: applyMask, toBuffer } = require_buffer_util();
3927
3845
  var kByteLength = Symbol("kByteLength");
3928
3846
  var maskBuffer = Buffer.alloc(4);
3847
+ var RANDOM_POOL_SIZE = 8 * 1024;
3848
+ var randomPool;
3849
+ var randomPoolPointer = RANDOM_POOL_SIZE;
3850
+ var DEFAULT = 0;
3851
+ var DEFLATING = 1;
3852
+ var GET_BLOB_DATA = 2;
3929
3853
  var Sender2 = class _Sender {
3930
3854
  /**
3931
3855
  * Creates a Sender instance.
@@ -3945,8 +3869,10 @@ var require_sender = __commonJS({
3945
3869
  this._firstFragment = true;
3946
3870
  this._compress = false;
3947
3871
  this._bufferedBytes = 0;
3948
- this._deflating = false;
3949
3872
  this._queue = [];
3873
+ this._state = DEFAULT;
3874
+ this.onerror = NOOP;
3875
+ this[kWebSocket] = void 0;
3950
3876
  }
3951
3877
  /**
3952
3878
  * Frames a piece of data according to the HyBi WebSocket protocol.
@@ -3979,7 +3905,17 @@ var require_sender = __commonJS({
3979
3905
  if (options.generateMask) {
3980
3906
  options.generateMask(mask);
3981
3907
  } else {
3982
- randomFillSync(mask, 0, 4);
3908
+ if (randomPoolPointer === RANDOM_POOL_SIZE) {
3909
+ if (randomPool === void 0) {
3910
+ randomPool = Buffer.alloc(RANDOM_POOL_SIZE);
3911
+ }
3912
+ randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);
3913
+ randomPoolPointer = 0;
3914
+ }
3915
+ mask[0] = randomPool[randomPoolPointer++];
3916
+ mask[1] = randomPool[randomPoolPointer++];
3917
+ mask[2] = randomPool[randomPoolPointer++];
3918
+ mask[3] = randomPool[randomPoolPointer++];
3983
3919
  }
3984
3920
  skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;
3985
3921
  offset = 6;
@@ -4072,7 +4008,7 @@ var require_sender = __commonJS({
4072
4008
  readOnly: false,
4073
4009
  rsv1: false
4074
4010
  };
4075
- if (this._deflating) {
4011
+ if (this._state !== DEFAULT) {
4076
4012
  this.enqueue([this.dispatch, buf, false, options, cb]);
4077
4013
  } else {
4078
4014
  this.sendFrame(_Sender.frame(buf, options), cb);
@@ -4092,6 +4028,9 @@ var require_sender = __commonJS({
4092
4028
  if (typeof data === "string") {
4093
4029
  byteLength = Buffer.byteLength(data);
4094
4030
  readOnly = false;
4031
+ } else if (isBlob(data)) {
4032
+ byteLength = data.size;
4033
+ readOnly = false;
4095
4034
  } else {
4096
4035
  data = toBuffer(data);
4097
4036
  byteLength = data.length;
@@ -4110,7 +4049,13 @@ var require_sender = __commonJS({
4110
4049
  readOnly,
4111
4050
  rsv1: false
4112
4051
  };
4113
- if (this._deflating) {
4052
+ if (isBlob(data)) {
4053
+ if (this._state !== DEFAULT) {
4054
+ this.enqueue([this.getBlobData, data, false, options, cb]);
4055
+ } else {
4056
+ this.getBlobData(data, false, options, cb);
4057
+ }
4058
+ } else if (this._state !== DEFAULT) {
4114
4059
  this.enqueue([this.dispatch, data, false, options, cb]);
4115
4060
  } else {
4116
4061
  this.sendFrame(_Sender.frame(data, options), cb);
@@ -4130,6 +4075,9 @@ var require_sender = __commonJS({
4130
4075
  if (typeof data === "string") {
4131
4076
  byteLength = Buffer.byteLength(data);
4132
4077
  readOnly = false;
4078
+ } else if (isBlob(data)) {
4079
+ byteLength = data.size;
4080
+ readOnly = false;
4133
4081
  } else {
4134
4082
  data = toBuffer(data);
4135
4083
  byteLength = data.length;
@@ -4148,7 +4096,13 @@ var require_sender = __commonJS({
4148
4096
  readOnly,
4149
4097
  rsv1: false
4150
4098
  };
4151
- if (this._deflating) {
4099
+ if (isBlob(data)) {
4100
+ if (this._state !== DEFAULT) {
4101
+ this.enqueue([this.getBlobData, data, false, options, cb]);
4102
+ } else {
4103
+ this.getBlobData(data, false, options, cb);
4104
+ }
4105
+ } else if (this._state !== DEFAULT) {
4152
4106
  this.enqueue([this.dispatch, data, false, options, cb]);
4153
4107
  } else {
4154
4108
  this.sendFrame(_Sender.frame(data, options), cb);
@@ -4179,6 +4133,9 @@ var require_sender = __commonJS({
4179
4133
  if (typeof data === "string") {
4180
4134
  byteLength = Buffer.byteLength(data);
4181
4135
  readOnly = false;
4136
+ } else if (isBlob(data)) {
4137
+ byteLength = data.size;
4138
+ readOnly = false;
4182
4139
  } else {
4183
4140
  data = toBuffer(data);
4184
4141
  byteLength = data.length;
@@ -4196,38 +4153,75 @@ var require_sender = __commonJS({
4196
4153
  }
4197
4154
  if (options.fin)
4198
4155
  this._firstFragment = true;
4199
- if (perMessageDeflate) {
4200
- const opts = {
4201
- [kByteLength]: byteLength,
4202
- fin: options.fin,
4203
- generateMask: this._generateMask,
4204
- mask: options.mask,
4205
- maskBuffer: this._maskBuffer,
4206
- opcode,
4207
- readOnly,
4208
- rsv1
4209
- };
4210
- if (this._deflating) {
4211
- this.enqueue([this.dispatch, data, this._compress, opts, cb]);
4156
+ const opts = {
4157
+ [kByteLength]: byteLength,
4158
+ fin: options.fin,
4159
+ generateMask: this._generateMask,
4160
+ mask: options.mask,
4161
+ maskBuffer: this._maskBuffer,
4162
+ opcode,
4163
+ readOnly,
4164
+ rsv1
4165
+ };
4166
+ if (isBlob(data)) {
4167
+ if (this._state !== DEFAULT) {
4168
+ this.enqueue([this.getBlobData, data, this._compress, opts, cb]);
4212
4169
  } else {
4213
- this.dispatch(data, this._compress, opts, cb);
4170
+ this.getBlobData(data, this._compress, opts, cb);
4214
4171
  }
4172
+ } else if (this._state !== DEFAULT) {
4173
+ this.enqueue([this.dispatch, data, this._compress, opts, cb]);
4215
4174
  } else {
4216
- this.sendFrame(
4217
- _Sender.frame(data, {
4218
- [kByteLength]: byteLength,
4219
- fin: options.fin,
4220
- generateMask: this._generateMask,
4221
- mask: options.mask,
4222
- maskBuffer: this._maskBuffer,
4223
- opcode,
4224
- readOnly,
4225
- rsv1: false
4226
- }),
4227
- cb
4228
- );
4175
+ this.dispatch(data, this._compress, opts, cb);
4229
4176
  }
4230
4177
  }
4178
+ /**
4179
+ * Gets the contents of a blob as binary data.
4180
+ *
4181
+ * @param {Blob} blob The blob
4182
+ * @param {Boolean} [compress=false] Specifies whether or not to compress
4183
+ * the data
4184
+ * @param {Object} options Options object
4185
+ * @param {Boolean} [options.fin=false] Specifies whether or not to set the
4186
+ * FIN bit
4187
+ * @param {Function} [options.generateMask] The function used to generate the
4188
+ * masking key
4189
+ * @param {Boolean} [options.mask=false] Specifies whether or not to mask
4190
+ * `data`
4191
+ * @param {Buffer} [options.maskBuffer] The buffer used to store the masking
4192
+ * key
4193
+ * @param {Number} options.opcode The opcode
4194
+ * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
4195
+ * modified
4196
+ * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
4197
+ * RSV1 bit
4198
+ * @param {Function} [cb] Callback
4199
+ * @private
4200
+ */
4201
+ getBlobData(blob, compress, options, cb) {
4202
+ this._bufferedBytes += options[kByteLength];
4203
+ this._state = GET_BLOB_DATA;
4204
+ blob.arrayBuffer().then((arrayBuffer) => {
4205
+ if (this._socket.destroyed) {
4206
+ const err = new Error(
4207
+ "The socket was closed while the blob was being read"
4208
+ );
4209
+ process.nextTick(callCallbacks, this, err, cb);
4210
+ return;
4211
+ }
4212
+ this._bufferedBytes -= options[kByteLength];
4213
+ const data = toBuffer(arrayBuffer);
4214
+ if (!compress) {
4215
+ this._state = DEFAULT;
4216
+ this.sendFrame(_Sender.frame(data, options), cb);
4217
+ this.dequeue();
4218
+ } else {
4219
+ this.dispatch(data, compress, options, cb);
4220
+ }
4221
+ }).catch((err) => {
4222
+ process.nextTick(onError, this, err, cb);
4223
+ });
4224
+ }
4231
4225
  /**
4232
4226
  * Dispatches a message.
4233
4227
  *
@@ -4258,24 +4252,17 @@ var require_sender = __commonJS({
4258
4252
  }
4259
4253
  const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
4260
4254
  this._bufferedBytes += options[kByteLength];
4261
- this._deflating = true;
4255
+ this._state = DEFLATING;
4262
4256
  perMessageDeflate.compress(data, options.fin, (_, buf) => {
4263
4257
  if (this._socket.destroyed) {
4264
4258
  const err = new Error(
4265
4259
  "The socket was closed while data was being compressed"
4266
4260
  );
4267
- if (typeof cb === "function")
4268
- cb(err);
4269
- for (let i = 0; i < this._queue.length; i++) {
4270
- const params = this._queue[i];
4271
- const callback = params[params.length - 1];
4272
- if (typeof callback === "function")
4273
- callback(err);
4274
- }
4261
+ callCallbacks(this, err, cb);
4275
4262
  return;
4276
4263
  }
4277
4264
  this._bufferedBytes -= options[kByteLength];
4278
- this._deflating = false;
4265
+ this._state = DEFAULT;
4279
4266
  options.readOnly = false;
4280
4267
  this.sendFrame(_Sender.frame(buf, options), cb);
4281
4268
  this.dequeue();
@@ -4287,7 +4274,7 @@ var require_sender = __commonJS({
4287
4274
  * @private
4288
4275
  */
4289
4276
  dequeue() {
4290
- while (!this._deflating && this._queue.length) {
4277
+ while (this._state === DEFAULT && this._queue.length) {
4291
4278
  const params = this._queue.shift();
4292
4279
  this._bufferedBytes -= params[3][kByteLength];
4293
4280
  Reflect.apply(params[0], this, params.slice(1));
@@ -4306,7 +4293,7 @@ var require_sender = __commonJS({
4306
4293
  /**
4307
4294
  * Sends a frame.
4308
4295
  *
4309
- * @param {Buffer[]} list The frame to send
4296
+ * @param {(Buffer | String)[]} list The frame to send
4310
4297
  * @param {Function} [cb] Callback
4311
4298
  * @private
4312
4299
  */
@@ -4322,12 +4309,26 @@ var require_sender = __commonJS({
4322
4309
  }
4323
4310
  };
4324
4311
  module.exports = Sender2;
4312
+ function callCallbacks(sender, err, cb) {
4313
+ if (typeof cb === "function")
4314
+ cb(err);
4315
+ for (let i = 0; i < sender._queue.length; i++) {
4316
+ const params = sender._queue[i];
4317
+ const callback = params[params.length - 1];
4318
+ if (typeof callback === "function")
4319
+ callback(err);
4320
+ }
4321
+ }
4322
+ function onError(sender, err, cb) {
4323
+ callCallbacks(sender, err, cb);
4324
+ sender.onerror(err);
4325
+ }
4325
4326
  }
4326
4327
  });
4327
4328
 
4328
- // ../../../../node_modules/ws/lib/event-target.js
4329
+ // ../node_modules/ws/lib/event-target.js
4329
4330
  var require_event_target = __commonJS({
4330
- "../../../../node_modules/ws/lib/event-target.js"(exports, module) {
4331
+ "../node_modules/ws/lib/event-target.js"(exports, module) {
4331
4332
  "use strict";
4332
4333
  var { kForOnEventAttribute, kListener } = require_constants();
4333
4334
  var kCode = Symbol("kCode");
@@ -4554,9 +4555,9 @@ var require_event_target = __commonJS({
4554
4555
  }
4555
4556
  });
4556
4557
 
4557
- // ../../../../node_modules/ws/lib/extension.js
4558
+ // ../node_modules/ws/lib/extension.js
4558
4559
  var require_extension = __commonJS({
4559
- "../../../../node_modules/ws/lib/extension.js"(exports, module) {
4560
+ "../node_modules/ws/lib/extension.js"(exports, module) {
4560
4561
  "use strict";
4561
4562
  var { tokenChars } = require_validation();
4562
4563
  function push(dest, name, elem) {
@@ -4724,9 +4725,9 @@ var require_extension = __commonJS({
4724
4725
  }
4725
4726
  });
4726
4727
 
4727
- // ../../../../node_modules/ws/lib/websocket.js
4728
+ // ../node_modules/ws/lib/websocket.js
4728
4729
  var require_websocket = __commonJS({
4729
- "../../../../node_modules/ws/lib/websocket.js"(exports, module) {
4730
+ "../node_modules/ws/lib/websocket.js"(exports, module) {
4730
4731
  "use strict";
4731
4732
  var EventEmitter = __require2("events");
4732
4733
  var https = __require2("https");
@@ -4739,6 +4740,7 @@ var require_websocket = __commonJS({
4739
4740
  var PerMessageDeflate = require_permessage_deflate();
4740
4741
  var Receiver2 = require_receiver();
4741
4742
  var Sender2 = require_sender();
4743
+ var { isBlob } = require_validation();
4742
4744
  var {
4743
4745
  BINARY_TYPES,
4744
4746
  EMPTY_BUFFER,
@@ -4775,6 +4777,7 @@ var require_websocket = __commonJS({
4775
4777
  this._closeFrameSent = false;
4776
4778
  this._closeMessage = EMPTY_BUFFER;
4777
4779
  this._closeTimer = null;
4780
+ this._errorEmitted = false;
4778
4781
  this._extensions = {};
4779
4782
  this._paused = false;
4780
4783
  this._protocol = "";
@@ -4803,9 +4806,8 @@ var require_websocket = __commonJS({
4803
4806
  }
4804
4807
  }
4805
4808
  /**
4806
- * This deviates from the WHATWG interface since ws doesn't support the
4807
- * required default "blob" type (instead we define a custom "nodebuffer"
4808
- * type).
4809
+ * For historical reasons, the custom "nodebuffer" type is used by the default
4810
+ * instead of "blob".
4809
4811
  *
4810
4812
  * @type {String}
4811
4813
  */
@@ -4910,10 +4912,12 @@ var require_websocket = __commonJS({
4910
4912
  maxPayload: options.maxPayload,
4911
4913
  skipUTF8Validation: options.skipUTF8Validation
4912
4914
  });
4913
- this._sender = new Sender2(socket, this._extensions, options.generateMask);
4915
+ const sender = new Sender2(socket, this._extensions, options.generateMask);
4914
4916
  this._receiver = receiver;
4917
+ this._sender = sender;
4915
4918
  this._socket = socket;
4916
4919
  receiver[kWebSocket] = this;
4920
+ sender[kWebSocket] = this;
4917
4921
  socket[kWebSocket] = this;
4918
4922
  receiver.on("conclude", receiverOnConclude);
4919
4923
  receiver.on("drain", receiverOnDrain);
@@ -4921,6 +4925,7 @@ var require_websocket = __commonJS({
4921
4925
  receiver.on("message", receiverOnMessage);
4922
4926
  receiver.on("ping", receiverOnPing);
4923
4927
  receiver.on("pong", receiverOnPong);
4928
+ sender.onerror = senderOnError;
4924
4929
  if (socket.setTimeout)
4925
4930
  socket.setTimeout(0);
4926
4931
  if (socket.setNoDelay)
@@ -4995,10 +5000,7 @@ var require_websocket = __commonJS({
4995
5000
  this._socket.end();
4996
5001
  }
4997
5002
  });
4998
- this._closeTimer = setTimeout(
4999
- this._socket.destroy.bind(this._socket),
5000
- closeTimeout
5001
- );
5003
+ setCloseTimer(this);
5002
5004
  }
5003
5005
  /**
5004
5006
  * Pause the socket.
@@ -5260,7 +5262,7 @@ var require_websocket = __commonJS({
5260
5262
  const isIpcUrl = parsedUrl.protocol === "ws+unix:";
5261
5263
  let invalidUrlMessage;
5262
5264
  if (parsedUrl.protocol !== "ws:" && !isSecure && !isIpcUrl) {
5263
- invalidUrlMessage = `The URL's protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"`;
5265
+ invalidUrlMessage = `The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`;
5264
5266
  } else if (isIpcUrl && !parsedUrl.pathname) {
5265
5267
  invalidUrlMessage = "The URL's pathname is empty";
5266
5268
  } else if (parsedUrl.hash) {
@@ -5404,7 +5406,8 @@ var require_websocket = __commonJS({
5404
5406
  if (websocket.readyState !== WebSocket2.CONNECTING)
5405
5407
  return;
5406
5408
  req = websocket._req = null;
5407
- if (res.headers.upgrade.toLowerCase() !== "websocket") {
5409
+ const upgrade = res.headers.upgrade;
5410
+ if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") {
5408
5411
  abortHandshake(websocket, socket, "Invalid Upgrade header");
5409
5412
  return;
5410
5413
  }
@@ -5475,6 +5478,7 @@ var require_websocket = __commonJS({
5475
5478
  }
5476
5479
  function emitErrorAndClose(websocket, err) {
5477
5480
  websocket._readyState = WebSocket2.CLOSING;
5481
+ websocket._errorEmitted = true;
5478
5482
  websocket.emit("error", err);
5479
5483
  websocket.emitClose();
5480
5484
  }
@@ -5508,7 +5512,7 @@ var require_websocket = __commonJS({
5508
5512
  }
5509
5513
  function sendAfterClose(websocket, data, cb) {
5510
5514
  if (data) {
5511
- const length = toBuffer(data).length;
5515
+ const length = isBlob(data) ? data.size : toBuffer(data).length;
5512
5516
  if (websocket._socket)
5513
5517
  websocket._sender._bufferedBytes += length;
5514
5518
  else
@@ -5547,7 +5551,10 @@ var require_websocket = __commonJS({
5547
5551
  process.nextTick(resume, websocket._socket);
5548
5552
  websocket.close(err[kStatusCode]);
5549
5553
  }
5550
- websocket.emit("error", err);
5554
+ if (!websocket._errorEmitted) {
5555
+ websocket._errorEmitted = true;
5556
+ websocket.emit("error", err);
5557
+ }
5551
5558
  }
5552
5559
  function receiverOnFinish() {
5553
5560
  this[kWebSocket].emitClose();
@@ -5567,6 +5574,26 @@ var require_websocket = __commonJS({
5567
5574
  function resume(stream2) {
5568
5575
  stream2.resume();
5569
5576
  }
5577
+ function senderOnError(err) {
5578
+ const websocket = this[kWebSocket];
5579
+ if (websocket.readyState === WebSocket2.CLOSED)
5580
+ return;
5581
+ if (websocket.readyState === WebSocket2.OPEN) {
5582
+ websocket._readyState = WebSocket2.CLOSING;
5583
+ setCloseTimer(websocket);
5584
+ }
5585
+ this._socket.end();
5586
+ if (!websocket._errorEmitted) {
5587
+ websocket._errorEmitted = true;
5588
+ websocket.emit("error", err);
5589
+ }
5590
+ }
5591
+ function setCloseTimer(websocket) {
5592
+ websocket._closeTimer = setTimeout(
5593
+ websocket._socket.destroy.bind(websocket._socket),
5594
+ closeTimeout
5595
+ );
5596
+ }
5570
5597
  function socketOnClose() {
5571
5598
  const websocket = this[kWebSocket];
5572
5599
  this.removeListener("close", socketOnClose);
@@ -5610,9 +5637,115 @@ var require_websocket = __commonJS({
5610
5637
  }
5611
5638
  });
5612
5639
 
5613
- // ../../../../node_modules/ws/lib/subprotocol.js
5640
+ // ../node_modules/ws/lib/stream.js
5641
+ var require_stream = __commonJS({
5642
+ "../node_modules/ws/lib/stream.js"(exports, module) {
5643
+ "use strict";
5644
+ var WebSocket2 = require_websocket();
5645
+ var { Duplex } = __require2("stream");
5646
+ function emitClose(stream2) {
5647
+ stream2.emit("close");
5648
+ }
5649
+ function duplexOnEnd() {
5650
+ if (!this.destroyed && this._writableState.finished) {
5651
+ this.destroy();
5652
+ }
5653
+ }
5654
+ function duplexOnError(err) {
5655
+ this.removeListener("error", duplexOnError);
5656
+ this.destroy();
5657
+ if (this.listenerCount("error") === 0) {
5658
+ this.emit("error", err);
5659
+ }
5660
+ }
5661
+ function createWebSocketStream2(ws, options) {
5662
+ let terminateOnDestroy = true;
5663
+ const duplex = new Duplex({
5664
+ ...options,
5665
+ autoDestroy: false,
5666
+ emitClose: false,
5667
+ objectMode: false,
5668
+ writableObjectMode: false
5669
+ });
5670
+ ws.on("message", function message(msg, isBinary) {
5671
+ const data = !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;
5672
+ if (!duplex.push(data))
5673
+ ws.pause();
5674
+ });
5675
+ ws.once("error", function error2(err) {
5676
+ if (duplex.destroyed)
5677
+ return;
5678
+ terminateOnDestroy = false;
5679
+ duplex.destroy(err);
5680
+ });
5681
+ ws.once("close", function close() {
5682
+ if (duplex.destroyed)
5683
+ return;
5684
+ duplex.push(null);
5685
+ });
5686
+ duplex._destroy = function(err, callback) {
5687
+ if (ws.readyState === ws.CLOSED) {
5688
+ callback(err);
5689
+ process.nextTick(emitClose, duplex);
5690
+ return;
5691
+ }
5692
+ let called = false;
5693
+ ws.once("error", function error2(err2) {
5694
+ called = true;
5695
+ callback(err2);
5696
+ });
5697
+ ws.once("close", function close() {
5698
+ if (!called)
5699
+ callback(err);
5700
+ process.nextTick(emitClose, duplex);
5701
+ });
5702
+ if (terminateOnDestroy)
5703
+ ws.terminate();
5704
+ };
5705
+ duplex._final = function(callback) {
5706
+ if (ws.readyState === ws.CONNECTING) {
5707
+ ws.once("open", function open() {
5708
+ duplex._final(callback);
5709
+ });
5710
+ return;
5711
+ }
5712
+ if (ws._socket === null)
5713
+ return;
5714
+ if (ws._socket._writableState.finished) {
5715
+ callback();
5716
+ if (duplex._readableState.endEmitted)
5717
+ duplex.destroy();
5718
+ } else {
5719
+ ws._socket.once("finish", function finish() {
5720
+ callback();
5721
+ });
5722
+ ws.close();
5723
+ }
5724
+ };
5725
+ duplex._read = function() {
5726
+ if (ws.isPaused)
5727
+ ws.resume();
5728
+ };
5729
+ duplex._write = function(chunk, encoding, callback) {
5730
+ if (ws.readyState === ws.CONNECTING) {
5731
+ ws.once("open", function open() {
5732
+ duplex._write(chunk, encoding, callback);
5733
+ });
5734
+ return;
5735
+ }
5736
+ ws.send(chunk, callback);
5737
+ };
5738
+ duplex.on("end", duplexOnEnd);
5739
+ duplex.on("error", duplexOnError);
5740
+ return duplex;
5741
+ }
5742
+ module.exports = createWebSocketStream2;
5743
+ }
5744
+ });
5745
+
5746
+ // ../node_modules/ws/lib/subprotocol.js
5614
5747
  var require_subprotocol = __commonJS({
5615
- "../../../../node_modules/ws/lib/subprotocol.js"(exports, module) {
5748
+ "../node_modules/ws/lib/subprotocol.js"(exports, module) {
5616
5749
  "use strict";
5617
5750
  var { tokenChars } = require_validation();
5618
5751
  function parse(header) {
@@ -5658,9 +5791,9 @@ var require_subprotocol = __commonJS({
5658
5791
  }
5659
5792
  });
5660
5793
 
5661
- // ../../../../node_modules/ws/lib/websocket-server.js
5794
+ // ../node_modules/ws/lib/websocket-server.js
5662
5795
  var require_websocket_server = __commonJS({
5663
- "../../../../node_modules/ws/lib/websocket-server.js"(exports, module) {
5796
+ "../node_modules/ws/lib/websocket-server.js"(exports, module) {
5664
5797
  "use strict";
5665
5798
  var EventEmitter = __require2("events");
5666
5799
  var http = __require2("http");
@@ -5860,25 +5993,28 @@ var require_websocket_server = __commonJS({
5860
5993
  handleUpgrade(req, socket, head, cb) {
5861
5994
  socket.on("error", socketOnError);
5862
5995
  const key = req.headers["sec-websocket-key"];
5996
+ const upgrade = req.headers.upgrade;
5863
5997
  const version = +req.headers["sec-websocket-version"];
5864
5998
  if (req.method !== "GET") {
5865
5999
  const message = "Invalid HTTP method";
5866
6000
  abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);
5867
6001
  return;
5868
6002
  }
5869
- if (req.headers.upgrade.toLowerCase() !== "websocket") {
6003
+ if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") {
5870
6004
  const message = "Invalid Upgrade header";
5871
6005
  abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
5872
6006
  return;
5873
6007
  }
5874
- if (!key || !keyRegex.test(key)) {
6008
+ if (key === void 0 || !keyRegex.test(key)) {
5875
6009
  const message = "Missing or invalid Sec-WebSocket-Key header";
5876
6010
  abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
5877
6011
  return;
5878
6012
  }
5879
- if (version !== 8 && version !== 13) {
6013
+ if (version !== 13 && version !== 8) {
5880
6014
  const message = "Missing or invalid Sec-WebSocket-Version header";
5881
- abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
6015
+ abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {
6016
+ "Sec-WebSocket-Version": "13, 8"
6017
+ });
5882
6018
  return;
5883
6019
  }
5884
6020
  if (!this.shouldHandle(req)) {
@@ -6041,19 +6177,19 @@ var require_websocket_server = __commonJS({
6041
6177
  ` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message
6042
6178
  );
6043
6179
  }
6044
- function abortHandshakeOrEmitwsClientError(server, req, socket, code, message) {
6180
+ function abortHandshakeOrEmitwsClientError(server, req, socket, code, message, headers) {
6045
6181
  if (server.listenerCount("wsClientError")) {
6046
6182
  const err = new Error(message);
6047
6183
  Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);
6048
6184
  server.emit("wsClientError", err, socket, req);
6049
6185
  } else {
6050
- abortHandshake(socket, code, message);
6186
+ abortHandshake(socket, code, message, headers);
6051
6187
  }
6052
6188
  }
6053
6189
  }
6054
6190
  });
6055
6191
 
6056
- // ../../../../node_modules/ws/wrapper.mjs
6192
+ // ../node_modules/ws/wrapper.mjs
6057
6193
  var wrapper_exports = {};
6058
6194
  __export(wrapper_exports, {
6059
6195
  Receiver: () => import_receiver.default,
@@ -6065,7 +6201,7 @@ __export(wrapper_exports, {
6065
6201
  });
6066
6202
  var import_stream, import_receiver, import_sender, import_websocket, import_websocket_server, wrapper_default;
6067
6203
  var init_wrapper = __esm({
6068
- "../../../../node_modules/ws/wrapper.mjs"() {
6204
+ "../node_modules/ws/wrapper.mjs"() {
6069
6205
  import_stream = __toESM(require_stream(), 1);
6070
6206
  import_receiver = __toESM(require_receiver(), 1);
6071
6207
  import_sender = __toESM(require_sender(), 1);
@@ -8921,6 +9057,7 @@ function transformImportsWithMap(code, importMap, scope, options) {
8921
9057
  init_runtime();
8922
9058
  init_process();
8923
9059
  import { join as join4 } from "node:path";
9060
+ var IS_TRUE_NODE = isNode && !isDeno;
8924
9061
  var LOG_PREFIX_MDX_LOADER = "[mdx-loader]";
8925
9062
  var LOG_PREFIX_MDX_RENDERER = "[mdx-renderer]";
8926
9063
  var JSX_IMPORT_PATTERN = /import\s+([^'"]+)\s+from\s+['"]file:\/\/([^'"]+\.(jsx|tsx))['"];?/g;
@@ -8929,6 +9066,57 @@ var HTTP_IMPORT_PATTERN = /['"]https?:\/\/[^'"]+['"]/;
8929
9066
  var ESBUILD_JSX_FACTORY = "React.createElement";
8930
9067
  var ESBUILD_JSX_FRAGMENT = "React.Fragment";
8931
9068
  var HTTP_MODULE_FETCH_TIMEOUT_MS2 = 3e4;
9069
+ var _resolvedPaths = {};
9070
+ async function resolveNodePackage(packageSpec) {
9071
+ if (!IS_TRUE_NODE)
9072
+ return null;
9073
+ if (packageSpec in _resolvedPaths)
9074
+ return _resolvedPaths[packageSpec];
9075
+ try {
9076
+ const { createRequire } = await import("node:module");
9077
+ const require2 = createRequire(import.meta.url);
9078
+ const resolved = require2.resolve(packageSpec);
9079
+ _resolvedPaths[packageSpec] = resolved;
9080
+ return resolved;
9081
+ } catch {
9082
+ _resolvedPaths[packageSpec] = null;
9083
+ return null;
9084
+ }
9085
+ }
9086
+ async function transformReactImportsToAbsolute(code) {
9087
+ if (!IS_TRUE_NODE)
9088
+ return code;
9089
+ const reactPath = await resolveNodePackage("react");
9090
+ const reactJsxPath = await resolveNodePackage("react/jsx-runtime");
9091
+ const reactJsxDevPath = await resolveNodePackage("react/jsx-dev-runtime");
9092
+ const reactDomPath = await resolveNodePackage("react-dom");
9093
+ let result = code;
9094
+ if (reactJsxPath) {
9095
+ result = result.replace(
9096
+ /from\s+['"]react\/jsx-runtime['"]/g,
9097
+ `from "file://${reactJsxPath}"`
9098
+ );
9099
+ }
9100
+ if (reactJsxDevPath) {
9101
+ result = result.replace(
9102
+ /from\s+['"]react\/jsx-dev-runtime['"]/g,
9103
+ `from "file://${reactJsxDevPath}"`
9104
+ );
9105
+ }
9106
+ if (reactDomPath) {
9107
+ result = result.replace(
9108
+ /from\s+['"]react-dom['"]/g,
9109
+ `from "file://${reactDomPath}"`
9110
+ );
9111
+ }
9112
+ if (reactPath) {
9113
+ result = result.replace(
9114
+ /from\s+['"]react['"]/g,
9115
+ `from "file://${reactPath}"`
9116
+ );
9117
+ }
9118
+ return result;
9119
+ }
8932
9120
  function hashString(input) {
8933
9121
  const HASH_SEED_FNV1A2 = 2166136261;
8934
9122
  let hash = HASH_SEED_FNV1A2 >>> 0;
@@ -9003,7 +9191,7 @@ async function loadModuleESM(compiledProgramCode, context) {
9003
9191
  const { getAdapter: getAdapter2 } = await Promise.resolve().then(() => (init_detect(), detect_exports));
9004
9192
  const adapter = await getAdapter2();
9005
9193
  if (!context.esmCacheDir) {
9006
- if (isNode) {
9194
+ if (IS_TRUE_NODE) {
9007
9195
  const projectCacheDir = join4(
9008
9196
  cwd(),
9009
9197
  "node_modules",
@@ -9017,8 +9205,8 @@ async function loadModuleESM(compiledProgramCode, context) {
9017
9205
  }
9018
9206
  }
9019
9207
  let rewritten;
9020
- if (isNode) {
9021
- rewritten = compiledProgramCode;
9208
+ if (IS_TRUE_NODE) {
9209
+ rewritten = await transformReactImportsToAbsolute(compiledProgramCode);
9022
9210
  } else {
9023
9211
  rewritten = transformImportsWithMap(
9024
9212
  compiledProgramCode,
@@ -9072,7 +9260,7 @@ ${transformed}`;
9072
9260
  if (/\bconst\s+MDXLayout\b/.test(rewritten) && !/export\s+\{[^}]*MDXLayout/.test(rewritten)) {
9073
9261
  rewritten += "\nexport { MDXLayout as __vfLayout };\n";
9074
9262
  }
9075
- if (isNode && HTTP_IMPORT_PATTERN.test(rewritten)) {
9263
+ if (IS_TRUE_NODE && HTTP_IMPORT_PATTERN.test(rewritten)) {
9076
9264
  rendererLogger.info(`${LOG_PREFIX_MDX_LOADER} Bundling HTTP imports via esbuild for Node.js`);
9077
9265
  const { build: build2 } = await import("esbuild/mod.js");
9078
9266
  const tempSourcePath = join4(context.esmCacheDir, `temp-${hashString(rewritten)}.mjs`);
@@ -10046,12 +10234,10 @@ var TracingManager = class {
10046
10234
  }
10047
10235
  }
10048
10236
  async initializeTracer(config) {
10049
- const otelApiModule = ["npm:@opentelemetry/", "api@1"].join("");
10050
- const api = await import(otelApiModule);
10237
+ const api = await import("@opentelemetry/api");
10051
10238
  this.state.api = api;
10052
10239
  this.state.tracer = api.trace.getTracer(config.serviceName || "veryfront", "0.1.0");
10053
- const otelCoreModule = ["npm:@opentelemetry/", "core@1"].join("");
10054
- const { W3CTraceContextPropagator } = await import(otelCoreModule);
10240
+ const { W3CTraceContextPropagator } = await import("@opentelemetry/core");
10055
10241
  const propagator = new W3CTraceContextPropagator();
10056
10242
  this.state.propagator = propagator;
10057
10243
  api.propagation.setGlobalPropagator(propagator);