goscript 0.0.82 → 0.0.84

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 (85) hide show
  1. package/dist/gs/builtin/builtin.js +4 -7
  2. package/dist/gs/builtin/builtin.js.map +1 -1
  3. package/dist/gs/builtin/hostio.d.ts +72 -0
  4. package/dist/gs/builtin/hostio.js +181 -0
  5. package/dist/gs/builtin/hostio.js.map +1 -0
  6. package/dist/gs/builtin/print.d.ts +8 -0
  7. package/dist/gs/builtin/print.js +111 -0
  8. package/dist/gs/builtin/print.js.map +1 -0
  9. package/dist/gs/fmt/fmt.js +2 -22
  10. package/dist/gs/fmt/fmt.js.map +1 -1
  11. package/dist/gs/os/dir.gs.js +41 -27
  12. package/dist/gs/os/dir.gs.js.map +1 -1
  13. package/dist/gs/os/exec.gs.js +1 -2
  14. package/dist/gs/os/exec.gs.js.map +1 -1
  15. package/dist/gs/os/exec_posix.gs.js +1 -1
  16. package/dist/gs/os/exec_posix.gs.js.map +1 -1
  17. package/dist/gs/os/file_constants_js.gs.js +71 -7
  18. package/dist/gs/os/file_constants_js.gs.js.map +1 -1
  19. package/dist/gs/os/file_js.gs.js +168 -24
  20. package/dist/gs/os/file_js.gs.js.map +1 -1
  21. package/dist/gs/os/file_posix_js.gs.js +75 -11
  22. package/dist/gs/os/file_posix_js.gs.js.map +1 -1
  23. package/dist/gs/os/file_unix_js.gs.d.ts +3 -3
  24. package/dist/gs/os/file_unix_js.gs.js +218 -21
  25. package/dist/gs/os/file_unix_js.gs.js.map +1 -1
  26. package/dist/gs/os/getwd_js.gs.js +19 -6
  27. package/dist/gs/os/getwd_js.gs.js.map +1 -1
  28. package/dist/gs/os/path.gs.js +3 -3
  29. package/dist/gs/os/path.gs.js.map +1 -1
  30. package/dist/gs/os/pidfd_js.gs.js +0 -3
  31. package/dist/gs/os/pidfd_js.gs.js.map +1 -1
  32. package/dist/gs/os/proc.gs.js +6 -3
  33. package/dist/gs/os/proc.gs.js.map +1 -1
  34. package/dist/gs/os/proc_js.gs.js +10 -5
  35. package/dist/gs/os/proc_js.gs.js.map +1 -1
  36. package/dist/gs/os/rawconn_js.gs.d.ts +6 -3
  37. package/dist/gs/os/rawconn_js.gs.js +16 -10
  38. package/dist/gs/os/rawconn_js.gs.js.map +1 -1
  39. package/dist/gs/os/removeall_js.gs.js +2 -4
  40. package/dist/gs/os/removeall_js.gs.js.map +1 -1
  41. package/dist/gs/os/root_js.gs.d.ts +4 -1
  42. package/dist/gs/os/root_js.gs.js +90 -40
  43. package/dist/gs/os/root_js.gs.js.map +1 -1
  44. package/dist/gs/os/root_noopenat.gs.js +13 -16
  45. package/dist/gs/os/root_noopenat.gs.js.map +1 -1
  46. package/dist/gs/os/stat_js.gs.js +40 -4
  47. package/dist/gs/os/stat_js.gs.js.map +1 -1
  48. package/dist/gs/os/stat_unix_js.gs.d.ts +1 -1
  49. package/dist/gs/os/stat_unix_js.gs.js +5 -10
  50. package/dist/gs/os/stat_unix_js.gs.js.map +1 -1
  51. package/dist/gs/os/tempfile.gs.d.ts +1 -1
  52. package/dist/gs/os/tempfile.gs.js +24 -7
  53. package/dist/gs/os/tempfile.gs.js.map +1 -1
  54. package/dist/gs/os/types_js.gs.d.ts +30 -2
  55. package/dist/gs/os/types_js.gs.js +426 -23
  56. package/dist/gs/os/types_js.gs.js.map +1 -1
  57. package/gs/builtin/builtin.ts +4 -6
  58. package/gs/builtin/hostio.test.ts +69 -0
  59. package/gs/builtin/hostio.ts +298 -0
  60. package/gs/builtin/print.test.ts +48 -0
  61. package/gs/builtin/print.ts +154 -0
  62. package/gs/fmt/fmt.test.ts +41 -30
  63. package/gs/fmt/fmt.ts +2 -22
  64. package/gs/os/dir.gs.ts +40 -28
  65. package/gs/os/exec.gs.ts +2 -4
  66. package/gs/os/exec_posix.gs.ts +1 -2
  67. package/gs/os/file_constants_js.gs.ts +70 -8
  68. package/gs/os/file_js.gs.ts +156 -26
  69. package/gs/os/file_posix_js.gs.ts +69 -13
  70. package/gs/os/file_unix_js.gs.ts +212 -24
  71. package/gs/os/file_unix_js.test.ts +184 -0
  72. package/gs/os/getwd_js.gs.ts +18 -8
  73. package/gs/os/path.gs.ts +3 -4
  74. package/gs/os/pidfd_js.gs.ts +3 -8
  75. package/gs/os/proc.gs.ts +6 -4
  76. package/gs/os/proc_js.gs.ts +11 -8
  77. package/gs/os/rawconn_js.gs.ts +22 -14
  78. package/gs/os/removeall_js.gs.ts +3 -6
  79. package/gs/os/root_js.gs.ts +94 -42
  80. package/gs/os/root_noopenat.gs.ts +13 -20
  81. package/gs/os/stat_js.gs.ts +37 -6
  82. package/gs/os/stat_unix_js.gs.ts +6 -13
  83. package/gs/os/tempfile.gs.ts +27 -9
  84. package/gs/os/types_js.gs.ts +449 -26
  85. package/package.json +1 -1
