elit 3.6.5 → 3.6.7

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.
Files changed (154) hide show
  1. package/Cargo.lock +1 -1
  2. package/Cargo.toml +1 -1
  3. package/README.md +6 -0
  4. package/dist/build.cjs +421 -331
  5. package/dist/build.d.ts +1 -16
  6. package/dist/build.js +420 -330
  7. package/dist/build.mjs +420 -330
  8. package/dist/chokidar.cjs +219 -182
  9. package/dist/chokidar.d.ts +25 -10
  10. package/dist/chokidar.js +217 -182
  11. package/dist/chokidar.mjs +218 -183
  12. package/dist/cli.cjs +21608 -20241
  13. package/dist/cli.d.ts +19 -37
  14. package/dist/cli.mjs +21262 -19910
  15. package/dist/config.cjs +357 -350
  16. package/dist/config.d.ts +19 -240
  17. package/dist/config.js +520 -515
  18. package/dist/config.mjs +346 -341
  19. package/dist/contracts-BeW9k0yZ.d.ts +54 -0
  20. package/dist/contracts-D7KIS-TK.d.ts +36 -0
  21. package/dist/coverage.cjs +448 -485
  22. package/dist/coverage.d.ts +13 -59
  23. package/dist/coverage.js +447 -484
  24. package/dist/coverage.mjs +447 -484
  25. package/dist/database.cjs +819 -828
  26. package/dist/database.d.ts +8 -24
  27. package/dist/database.js +818 -829
  28. package/dist/database.mjs +818 -829
  29. package/dist/desktop-auto-render.cjs +1700 -1522
  30. package/dist/desktop-auto-render.d.ts +4 -9
  31. package/dist/desktop-auto-render.js +1695 -1517
  32. package/dist/desktop-auto-render.mjs +1696 -1518
  33. package/dist/desktop.cjs +3 -1
  34. package/dist/desktop.d.ts +4 -1
  35. package/dist/desktop.js +1 -1
  36. package/dist/desktop.mjs +1 -1
  37. package/dist/dev-build.cjs +830 -0
  38. package/dist/dev-build.d.ts +53 -0
  39. package/dist/dev-build.js +3318 -0
  40. package/dist/dev-build.mjs +797 -0
  41. package/dist/dom.cjs +717 -590
  42. package/dist/dom.d.ts +2 -15
  43. package/dist/dom.js +714 -587
  44. package/dist/dom.mjs +716 -589
  45. package/dist/el.cjs +62 -52
  46. package/dist/el.d.ts +5 -10
  47. package/dist/el.js +60 -52
  48. package/dist/el.mjs +60 -52
  49. package/dist/fs.cjs +72 -63
  50. package/dist/fs.d.ts +22 -19
  51. package/dist/fs.js +71 -62
  52. package/dist/fs.mjs +71 -62
  53. package/dist/hmr.cjs +40 -14
  54. package/dist/hmr.d.ts +11 -23
  55. package/dist/hmr.js +38 -14
  56. package/dist/hmr.mjs +38 -14
  57. package/dist/http.cjs +251 -99
  58. package/dist/http.d.ts +38 -104
  59. package/dist/http.js +249 -99
  60. package/dist/http.mjs +249 -99
  61. package/dist/https.cjs +524 -228
  62. package/dist/https.d.ts +44 -36
  63. package/dist/https.js +520 -226
  64. package/dist/https.mjs +522 -228
  65. package/dist/index.cjs +7502 -7690
  66. package/dist/index.d.ts +8 -3
  67. package/dist/index.js +7486 -7676
  68. package/dist/index.mjs +7497 -7686
  69. package/dist/mime-types.cjs +10 -4
  70. package/dist/mime-types.d.ts +8 -11
  71. package/dist/mime-types.js +9 -3
  72. package/dist/mime-types.mjs +9 -3
  73. package/dist/native.cjs +8616 -8869
  74. package/dist/native.d.ts +7 -8
  75. package/dist/native.js +8682 -8935
  76. package/dist/native.mjs +8615 -8868
  77. package/dist/path.cjs +83 -77
  78. package/dist/path.d.ts +29 -29
  79. package/dist/path.js +82 -76
  80. package/dist/path.mjs +82 -76
  81. package/dist/pm.cjs +3300 -0
  82. package/dist/pm.d.ts +256 -0
  83. package/dist/pm.js +5638 -0
  84. package/dist/pm.mjs +3196 -0
  85. package/dist/preview-build.cjs +712 -0
  86. package/dist/preview-build.d.ts +59 -0
  87. package/dist/preview-build.js +3194 -0
  88. package/dist/preview-build.mjs +676 -0
  89. package/dist/render-context.cjs +13 -2
  90. package/dist/render-context.d.ts +9 -31
  91. package/dist/render-context.js +11 -2
  92. package/dist/render-context.mjs +11 -2
  93. package/dist/router.cjs +787 -645
  94. package/dist/router.d.ts +8 -12
  95. package/dist/router.js +786 -644
  96. package/dist/router.mjs +786 -644
  97. package/dist/runtime.cjs +1 -1
  98. package/dist/runtime.js +1 -1
  99. package/dist/runtime.mjs +1 -1
  100. package/dist/server.cjs +3315 -2603
  101. package/dist/server.d.ts +49 -4
  102. package/dist/server.js +7611 -2834
  103. package/dist/server.mjs +3317 -2607
  104. package/dist/smtp-server.cjs +128 -0
  105. package/dist/smtp-server.d.ts +27 -0
  106. package/dist/smtp-server.js +4199 -0
  107. package/dist/smtp-server.mjs +100 -0
  108. package/dist/state-DvEkDehk.d.ts +195 -0
  109. package/dist/state.cjs +768 -658
  110. package/dist/state.d.ts +11 -69
  111. package/dist/state.js +760 -650
  112. package/dist/state.mjs +767 -657
  113. package/dist/style.cjs +1011 -968
  114. package/dist/style.d.ts +13 -127
  115. package/dist/style.js +1009 -970
  116. package/dist/style.mjs +1011 -971
  117. package/dist/test-reporter.cjs +332 -316
  118. package/dist/test-reporter.d.ts +28 -33
  119. package/dist/test-reporter.js +328 -312
  120. package/dist/test-reporter.mjs +328 -312
  121. package/dist/test-runtime.cjs +927 -968
  122. package/dist/test-runtime.d.ts +24 -99
  123. package/dist/test-runtime.js +922 -965
  124. package/dist/test-runtime.mjs +922 -965
  125. package/dist/test.cjs +4428 -4273
  126. package/dist/test.d.ts +2 -8
  127. package/dist/test.js +4307 -4154
  128. package/dist/test.mjs +4419 -4267
  129. package/dist/types-BONVzPtp.d.ts +59 -0
  130. package/dist/types-BR4wMiVx.d.ts +32 -0
  131. package/dist/types-C4gKykuG.d.ts +23 -0
  132. package/dist/types-CIhpN1-K.d.ts +64 -0
  133. package/dist/types-Ckj8md_j.d.ts +84 -0
  134. package/dist/types-CpjQTAkX.d.ts +24 -0
  135. package/dist/types-D0LjrYjS.d.ts +14 -0
  136. package/dist/types-DAisuVr5.d.ts +75 -0
  137. package/dist/types-tJn88E1N.d.ts +242 -0
  138. package/dist/types.d.ts +71 -226
  139. package/dist/universal.cjs +1 -1
  140. package/dist/universal.d.ts +1 -5
  141. package/dist/universal.js +1 -1
  142. package/dist/universal.mjs +1 -1
  143. package/dist/websocket-XfyK23zD.d.ts +119 -0
  144. package/dist/ws.cjs +129 -108
  145. package/dist/ws.d.ts +21 -131
  146. package/dist/ws.js +128 -109
  147. package/dist/ws.mjs +128 -109
  148. package/dist/wss.cjs +757 -479
  149. package/dist/wss.d.ts +31 -28
  150. package/dist/wss.js +755 -479
  151. package/dist/wss.mjs +758 -482
  152. package/package.json +16 -1
  153. package/vendor/epaint-0.31.1/src/image.rs +418 -0
  154. package/dist/server-CcBFc2F5.d.ts +0 -449
