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/fs.cjs CHANGED
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/fs.ts
20
+ // src/server/fs/index.ts
21
21
  var fs_exports = {};
22
22
  __export(fs_exports, {
23
23
  appendFile: () => appendFile,
@@ -50,7 +50,7 @@ __export(fs_exports, {
50
50
  });
51
51
  module.exports = __toCommonJS(fs_exports);
52
52
 
53
- // src/runtime.ts
53
+ // src/shares/runtime.ts
54
54
  var runtime = (() => {
55
55
  if (typeof Deno !== "undefined") return "deno";
56
56
  if (typeof Bun !== "undefined") return "bun";
@@ -60,7 +60,15 @@ var isNode = runtime === "node";
60
60
  var isBun = runtime === "bun";
61
61
  var isDeno = runtime === "deno";
62
62
 
63
- // src/fs.ts
63
+ // src/server/fs/node-modules.ts
64
+ var fs;
65
+ var fsPromises;
66
+ if (isNode || isBun) {
67
+ fs = require("fs");
68
+ fsPromises = require("fs/promises");
69
+ }
70
+
71
+ // src/server/fs/utils.ts
64
72
  function parseOptions(options, defaultValue) {
65
73
  return typeof options === "string" ? { encoding: options } : options || defaultValue;
66
74
  }
@@ -79,6 +87,18 @@ function dataToUint8Array(data) {
79
87
  }
80
88
  return data;
81
89
  }
90
+ function createDirentFromDenoEntry(entry) {
91
+ return {
92
+ name: entry.name,
93
+ isFile: () => entry.isFile,
94
+ isDirectory: () => entry.isDirectory,
95
+ isBlockDevice: () => false,
96
+ isCharacterDevice: () => false,
97
+ isSymbolicLink: () => entry.isSymlink || false,
98
+ isFIFO: () => false,
99
+ isSocket: () => false
100
+ };
101
+ }
82
102
  function processDenoEntries(iterator, withFileTypes) {
83
103
  const entries = [];
84
104
  for (const entry of iterator) {
@@ -101,12 +121,37 @@ async function processDenoEntriesAsync(iterator, withFileTypes) {
101
121
  }
102
122
  return entries;
103
123
  }
104
- var fs;
105
- var fsPromises;
106
- if (isNode || isBun) {
107
- fs = require("fs");
108
- fsPromises = require("fs/promises");
124
+ function createStatsFromDenoFileInfo(info) {
125
+ return {
126
+ isFile: () => info.isFile,
127
+ isDirectory: () => info.isDirectory,
128
+ isBlockDevice: () => false,
129
+ isCharacterDevice: () => false,
130
+ isSymbolicLink: () => info.isSymlink || false,
131
+ isFIFO: () => false,
132
+ isSocket: () => false,
133
+ dev: info.dev || 0,
134
+ ino: info.ino || 0,
135
+ mode: info.mode || 0,
136
+ nlink: info.nlink || 1,
137
+ uid: info.uid || 0,
138
+ gid: info.gid || 0,
139
+ rdev: 0,
140
+ size: info.size,
141
+ blksize: info.blksize || 4096,
142
+ blocks: info.blocks || Math.ceil(info.size / 512),
143
+ atimeMs: info.atime?.getTime() || Date.now(),
144
+ mtimeMs: info.mtime?.getTime() || Date.now(),
145
+ ctimeMs: info.birthtime?.getTime() || Date.now(),
146
+ birthtimeMs: info.birthtime?.getTime() || Date.now(),
147
+ atime: info.atime || /* @__PURE__ */ new Date(),
148
+ mtime: info.mtime || /* @__PURE__ */ new Date(),
149
+ ctime: info.birthtime || /* @__PURE__ */ new Date(),
150
+ birthtime: info.birthtime || /* @__PURE__ */ new Date()
151
+ };
109
152
  }
153
+
154
+ // src/server/fs/file-ops.ts
110
155
  async function readFile(path, options) {
111
156
  const opts = parseOptions(options, {});
112
157
  if (isNode || isBun) {
@@ -147,28 +192,27 @@ async function appendFile(path, data, options) {
147
192
  const opts = parseOptions(options, {});
148
193
  if (isNode) {
149
194
  return fsPromises.appendFile(path, data, opts);
195
+ }
196
+ if (await exists(path)) {
197
+ const existing = await readFile(path);
198
+ const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
199
+ await writeFile(path, combined, opts);
150
200
  } else {
151
- if (await exists(path)) {
152
- const existing = await readFile(path);
153
- const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
154
- await writeFile(path, combined, opts);
155
- } else {
156
- await writeFile(path, data, opts);
157
- }
201
+ await writeFile(path, data, opts);
158
202
  }
159
203
  }
160
204
  function appendFileSync(path, data, options) {
161
205
  const opts = parseOptions(options, {});
162
206
  if (isNode) {
163
207
  fs.appendFileSync(path, data, opts);
208
+ return;
209
+ }
210
+ if (existsSync(path)) {
211
+ const existing = readFileSync(path);
212
+ const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
213
+ writeFileSync(path, combined, opts);
164
214
  } else {
165
- if (existsSync(path)) {
166
- const existing = readFileSync(path);
167
- const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
168
- writeFileSync(path, combined, opts);
169
- } else {
170
- writeFileSync(path, data, opts);
171
- }
215
+ writeFileSync(path, data, opts);
172
216
  }
173
217
  }
174
218
  async function exists(path) {
@@ -205,6 +249,8 @@ function statSync(path) {
205
249
  }
206
250
  throw new Error("Unsupported runtime");
207
251
  }
252
+
253
+ // src/server/fs/directory-ops.ts
208
254
  async function mkdir(path, options) {
209
255
  const opts = typeof options === "number" ? { mode: options } : options || {};
210
256
  if (isNode || isBun) {
@@ -267,6 +313,8 @@ function rmdirSync(path, options) {
267
313
  Deno.removeSync(path, { recursive: options?.recursive });
268
314
  }
269
315
  }
316
+
317
+ // src/server/fs/path-ops.ts
270
318
  async function rename(oldPath, newPath) {
271
319
  if (isNode || isBun) {
272
320
  return fsPromises.rename(oldPath, newPath);
@@ -311,47 +359,8 @@ function realpathSync(path, options) {
311
359
  }
312
360
  return path;
313
361
  }
314
- function createStatsFromDenoFileInfo(info) {
315
- return {
316
- isFile: () => info.isFile,
317
- isDirectory: () => info.isDirectory,
318
- isBlockDevice: () => false,
319
- isCharacterDevice: () => false,
320
- isSymbolicLink: () => info.isSymlink || false,
321
- isFIFO: () => false,
322
- isSocket: () => false,
323
- dev: info.dev || 0,
324
- ino: info.ino || 0,
325
- mode: info.mode || 0,
326
- nlink: info.nlink || 1,
327
- uid: info.uid || 0,
328
- gid: info.gid || 0,
329
- rdev: 0,
330
- size: info.size,
331
- blksize: info.blksize || 4096,
332
- blocks: info.blocks || Math.ceil(info.size / 512),
333
- atimeMs: info.atime?.getTime() || Date.now(),
334
- mtimeMs: info.mtime?.getTime() || Date.now(),
335
- ctimeMs: info.birthtime?.getTime() || Date.now(),
336
- birthtimeMs: info.birthtime?.getTime() || Date.now(),
337
- atime: info.atime || /* @__PURE__ */ new Date(),
338
- mtime: info.mtime || /* @__PURE__ */ new Date(),
339
- ctime: info.birthtime || /* @__PURE__ */ new Date(),
340
- birthtime: info.birthtime || /* @__PURE__ */ new Date()
341
- };
342
- }
343
- function createDirentFromDenoEntry(entry) {
344
- return {
345
- name: entry.name,
346
- isFile: () => entry.isFile,
347
- isDirectory: () => entry.isDirectory,
348
- isBlockDevice: () => false,
349
- isCharacterDevice: () => false,
350
- isSymbolicLink: () => entry.isSymlink || false,
351
- isFIFO: () => false,
352
- isSocket: () => false
353
- };
354
- }
362
+
363
+ // src/server/fs/index.ts
355
364
  function getRuntime() {
356
365
  return runtime;
357
366
  }
package/dist/fs.d.ts CHANGED
@@ -1,10 +1,3 @@
1
- /**
2
- * File System module with unified API across runtimes
3
- * Compatible with Node.js 'fs' module API
4
- * - Node.js: uses 'fs' module
5
- * - Bun: uses Bun.file() and native APIs
6
- * - Deno: uses Deno.readFile(), etc.
7
- */
8
1
  /**
9
2
  * File encoding types
10
3
  */
@@ -84,6 +77,7 @@ interface Dirent {
84
77
  isFIFO(): boolean;
85
78
  isSocket(): boolean;
86
79
  }
80
+
87
81
  /**
88
82
  * Read file (async)
89
83
  */
@@ -124,6 +118,10 @@ declare function stat(path: string): Promise<Stats>;
124
118
  * Get file stats (sync)
125
119
  */
126
120
  declare function statSync(path: string): Stats;
121
+
122
+ type RemoveDirectoryOptions = {
123
+ recursive?: boolean;
124
+ };
127
125
  /**
128
126
  * Create directory (async)
129
127
  */
@@ -151,15 +149,15 @@ declare function unlinkSync(path: string): void;
151
149
  /**
152
150
  * Remove directory (async)
153
151
  */
154
- declare function rmdir(path: string, options?: {
155
- recursive?: boolean;
156
- }): Promise<void>;
152
+ declare function rmdir(path: string, options?: RemoveDirectoryOptions): Promise<void>;
157
153
  /**
158
154
  * Remove directory (sync)
159
155
  */
160
- declare function rmdirSync(path: string, options?: {
161
- recursive?: boolean;
162
- }): void;
156
+ declare function rmdirSync(path: string, options?: RemoveDirectoryOptions): void;
157
+
158
+ type RealpathOptions = {
159
+ encoding?: BufferEncoding;
160
+ };
163
161
  /**
164
162
  * Rename/move file (async)
165
163
  */
@@ -179,15 +177,20 @@ declare function copyFileSync(src: string, dest: string, flags?: number): void;
179
177
  /**
180
178
  * Resolve pathname to absolute path (async)
181
179
  */
182
- declare function realpath(path: string, options?: {
183
- encoding?: BufferEncoding;
184
- }): Promise<string>;
180
+ declare function realpath(path: string, options?: RealpathOptions): Promise<string>;
185
181
  /**
186
182
  * Resolve pathname to absolute path (sync)
187
183
  */
188
- declare function realpathSync(path: string, options?: {
189
- encoding?: BufferEncoding;
190
- }): string;
184
+ declare function realpathSync(path: string, options?: RealpathOptions): string;
185
+
186
+ /**
187
+ * File System module with unified API across runtimes
188
+ * Compatible with Node.js 'fs' module API
189
+ * - Node.js: uses 'fs' module
190
+ * - Bun: uses Bun.file() and native APIs
191
+ * - Deno: uses Deno.readFile(), etc.
192
+ */
193
+
191
194
  /**
192
195
  * Get current runtime
193
196
  */
package/dist/fs.js CHANGED
@@ -7,7 +7,7 @@
7
7
  throw Error('Dynamic require of "' + x + '" is not supported');
8
8
  });
9
9
 
10
- // src/runtime.ts
10
+ // src/shares/runtime.ts
11
11
  var runtime = (() => {
12
12
  if (typeof Deno !== "undefined") return "deno";
13
13
  if (typeof Bun !== "undefined") return "bun";
@@ -17,7 +17,15 @@
17
17
  var isBun = runtime === "bun";
18
18
  var isDeno = runtime === "deno";
19
19
 
20
- // src/fs.ts
20
+ // src/server/fs/node-modules.ts
21
+ var fs;
22
+ var fsPromises;
23
+ if (isNode || isBun) {
24
+ fs = __require("fs");
25
+ fsPromises = __require("fs/promises");
26
+ }
27
+
28
+ // src/server/fs/utils.ts
21
29
  function parseOptions(options, defaultValue) {
22
30
  return typeof options === "string" ? { encoding: options } : options || defaultValue;
23
31
  }
@@ -36,6 +44,18 @@
36
44
  }
37
45
  return data;
38
46
  }
47
+ function createDirentFromDenoEntry(entry) {
48
+ return {
49
+ name: entry.name,
50
+ isFile: () => entry.isFile,
51
+ isDirectory: () => entry.isDirectory,
52
+ isBlockDevice: () => false,
53
+ isCharacterDevice: () => false,
54
+ isSymbolicLink: () => entry.isSymlink || false,
55
+ isFIFO: () => false,
56
+ isSocket: () => false
57
+ };
58
+ }
39
59
  function processDenoEntries(iterator, withFileTypes) {
40
60
  const entries = [];
41
61
  for (const entry of iterator) {
@@ -58,12 +78,37 @@
58
78
  }
59
79
  return entries;
60
80
  }
61
- var fs;
62
- var fsPromises;
63
- if (isNode || isBun) {
64
- fs = __require("fs");
65
- fsPromises = __require("fs/promises");
81
+ function createStatsFromDenoFileInfo(info) {
82
+ return {
83
+ isFile: () => info.isFile,
84
+ isDirectory: () => info.isDirectory,
85
+ isBlockDevice: () => false,
86
+ isCharacterDevice: () => false,
87
+ isSymbolicLink: () => info.isSymlink || false,
88
+ isFIFO: () => false,
89
+ isSocket: () => false,
90
+ dev: info.dev || 0,
91
+ ino: info.ino || 0,
92
+ mode: info.mode || 0,
93
+ nlink: info.nlink || 1,
94
+ uid: info.uid || 0,
95
+ gid: info.gid || 0,
96
+ rdev: 0,
97
+ size: info.size,
98
+ blksize: info.blksize || 4096,
99
+ blocks: info.blocks || Math.ceil(info.size / 512),
100
+ atimeMs: info.atime?.getTime() || Date.now(),
101
+ mtimeMs: info.mtime?.getTime() || Date.now(),
102
+ ctimeMs: info.birthtime?.getTime() || Date.now(),
103
+ birthtimeMs: info.birthtime?.getTime() || Date.now(),
104
+ atime: info.atime || /* @__PURE__ */ new Date(),
105
+ mtime: info.mtime || /* @__PURE__ */ new Date(),
106
+ ctime: info.birthtime || /* @__PURE__ */ new Date(),
107
+ birthtime: info.birthtime || /* @__PURE__ */ new Date()
108
+ };
66
109
  }
110
+
111
+ // src/server/fs/file-ops.ts
67
112
  async function readFile(path, options) {
68
113
  const opts = parseOptions(options, {});
69
114
  if (isNode || isBun) {
@@ -104,28 +149,27 @@
104
149
  const opts = parseOptions(options, {});
105
150
  if (isNode) {
106
151
  return fsPromises.appendFile(path, data, opts);
152
+ }
153
+ if (await exists(path)) {
154
+ const existing = await readFile(path);
155
+ const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
156
+ await writeFile(path, combined, opts);
107
157
  } else {
108
- if (await exists(path)) {
109
- const existing = await readFile(path);
110
- const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
111
- await writeFile(path, combined, opts);
112
- } else {
113
- await writeFile(path, data, opts);
114
- }
158
+ await writeFile(path, data, opts);
115
159
  }
116
160
  }
117
161
  function appendFileSync(path, data, options) {
118
162
  const opts = parseOptions(options, {});
119
163
  if (isNode) {
120
164
  fs.appendFileSync(path, data, opts);
165
+ return;
166
+ }
167
+ if (existsSync(path)) {
168
+ const existing = readFileSync(path);
169
+ const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
170
+ writeFileSync(path, combined, opts);
121
171
  } else {
122
- if (existsSync(path)) {
123
- const existing = readFileSync(path);
124
- const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
125
- writeFileSync(path, combined, opts);
126
- } else {
127
- writeFileSync(path, data, opts);
128
- }
172
+ writeFileSync(path, data, opts);
129
173
  }
130
174
  }
131
175
  async function exists(path) {
@@ -162,6 +206,8 @@
162
206
  }
163
207
  throw new Error("Unsupported runtime");
164
208
  }
209
+
210
+ // src/server/fs/directory-ops.ts
165
211
  async function mkdir(path, options) {
166
212
  const opts = typeof options === "number" ? { mode: options } : options || {};
167
213
  if (isNode || isBun) {
@@ -224,6 +270,8 @@
224
270
  Deno.removeSync(path, { recursive: options?.recursive });
225
271
  }
226
272
  }
273
+
274
+ // src/server/fs/path-ops.ts
227
275
  async function rename(oldPath, newPath) {
228
276
  if (isNode || isBun) {
229
277
  return fsPromises.rename(oldPath, newPath);
@@ -268,47 +316,8 @@
268
316
  }
269
317
  return path;
270
318
  }
271
- function createStatsFromDenoFileInfo(info) {
272
- return {
273
- isFile: () => info.isFile,
274
- isDirectory: () => info.isDirectory,
275
- isBlockDevice: () => false,
276
- isCharacterDevice: () => false,
277
- isSymbolicLink: () => info.isSymlink || false,
278
- isFIFO: () => false,
279
- isSocket: () => false,
280
- dev: info.dev || 0,
281
- ino: info.ino || 0,
282
- mode: info.mode || 0,
283
- nlink: info.nlink || 1,
284
- uid: info.uid || 0,
285
- gid: info.gid || 0,
286
- rdev: 0,
287
- size: info.size,
288
- blksize: info.blksize || 4096,
289
- blocks: info.blocks || Math.ceil(info.size / 512),
290
- atimeMs: info.atime?.getTime() || Date.now(),
291
- mtimeMs: info.mtime?.getTime() || Date.now(),
292
- ctimeMs: info.birthtime?.getTime() || Date.now(),
293
- birthtimeMs: info.birthtime?.getTime() || Date.now(),
294
- atime: info.atime || /* @__PURE__ */ new Date(),
295
- mtime: info.mtime || /* @__PURE__ */ new Date(),
296
- ctime: info.birthtime || /* @__PURE__ */ new Date(),
297
- birthtime: info.birthtime || /* @__PURE__ */ new Date()
298
- };
299
- }
300
- function createDirentFromDenoEntry(entry) {
301
- return {
302
- name: entry.name,
303
- isFile: () => entry.isFile,
304
- isDirectory: () => entry.isDirectory,
305
- isBlockDevice: () => false,
306
- isCharacterDevice: () => false,
307
- isSymbolicLink: () => entry.isSymlink || false,
308
- isFIFO: () => false,
309
- isSocket: () => false
310
- };
311
- }
319
+
320
+ // src/server/fs/index.ts
312
321
  function getRuntime() {
313
322
  return runtime;
314
323
  }
package/dist/fs.mjs CHANGED
@@ -6,7 +6,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
6
6
  throw Error('Dynamic require of "' + x + '" is not supported');
7
7
  });
8
8
 
9
- // src/runtime.ts
9
+ // src/shares/runtime.ts
10
10
  var runtime = (() => {
11
11
  if (typeof Deno !== "undefined") return "deno";
12
12
  if (typeof Bun !== "undefined") return "bun";
@@ -16,7 +16,15 @@ var isNode = runtime === "node";
16
16
  var isBun = runtime === "bun";
17
17
  var isDeno = runtime === "deno";
18
18
 
19
- // src/fs.ts
19
+ // src/server/fs/node-modules.ts
20
+ var fs;
21
+ var fsPromises;
22
+ if (isNode || isBun) {
23
+ fs = __require("fs");
24
+ fsPromises = __require("fs/promises");
25
+ }
26
+
27
+ // src/server/fs/utils.ts
20
28
  function parseOptions(options, defaultValue) {
21
29
  return typeof options === "string" ? { encoding: options } : options || defaultValue;
22
30
  }
@@ -35,6 +43,18 @@ function dataToUint8Array(data) {
35
43
  }
36
44
  return data;
37
45
  }
46
+ function createDirentFromDenoEntry(entry) {
47
+ return {
48
+ name: entry.name,
49
+ isFile: () => entry.isFile,
50
+ isDirectory: () => entry.isDirectory,
51
+ isBlockDevice: () => false,
52
+ isCharacterDevice: () => false,
53
+ isSymbolicLink: () => entry.isSymlink || false,
54
+ isFIFO: () => false,
55
+ isSocket: () => false
56
+ };
57
+ }
38
58
  function processDenoEntries(iterator, withFileTypes) {
39
59
  const entries = [];
40
60
  for (const entry of iterator) {
@@ -57,12 +77,37 @@ async function processDenoEntriesAsync(iterator, withFileTypes) {
57
77
  }
58
78
  return entries;
59
79
  }
60
- var fs;
61
- var fsPromises;
62
- if (isNode || isBun) {
63
- fs = __require("fs");
64
- fsPromises = __require("fs/promises");
80
+ function createStatsFromDenoFileInfo(info) {
81
+ return {
82
+ isFile: () => info.isFile,
83
+ isDirectory: () => info.isDirectory,
84
+ isBlockDevice: () => false,
85
+ isCharacterDevice: () => false,
86
+ isSymbolicLink: () => info.isSymlink || false,
87
+ isFIFO: () => false,
88
+ isSocket: () => false,
89
+ dev: info.dev || 0,
90
+ ino: info.ino || 0,
91
+ mode: info.mode || 0,
92
+ nlink: info.nlink || 1,
93
+ uid: info.uid || 0,
94
+ gid: info.gid || 0,
95
+ rdev: 0,
96
+ size: info.size,
97
+ blksize: info.blksize || 4096,
98
+ blocks: info.blocks || Math.ceil(info.size / 512),
99
+ atimeMs: info.atime?.getTime() || Date.now(),
100
+ mtimeMs: info.mtime?.getTime() || Date.now(),
101
+ ctimeMs: info.birthtime?.getTime() || Date.now(),
102
+ birthtimeMs: info.birthtime?.getTime() || Date.now(),
103
+ atime: info.atime || /* @__PURE__ */ new Date(),
104
+ mtime: info.mtime || /* @__PURE__ */ new Date(),
105
+ ctime: info.birthtime || /* @__PURE__ */ new Date(),
106
+ birthtime: info.birthtime || /* @__PURE__ */ new Date()
107
+ };
65
108
  }
109
+
110
+ // src/server/fs/file-ops.ts
66
111
  async function readFile(path, options) {
67
112
  const opts = parseOptions(options, {});
68
113
  if (isNode || isBun) {
@@ -103,28 +148,27 @@ async function appendFile(path, data, options) {
103
148
  const opts = parseOptions(options, {});
104
149
  if (isNode) {
105
150
  return fsPromises.appendFile(path, data, opts);
151
+ }
152
+ if (await exists(path)) {
153
+ const existing = await readFile(path);
154
+ const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
155
+ await writeFile(path, combined, opts);
106
156
  } else {
107
- if (await exists(path)) {
108
- const existing = await readFile(path);
109
- const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
110
- await writeFile(path, combined, opts);
111
- } else {
112
- await writeFile(path, data, opts);
113
- }
157
+ await writeFile(path, data, opts);
114
158
  }
115
159
  }
116
160
  function appendFileSync(path, data, options) {
117
161
  const opts = parseOptions(options, {});
118
162
  if (isNode) {
119
163
  fs.appendFileSync(path, data, opts);
164
+ return;
165
+ }
166
+ if (existsSync(path)) {
167
+ const existing = readFileSync(path);
168
+ const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
169
+ writeFileSync(path, combined, opts);
120
170
  } else {
121
- if (existsSync(path)) {
122
- const existing = readFileSync(path);
123
- const combined = Buffer.isBuffer(existing) ? Buffer.concat([existing, Buffer.isBuffer(data) ? data : Buffer.from(data)]) : existing + (Buffer.isBuffer(data) ? data.toString() : data);
124
- writeFileSync(path, combined, opts);
125
- } else {
126
- writeFileSync(path, data, opts);
127
- }
171
+ writeFileSync(path, data, opts);
128
172
  }
129
173
  }
130
174
  async function exists(path) {
@@ -161,6 +205,8 @@ function statSync(path) {
161
205
  }
162
206
  throw new Error("Unsupported runtime");
163
207
  }
208
+
209
+ // src/server/fs/directory-ops.ts
164
210
  async function mkdir(path, options) {
165
211
  const opts = typeof options === "number" ? { mode: options } : options || {};
166
212
  if (isNode || isBun) {
@@ -223,6 +269,8 @@ function rmdirSync(path, options) {
223
269
  Deno.removeSync(path, { recursive: options?.recursive });
224
270
  }
225
271
  }
272
+
273
+ // src/server/fs/path-ops.ts
226
274
  async function rename(oldPath, newPath) {
227
275
  if (isNode || isBun) {
228
276
  return fsPromises.rename(oldPath, newPath);
@@ -267,47 +315,8 @@ function realpathSync(path, options) {
267
315
  }
268
316
  return path;
269
317
  }
270
- function createStatsFromDenoFileInfo(info) {
271
- return {
272
- isFile: () => info.isFile,
273
- isDirectory: () => info.isDirectory,
274
- isBlockDevice: () => false,
275
- isCharacterDevice: () => false,
276
- isSymbolicLink: () => info.isSymlink || false,
277
- isFIFO: () => false,
278
- isSocket: () => false,
279
- dev: info.dev || 0,
280
- ino: info.ino || 0,
281
- mode: info.mode || 0,
282
- nlink: info.nlink || 1,
283
- uid: info.uid || 0,
284
- gid: info.gid || 0,
285
- rdev: 0,
286
- size: info.size,
287
- blksize: info.blksize || 4096,
288
- blocks: info.blocks || Math.ceil(info.size / 512),
289
- atimeMs: info.atime?.getTime() || Date.now(),
290
- mtimeMs: info.mtime?.getTime() || Date.now(),
291
- ctimeMs: info.birthtime?.getTime() || Date.now(),
292
- birthtimeMs: info.birthtime?.getTime() || Date.now(),
293
- atime: info.atime || /* @__PURE__ */ new Date(),
294
- mtime: info.mtime || /* @__PURE__ */ new Date(),
295
- ctime: info.birthtime || /* @__PURE__ */ new Date(),
296
- birthtime: info.birthtime || /* @__PURE__ */ new Date()
297
- };
298
- }
299
- function createDirentFromDenoEntry(entry) {
300
- return {
301
- name: entry.name,
302
- isFile: () => entry.isFile,
303
- isDirectory: () => entry.isDirectory,
304
- isBlockDevice: () => false,
305
- isCharacterDevice: () => false,
306
- isSymbolicLink: () => entry.isSymlink || false,
307
- isFIFO: () => false,
308
- isSocket: () => false
309
- };
310
- }
318
+
319
+ // src/server/fs/index.ts
311
320
  function getRuntime() {
312
321
  return runtime;
313
322
  }