@@ -1,46 +1,226 @@
1
1
  import { ErrUnimplemented } from "./error.gs.js";
2
- // JavaScript-specific implementations for Unix file operations
3
- // These functions stub Unix-specific operations that cannot be implemented in JavaScript
4
- // Device null path - stub for JavaScript
5
- export const DevNull = "/dev/null";
6
- // Stdin, Stdout, Stderr - stub implementations
7
- export const Stdin = null;
8
- export const Stdout = null;
9
- export const Stderr = null;
10
- // NewFile creates a File from a file descriptor - stub implementation
2
+ import { createFileInfo, createHostFile, getDeno, getEnv, getNodeFS, getPlatform, newHostError } from "./types_js.gs.js";
3
+ import { O_APPEND, O_CREATE, O_EXCL, O_RDONLY, O_RDWR, O_TRUNC, O_WRONLY } from "./file_constants_js.gs.js";
4
+ import { FileInfoToDirEntry } from "@goscript/io/fs/readdir.js";
5
+ function getDevNullPath() {
6
+ return getPlatform() === "win32" ? "NUL" : "/dev/null";
7
+ }
8
+ function getTempDirPath() {
9
+ for (const key of ["TMPDIR", "TEMP", "TMP"]) {
10
+ const value = getEnv(key);
11
+ if (value !== "") {
12
+ return value;
13
+ }
14
+ }
15
+ return getPlatform() === "win32" ? "." : "/tmp";
16
+ }
17
+ function openOptionsFromFlags(flag) {
18
+ const readWrite = (flag & O_RDWR) !== 0;
19
+ const writeOnly = !readWrite && (flag & O_WRONLY) !== 0;
20
+ const write = readWrite || writeOnly;
21
+ const read = readWrite || !writeOnly;
22
+ return {
23
+ append: (flag & O_APPEND) !== 0,
24
+ create: (flag & O_CREATE) !== 0,
25
+ createNew: (flag & O_CREATE) !== 0 && (flag & O_EXCL) !== 0,
26
+ read,
27
+ truncate: (flag & O_TRUNC) !== 0,
28
+ write,
29
+ };
30
+ }
31
+ // Device null path for the host platform.
32
+ export const DevNull = getDevNullPath();
33
+ const standardInputFD = 0;
34
+ const standardOutputFD = 1;
35
+ const standardErrorFD = 2;
36
+ // Stdin, Stdout, and Stderr expose the host process standard streams.
37
+ export const Stdin = NewFile(standardInputFD, "/dev/stdin");
38
+ export const Stdout = NewFile(standardOutputFD, "/dev/stdout");
39
+ export const Stderr = NewFile(standardErrorFD, "/dev/stderr");
40
+ // NewFile creates a File from a file descriptor.
11
41
  export function NewFile(fd, name) {
12
- return null;
42
+ if (!Number.isInteger(fd) || fd < 0) {
43
+ return null;
44
+ }
45
+ return createHostFile(name, fd);
13
46
  }
