elit 3.6.5 → 3.6.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/README.md +6 -0
- package/dist/build.d.ts +4 -1
- package/dist/cli.cjs +502 -11
- package/dist/cli.mjs +502 -11
- package/dist/config.d.ts +8 -1
- package/dist/coverage.d.ts +4 -1
- package/dist/desktop-auto-render.cjs +5 -4
- package/dist/desktop-auto-render.d.ts +4 -1
- package/dist/desktop-auto-render.js +5 -4
- package/dist/desktop-auto-render.mjs +5 -4
- package/dist/dom.cjs +5 -4
- package/dist/dom.d.ts +2 -0
- package/dist/dom.js +5 -4
- package/dist/dom.mjs +5 -4
- package/dist/el.d.ts +2 -0
- package/dist/index.cjs +5 -4
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -4
- package/dist/index.mjs +5 -4
- package/dist/native.cjs +5 -4
- package/dist/native.d.ts +2 -0
- package/dist/native.js +5 -4
- package/dist/native.mjs +5 -4
- package/dist/render-context.d.ts +4 -1
- package/dist/router.cjs +5 -4
- package/dist/router.d.ts +2 -0
- package/dist/router.js +5 -4
- package/dist/router.mjs +5 -4
- package/dist/{server-CcBFc2F5.d.ts → server-uMQvZAll.d.ts} +9 -0
- package/dist/server.cjs +146 -4
- package/dist/server.d.ts +4 -1
- package/dist/server.js +4494 -285
- package/dist/server.mjs +146 -4
- package/dist/smtp-server.cjs +115 -0
- package/dist/smtp-server.d.ts +41 -0
- package/dist/smtp-server.js +4186 -0
- package/dist/smtp-server.mjs +87 -0
- package/dist/state.cjs +5 -4
- package/dist/state.d.ts +2 -0
- package/dist/state.js +5 -4
- package/dist/state.mjs +5 -4
- package/dist/types.d.ts +34 -2
- package/dist/universal.d.ts +2 -0
- package/package.json +9 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {createRequire as __createRequire} from 'module';const require = __createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/smtp-server.ts
|
|
4
|
+
import { SMTPServer } from "smtp-server";
|
|
5
|
+
var DEFAULT_SMTP_PORT = 2525;
|
|
6
|
+
var DEFAULT_SMTP_HOST = "127.0.0.1";
|
|
7
|
+
function resolveSmtpServerConfig(config = {}) {
|
|
8
|
+
const { port = DEFAULT_SMTP_PORT, host = DEFAULT_SMTP_HOST, label, ...serverOptions } = config;
|
|
9
|
+
return {
|
|
10
|
+
...serverOptions,
|
|
11
|
+
port,
|
|
12
|
+
host,
|
|
13
|
+
label
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function normalizeSmtpServerConfigs(input) {
|
|
17
|
+
const configs = Array.isArray(input) ? input : input ? [input] : [];
|
|
18
|
+
return configs.map((config) => resolveSmtpServerConfig(config));
|
|
19
|
+
}
|
|
20
|
+
function closeSmtpServer(server) {
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
let settled = false;
|
|
23
|
+
const finish = (error) => {
|
|
24
|
+
if (settled) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
settled = true;
|
|
28
|
+
if (error) {
|
|
29
|
+
reject(error);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
resolve();
|
|
33
|
+
};
|
|
34
|
+
const handleCloseError = (error) => {
|
|
35
|
+
const errorCode = error.code;
|
|
36
|
+
if (errorCode === "ERR_SERVER_NOT_RUNNING") {
|
|
37
|
+
finish();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
finish(error);
|
|
41
|
+
};
|
|
42
|
+
try {
|
|
43
|
+
server.close(() => finish());
|
|
44
|
+
} catch (error) {
|
|
45
|
+
handleCloseError(error);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function createSmtpServer(config = {}) {
|
|
50
|
+
const resolvedConfig = resolveSmtpServerConfig(config);
|
|
51
|
+
const { port, host, label: _label, ...serverOptions } = resolvedConfig;
|
|
52
|
+
const server = new SMTPServer(serverOptions);
|
|
53
|
+
return {
|
|
54
|
+
server,
|
|
55
|
+
config: resolvedConfig,
|
|
56
|
+
listen(callback) {
|
|
57
|
+
return callback ? server.listen(port, host, callback) : server.listen(port, host);
|
|
58
|
+
},
|
|
59
|
+
address() {
|
|
60
|
+
return server.server.address();
|
|
61
|
+
},
|
|
62
|
+
close() {
|
|
63
|
+
return closeSmtpServer(server);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function startSmtpServer(config = {}) {
|
|
68
|
+
const handle = createSmtpServer(config);
|
|
69
|
+
handle.listen();
|
|
70
|
+
return handle;
|
|
71
|
+
}
|
|
72
|
+
var smtp_server_default = {
|
|
73
|
+
SMTPServer,
|
|
74
|
+
createSmtpServer,
|
|
75
|
+
startSmtpServer,
|
|
76
|
+
DEFAULT_SMTP_HOST,
|
|
77
|
+
DEFAULT_SMTP_PORT
|
|
78
|
+
};
|
|
79
|
+
export {
|
|
80
|
+
DEFAULT_SMTP_HOST,
|
|
81
|
+
DEFAULT_SMTP_PORT,
|
|
82
|
+
createSmtpServer,
|
|
83
|
+
smtp_server_default as default,
|
|
84
|
+
normalizeSmtpServerConfigs,
|
|
85
|
+
resolveSmtpServerConfig,
|
|
86
|
+
startSmtpServer
|
|
87
|
+
};
|
package/dist/state.cjs
CHANGED
|
@@ -468,6 +468,7 @@ var DomNode = class {
|
|
|
468
468
|
html += `</${tagName}>${newLine}`;
|
|
469
469
|
return html;
|
|
470
470
|
}
|
|
471
|
+
const isRawText = tagName === "script" || tagName === "style";
|
|
471
472
|
if (children && children.length > 0) {
|
|
472
473
|
const resolvedChildren = children.map((c) => {
|
|
473
474
|
const resolved = this.resolveStateValue(c);
|
|
@@ -483,11 +484,11 @@ var DomNode = class {
|
|
|
483
484
|
if (Array.isArray(child)) {
|
|
484
485
|
for (const c of child) {
|
|
485
486
|
if (!shouldSkipChild(c)) {
|
|
486
|
-
html += this.renderToString(c, { pretty, indent: indent + 1 });
|
|
487
|
+
html += isRawText && typeof c === "string" ? c : this.renderToString(c, { pretty, indent: indent + 1 });
|
|
487
488
|
}
|
|
488
489
|
}
|
|
489
490
|
} else {
|
|
490
|
-
html += this.renderToString(child, { pretty, indent: indent + 1 });
|
|
491
|
+
html += isRawText && typeof child === "string" ? child : this.renderToString(child, { pretty, indent: indent + 1 });
|
|
491
492
|
}
|
|
492
493
|
}
|
|
493
494
|
html += indentStr;
|
|
@@ -497,11 +498,11 @@ var DomNode = class {
|
|
|
497
498
|
if (Array.isArray(child)) {
|
|
498
499
|
for (const c of child) {
|
|
499
500
|
if (!shouldSkipChild(c)) {
|
|
500
|
-
html += this.renderToString(c, { pretty: false, indent: 0 });
|
|
501
|
+
html += isRawText && typeof c === "string" ? c : this.renderToString(c, { pretty: false, indent: 0 });
|
|
501
502
|
}
|
|
502
503
|
}
|
|
503
504
|
} else {
|
|
504
|
-
html += this.renderToString(child, { pretty: false, indent: 0 });
|
|
505
|
+
html += isRawText && typeof child === "string" ? child : this.renderToString(child, { pretty: false, indent: 0 });
|
|
505
506
|
}
|
|
506
507
|
}
|
|
507
508
|
}
|
package/dist/state.d.ts
CHANGED
package/dist/state.js
CHANGED
|
@@ -426,6 +426,7 @@
|
|
|
426
426
|
html += `</${tagName}>${newLine}`;
|
|
427
427
|
return html;
|
|
428
428
|
}
|
|
429
|
+
const isRawText = tagName === "script" || tagName === "style";
|
|
429
430
|
if (children && children.length > 0) {
|
|
430
431
|
const resolvedChildren = children.map((c) => {
|
|
431
432
|
const resolved = this.resolveStateValue(c);
|
|
@@ -441,11 +442,11 @@
|
|
|
441
442
|
if (Array.isArray(child)) {
|
|
442
443
|
for (const c of child) {
|
|
443
444
|
if (!shouldSkipChild(c)) {
|
|
444
|
-
html += this.renderToString(c, { pretty, indent: indent + 1 });
|
|
445
|
+
html += isRawText && typeof c === "string" ? c : this.renderToString(c, { pretty, indent: indent + 1 });
|
|
445
446
|
}
|
|
446
447
|
}
|
|
447
448
|
} else {
|
|
448
|
-
html += this.renderToString(child, { pretty, indent: indent + 1 });
|
|
449
|
+
html += isRawText && typeof child === "string" ? child : this.renderToString(child, { pretty, indent: indent + 1 });
|
|
449
450
|
}
|
|
450
451
|
}
|
|
451
452
|
html += indentStr;
|
|
@@ -455,11 +456,11 @@
|
|
|
455
456
|
if (Array.isArray(child)) {
|
|
456
457
|
for (const c of child) {
|
|
457
458
|
if (!shouldSkipChild(c)) {
|
|
458
|
-
html += this.renderToString(c, { pretty: false, indent: 0 });
|
|
459
|
+
html += isRawText && typeof c === "string" ? c : this.renderToString(c, { pretty: false, indent: 0 });
|
|
459
460
|
}
|
|
460
461
|
}
|
|
461
462
|
} else {
|
|
462
|
-
html += this.renderToString(child, { pretty: false, indent: 0 });
|
|
463
|
+
html += isRawText && typeof child === "string" ? child : this.renderToString(child, { pretty: false, indent: 0 });
|
|
463
464
|
}
|
|
464
465
|
}
|
|
465
466
|
}
|
package/dist/state.mjs
CHANGED
|
@@ -424,6 +424,7 @@ var DomNode = class {
|
|
|
424
424
|
html += `</${tagName}>${newLine}`;
|
|
425
425
|
return html;
|
|
426
426
|
}
|
|
427
|
+
const isRawText = tagName === "script" || tagName === "style";
|
|
427
428
|
if (children && children.length > 0) {
|
|
428
429
|
const resolvedChildren = children.map((c) => {
|
|
429
430
|
const resolved = this.resolveStateValue(c);
|
|
@@ -439,11 +440,11 @@ var DomNode = class {
|
|
|
439
440
|
if (Array.isArray(child)) {
|
|
440
441
|
for (const c of child) {
|
|
441
442
|
if (!shouldSkipChild(c)) {
|
|
442
|
-
html += this.renderToString(c, { pretty, indent: indent + 1 });
|
|
443
|
+
html += isRawText && typeof c === "string" ? c : this.renderToString(c, { pretty, indent: indent + 1 });
|
|
443
444
|
}
|
|
444
445
|
}
|
|
445
446
|
} else {
|
|
446
|
-
html += this.renderToString(child, { pretty, indent: indent + 1 });
|
|
447
|
+
html += isRawText && typeof child === "string" ? child : this.renderToString(child, { pretty, indent: indent + 1 });
|
|
447
448
|
}
|
|
448
449
|
}
|
|
449
450
|
html += indentStr;
|
|
@@ -453,11 +454,11 @@ var DomNode = class {
|
|
|
453
454
|
if (Array.isArray(child)) {
|
|
454
455
|
for (const c of child) {
|
|
455
456
|
if (!shouldSkipChild(c)) {
|
|
456
|
-
html += this.renderToString(c, { pretty: false, indent: 0 });
|
|
457
|
+
html += isRawText && typeof c === "string" ? c : this.renderToString(c, { pretty: false, indent: 0 });
|
|
457
458
|
}
|
|
458
459
|
}
|
|
459
460
|
} else {
|
|
460
|
-
html += this.renderToString(child, { pretty: false, indent: 0 });
|
|
461
|
+
html += isRawText && typeof child === "string" ? child : this.renderToString(child, { pretty: false, indent: 0 });
|
|
461
462
|
}
|
|
462
463
|
}
|
|
463
464
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
import { EventEmitter as EventEmitter$1 } from 'events';
|
|
3
|
-
import { Server } from 'http';
|
|
3
|
+
import { Server as Server$1 } from 'http';
|
|
4
4
|
import { WebSocketServer } from 'ws';
|
|
5
|
+
import { Server, AddressInfo } from 'net';
|
|
6
|
+
import { SMTPServerOptions, SMTPServer } from 'smtp-server';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* HTTP module with unified API across runtimes
|
|
@@ -238,6 +240,28 @@ declare class StateManager$1 {
|
|
|
238
240
|
clear(): void;
|
|
239
241
|
}
|
|
240
242
|
|
|
243
|
+
/**
|
|
244
|
+
* SMTP server helpers built on top of the smtp-server package.
|
|
245
|
+
*/
|
|
246
|
+
|
|
247
|
+
interface ElitSMTPServerConfig extends SMTPServerOptions {
|
|
248
|
+
port?: number;
|
|
249
|
+
host?: string;
|
|
250
|
+
label?: string;
|
|
251
|
+
}
|
|
252
|
+
interface ResolvedElitSMTPServerConfig extends SMTPServerOptions {
|
|
253
|
+
port: number;
|
|
254
|
+
host: string;
|
|
255
|
+
label?: string;
|
|
256
|
+
}
|
|
257
|
+
interface ElitSMTPServerHandle {
|
|
258
|
+
server: SMTPServer;
|
|
259
|
+
config: ResolvedElitSMTPServerConfig;
|
|
260
|
+
listen(callback?: () => void): Server;
|
|
261
|
+
address(): AddressInfo | string | null;
|
|
262
|
+
close(): Promise<void>;
|
|
263
|
+
}
|
|
264
|
+
|
|
241
265
|
/**
|
|
242
266
|
* Elit - Types and Interfaces
|
|
243
267
|
*/
|
|
@@ -342,6 +366,8 @@ interface ClientConfig {
|
|
|
342
366
|
api?: Router;
|
|
343
367
|
/** WebSocket endpoints specific to this client */
|
|
344
368
|
ws?: WebSocketEndpointConfig[];
|
|
369
|
+
/** SMTP listeners specific to this client */
|
|
370
|
+
smtp?: ElitSMTPServerConfig | ElitSMTPServerConfig[];
|
|
345
371
|
/** Server mode: 'dev' uses source files, 'preview' uses built files (default: 'dev') */
|
|
346
372
|
mode?: 'dev' | 'preview';
|
|
347
373
|
}
|
|
@@ -400,6 +426,8 @@ interface DevServerOptions {
|
|
|
400
426
|
api?: Router;
|
|
401
427
|
/** WebSocket endpoints */
|
|
402
428
|
ws?: WebSocketEndpointConfig[];
|
|
429
|
+
/** SMTP listeners started alongside the HTTP server */
|
|
430
|
+
smtp?: ElitSMTPServerConfig | ElitSMTPServerConfig[];
|
|
403
431
|
/** SSR render function - returns HTML VNode or string */
|
|
404
432
|
ssr?: () => Child | string;
|
|
405
433
|
/** Proxy configuration for API requests */
|
|
@@ -417,9 +445,11 @@ interface DevServerOptions {
|
|
|
417
445
|
}
|
|
418
446
|
interface DevServer {
|
|
419
447
|
/** HTTP server instance */
|
|
420
|
-
server: Server;
|
|
448
|
+
server: Server$1;
|
|
421
449
|
/** WebSocket server for HMR */
|
|
422
450
|
wss: WebSocketServer;
|
|
451
|
+
/** Managed SMTP listeners started from dev or preview config */
|
|
452
|
+
smtpServers: ElitSMTPServerHandle[];
|
|
423
453
|
/** Server URL */
|
|
424
454
|
url: string;
|
|
425
455
|
/** Shared state manager */
|
|
@@ -517,6 +547,8 @@ interface PreviewOptions {
|
|
|
517
547
|
api?: Router;
|
|
518
548
|
/** WebSocket endpoints */
|
|
519
549
|
ws?: WebSocketEndpointConfig[];
|
|
550
|
+
/** SMTP listeners started alongside the preview server */
|
|
551
|
+
smtp?: ElitSMTPServerConfig | ElitSMTPServerConfig[];
|
|
520
552
|
/** SSR render function - returns HTML VNode or string */
|
|
521
553
|
ssr?: () => Child | string;
|
|
522
554
|
/** Proxy configuration for API requests */
|
package/dist/universal.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "elit",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.6",
|
|
4
4
|
"description": "Optimized lightweight library for creating DOM elements with reactive state",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -95,6 +95,12 @@
|
|
|
95
95
|
"import": "./dist/https.mjs",
|
|
96
96
|
"require": "./dist/https.cjs"
|
|
97
97
|
},
|
|
98
|
+
"./smtp-server": {
|
|
99
|
+
"types": "./dist/smtp-server.d.ts",
|
|
100
|
+
"browser": "./dist/smtp-server.js",
|
|
101
|
+
"import": "./dist/smtp-server.mjs",
|
|
102
|
+
"require": "./dist/smtp-server.cjs"
|
|
103
|
+
},
|
|
98
104
|
"./ws": {
|
|
99
105
|
"types": "./dist/ws.d.ts",
|
|
100
106
|
"browser": "./dist/ws.js",
|
|
@@ -257,12 +263,14 @@
|
|
|
257
263
|
"esbuild": "^0.27.3",
|
|
258
264
|
"esbuild-obfuscator-plugin": "^0.0.5",
|
|
259
265
|
"open": "^11.0.0",
|
|
266
|
+
"smtp-server": "^3.18.4",
|
|
260
267
|
"source-map": "^0.7.6"
|
|
261
268
|
},
|
|
262
269
|
"devDependencies": {
|
|
263
270
|
"@types/bun": "^1.3.6",
|
|
264
271
|
"@types/mime-types": "^2.1.4",
|
|
265
272
|
"@types/node": "^25.0.10",
|
|
273
|
+
"@types/smtp-server": "^3.5.13",
|
|
266
274
|
"@types/ws": "^8.5.13",
|
|
267
275
|
"copyfiles": "^2.4.1",
|
|
268
276
|
"elysia": "^1.4.19",
|