goscript 0.0.82 → 0.0.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gs/os/dir.gs.js +41 -27
- package/dist/gs/os/dir.gs.js.map +1 -1
- package/dist/gs/os/exec.gs.js +1 -2
- package/dist/gs/os/exec.gs.js.map +1 -1
- package/dist/gs/os/exec_posix.gs.js +1 -1
- package/dist/gs/os/exec_posix.gs.js.map +1 -1
- package/dist/gs/os/file_constants_js.gs.js +71 -7
- package/dist/gs/os/file_constants_js.gs.js.map +1 -1
- package/dist/gs/os/file_js.gs.js +168 -24
- package/dist/gs/os/file_js.gs.js.map +1 -1
- package/dist/gs/os/file_posix_js.gs.js +75 -11
- package/dist/gs/os/file_posix_js.gs.js.map +1 -1
- package/dist/gs/os/file_unix_js.gs.d.ts +3 -3
- package/dist/gs/os/file_unix_js.gs.js +218 -21
- package/dist/gs/os/file_unix_js.gs.js.map +1 -1
- package/dist/gs/os/getwd_js.gs.js +19 -6
- package/dist/gs/os/getwd_js.gs.js.map +1 -1
- package/dist/gs/os/path.gs.js +3 -3
- package/dist/gs/os/path.gs.js.map +1 -1
- package/dist/gs/os/pidfd_js.gs.js +0 -3
- package/dist/gs/os/pidfd_js.gs.js.map +1 -1
- package/dist/gs/os/proc.gs.js +6 -3
- package/dist/gs/os/proc.gs.js.map +1 -1
- package/dist/gs/os/proc_js.gs.js +10 -5
- package/dist/gs/os/proc_js.gs.js.map +1 -1
- package/dist/gs/os/rawconn_js.gs.d.ts +6 -3
- package/dist/gs/os/rawconn_js.gs.js +16 -10
- package/dist/gs/os/rawconn_js.gs.js.map +1 -1
- package/dist/gs/os/removeall_js.gs.js +2 -4
- package/dist/gs/os/removeall_js.gs.js.map +1 -1
- package/dist/gs/os/root_js.gs.d.ts +4 -1
- package/dist/gs/os/root_js.gs.js +90 -40
- package/dist/gs/os/root_js.gs.js.map +1 -1
- package/dist/gs/os/root_noopenat.gs.js +13 -16
- package/dist/gs/os/root_noopenat.gs.js.map +1 -1
- package/dist/gs/os/stat_js.gs.js +40 -4
- package/dist/gs/os/stat_js.gs.js.map +1 -1
- package/dist/gs/os/stat_unix_js.gs.d.ts +1 -1
- package/dist/gs/os/stat_unix_js.gs.js +5 -10
- package/dist/gs/os/stat_unix_js.gs.js.map +1 -1
- package/dist/gs/os/tempfile.gs.d.ts +1 -1
- package/dist/gs/os/tempfile.gs.js +24 -7
- package/dist/gs/os/tempfile.gs.js.map +1 -1
- package/dist/gs/os/types_js.gs.d.ts +78 -1
- package/dist/gs/os/types_js.gs.js +464 -23
- package/dist/gs/os/types_js.gs.js.map +1 -1
- package/gs/os/dir.gs.ts +40 -28
- package/gs/os/exec.gs.ts +2 -4
- package/gs/os/exec_posix.gs.ts +1 -2
- package/gs/os/file_constants_js.gs.ts +70 -8
- package/gs/os/file_js.gs.ts +156 -26
- package/gs/os/file_posix_js.gs.ts +69 -13
- package/gs/os/file_unix_js.gs.ts +212 -24
- package/gs/os/file_unix_js.test.ts +131 -0
- package/gs/os/getwd_js.gs.ts +18 -8
- package/gs/os/path.gs.ts +3 -4
- package/gs/os/pidfd_js.gs.ts +3 -8
- package/gs/os/proc.gs.ts +6 -4
- package/gs/os/proc_js.gs.ts +11 -8
- package/gs/os/rawconn_js.gs.ts +22 -14
- package/gs/os/removeall_js.gs.ts +3 -6
- package/gs/os/root_js.gs.ts +94 -42
- package/gs/os/root_noopenat.gs.ts +13 -20
- package/gs/os/stat_js.gs.ts +37 -6
- package/gs/os/stat_unix_js.gs.ts +6 -13
- package/gs/os/tempfile.gs.ts +27 -9
- package/gs/os/types_js.gs.ts +528 -26
- package/package.json +1 -1
package/dist/gs/os/root_js.gs.js
CHANGED
|
@@ -1,80 +1,130 @@
|
|
|
1
1
|
import * as $ from "@goscript/builtin/index.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { ErrInvalid } from "./error.gs.js";
|
|
3
|
+
import { Create, Mkdir, Open, OpenFile, Remove } from "./file_js.gs.js";
|
|
4
|
+
import { Lstat as lstatPath, Stat as statPath } from "./stat_js.gs.js";
|
|
5
|
+
import { ValidPath } from "@goscript/io/fs/index.js";
|
|
6
|
+
function isValidRootName(name) {
|
|
7
|
+
if (name === ".") {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
return ValidPath(name);
|
|
11
|
+
}
|
|
12
|
+
function joinRootPath(dir, name) {
|
|
13
|
+
if (!isValidRootName(name)) {
|
|
14
|
+
return ["", ErrInvalid];
|
|
15
|
+
}
|
|
16
|
+
if (name === ".") {
|
|
17
|
+
return [dir, null];
|
|
18
|
+
}
|
|
19
|
+
return [dir.replace(/\/+$/, "") + "/" + name, null];
|
|
20
|
+
}
|
|
6
21
|
export function OpenInRoot(dir, name) {
|
|
7
|
-
|
|
22
|
+
const [path, err] = joinRootPath(dir, name);
|
|
23
|
+
if (err !== null) {
|
|
24
|
+
return [null, err];
|
|
25
|
+
}
|
|
26
|
+
return Open(path);
|
|
8
27
|
}
|
|
9
|
-
// Root represents a root filesystem - stub implementation
|
|
10
28
|
export class Root {
|
|
11
|
-
|
|
12
|
-
|
|
29
|
+
name;
|
|
30
|
+
constructor(init) {
|
|
31
|
+
this.name = init?.name ?? ".";
|
|
32
|
+
}
|
|
13
33
|
Name() {
|
|
14
|
-
return
|
|
34
|
+
return this.name;
|
|
15
35
|
}
|
|
16
|
-
// Close closes the Root
|
|
17
36
|
Close() {
|
|
18
|
-
return
|
|
37
|
+
return null;
|
|
19
38
|
}
|
|
20
|
-
// Open opens the named file in the root for reading
|
|
21
39
|
Open(name) {
|
|
22
|
-
return
|
|
40
|
+
return OpenInRoot(this.name, name);
|
|
23
41
|
}
|
|
24
|
-
// Create creates or truncates the named file in the root
|
|
25
42
|
Create(name) {
|
|
26
|
-
|
|
43
|
+
const [path, err] = joinRootPath(this.name, name);
|
|
44
|
+
if (err !== null) {
|
|
45
|
+
return [null, err];
|
|
46
|
+
}
|
|
47
|
+
return Create(path);
|
|
27
48
|
}
|
|
28
|
-
// OpenFile opens the named file in the root
|
|
29
49
|
OpenFile(name, flag, perm) {
|
|
30
|
-
|
|
50
|
+
const [path, err] = joinRootPath(this.name, name);
|
|
51
|
+
if (err !== null) {
|
|
52
|
+
return [null, err];
|
|
53
|
+
}
|
|
54
|
+
return OpenFile(path, flag, perm);
|
|
31
55
|
}
|
|
32
|
-
// OpenRoot opens the named directory in the root
|
|
33
56
|
OpenRoot(name) {
|
|
34
|
-
|
|
57
|
+
const [path, err] = joinRootPath(this.name, name);
|
|
58
|
+
if (err !== null) {
|
|
59
|
+
return [null, err];
|
|
60
|
+
}
|
|
61
|
+
return OpenRoot(path);
|
|
35
62
|
}
|
|
36
|
-
// Mkdir creates a new directory in the root
|
|
37
63
|
Mkdir(name, perm) {
|
|
38
|
-
|
|
64
|
+
const [path, err] = joinRootPath(this.name, name);
|
|
65
|
+
if (err !== null) {
|
|
66
|
+
return err;
|
|
67
|
+
}
|
|
68
|
+
return Mkdir(path, perm);
|
|
39
69
|
}
|
|
40
|
-
// Remove removes the named file or directory in the root
|
|
41
70
|
Remove(name) {
|
|
42
|
-
|
|
71
|
+
const [path, err] = joinRootPath(this.name, name);
|
|
72
|
+
if (err !== null) {
|
|
73
|
+
return err;
|
|
74
|
+
}
|
|
75
|
+
return Remove(path);
|
|
43
76
|
}
|
|
44
|
-
// Stat returns a FileInfo describing the named file in the root
|
|
45
77
|
Stat(name) {
|
|
46
|
-
|
|
78
|
+
const [path, err] = joinRootPath(this.name, name);
|
|
79
|
+
if (err !== null) {
|
|
80
|
+
return [null, err];
|
|
81
|
+
}
|
|
82
|
+
return statPath(path);
|
|
47
83
|
}
|
|
48
|
-
// Lstat returns a FileInfo describing the named file in the root
|
|
49
84
|
Lstat(name) {
|
|
50
|
-
|
|
85
|
+
const [path, err] = joinRootPath(this.name, name);
|
|
86
|
+
if (err !== null) {
|
|
87
|
+
return [null, err];
|
|
88
|
+
}
|
|
89
|
+
return lstatPath(path);
|
|
51
90
|
}
|
|
52
|
-
// FS returns a file system for the tree of files in the root
|
|
53
91
|
FS() {
|
|
54
|
-
return new
|
|
92
|
+
return new rootFS({ root: this });
|
|
55
93
|
}
|
|
56
|
-
// Register this type with the runtime type system
|
|
57
94
|
static __typeInfo = $.registerStructType('Root', new Root(), [
|
|
58
95
|
{ name: "Name", args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] },
|
|
59
96
|
{ name: "Close", args: [], returns: [{ type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }
|
|
60
|
-
], Root, {});
|
|
97
|
+
], Root, { "name": { kind: $.TypeKind.Basic, name: "string" } });
|
|
61
98
|
}
|
|
62
|
-
// OpenRoot opens a root filesystem - stub implementation
|
|
63
99
|
export function OpenRoot(name) {
|
|
64
|
-
|
|
100
|
+
const [info, err] = statPath(name);
|
|
101
|
+
if (err !== null) {
|
|
102
|
+
return [null, err];
|
|
103
|
+
}
|
|
104
|
+
if (!info?.IsDir()) {
|
|
105
|
+
return [null, ErrInvalid];
|
|
106
|
+
}
|
|
107
|
+
return [new Root({ name }), null];
|
|
65
108
|
}
|
|
66
|
-
// splitPathInRoot splits a path in root - stub implementation
|
|
67
109
|
export function splitPathInRoot(s, prefix, suffix) {
|
|
68
|
-
|
|
110
|
+
if (!isValidRootName(s)) {
|
|
111
|
+
return [null, "", ErrInvalid];
|
|
112
|
+
}
|
|
113
|
+
const parts = s === "." ? [] : s.split("/").filter((part) => part !== "");
|
|
114
|
+
const head = $.arrayToSlice(parts.slice(0, Math.max(0, parts.length - 1)));
|
|
115
|
+
const tail = parts.length === 0 ? "." : parts[parts.length - 1];
|
|
116
|
+
return [head, tail, null];
|
|
69
117
|
}
|
|
70
|
-
// isValidRootFSPath checks if a path is valid for root filesystem - stub implementation
|
|
71
118
|
export function isValidRootFSPath(name) {
|
|
72
|
-
return
|
|
119
|
+
return isValidRootName(name);
|
|
73
120
|
}
|
|
74
|
-
|
|
75
|
-
|
|
121
|
+
class rootFS {
|
|
122
|
+
root;
|
|
123
|
+
constructor(init) {
|
|
124
|
+
this.root = init?.root ?? new Root();
|
|
125
|
+
}
|
|
76
126
|
Open(name) {
|
|
77
|
-
return
|
|
127
|
+
return this.root.Open(name);
|
|
78
128
|
}
|
|
79
129
|
}
|
|
80
130
|
//# sourceMappingURL=root_js.gs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root_js.gs.js","sourceRoot":"","sources":["../../../gs/os/root_js.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"root_js.gs.js","sourceRoot":"","sources":["../../../gs/os/root_js.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Mkdir, OpenFile, Remove } from "./file_js.gs.js";
|
|
2
|
+
import { OpenRoot } from "./root_js.gs.js";
|
|
3
|
+
import { Lstat, Stat } from "./stat_js.gs.js";
|
|
4
4
|
export function openRootNolog(name) {
|
|
5
|
-
return
|
|
5
|
+
return OpenRoot(name);
|
|
6
6
|
}
|
|
7
|
-
// openRootInRoot is Root.OpenRoot - stub implementation
|
|
8
7
|
export function openRootInRoot(r, name) {
|
|
9
|
-
return [null,
|
|
8
|
+
return r?.OpenRoot(name) ?? [null, null];
|
|
10
9
|
}
|
|
11
|
-
// newRoot returns a new Root - stub implementation
|
|
12
10
|
export function newRoot(name) {
|
|
13
|
-
return
|
|
11
|
+
return OpenRoot(name);
|
|
14
12
|
}
|
|
15
|
-
// rootOpenFileNolog is Root.OpenFile - stub implementation
|
|
16
13
|
export function rootOpenFileNolog(r, name, flag, perm) {
|
|
17
|
-
return
|
|
14
|
+
return r?.OpenFile(name, flag, perm) ?? OpenFile(name, flag, perm);
|
|
18
15
|
}
|
|
19
|
-
// rootStat - stub implementation
|
|
20
16
|
export function rootStat(r, name, lstat) {
|
|
21
|
-
|
|
17
|
+
if (r !== null) {
|
|
18
|
+
return lstat ? r.Lstat(name) : r.Stat(name);
|
|
19
|
+
}
|
|
20
|
+
return lstat ? Lstat(name) : Stat(name);
|
|
22
21
|
}
|
|
23
|
-
// rootMkdir - stub implementation
|
|
24
22
|
export function rootMkdir(r, name, perm) {
|
|
25
|
-
return
|
|
23
|
+
return r?.Mkdir(name, perm) ?? Mkdir(name, perm);
|
|
26
24
|
}
|
|
27
|
-
// rootRemove - stub implementation
|
|
28
25
|
export function rootRemove(r, name) {
|
|
29
|
-
return
|
|
26
|
+
return r?.Remove(name) ?? Remove(name);
|
|
30
27
|
}
|
|
31
28
|
//# sourceMappingURL=root_noopenat.gs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root_noopenat.gs.js","sourceRoot":"","sources":["../../../gs/os/root_noopenat.gs.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"root_noopenat.gs.js","sourceRoot":"","sources":["../../../gs/os/root_noopenat.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAQ,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAK9C,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAc,EAAE,IAAY;IAC1D,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAc,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY;IACzF,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAc,EAAE,IAAY,EAAE,KAAc;IACpE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAc,EAAE,IAAY,EAAE,IAAY;IACnE,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAc,EAAE,IAAY;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC"}
|
package/dist/gs/os/stat_js.gs.js
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
import { ErrUnimplemented } from "./error.gs.js";
|
|
2
|
-
|
|
2
|
+
import { createFileInfo, getDeno, getNodeFS, newHostError } from "./types_js.gs.js";
|
|
3
3
|
// Stat returns a [FileInfo] describing the named file.
|
|
4
4
|
// If there is an error, it will be of type [*PathError].
|
|
5
5
|
export function Stat(name) {
|
|
6
|
+
const denoObj = getDeno();
|
|
7
|
+
if (denoObj?.statSync) {
|
|
8
|
+
try {
|
|
9
|
+
return [createFileInfo(name, denoObj.statSync(name)), null];
|
|
10
|
+
}
|
|
11
|
+
catch (err) {
|
|
12
|
+
return [null, newHostError(err)];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const nodeFS = getNodeFS();
|
|
16
|
+
if (nodeFS?.statSync) {
|
|
17
|
+
try {
|
|
18
|
+
return [createFileInfo(name, nodeFS.statSync(name)), null];
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
return [null, newHostError(err)];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
6
24
|
return [null, ErrUnimplemented];
|
|
7
25
|
}
|
|
8
26
|
// Lstat returns a [FileInfo] describing the named file.
|
|
@@ -10,14 +28,32 @@ export function Stat(name) {
|
|
|
10
28
|
// describes the symbolic link. Lstat makes no attempt to follow the link.
|
|
11
29
|
// If there is an error, it will be of type [*PathError].
|
|
12
30
|
export function Lstat(name) {
|
|
13
|
-
|
|
31
|
+
const denoObj = getDeno();
|
|
32
|
+
if (denoObj?.lstatSync) {
|
|
33
|
+
try {
|
|
34
|
+
return [createFileInfo(name, denoObj.lstatSync(name)), null];
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return [null, newHostError(err)];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const nodeFS = getNodeFS();
|
|
41
|
+
if (nodeFS?.lstatSync) {
|
|
42
|
+
try {
|
|
43
|
+
return [createFileInfo(name, nodeFS.lstatSync(name)), null];
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
return [null, newHostError(err)];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return Stat(name);
|
|
14
50
|
}
|
|
15
51
|
// statNolog is the same as Stat, for use in DirFS.
|
|
16
52
|
export function statNolog(name) {
|
|
17
|
-
return
|
|
53
|
+
return Stat(name);
|
|
18
54
|
}
|
|
19
55
|
// lstatNolog is the same as Lstat, for use in DirFS.
|
|
20
56
|
export function lstatNolog(name) {
|
|
21
|
-
return
|
|
57
|
+
return Lstat(name);
|
|
22
58
|
}
|
|
23
59
|
//# sourceMappingURL=stat_js.gs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat_js.gs.js","sourceRoot":"","sources":["../../../gs/os/stat_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"stat_js.gs.js","sourceRoot":"","sources":["../../../gs/os/stat_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIpF,uDAAuD;AACvD,yDAAyD;AACzD,MAAM,UAAU,IAAI,CAAC,IAAY;IAChC,MAAM,OAAO,GAAG,OAAO,EAAE,CAAA;IACzB,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC;YACJ,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC;IACF,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC;YACJ,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC;IACF,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AAChC,CAAC;AAED,wDAAwD;AACxD,wDAAwD;AACxD,0EAA0E;AAC1E,yDAAyD;AACzD,MAAM,UAAU,KAAK,CAAC,IAAY;IACjC,MAAM,OAAO,GAAG,OAAO,EAAE,CAAA;IACzB,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC;YACJ,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC;IACF,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC;YACJ,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import * as $ from "@goscript/builtin/index.js";
|
|
|
2
2
|
import * as fs from "@goscript/io/fs/index.js";
|
|
3
3
|
export declare function statNolog(name: string): [fs.FileInfo | null, $.GoError];
|
|
4
4
|
export declare function lstatNolog(name: string): [fs.FileInfo | null, $.GoError];
|
|
5
|
-
export declare function fillFileStatFromSys(
|
|
5
|
+
export declare function fillFileStatFromSys(fileInfo: any, name: string): void;
|
|
6
6
|
export interface fileStat {
|
|
7
7
|
sys: any;
|
|
8
8
|
}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
// JavaScript-specific stub implementations for Unix stat operations
|
|
3
|
-
// These operations cannot be implemented in JavaScript environments
|
|
4
|
-
// statNolog stats a file with no test logging - stub implementation
|
|
1
|
+
import { lstatNolog as lstatPath, statNolog as statPath } from "./stat_js.gs.js";
|
|
5
2
|
export function statNolog(name) {
|
|
6
|
-
return
|
|
3
|
+
return statPath(name);
|
|
7
4
|
}
|
|
8
|
-
// lstatNolog lstats a file with no test logging - stub implementation
|
|
9
5
|
export function lstatNolog(name) {
|
|
10
|
-
return
|
|
6
|
+
return lstatPath(name);
|
|
11
7
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// No-op in JavaScript
|
|
8
|
+
export function fillFileStatFromSys(fileInfo, name) {
|
|
9
|
+
// No-op in JavaScript.
|
|
15
10
|
}
|
|
16
11
|
//# sourceMappingURL=stat_unix_js.gs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat_unix_js.gs.js","sourceRoot":"","sources":["../../../gs/os/stat_unix_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stat_unix_js.gs.js","sourceRoot":"","sources":["../../../gs/os/stat_unix_js.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,SAAS,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIjF,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAa,EAAE,IAAY;IAC9D,uBAAuB;AACxB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as $ from "@goscript/builtin/index.js";
|
|
2
|
-
import { File } from "./
|
|
2
|
+
import { File } from "./types_js.gs.js";
|
|
3
3
|
export declare function joinPath(dir: string, file: string): string;
|
|
4
4
|
export declare function CreateTemp(dir: string, pattern: string): [File | null, $.GoError];
|
|
5
5
|
export declare function MkdirTemp(dir: string, pattern: string): [string, $.GoError];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ErrUnimplemented } from "./error.gs.js";
|
|
2
|
-
|
|
2
|
+
import { TempDir } from "./file_constants_js.gs.js";
|
|
3
|
+
import { Create, Mkdir } from "./file_js.gs.js";
|
|
3
4
|
export function joinPath(dir, file) {
|
|
4
5
|
if (dir === "" || dir === ".") {
|
|
5
6
|
return file;
|
|
@@ -7,24 +8,40 @@ export function joinPath(dir, file) {
|
|
|
7
8
|
if (file === "") {
|
|
8
9
|
return dir;
|
|
9
10
|
}
|
|
10
|
-
// Remove trailing slash from dir if present
|
|
11
11
|
if (dir.endsWith("/")) {
|
|
12
12
|
dir = dir.slice(0, -1);
|
|
13
13
|
}
|
|
14
|
-
// Remove leading slash from file if present
|
|
15
14
|
if (file.startsWith("/")) {
|
|
16
15
|
file = file.slice(1);
|
|
17
16
|
}
|
|
18
17
|
return dir + "/" + file;
|
|
19
18
|
}
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
function nextTempPath(dir, pattern) {
|
|
20
|
+
const baseDir = dir === "" ? TempDir() : dir;
|
|
21
|
+
const suffix = Math.random().toString(36).slice(2, 10) + Date.now().toString(36);
|
|
22
|
+
const name = pattern.includes("*") ? pattern.replace("*", suffix) : pattern + suffix;
|
|
23
|
+
return joinPath(baseDir, name);
|
|
24
|
+
}
|
|
22
25
|
export function CreateTemp(dir, pattern) {
|
|
26
|
+
const template = pattern === "" ? "tmp-*" : pattern;
|
|
27
|
+
for (let i = 0; i < 16; i++) {
|
|
28
|
+
const path = nextTempPath(dir, template);
|
|
29
|
+
const [file, err] = Create(path);
|
|
30
|
+
if (err === null) {
|
|
31
|
+
return [file, null];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
23
34
|
return [null, ErrUnimplemented];
|
|
24
35
|
}
|
|
25
|
-
// MkdirTemp creates a new temporary directory.
|
|
26
|
-
// Stubbed implementation for JavaScript environment.
|
|
27
36
|
export function MkdirTemp(dir, pattern) {
|
|
37
|
+
const template = pattern === "" ? "tmp-*" : pattern;
|
|
38
|
+
for (let i = 0; i < 16; i++) {
|
|
39
|
+
const path = nextTempPath(dir, template);
|
|
40
|
+
const err = Mkdir(path, 0o700);
|
|
41
|
+
if (err === null) {
|
|
42
|
+
return [path, null];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
28
45
|
return ["", ErrUnimplemented];
|
|
29
46
|
}
|
|
30
47
|
//# sourceMappingURL=tempfile.gs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tempfile.gs.js","sourceRoot":"","sources":["../../../gs/os/tempfile.gs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"tempfile.gs.js","sourceRoot":"","sources":["../../../gs/os/tempfile.gs.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,72 @@ import * as fs from "@goscript/io/fs/index.js";
|
|
|
3
3
|
import * as io from "@goscript/io/index.js";
|
|
4
4
|
import * as time from "@goscript/time/index.js";
|
|
5
5
|
import * as syscall from "@goscript/syscall/index.js";
|
|
6
|
+
export type NodeFSModule = {
|
|
7
|
+
readSync(fd: number, buffer: Uint8Array, offset?: number, length?: number, position?: number | null): number;
|
|
8
|
+
writeSync(fd: number, buffer: Uint8Array, offset?: number, length?: number, position?: number | null): number;
|
|
9
|
+
closeSync?(fd: number): void;
|
|
10
|
+
fstatSync?(fd: number): HostStatLike;
|
|
11
|
+
fsyncSync?(fd: number): void;
|
|
12
|
+
ftruncateSync?(fd: number, len?: number): void;
|
|
13
|
+
openSync?(path: string, flags: number | string, mode?: number): number;
|
|
14
|
+
chmodSync?(path: string, mode: number): void;
|
|
15
|
+
chownSync?(path: string, uid: number, gid: number): void;
|
|
16
|
+
lchownSync?(path: string, uid: number, gid: number): void;
|
|
17
|
+
linkSync?(existingPath: string, newPath: string): void;
|
|
18
|
+
lstatSync?(path: string): HostStatLike;
|
|
19
|
+
mkdirSync?(path: string, options?: number | {
|
|
20
|
+
mode?: number;
|
|
21
|
+
recursive?: boolean;
|
|
22
|
+
}): void;
|
|
23
|
+
readFileSync?(path: string): Uint8Array;
|
|
24
|
+
readdirSync?(path: string, options?: {
|
|
25
|
+
withFileTypes?: boolean;
|
|
26
|
+
}): any[];
|
|
27
|
+
readlinkSync?(path: string): string;
|
|
28
|
+
renameSync?(oldPath: string, newPath: string): void;
|
|
29
|
+
rmSync?(path: string, options?: {
|
|
30
|
+
force?: boolean;
|
|
31
|
+
recursive?: boolean;
|
|
32
|
+
}): void;
|
|
33
|
+
rmdirSync?(path: string): void;
|
|
34
|
+
statSync?(path: string): HostStatLike;
|
|
35
|
+
symlinkSync?(target: string, path: string): void;
|
|
36
|
+
truncateSync?(path: string, len?: number): void;
|
|
37
|
+
unlinkSync?(path: string): void;
|
|
38
|
+
utimesSync?(path: string, atime: Date | number, mtime: Date | number): void;
|
|
39
|
+
writeFileSync?(path: string, data: Uint8Array, options?: {
|
|
40
|
+
mode?: number;
|
|
41
|
+
}): void;
|
|
42
|
+
};
|
|
43
|
+
export type DenoStream = {
|
|
44
|
+
readSync?(buffer: Uint8Array): number | null;
|
|
45
|
+
writeSync?(buffer: Uint8Array): number;
|
|
46
|
+
};
|
|
47
|
+
export type DenoFileLike = DenoStream & {
|
|
48
|
+
close?(): void;
|
|
49
|
+
rid?: number;
|
|
50
|
+
seekSync?(offset: number, whence: number): number;
|
|
51
|
+
syncSync?(): void;
|
|
52
|
+
statSync?(): HostStatLike;
|
|
53
|
+
truncateSync?(len?: number): void;
|
|
54
|
+
};
|
|
55
|
+
export type HostStatLike = {
|
|
56
|
+
isDirectory(): boolean;
|
|
57
|
+
isSymbolicLink?(): boolean;
|
|
58
|
+
mode?: number;
|
|
59
|
+
mtime?: Date | null;
|
|
60
|
+
mtimeMs?: number;
|
|
61
|
+
size?: number;
|
|
62
|
+
};
|
|
63
|
+
export declare function newHostError(err: unknown): $.GoError;
|
|
64
|
+
export declare function getDynamicRequire(): ((specifier: string) => unknown) | null;
|
|
65
|
+
export declare function getNodeFS(): NodeFSModule | null;
|
|
66
|
+
export declare function getDeno(): any | null;
|
|
67
|
+
export declare function getPlatform(): string;
|
|
68
|
+
export declare function getEnv(name: string): string;
|
|
69
|
+
export declare function getDenoStream(fd: number): DenoStream | null;
|
|
70
|
+
export declare function createFileInfo(name: string, stat: HostStatLike): fs.FileInfo;
|
|
71
|
+
export declare function createHostFile(name: string, fd?: number, handle?: DenoFileLike | null): File;
|
|
6
72
|
export type Time = time.Time;
|
|
7
73
|
export type FileInfo = fs.FileInfo;
|
|
8
74
|
export type FileMode = fs.FileMode;
|
|
@@ -14,11 +80,17 @@ export declare function Getpagesize(): number;
|
|
|
14
80
|
export declare class File {
|
|
15
81
|
get file(): file | null;
|
|
16
82
|
set file(value: file | null);
|
|
83
|
+
name: string;
|
|
84
|
+
closed: boolean;
|
|
85
|
+
fd: number;
|
|
17
86
|
_fields: {
|
|
18
87
|
file: $.VarRef<file | null>;
|
|
19
88
|
};
|
|
20
89
|
constructor(init?: Partial<{
|
|
90
|
+
closed?: boolean;
|
|
91
|
+
fd?: number;
|
|
21
92
|
file?: file | null;
|
|
93
|
+
name?: string;
|
|
22
94
|
}>);
|
|
23
95
|
clone(): File;
|
|
24
96
|
Readdir(n: number): [$.Slice<fs.FileInfo>, $.GoError];
|
|
@@ -51,7 +123,12 @@ export declare class File {
|
|
|
51
123
|
static __typeInfo: $.StructTypeInfo;
|
|
52
124
|
}
|
|
53
125
|
declare class file {
|
|
54
|
-
|
|
126
|
+
handle: DenoFileLike | null;
|
|
127
|
+
path: string;
|
|
128
|
+
constructor(init?: Partial<{
|
|
129
|
+
handle?: DenoFileLike | null;
|
|
130
|
+
path?: string;
|
|
131
|
+
}>);
|
|
55
132
|
}
|
|
56
133
|
type readdirMode = number;
|
|
57
134
|
export declare let ModeDir: fs.FileMode;
|