14
- // File operations that need to be stubbed
15
47
  export function Remove(name) {
48
+ const denoObj = getDeno();
49
+ if (denoObj?.removeSync) {
50
+ try {
51
+ denoObj.removeSync(name);
52
+ return null;
53
+ }
54
+ catch (err) {
55
+ return newHostError(err);
56
+ }
57
+ }
58
+ const nodeFS = getNodeFS();
59
+ if (nodeFS?.rmSync) {
60
+ try {
61
+ nodeFS.rmSync(name);
62
+ return null;
63
+ }
64
+ catch (err) {
65
+ return newHostError(err);
66
+ }
67
+ }
68
+ if (nodeFS?.unlinkSync) {
69
+ try {
70
+ nodeFS.unlinkSync(name);
71
+ return null;
72
+ }
73
+ catch (err) {
74
+ return newHostError(err);
75
+ }
76
+ }
16
77
  return ErrUnimplemented;
17
78
  }
18
79
  export function Link(oldname, newname) {
80
+ const denoObj = getDeno();
81
+ if (denoObj?.linkSync) {
82
+ try {
83
+ denoObj.linkSync(oldname, newname);
84
+ return null;
85
+ }
86
+ catch (err) {
87
+ return newHostError(err);
88
+ }
89
+ }
90
+ const nodeFS = getNodeFS();
91
+ if (nodeFS?.linkSync) {
92
+ try {
93
+ nodeFS.linkSync(oldname, newname);
94
+ return null;
95
+ }
96
+ catch (err) {
97
+ return newHostError(err);
98
+ }
99
+ }
19
100
  return ErrUnimplemented;
20
101
  }
21
102
  export function Symlink(oldname, newname) {
103
+ const denoObj = getDeno();
104
+ if (denoObj?.symlinkSync) {
105
+ try {
106
+ denoObj.symlinkSync(oldname, newname);
107
+ return null;
108
+ }
109
+ catch (err) {
110
+ return newHostError(err);
111
+ }
112
+ }
113
+ const nodeFS = getNodeFS();
114
+ if (nodeFS?.symlinkSync) {
115
+ try {
116
+ nodeFS.symlinkSync(oldname, newname);
117
+ return null;
118
+ }
119
+ catch (err) {
120
+ return newHostError(err);
121
+ }
122
+ }
22
123
  return ErrUnimplemented;
23
124
  }
24
125
  export function Truncate(name, size) {
126
+ const denoObj = getDeno();
127
+ if (denoObj?.truncateSync) {
128
+ try {
129
+ denoObj.truncateSync(name, size);
130
+ return null;
131
+ }
132
+ catch (err) {
133
+ return newHostError(err);
134
+ }
135
+ }
136
+ const nodeFS = getNodeFS();
137
+ if (nodeFS?.truncateSync) {
138
+ try {
139
+ nodeFS.truncateSync(name, size);
140
+ return null;
141
+ }
142
+ catch (err) {
143
+ return newHostError(err);
144
+ }
145
+ }
25
146
  return ErrUnimplemented;
26
147
  }
27
- // Internal stub functions that may be referenced by other files
28
148
  export function rename(oldname, newname) {
149
+ const denoObj = getDeno();
150
+ if (denoObj?.renameSync) {
151
+ try {
152
+ denoObj.renameSync(oldname, newname);
153
+ return null;
154
+ }
155
+ catch (err) {
156
+ return newHostError(err);
157
+ }
158
+ }
159
+ const nodeFS = getNodeFS();
160
+ if (nodeFS?.renameSync) {
161
+ try {
162
+ nodeFS.renameSync(oldname, newname);
163
+ return null;
164
+ }
165
+ catch (err) {
166
+ return newHostError(err);
167
+ }
168
+ }
29
169
  return ErrUnimplemented;
30
170
  }
31
171
  export function openFileNolog(name, flag, perm) {
172
+ const denoObj = getDeno();
173
+ if (denoObj?.openSync) {
174
+ try {
175
+ const handle = denoObj.openSync(name, {
176
+ ...openOptionsFromFlags(flag),
177
+ mode: perm,
178
+ });
179
+ return [createHostFile(name, handle?.rid ?? -1, handle), null];
180
+ }
181
+ catch (err) {
182
+ return [null, newHostError(err)];
183
+ }
184
+ }
185
+ const nodeFS = getNodeFS();
186
+ if (nodeFS?.openSync) {
187
+ try {
188
+ const fd = nodeFS.openSync(name, flag, perm);
189
+ return [createHostFile(name, fd), null];
190
+ }
191
+ catch (err) {
192
+ return [null, newHostError(err)];
193
+ }
194
+ }
32
195
  return [null, ErrUnimplemented];
33
196
  }