package/dist/ws.js CHANGED
@@ -7,17 +7,7 @@
7
7
  throw Error('Dynamic require of "' + x + '" is not supported');
8
8
  });
9
9
 
10
- // src/ws.ts
11
- var import_events = __require("events");
12
-
13
- // src/runtime.ts
14
- var runtime = (() => {
15
- if (typeof Deno !== "undefined") return "deno";
16
- if (typeof Bun !== "undefined") return "bun";
17
- return "node";
18
- })();
19
-
20
- // src/ws.ts
10
+ // src/server/ws/constants.ts
21
11
  var ReadyState = /* @__PURE__ */ ((ReadyState2) => {
22
12
  ReadyState2[ReadyState2["CONNECTING"] = 0] = "CONNECTING";
23
13
  ReadyState2[ReadyState2["OPEN"] = 1] = "OPEN";
@@ -42,6 +32,18 @@
42
32
  BAD_GATEWAY: 1014,
43
33
  TLS_HANDSHAKE_FAIL: 1015
44
34
  };
35
+
36
+ // src/server/ws/server.ts
37
+ var import_events2 = __require("events");
38
+
39
+ // src/shares/runtime.ts
40
+ var runtime = (() => {
41
+ if (typeof Deno !== "undefined") return "deno";
42
+ if (typeof Bun !== "undefined") return "bun";
43
+ return "node";
44
+ })();
45
+
46
+ // src/server/ws/utils.ts
45
47
  function queueCallback(callback, error) {
46
48
  if (callback) {
47
49
  queueMicrotask(() => callback(error));
@@ -57,6 +59,73 @@
57
59
  const [pathname = "/"] = (url || "/").split("?");
58
60
  return pathname || "/";
59
61
  }
62
+ function isIgnorableConnectionError(error) {
63
+ const errorCode = error?.code;
64
+ return errorCode === "ECONNABORTED" || errorCode === "ECONNRESET" || errorCode === "EPIPE";
65
+ }
66
+ function coerceBunMessage(message) {
67
+ const isBinary = typeof message !== "string";
68
+ const payload = typeof message === "string" ? message : message instanceof ArrayBuffer ? Buffer.from(message) : ArrayBuffer.isView(message) ? Buffer.from(message.buffer, message.byteOffset, message.byteLength) : Buffer.from(String(message));
69
+ return { payload, isBinary };
70
+ }
71
+ function parseFrame(data) {
72
+ if (data.length < 2) {
73
+ return null;
74
+ }
75
+ const firstByte = data[0];
76
+ const secondByte = data[1];
77
+ const opcode = firstByte & 15;
78
+ const isMasked = (secondByte & 128) === 128;
79
+ let payloadLength = secondByte & 127;
80
+ let offset = 2;
81
+ if (payloadLength === 126) {
82
+ payloadLength = data.readUInt16BE(2);
83
+ offset = 4;
84
+ } else if (payloadLength === 127) {
85
+ payloadLength = Number(data.readBigUInt64BE(2));
86
+ offset = 10;
87
+ }
88
+ let payload = data.subarray(offset);
89
+ if (isMasked) {
90
+ const maskKey = data.subarray(offset, offset + 4);
91
+ payload = data.subarray(offset + 4, offset + 4 + payloadLength);
92
+ for (let index = 0; index < payload.length; index += 1) {
93
+ payload[index] ^= maskKey[index % 4];
94
+ }
95
+ }
96
+ if (opcode === 1) {
97
+ return payload.toString("utf8");
98
+ }
99
+ return null;
100
+ }
101
+ function createFrame(data) {
102
+ const payload = typeof data === "string" ? Buffer.from(data) : data;
103
+ const payloadLength = Buffer.isBuffer(payload) ? payload.length : 0;
104
+ let frame;
105
+ let offset = 2;
106
+ if (payloadLength < 126) {
107
+ frame = Buffer.allocUnsafe(2 + payloadLength);
108
+ frame[1] = payloadLength;
109
+ } else if (payloadLength < 65536) {
110
+ frame = Buffer.allocUnsafe(4 + payloadLength);
111
+ frame[1] = 126;
112
+ frame.writeUInt16BE(payloadLength, 2);
113
+ offset = 4;
114
+ } else {
115
+ frame = Buffer.allocUnsafe(10 + payloadLength);
116
+ frame[1] = 127;
117
+ frame.writeBigUInt64BE(BigInt(payloadLength), 2);
118
+ offset = 10;
119
+ }
120
+ frame[0] = 129;
121
+ if (Buffer.isBuffer(payload)) {
122
+ payload.copy(frame, offset);
123
+ }
124
+ return frame;
125
+ }
126
+
127
+ // src/server/ws/websocket.ts
128
+ var import_events = __require("events");
60
129
  var WebSocket = class extends import_events.EventEmitter {
61
130
  constructor(address, protocols, _options) {
62
131
  super();
@@ -87,12 +156,13 @@
87
156
  };
88
157
  }
89
158
  /**
90
- * Send data through WebSocket
159
+ * Send data through WebSocket.
91
160
  */
92
161
  send(data, options, callback) {
93
162
  const cb = typeof options === "function" ? options : callback;
94
163
  if (this.readyState !== 1 /* OPEN */) {
95
- return queueCallback(cb, new Error("WebSocket is not open"));
164
+ queueCallback(cb, new Error("WebSocket is not open"));
165
+ return;
96
166
  }
97
167
  try {
98
168
  this._socket.send(data);
@@ -102,7 +172,7 @@
102
172
  }
103
173
  }
104
174
  /**
105
- * Close the WebSocket connection
175
+ * Close the WebSocket connection.
106
176
  */
107
177
  close(code, reason) {
108
178
  if (this.readyState === 3 /* CLOSED */ || this.readyState === 2 /* CLOSING */) {
@@ -112,42 +182,44 @@
112
182
  this._socket.close(code, typeof reason === "string" ? reason : reason?.toString());
113
183
  }
114
184
  /**
115
- * Pause the socket (no-op for native WebSocket)
185
+ * Pause the socket (no-op for native WebSocket).
116
186
  */
117
187
  pause() {
118
188
  }
119
189
  /**
120
- * Resume the socket (no-op for native WebSocket)
190
+ * Resume the socket (no-op for native WebSocket).
121
191
  */
122
192
  resume() {
123
193
  }
124
194
  /**
125
- * Send a ping frame (no-op for native WebSocket)
195
+ * Send a ping frame (no-op for native WebSocket).
126
196
  */
127
197
  ping(_data, _mask, callback) {
128
198
  queueCallback(callback);
129
199
  }
130
200
  /**
131
- * Send a pong frame (no-op for native WebSocket)
201
+ * Send a pong frame (no-op for native WebSocket).
132
202
  */
133
203
  pong(_data, _mask, callback) {
134
204
  queueCallback(callback);
135
205
  }
136
206
  /**
137
- * Terminate the connection
207
+ * Terminate the connection.
138
208
  */
139
209
  terminate() {
140
210
  this._socket.close();
141
211
  this.readyState = 3 /* CLOSED */;
142
212
  }
143
213
  /**
144
- * Get buffered amount
214
+ * Get buffered amount.
145
215
  */
146
216
  get bufferedAmount() {
147
217
  return this._socket.bufferedAmount || 0;
148
218
  }
149
219
  };
150
- var WebSocketServer = class extends import_events.EventEmitter {
220
+
221
+ // src/server/ws/server.ts
222
+ var WebSocketServer = class extends import_events2.EventEmitter {
151
223
  constructor(options, callback) {
152
224
  super();
153
225
  this.clients = /* @__PURE__ */ new Set();
@@ -158,8 +230,7 @@
158
230
  if (options?.server) {
159
231
  this._httpServer = options.server;
160
232
  this._setupUpgradeHandler();
161
- } else if (options?.noServer) {
162
- } else {
233
+ } else if (!options?.noServer) {
163
234
  const http = __require("http");
164
235
  this._httpServer = http.createServer();
165
236
  this._ownsHttpServer = true;
@@ -193,7 +264,7 @@
193
264
  });
194
265
  }
195
266
  /**
196
- * Handle HTTP upgrade for WebSocket
267
+ * Handle HTTP upgrade for WebSocket.
197
268
  */
198
269
  handleUpgrade(request, socket, _head, callback) {
199
270
  const key = request.headers["sec-websocket-key"];
@@ -223,7 +294,7 @@
223
294
  }
224
295
  _createClientFromSocket(socket) {
225
296
  const client = Object.create(WebSocket.prototype);
226
- import_events.EventEmitter.call(client);
297
+ import_events2.EventEmitter.call(client);
227
298
  client.readyState = 1 /* OPEN */;
228
299
  client.url = "ws://localhost";
229
300
  client.protocol = "";
@@ -232,7 +303,7 @@
232
303
  client._socket = socket;
233
304
  socket.on("data", (data) => {
234
305
  try {
235
- const message = this._parseFrame(data);
306
+ const message = parseFrame(data);
236
307
  if (message) {
237
308
  client.emit("message", message, false);
238
309
  }
@@ -245,33 +316,31 @@
245
316
  client.emit("close", CLOSE_CODES.NORMAL, "");
246
317
  });
247
318
  socket.on("error", (error) => {
248
- const errorCode = error.code;
249
- if (errorCode === "ECONNABORTED" || errorCode === "ECONNRESET" || errorCode === "EPIPE") {
319
+ if (isIgnorableConnectionError(error)) {
250
320
  return;
251
321
  }
252
322
  client.emit("error", error);
253
323
  });
254
324
  client.send = (data, _options, callback) => {
255
325
  if (!socket.writable || client.readyState !== 1 /* OPEN */) {
256
- const err = new Error("WebSocket is not open");
257
- err.code = "WS_NOT_OPEN";
258
- queueCallback(callback, err);
326
+ const error = new Error("WebSocket is not open");
327
+ error.code = "WS_NOT_OPEN";
328
+ queueCallback(callback, error);
259
329
  return;
260
330
  }
261
331
  try {
262
- const frame = this._createFrame(data);
263
- socket.write(frame, (err) => {
264
- if (err) {
265
- const errorCode = err.code;
266
- if (errorCode !== "ECONNABORTED" && errorCode !== "ECONNRESET" && errorCode !== "EPIPE") {
267
- queueCallback(callback, err);
268
- } else {
269
- client.readyState = 3 /* CLOSED */;
270
- queueCallback(callback);
271
- }
272
- } else {
332
+ const frame = createFrame(data);
333
+ socket.write(frame, (error) => {
334
+ if (!error) {
273
335
  queueCallback(callback);
336
+ return;
274
337
  }
338
+ if (isIgnorableConnectionError(error)) {
339
+ client.readyState = 3 /* CLOSED */;
340
+ queueCallback(callback);
341
+ return;
342
+ }
343
+ queueCallback(callback, error);
275
344
  });
276
345
  } catch (error) {
277
346
  queueCallback(callback, error);
@@ -285,7 +354,7 @@
285
354
  }
286
355
  _createClientFromBunSocket(socket) {
287
356
  const client = Object.create(WebSocket.prototype);
288
- import_events.EventEmitter.call(client);
357
+ import_events2.EventEmitter.call(client);
289
358
  client.readyState = 1 /* OPEN */;
290
359
  client.url = "ws://localhost";
291
360
  client.protocol = "";
@@ -309,7 +378,7 @@
309
378
  return;
310
379
  }
311
380
  client.readyState = 2 /* CLOSING */;
312
- socket.close(code ?? CLOSE_CODES.NORMAL, reason);
381
+ socket.close(code ?? CLOSE_CODES.NORMAL, typeof reason === "string" ? reason : reason?.toString());
313
382
  };
314
383
  client.terminate = () => {
315
384
  socket.close();
@@ -340,8 +409,7 @@
340
409
  if (!client) {
341
410
  return;
342
411
  }
343
- const isBinary = typeof message !== "string";
344
- const payload = typeof message === "string" ? message : message instanceof ArrayBuffer ? Buffer.from(message) : ArrayBuffer.isView(message) ? Buffer.from(message.buffer, message.byteOffset, message.byteLength) : Buffer.from(String(message));
412
+ const { payload, isBinary } = coerceBunMessage(message);
345
413
  client.emit("message", payload, isBinary);
346
414
  }
347
415
  _handleBunClose(socket, code, reason) {
@@ -353,77 +421,24 @@
353
421
  client.emit("close", code, typeof reason === "string" ? reason : reason?.toString() || "");
354
422
  this.clients.delete(client);
355
423
  }
356
- _parseFrame(data) {
357
- if (data.length < 2) return null;
358
- const firstByte = data[0];
359
- const secondByte = data[1];
360
- const opcode = firstByte & 15;
361
- const isMasked = (secondByte & 128) === 128;
362
- let payloadLength = secondByte & 127;
363
- let offset = 2;
364
- if (payloadLength === 126) {
365
- payloadLength = data.readUInt16BE(2);
366
- offset = 4;
367
- } else if (payloadLength === 127) {
368
- payloadLength = Number(data.readBigUInt64BE(2));
369
- offset = 10;
370
- }
371
- let payload = data.subarray(offset);
372
- if (isMasked) {
373
- const maskKey = data.subarray(offset, offset + 4);
374
- payload = data.subarray(offset + 4, offset + 4 + payloadLength);
375
- for (let i = 0; i < payload.length; i++) {
376
- payload[i] ^= maskKey[i % 4];
377
- }
378
- }
379
- if (opcode === 1) {
380
- return payload.toString("utf8");
381
- }
382
- return null;
383
- }
384
- _createFrame(data) {
385
- const payload = typeof data === "string" ? Buffer.from(data) : data;
386
- const payloadLength = Buffer.isBuffer(payload) ? payload.length : 0;
387
- let frame;
388
- let offset = 2;
389
- if (payloadLength < 126) {
390
- frame = Buffer.allocUnsafe(2 + payloadLength);
391
- frame[1] = payloadLength;
392
- } else if (payloadLength < 65536) {
393
- frame = Buffer.allocUnsafe(4 + payloadLength);
394
- frame[1] = 126;
395
- frame.writeUInt16BE(payloadLength, 2);
396
- offset = 4;
397
- } else {
398
- frame = Buffer.allocUnsafe(10 + payloadLength);
399
- frame[1] = 127;
400
- frame.writeBigUInt64BE(BigInt(payloadLength), 2);
401
- offset = 10;
402
- }
403
- frame[0] = 129;
404
- if (Buffer.isBuffer(payload)) {
405
- payload.copy(frame, offset);
406
- }
407
- return frame;
408
- }
409
424
  /**
410
- * Close the server
425
+ * Close the server.
411
426
  */
412
427
  close(callback) {
413
428
  this.clients.forEach((client) => client.close());
414
429
  this.clients.clear();
415
430
  if (this._httpServer && this._ownsHttpServer) {
416
431
  this._httpServer.close(callback);
417
- } else {
418
- if (runtime === "bun" && this._httpServer?.unregisterWebSocketServer) {
419
- this._httpServer.unregisterWebSocketServer(this);
420
- }
421
- this.emit("close");
422
- queueCallback(callback);
432
+ return;
433
+ }
434
+ if (runtime === "bun" && this._httpServer?.unregisterWebSocketServer) {
435
+ this._httpServer.unregisterWebSocketServer(this);
423
436
  }
437
+ this.emit("close");
438
+ queueCallback(callback);
424
439
  }
425
440
  /**
426
- * Check if server should handle request
441
+ * Check if server should handle request.
427
442
  */
428
443
  shouldHandle(request) {
429
444
  if (this.path && getRequestPath(request.url) !== this.path) {
@@ -432,10 +447,10 @@
432
447
  return true;
433
448
  }
434
449
  /**
435
- * Get server address
450
+ * Get server address.
436
451
  */
437
452
  address() {
438
- if (this._httpServer && this._httpServer.address) {
453
+ if (this._httpServer?.address) {
439
454
  return this._httpServer.address();
440
455
  }
441
456
  return null;
@@ -444,9 +459,13 @@
444
459
  function createWebSocketServer(options, callback) {
445
460
  return new WebSocketServer(options, callback);
446
461
  }
462
+
463
+ // src/server/ws/runtime.ts
447
464
  function getRuntime() {
448
465
  return runtime;
449
466
  }
467
+
468
+ // src/server/ws/ws.ts
450
469
  var ws_default = {
451
470
  WebSocket,
452
471
  WebSocketServer,