34
197
  export function openDirNolog(name) {
35
- return [null, ErrUnimplemented];
198
+ return openFileNolog(name, O_RDONLY, 0);
36
199
  }
37
200
  export function tempDir() {
38
- return "/tmp";
201
+ return getTempDirPath();
39
202
  }
40
203
  export function readlink(name) {
204
+ const denoObj = getDeno();
205
+ if (denoObj?.readLinkSync) {
206
+ try {
207
+ return [denoObj.readLinkSync(name), null];
208
+ }
209
+ catch (err) {
210
+ return ["", newHostError(err)];
211
+ }
212
+ }
213
+ const nodeFS = getNodeFS();
214
+ if (nodeFS?.readlinkSync) {
215
+ try {
216
+ return [nodeFS.readlinkSync(name), null];
217
+ }
218
+ catch (err) {
219
+ return ["", newHostError(err)];
220
+ }
221
+ }
41
222
  return ["", ErrUnimplemented];
42
223
  }
43
- // File class methods that need to be stubbed for unix compatibility
44
224
  export function fixLongPath(path) {
45
225
  return path;
46
226
  }
@@ -50,15 +230,32 @@ export function sigpipe() {
50
230
  export function epipecheck(file, e) {
51
231
  // No-op in JavaScript
52
232
  }
53
- // Network file creation stub
54
233
  export function net_newUnixFile(fd, name) {
55
- return null;
234
+ return NewFile(fd, name);
56
235
  }
57
- export function newFile(fd, name, kind, nonBlocking) {
58
- return null;
236
+ export function newFile(fd, name, _kind, _nonBlocking) {
237
+ return NewFile(fd, name);
59
238
  }
60
- // Directory entry stubs
61
- export function newUnixDirent(parent, name, typ) {
239
+ export function newUnixDirent(parent, name, _typ) {
240
+ const fullName = parent === "" || parent === "." ? name : parent.replace(/\/+$/, "") + "/" + name;
241
+ const denoObj = getDeno();
242
+ if (denoObj?.lstatSync) {
243
+ try {
244
+ return [FileInfoToDirEntry(createFileInfo(name, denoObj.lstatSync(fullName))), null];
245
+ }
246
+ catch (err) {
247
+ return [null, newHostError(err)];
248
+ }
249
+ }
250
+ const nodeFS = getNodeFS();
251
+ if (nodeFS?.lstatSync) {
252
+ try {
253
+ return [FileInfoToDirEntry(createFileInfo(name, nodeFS.lstatSync(fullName))), null];
254
+ }
255
+ catch (err) {
256
+ return [null, newHostError(err)];
257
+ }
258
+ }
62
259
  return [null, ErrUnimplemented];
63
260
  }
64
261
  //# sourceMappingURL=file_unix_js.gs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file_unix_js.gs.js","sourceRoot":"","sources":["../../../gs/os/file_unix_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKjD,+DAA+D;AAC/D,yFAAyF;AAEzF,yCAAyC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAA;AAElC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,KAAK,GAAgB,IAAI,CAAA;AACtC,MAAM,CAAC,MAAM,MAAM,GAAgB,IAAI,CAAA;AACvC,MAAM,CAAC,MAAM,MAAM,GAAgB,IAAI,CAAA;AAEvC,sEAAsE;AACtE,MAAM,UAAU,OAAO,CAAC,EAAU,EAAE,IAAY;IAC/C,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,MAAM,CAAC,IAAY;IAClC,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe,EAAE,OAAe;IACpD,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,OAAe;IACvD,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY;IAClD,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,OAAe;IACtD,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY;IACrE,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,OAAO;IACtB,OAAO,MAAM,CAAA;AACd,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,OAAO,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAA;AAC9B,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,OAAO;IACtB,sBAAsB;AACvB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAiB,EAAE,CAAY;IACzD,wBAAwB;AACzB,CAAC;AAOD,+BAA+B;AAC/B,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,IAAY;IACvD,OAAO,IAAI,CAAA;AACZ,CAAC;AAKD,MAAM,UAAU,OAAO,CAAC,EAAU,EAAE,IAAY,EAAE,IAAiB,EAAE,WAAoB;IACxF,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAY,EAAE,GAAW;IACtE,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"file_unix_js.gs.js","sourceRoot":"","sources":["../../../gs/os/file_unix_js.gs.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,30 @@
1
+ import { getDeno } from "./types_js.gs.js";
1
2
  import * as fs from "@goscript/io/fs/index.js";
2
- // JavaScript-specific implementation of Getwd
3
- // Working directories are not a concept in JavaScript environments
4
- // Store working directory in a global variable
5
- // Global working directory variable, defaults to test directory
6
3
  let currentWorkingDir = "/";
7
4
  export function Getwd() {
5
+ const denoObj = getDeno();
6
+ if (denoObj?.cwd) {
7
+ try {
8
+ return [denoObj.cwd(), null];
9
+ }
10
+ catch {
11
+ // Fall back to the tracked working directory below.
12
+ }
13
+ }
14
+ const processObj = globalThis.process;
15
+ if (processObj?.cwd) {
16
+ try {
17
+ return [processObj.cwd(), null];
18
+ }
19
+ catch {
20
+ // Fall back to the tracked working directory below.
21
+ }
22
+ }
8
23
  return [currentWorkingDir, null];
9
24
  }
10
- // Set the working directory (for internal use)
11
25
  export function setWorkingDir(dir) {
12
26
  currentWorkingDir = dir;
13
27
  }
14
- // Additional functions that may be imported by other files
15
28
  export function statNolog(name) {
16
29
  return [null, fs.ErrNotExist];
17
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getwd_js.gs.js","sourceRoot":"","sources":["../../../gs/os/getwd_js.gs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAE9C,8CAA8C;AAC9C,mEAAmE;AACnE,+CAA+C;AAE/C,gEAAgE;AAChE,IAAI,iBAAiB,GAAW,GAAG,CAAA;AAEnC,MAAM,UAAU,KAAK;IACpB,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,GAAW;IACxC,iBAAiB,GAAG,GAAG,CAAA;AACxB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"getwd_js.gs.js","sourceRoot":"","sources":["../../../gs/os/getwd_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAE9C,IAAI,iBAAiB,GAAW,GAAG,CAAA;AAEnC,MAAM,UAAU,KAAK;IACpB,MAAM,OAAO,GAAG,OAAO,EAAE,CAAA;IACzB,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC;YACJ,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;QAC7B,CAAC;QAAC,MAAM,CAAC;YACR,oDAAoD;QACrD,CAAC;IACF,CAAC;IACD,MAAM,UAAU,GAAI,UAAkB,CAAC,OAAO,CAAA;IAC9C,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC;YACJ,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;QAChC,CAAC;QAAC,MAAM,CAAC;YACR,oDAAoD;QACrD,CAAC;IACF,CAAC;IACD,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACxC,iBAAiB,GAAG,GAAG,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;AAC9B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as $ from "@goscript/builtin/index.js";
2
- import { ErrUnimplemented } from "./error.gs.js";
2
+ import { MkdirAll as mkdirAllPath, RemoveAll as removeAllPath } from "./file_js.gs.js";
3
3
  import { IsPathSeparator } from "./path_unix.gs.js";
4
4
  // MkdirAll creates a directory named path,
5
5
  // along with any necessary parents, and returns nil,
@@ -9,7 +9,7 @@ import { IsPathSeparator } from "./path_unix.gs.js";
9
9
  // If path is already a directory, MkdirAll does nothing
10
10
  // and returns nil.
11
11
  export function MkdirAll(path, perm) {
12
- return ErrUnimplemented;
12
+ return mkdirAllPath(path, perm);
13
13
  }
14
14
  // RemoveAll removes path and any children it contains.
15
15
  // It removes everything it can but returns the first error
@@ -17,7 +17,7 @@ export function MkdirAll(path, perm) {
17
17
  // returns nil (no error).
18
18
  // If there is an error, it will be of type [*PathError].
19
19
  export function RemoveAll(path) {
20
- return ErrUnimplemented;
20
+ return removeAllPath(path);
21
21
  }
22
22
  // endsWithDot reports whether the final component of path is ".".
23
23
  export function endsWithDot(path) {
@@ -1 +1 @@
1
- {"version":3,"file":"path.gs.js","sourceRoot":"","sources":["../../../gs/os/path.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,2CAA2C;AAC3C,qDAAqD;AACrD,4BAA4B;AAC5B,2DAA2D;AAC3D,qCAAqC;AACrC,wDAAwD;AACxD,mBAAmB;AACnB,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY;IAClD,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,uDAAuD;AACvD,2DAA2D;AAC3D,uDAAuD;AACvD,0BAA0B;AAC1B,yDAAyD;AACzD,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7H,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"path.gs.js","sourceRoot":"","sources":["../../../gs/os/path.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,2CAA2C;AAC3C,qDAAqD;AACrD,4BAA4B;AAC5B,2DAA2D;AAC3D,qCAAqC;AACrC,wDAAwD;AACxD,mBAAmB;AACnB,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY;IAClD,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,uDAAuD;AACvD,2DAA2D;AAC3D,uDAAuD;AACvD,0BAA0B;AAC1B,yDAAyD;AACzD,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7H,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC"}
@@ -1,13 +1,10 @@
1
1
  import { ErrUnimplemented } from "./error.gs.js";
2
- // ensurePidfd ensures pidfd support - stub implementation
3
2
  export function ensurePidfd(sysAttr) {
4
3
  return [null, false];
5
4
  }
6
- // getPidfd gets a process file descriptor - stub implementation
7
5
  export function getPidfd(_, _usePidfd) {
8
6
  return [0, false];
9
7
  }
10
- // pidfdFind finds a process by pidfd - stub implementation
11
8
  export function pidfdFind(_) {
12
9
  return [0, ErrUnimplemented];
13
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pidfd_js.gs.js","sourceRoot":"","sources":["../../../gs/os/pidfd_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAUjD,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CAAC,OAA2B;IACtD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACrB,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,QAAQ,CAAC,CAAqB,EAAE,SAAkB;IACjE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAClB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,SAAS,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"pidfd_js.gs.js","sourceRoot":"","sources":["../../../gs/os/pidfd_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAQjD,MAAM,UAAU,WAAW,CAAC,OAA2B;IACtD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAqB,EAAE,SAAkB;IACjE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;AAC7B,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import * as $ from "@goscript/builtin/index.js";
2
2
  import { ErrUnimplemented } from "./error.gs.js";
3
+ import { runtime_args as hostRuntimeArgs, runtime_beforeExit as hostRuntimeBeforeExit } from "./proc_js.gs.js";
3
4
  export let Args = null;
4
5
  export function init() {
5
6
  // In JavaScript environment, just initialize with empty args
6
7
  Args = runtime_args();
7
8
  }
8
9
  export function runtime_args() {
9
- return $.arrayToSlice([]);
10
+ return hostRuntimeArgs();
10
11
  }
11
12
  // Getuid returns the numeric user id of the caller.
12
13
  //
@@ -45,7 +46,7 @@ export function Getgroups() {
45
46
  //
46
47
  // For portability, the status code should be in the range [0, 125].
47
48
  export function Exit(code) {
48
- // Testlog functionality not available in JavaScript - stub
49
+ // Testlog functionality is not available in JavaScript.
49
50
  // if (code == 0 && testlog.PanicOnExit0()) {
50
51
  // $.panic("unexpected call to os.Exit(0) during test")
51
52
  // }
@@ -64,5 +65,7 @@ export function Exit(code) {
64
65
  return;
65
66
  }
66
67
  }
67
- export function runtime_beforeExit(exitCode) { }
68
+ export function runtime_beforeExit(exitCode) {
69
+ hostRuntimeBeforeExit(exitCode);
70
+ }
68
71
  //# sourceMappingURL=proc.gs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proc.gs.js","sourceRoot":"","sources":["../../../gs/os/proc.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMlE,MAAM,CAAC,IAAI,IAAI,GAAoB,IAAI,CAAA;AAEvC,MAAM,UAAU,IAAI;IACnB,6DAA6D;IAC7D,IAAI,GAAG,YAAY,EAAE,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,OAAO,CAAC,CAAC,YAAY,CAAS,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,oDAAoD;AACpD,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,MAAM;IACrB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,+DAA+D;AAC/D,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,OAAO;IACtB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,qDAAqD;AACrD,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,MAAM;IACrB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,gEAAgE;AAChE,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,OAAO;IACtB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,oFAAoF;AACpF,EAAE;AACF,uEAAuE;AACvE,8BAA8B;AAC9B,MAAM,UAAU,SAAS;IACxB,OAAO,CAAC,CAAC,CAAC,YAAY,CAAS,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;AACtD,CAAC;AAED,sEAAsE;AACtE,kEAAkE;AAClE,sEAAsE;AACtE,EAAE;AACF,oEAAoE;AACpE,MAAM,UAAU,IAAI,CAAC,IAAY;IAEhC,2DAA2D;IAC3D,6CAA6C;IAC7C,uDAAuD;IACvD,IAAI;IAEJ,+DAA+D;IAC/D,6DAA6D;IAC7D,yDAAyD;IACzD,6DAA6D;IAC7D,+CAA+C;IAC/C,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAExB,2DAA2D;IAC3D,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC;SAAM,CAAC;QACP,uDAAuD;QACvD,OAAM;IACP,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,IAAS,CAAC"}
1
+ {"version":3,"file":"proc.gs.js","sourceRoot":"","sources":["../../../gs/os/proc.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,kBAAkB,IAAI,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAM/G,MAAM,CAAC,IAAI,IAAI,GAAoB,IAAI,CAAA;AAEvC,MAAM,UAAU,IAAI;IACnB,6DAA6D;IAC7D,IAAI,GAAG,YAAY,EAAE,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,OAAO,eAAe,EAAE,CAAA;AACzB,CAAC;AAED,oDAAoD;AACpD,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,MAAM;IACrB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,+DAA+D;AAC/D,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,OAAO;IACtB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,qDAAqD;AACrD,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,MAAM;IACrB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,gEAAgE;AAChE,EAAE;AACF,6BAA6B;AAC7B,MAAM,UAAU,OAAO;IACtB,OAAO,CAAC,CAAC,CAAA,CAAC,8BAA8B;AACzC,CAAC;AAED,oFAAoF;AACpF,EAAE;AACF,uEAAuE;AACvE,8BAA8B;AAC9B,MAAM,UAAU,SAAS;IACxB,OAAO,CAAC,CAAC,CAAC,YAAY,CAAS,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;AACtD,CAAC;AAED,sEAAsE;AACtE,kEAAkE;AAClE,sEAAsE;AACtE,EAAE;AACF,oEAAoE;AACpE,MAAM,UAAU,IAAI,CAAC,IAAY;IAEhC,wDAAwD;IACxD,6CAA6C;IAC7C,uDAAuD;IACvD,IAAI;IAEJ,+DAA+D;IAC/D,6DAA6D;IAC7D,yDAAyD;IACzD,6DAA6D;IAC7D,+CAA+C;IAC/C,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAExB,2DAA2D;IAC3D,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC;SAAM,CAAC;QACP,uDAAuD;QACvD,OAAM;IACP,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IAClD,qBAAqB,CAAC,QAAQ,CAAC,CAAA;AAChC,CAAC"}
@@ -1,12 +1,17 @@
1
1
  import * as $ from "@goscript/builtin/index.js";
2
- // JavaScript-specific process functions
3
- // runtime_args returns command line arguments (stub for JS)
2
+ import { getDeno } from "./types_js.gs.js";
4
3
  export function runtime_args() {
5
- // In JavaScript environment, return empty args or process.argv equivalent
4
+ const denoObj = getDeno();
5
+ if (Array.isArray(denoObj?.args)) {
6
+ return $.arrayToSlice(denoObj.args);
7
+ }
8
+ const processObj = globalThis.process;
9
+ if (Array.isArray(processObj?.argv)) {
10
+ return $.arrayToSlice(processObj.argv.slice(2));
11
+ }
6
12
  return $.arrayToSlice([]);
7
13
  }
8
- // runtime_beforeExit is called before exit (stub for JS)
9
14
  export function runtime_beforeExit(exitCode) {
10
- // No-op in JavaScript
15
+ // No-op in JavaScript.
11
16
  }
12
17
  //# sourceMappingURL=proc_js.gs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proc_js.gs.js","sourceRoot":"","sources":["../../../gs/os/proc_js.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAGhD,wCAAwC;AAExC,4DAA4D;AAC5D,MAAM,UAAU,YAAY;IAC3B,0EAA0E;IAC1E,OAAO,CAAC,CAAC,YAAY,CAAS,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IAClD,sBAAsB;AACvB,CAAC"}
1
+ {"version":3,"file":"proc_js.gs.js","sourceRoot":"","sources":["../../../gs/os/proc_js.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,UAAU,YAAY;IAC3B,MAAM,OAAO,GAAG,OAAO,EAAE,CAAA;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC,YAAY,CAAS,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,UAAU,GAAI,UAAkB,CAAC,OAAO,CAAA;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,YAAY,CAAS,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,CAAC,CAAC,YAAY,CAAS,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IAClD,uBAAuB;AACxB,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import * as $ from "@goscript/builtin/index.js";
2
- import { File } from "./types_js.gs.js";
2
+ type rawConnFile = {
3
+ fd: number;
4
+ };
3
5
  export declare class rawConn {
4
6
  private file;
5
- constructor(file: File | null);
7
+ constructor(file: rawConnFile | null);
6
8
  Control(f: ((fd: number) => void) | null): $.GoError;
7
9
  Read(f: ((fd: number) => boolean) | null): $.GoError;
8
10
  Write(f: ((fd: number) => boolean) | null): $.GoError;
9
11
  }
10
- export declare function newRawConn(file: File | null): rawConn;
12
+ export declare function newRawConn(file: rawConnFile | null): rawConn;
13
+ export {};
@@ -1,25 +1,31 @@
1
- import { ErrUnimplemented } from "./error.gs.js";
2
- // JavaScript-specific stub for raw connection operations
3
- // These operations are not available in JavaScript environments
1
+ import { ErrInvalid } from "./error.gs.js";
4
2
  export class rawConn {
5
3
  file;
6
4
  constructor(file) {
7
5
  this.file = file;
8
6
  }
9
- // Control calls fn with the file descriptor - stub implementation
10
7
  Control(f) {
11
- return ErrUnimplemented;
8
+ if (!this.file || this.file.fd < 0) {
9
+ return ErrInvalid;
10
+ }
11
+ f?.(this.file.fd);
12
+ return null;
12
13
  }
13
- // Read calls fn when the file descriptor is ready for reading - stub implementation
14
14
  Read(f) {
15
- return ErrUnimplemented;
15
+ if (!this.file || this.file.fd < 0) {
16
+ return ErrInvalid;
17
+ }
18
+ f?.(this.file.fd);
19
+ return null;
16
20
  }
17
- // Write calls fn when the file descriptor is ready for writing - stub implementation
18
21
  Write(f) {
19
- return ErrUnimplemented;
22
+ if (!this.file || this.file.fd < 0) {
23
+ return ErrInvalid;
24
+ }
25
+ f?.(this.file.fd);
26
+ return null;
20
27
  }
21
28
  }
22
- // newRawConn creates a new raw connection - stub implementation
23
29
  export function newRawConn(file) {
24
30
  return new rawConn(file);
25
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rawconn_js.gs.js","sourceRoot":"","sources":["../../../gs/os/rawconn_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,yDAAyD;AACzD,gEAAgE;AAEhE,MAAM,OAAO,OAAO;IACC;IAApB,YAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAG,CAAC;IAEzC,kEAAkE;IAC3D,OAAO,CAAC,CAAgC;QAC9C,OAAO,gBAAgB,CAAA;IACxB,CAAC;IAED,sFAAsF;IAC/E,IAAI,CAAC,CAAmC;QAC9C,OAAO,gBAAgB,CAAA;IACxB,CAAC;IAED,qFAAqF;IAC9E,KAAK,CAAC,CAAmC;QAC/C,OAAO,gBAAgB,CAAA;IACxB,CAAC;CACD;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,IAAiB;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"rawconn_js.gs.js","sourceRoot":"","sources":["../../../gs/os/rawconn_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,MAAM,OAAO,OAAO;IACC;IAApB,YAAoB,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEzC,OAAO,CAAC,CAAgC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,IAAI,CAAC,CAAmC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,KAAK,CAAC,CAAmC;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;CACD;AAED,MAAM,UAAU,UAAU,CAAC,IAAwB;IAClD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
@@ -1,7 +1,5 @@
1
- import { ErrUnimplemented } from "./error.gs.js";
2
- // JavaScript-specific stub for removeall operations
3
- // These operations cannot be implemented in JavaScript environments
1
+ import { RemoveAll as removeAllPath } from "./file_js.gs.js";
4
2
  export function RemoveAll(path) {
5
- return ErrUnimplemented;
3
+ return removeAllPath(path);
6
4
  }
7
5
  //# sourceMappingURL=removeall_js.gs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeall_js.gs.js","sourceRoot":"","sources":["../../../gs/os/removeall_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,oDAAoD;AACpD,oEAAoE;AAEpE,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,gBAAgB,CAAA;AACxB,CAAC"}
1
+ {"version":3,"file":"removeall_js.gs.js","sourceRoot":"","sources":["../../../gs/os/removeall_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC"}
@@ -3,7 +3,10 @@ import { File } from "./types_js.gs.js";
3
3
  import * as fs from "@goscript/io/fs/index.js";
4
4
  export declare function OpenInRoot(dir: string, name: string): [File | null, $.GoError];
5
5
  export declare class Root {
6
- constructor();
6
+ name: string;
7
+ constructor(init?: Partial<{
8
+ name?: string;
9
+ }>);
7
10
  Name(): string;
8
11
  Close(): $.GoError;
9
12
  Open(name: string): [File | null, $.GoError];