goscript 0.0.28 → 0.0.29

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 (73) hide show
  1. package/compiler/analysis.go +41 -2
  2. package/compiler/expr-call.go +87 -15
  3. package/compiler/expr-selector.go +100 -0
  4. package/compiler/spec-value.go +79 -8
  5. package/compiler/spec.go +236 -0
  6. package/dist/gs/builtin/builtin.d.ts +1 -0
  7. package/dist/gs/builtin/builtin.js +11 -0
  8. package/dist/gs/builtin/builtin.js.map +1 -1
  9. package/dist/gs/internal/oserror/errors.d.ts +6 -0
  10. package/dist/gs/internal/oserror/errors.js +7 -0
  11. package/dist/gs/internal/oserror/errors.js.map +1 -0
  12. package/dist/gs/internal/oserror/index.d.ts +1 -0
  13. package/dist/gs/internal/oserror/index.js +2 -0
  14. package/dist/gs/internal/oserror/index.js.map +1 -0
  15. package/dist/gs/io/fs/format.d.ts +3 -0
  16. package/dist/gs/io/fs/format.js +56 -0
  17. package/dist/gs/io/fs/format.js.map +1 -0
  18. package/dist/gs/io/fs/fs.d.ts +79 -0
  19. package/dist/gs/io/fs/fs.js +200 -0
  20. package/dist/gs/io/fs/fs.js.map +1 -0
  21. package/dist/gs/io/fs/glob.d.ts +10 -0
  22. package/dist/gs/io/fs/glob.js +141 -0
  23. package/dist/gs/io/fs/glob.js.map +1 -0
  24. package/dist/gs/io/fs/index.d.ts +8 -0
  25. package/dist/gs/io/fs/index.js +9 -0
  26. package/dist/gs/io/fs/index.js.map +1 -0
  27. package/dist/gs/io/fs/readdir.d.ts +7 -0
  28. package/dist/gs/io/fs/readdir.js +152 -0
  29. package/dist/gs/io/fs/readdir.js.map +1 -0
  30. package/dist/gs/io/fs/readfile.d.ts +6 -0
  31. package/dist/gs/io/fs/readfile.js +118 -0
  32. package/dist/gs/io/fs/readfile.js.map +1 -0
  33. package/dist/gs/io/fs/stat.d.ts +6 -0
  34. package/dist/gs/io/fs/stat.js +87 -0
  35. package/dist/gs/io/fs/stat.js.map +1 -0
  36. package/dist/gs/io/fs/sub.d.ts +6 -0
  37. package/dist/gs/io/fs/sub.js +172 -0
  38. package/dist/gs/io/fs/sub.js.map +1 -0
  39. package/dist/gs/io/fs/walk.d.ts +7 -0
  40. package/dist/gs/io/fs/walk.js +76 -0
  41. package/dist/gs/io/fs/walk.js.map +1 -0
  42. package/dist/gs/path/index.d.ts +2 -0
  43. package/dist/gs/path/index.js +3 -0
  44. package/dist/gs/path/index.js.map +1 -0
  45. package/dist/gs/path/match.d.ts +6 -0
  46. package/dist/gs/path/match.js +281 -0
  47. package/dist/gs/path/match.js.map +1 -0
  48. package/dist/gs/path/path.d.ts +7 -0
  49. package/dist/gs/path/path.js +256 -0
  50. package/dist/gs/path/path.js.map +1 -0
  51. package/dist/gs/time/time.d.ts +11 -2
  52. package/dist/gs/time/time.js +337 -12
  53. package/dist/gs/time/time.js.map +1 -1
  54. package/gs/builtin/builtin.ts +13 -0
  55. package/gs/internal/oserror/errors.ts +14 -0
  56. package/gs/internal/oserror/index.ts +1 -0
  57. package/gs/io/fs/format.ts +65 -0
  58. package/gs/io/fs/fs.ts +359 -0
  59. package/gs/io/fs/glob.ts +167 -0
  60. package/gs/io/fs/godoc.txt +35 -0
  61. package/gs/io/fs/index.ts +8 -0
  62. package/gs/io/fs/readdir.ts +126 -0
  63. package/gs/io/fs/readfile.ts +77 -0
  64. package/gs/io/fs/stat.ts +38 -0
  65. package/gs/io/fs/sub.ts +208 -0
  66. package/gs/io/fs/walk.ts +89 -0
  67. package/gs/path/index.ts +2 -0
  68. package/gs/path/match.ts +307 -0
  69. package/gs/path/path.ts +301 -0
  70. package/gs/strings/reader.test.ts +0 -1
  71. package/gs/time/time.ts +325 -12
  72. package/package.json +1 -1
  73. package/gs/time/godoc.md +0 -116
@@ -0,0 +1,152 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import * as $ from "@goscript/builtin/builtin.js";
54
+ import { FormatDirEntry } from "./format.js";
55
+ import { PathError, fileModeType } from "./fs.js";
56
+ import * as errors from "@goscript/errors/index.js";
57
+ $.registerInterfaceType('ReadDirFS', null, // Zero value for interface is null
58
+ [{ name: "ReadDir", args: [{ name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: { kind: $.TypeKind.Slice, elemType: "DirEntry" } }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }]);
59
+ // ReadDir reads the named directory
60
+ // and returns a list of directory entries sorted by filename.
61
+ //
62
+ // If fs implements [ReadDirFS], ReadDir calls fs.ReadDir.
63
+ // Otherwise ReadDir calls fs.Open and uses ReadDir and Close
64
+ // on the returned file.
65
+ export function ReadDir(fsys, name) {
66
+ const env_1 = { stack: [], error: void 0, hasError: false };
67
+ try {
68
+ const __defer = __addDisposableResource(env_1, new $.DisposableStack(), false);
69
+ {
70
+ let { value: fsysTyped, ok: ok } = $.typeAssert(fsys, 'ReadDirFS');
71
+ if (ok) {
72
+ return fsysTyped.ReadDir(name);
73
+ }
74
+ }
75
+ let [file, err] = fsys.Open(name);
76
+ if (err != null) {
77
+ return [null, err];
78
+ }
79
+ __defer.defer(() => {
80
+ file.Close();
81
+ });
82
+ let { value: dir, ok: ok } = $.typeAssert(file, 'ReadDirFile');
83
+ if (!ok) {
84
+ return [null, new PathError({ Err: errors.New("not implemented"), Op: "readdir", Path: name })];
85
+ }
86
+ let list;
87
+ [list, err] = dir.ReadDir(-1);
88
+ list.sort((a, b) => {
89
+ return a.Name().localeCompare(b.Name());
90
+ });
91
+ return [list, err];
92
+ }
93
+ catch (e_1) {
94
+ env_1.error = e_1;
95
+ env_1.hasError = true;
96
+ }
97
+ finally {
98
+ __disposeResources(env_1);
99
+ }
100
+ }
101
+ class dirInfo {
102
+ get fileInfo() {
103
+ return this._fields.fileInfo.value;
104
+ }
105
+ set fileInfo(value) {
106
+ this._fields.fileInfo.value = value;
107
+ }
108
+ _fields;
109
+ constructor(init) {
110
+ this._fields = {
111
+ fileInfo: $.varRef(init?.fileInfo ?? null)
112
+ };
113
+ }
114
+ clone() {
115
+ const cloned = new dirInfo();
116
+ cloned._fields = {
117
+ fileInfo: $.varRef(this._fields.fileInfo.value)
118
+ };
119
+ return cloned;
120
+ }
121
+ IsDir() {
122
+ const di = this;
123
+ return di.fileInfo.IsDir();
124
+ }
125
+ Type() {
126
+ const di = this;
127
+ return fileModeType(di.fileInfo.Mode());
128
+ }
129
+ Info() {
130
+ const di = this;
131
+ return [di.fileInfo, null];
132
+ }
133
+ Name() {
134
+ const di = this;
135
+ return di.fileInfo.Name();
136
+ }
137
+ String() {
138
+ const di = this;
139
+ return FormatDirEntry(di);
140
+ }
141
+ // Register this type with the runtime type system
142
+ static __typeInfo = $.registerStructType('dirInfo', new dirInfo(), [{ name: "IsDir", args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: "boolean" } }] }, { name: "Type", args: [], returns: [{ type: "FileMode" }] }, { name: "Info", args: [], returns: [{ type: "FileInfo" }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }, { name: "Name", args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: "string" } }] }, { name: "String", args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: "string" } }] }], dirInfo, { "fileInfo": "FileInfo" });
143
+ }
144
+ // FileInfoToDirEntry returns a [DirEntry] that returns information from info.
145
+ // If info is nil, FileInfoToDirEntry returns nil.
146
+ export function FileInfoToDirEntry(info) {
147
+ if (info == null) {
148
+ return null;
149
+ }
150
+ return new dirInfo({ fileInfo: info });
151
+ }
152
+ //# sourceMappingURL=readdir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readdir.js","sourceRoot":"","sources":["../../../../gs/io/fs/readdir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { FS } from "./fs.js";
3
+ export type ReadFileFS = null | ({
4
+ ReadFile(name: string): [Uint8Array, $.GoError];
5
+ } & FS);
6
+ export declare function ReadFile(fsys: FS, name: string): [Uint8Array, $.GoError];
@@ -0,0 +1,118 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import * as $ from "@goscript/builtin/builtin.js";
54
+ import * as io from "@goscript/io/index.js";
55
+ $.registerInterfaceType('ReadFileFS', null, // Zero value for interface is null
56
+ [{ name: "ReadFile", args: [{ name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: { kind: $.TypeKind.Slice, elemType: { kind: $.TypeKind.Basic, name: "number" } } }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }]);
57
+ // ReadFile reads the named file from the file system fs and returns its contents.
58
+ // A successful call returns a nil error, not [io.EOF].
59
+ // (Because ReadFile reads the whole file, the expected EOF
60
+ // from the final Read is not treated as an error to be reported.)
61
+ //
62
+ // If fs implements [ReadFileFS], ReadFile calls fs.ReadFile.
63
+ // Otherwise ReadFile calls fs.Open and uses Read and Close
64
+ // on the returned [File].
65
+ export function ReadFile(fsys, name) {
66
+ const env_1 = { stack: [], error: void 0, hasError: false };
67
+ try {
68
+ const __defer = __addDisposableResource(env_1, new $.DisposableStack(), false);
69
+ {
70
+ let { value: fsysTyped, ok: ok } = $.typeAssert(fsys, 'ReadFileFS');
71
+ if (ok) {
72
+ return fsysTyped.ReadFile(name);
73
+ }
74
+ }
75
+ let [file, err] = fsys.Open(name);
76
+ if (err != null) {
77
+ return [new Uint8Array(0), err];
78
+ }
79
+ __defer.defer(() => {
80
+ file.Close();
81
+ });
82
+ let size = 0;
83
+ {
84
+ let [info, err] = file.Stat();
85
+ if (err == null) {
86
+ let size64 = info.Size();
87
+ if (size64 == size64) {
88
+ size = size64;
89
+ }
90
+ }
91
+ }
92
+ let data = new Uint8Array(0);
93
+ for (;;) {
94
+ if ($.len(data) >= $.cap(data)) {
95
+ // Grow the array by creating a new larger one
96
+ let newData = new Uint8Array($.len(data) * 2 + 1);
97
+ newData.set(data);
98
+ data = newData;
99
+ }
100
+ let [n, err] = file.Read(data.subarray($.len(data), $.cap(data)));
101
+ data = data.subarray(0, $.len(data) + n);
102
+ if (err != null) {
103
+ if (err == io.EOF) {
104
+ err = null;
105
+ }
106
+ return [data, err];
107
+ }
108
+ }
109
+ }
110
+ catch (e_1) {
111
+ env_1.error = e_1;
112
+ env_1.hasError = true;
113
+ }
114
+ finally {
115
+ __disposeResources(env_1);
116
+ }
117
+ }
118
+ //# sourceMappingURL=readfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readfile.js","sourceRoot":"","sources":["../../../../gs/io/fs/readfile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { FS, FileInfo } from "./fs.js";
3
+ export type StatFS = null | ({
4
+ Stat(name: string): [FileInfo, $.GoError];
5
+ } & FS);
6
+ export declare function Stat(fsys: FS, name: string): [FileInfo, $.GoError];
@@ -0,0 +1,87 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import * as $ from "@goscript/builtin/builtin.js";
54
+ $.registerInterfaceType('StatFS', null, // Zero value for interface is null
55
+ [{ name: "Stat", args: [{ name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: "FileInfo" }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }]);
56
+ // Stat returns a [FileInfo] describing the named file from the file system.
57
+ //
58
+ // If fs implements [StatFS], Stat calls fs.Stat.
59
+ // Otherwise, Stat opens the [File] to stat it.
60
+ export function Stat(fsys, name) {
61
+ const env_1 = { stack: [], error: void 0, hasError: false };
62
+ try {
63
+ const __defer = __addDisposableResource(env_1, new $.DisposableStack(), false);
64
+ {
65
+ let { value: fsysTyped, ok: ok } = $.typeAssert(fsys, 'StatFS');
66
+ if (ok) {
67
+ return fsysTyped.Stat(name);
68
+ }
69
+ }
70
+ let [file, err] = fsys.Open(name);
71
+ if (err != null) {
72
+ return [null, err];
73
+ }
74
+ __defer.defer(() => {
75
+ file.Close();
76
+ });
77
+ return file.Stat();
78
+ }
79
+ catch (e_1) {
80
+ env_1.error = e_1;
81
+ env_1.hasError = true;
82
+ }
83
+ finally {
84
+ __disposeResources(env_1);
85
+ }
86
+ }
87
+ //# sourceMappingURL=stat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../../gs/io/fs/stat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AASlD,CAAC,CAAC,qBAAqB,CACrB,QAAQ,EACR,IAAI,EAAE,mCAAmC;AACzC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CACpS,CAAC;AAEF,4EAA4E;AAC5E,EAAE;AACF,iDAAiD;AACjD,+CAA+C;AAC/C,MAAM,UAAU,IAAI,CAAC,IAAQ,EAAE,IAAY;;;QAC1C,MAAM,OAAO,kCAAG,IAAI,CAAC,CAAC,eAAe,EAAE,QAAA,CAAC;QACxC,CAAC;YACA,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,CAAS,IAAI,EAAE,QAAQ,CAAC,CAAA;YACvE,IAAI,EAAE,EAAE,CAAC;gBACR,OAAO,SAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YAClB,IAAK,CAAC,KAAK,EAAE,CAAA;QACd,CAAC,CAAC,CAAC;QACH,OAAO,IAAK,CAAC,IAAI,EAAE,CAAA;;;;;;;;;CACnB"}
@@ -0,0 +1,6 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { FS } from "./fs.js";
3
+ export type SubFS = null | ({
4
+ Sub(dir: string): [FS, $.GoError];
5
+ } & FS);
6
+ export declare function Sub(fsys: FS, dir: string): [FS, $.GoError];
@@ -0,0 +1,172 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { ValidPath, PathError, ErrInvalid } from "./fs.js";
3
+ import { ReadDir } from "./readdir.js";
4
+ import { ReadFile } from "./readfile.js";
5
+ import { Glob } from "./glob.js";
6
+ import * as errors from "@goscript/errors/index.js";
7
+ import * as path from "@goscript/path/index.js";
8
+ $.registerInterfaceType('SubFS', null, // Zero value for interface is null
9
+ [{ name: "Sub", args: [{ name: "dir", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: "FS" }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }]);
10
+ // Sub returns an [FS] corresponding to the subtree rooted at fsys's dir.
11
+ //
12
+ // If dir is ".", Sub returns fsys unchanged.
13
+ // Otherwise, if fs implements [SubFS], Sub returns fsys.Sub(dir).
14
+ // Otherwise, Sub returns a new [FS] implementation sub that,
15
+ // in effect, implements sub.Open(name) as fsys.Open(path.Join(dir, name)).
16
+ // The implementation also translates calls to ReadDir, ReadFile, and Glob appropriately.
17
+ //
18
+ // Note that Sub(os.DirFS("/"), "prefix") is equivalent to os.DirFS("/prefix")
19
+ // and that neither of them guarantees to avoid operating system
20
+ // accesses outside "/prefix", because the implementation of [os.DirFS]
21
+ // does not check for symbolic links inside "/prefix" that point to
22
+ // other directories. That is, [os.DirFS] is not a general substitute for a
23
+ // chroot-style security mechanism, and Sub does not change that fact.
24
+ export function Sub(fsys, dir) {
25
+ if (!ValidPath(dir)) {
26
+ return [null, new PathError({ Err: ErrInvalid, Op: "sub", Path: dir })];
27
+ }
28
+ if (dir == ".") {
29
+ return [fsys, null];
30
+ }
31
+ {
32
+ let { value: fsysTyped, ok: ok } = $.typeAssert(fsys, 'SubFS');
33
+ if (ok) {
34
+ return fsysTyped.Sub(dir);
35
+ }
36
+ }
37
+ return [new subFS({}), null];
38
+ }
39
+ class subFS {
40
+ get fsys() {
41
+ return this._fields.fsys.value;
42
+ }
43
+ set fsys(value) {
44
+ this._fields.fsys.value = value;
45
+ }
46
+ get dir() {
47
+ return this._fields.dir.value;
48
+ }
49
+ set dir(value) {
50
+ this._fields.dir.value = value;
51
+ }
52
+ _fields;
53
+ constructor(init) {
54
+ this._fields = {
55
+ fsys: $.varRef(init?.fsys ?? null),
56
+ dir: $.varRef(init?.dir ?? "")
57
+ };
58
+ }
59
+ clone() {
60
+ const cloned = new subFS();
61
+ cloned._fields = {
62
+ fsys: $.varRef(this._fields.fsys.value),
63
+ dir: $.varRef(this._fields.dir.value)
64
+ };
65
+ return cloned;
66
+ }
67
+ // fullName maps name to the fully-qualified name dir/name.
68
+ fullName(op, name) {
69
+ const f = this;
70
+ if (!ValidPath(name)) {
71
+ return ["", new PathError({ Err: ErrInvalid, Op: op, Path: name })];
72
+ }
73
+ return [path.Join(f.dir, name), null];
74
+ }
75
+ // shorten maps name, which should start with f.dir, back to the suffix after f.dir.
76
+ shorten(name) {
77
+ const f = this;
78
+ if (name == f.dir) {
79
+ return [".", true];
80
+ }
81
+ if ($.len(name) >= $.len(f.dir) + 2 && $.indexString(name, $.len(f.dir)) == 47 && $.sliceString(name, undefined, $.len(f.dir)) == f.dir) {
82
+ return [$.sliceString(name, $.len(f.dir) + 1, undefined), true];
83
+ }
84
+ return ["", false];
85
+ }
86
+ // fixErr shortens any reported names in PathErrors by stripping f.dir.
87
+ fixErr(err) {
88
+ const f = this;
89
+ {
90
+ let { value: e, ok: ok } = $.typeAssert(err, { kind: $.TypeKind.Pointer, elemType: 'PathError' });
91
+ if (ok) {
92
+ {
93
+ let [short, ok] = f.shorten(e.Path);
94
+ if (ok) {
95
+ e.Path = short;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ return err;
101
+ }
102
+ Open(name) {
103
+ const f = this;
104
+ let [full, err] = f.fullName("open", name);
105
+ if (err != null) {
106
+ return [null, err];
107
+ }
108
+ let file;
109
+ [file, err] = f.fsys.Open(full);
110
+ return [file, f.fixErr(err)];
111
+ }
112
+ ReadDir(name) {
113
+ const f = this;
114
+ let [full, err] = f.fullName("read", name);
115
+ if (err != null) {
116
+ return [null, err];
117
+ }
118
+ let dir;
119
+ [dir, err] = ReadDir(f.fsys, full);
120
+ return [dir, f.fixErr(err)];
121
+ }
122
+ ReadFile(name) {
123
+ const f = this;
124
+ let [full, err] = f.fullName("read", name);
125
+ if (err != null) {
126
+ return [new Uint8Array(0), err];
127
+ }
128
+ let data;
129
+ [data, err] = ReadFile(f.fsys, full);
130
+ return [data, f.fixErr(err)];
131
+ }
132
+ Glob(pattern) {
133
+ const f = this;
134
+ {
135
+ let [, err] = path.Match(pattern, "");
136
+ if (err != null) {
137
+ return [null, err];
138
+ }
139
+ }
140
+ if (pattern == ".") {
141
+ return [$.arrayToSlice(["."]), null];
142
+ }
143
+ let full = f.dir + "/" + pattern;
144
+ let [list, err] = Glob(f.fsys, full);
145
+ for (let i = 0; i < $.len(list); i++) {
146
+ const name = list[i];
147
+ {
148
+ let [shortName, ok] = f.shorten(name);
149
+ // can't use fmt in this package
150
+ if (!ok) {
151
+ return [null, errors.New("invalid result from inner fsys Glob: " + shortName + " not in " + f.dir)];
152
+ }
153
+ list[i] = shortName;
154
+ }
155
+ }
156
+ return [list, f.fixErr(err)];
157
+ }
158
+ Sub(dir) {
159
+ const f = this;
160
+ if (dir == ".") {
161
+ return [f, null];
162
+ }
163
+ let [full, err] = f.fullName("sub", dir);
164
+ if (err != null) {
165
+ return [null, err];
166
+ }
167
+ return [new subFS({}), null];
168
+ }
169
+ // Register this type with the runtime type system
170
+ static __typeInfo = $.registerStructType('subFS', new subFS(), [{ name: "fullName", args: [{ name: "op", type: { kind: $.TypeKind.Basic, name: "string" } }, { name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: { kind: $.TypeKind.Basic, name: "string" } }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }, { name: "shorten", args: [{ name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: { kind: $.TypeKind.Basic, name: "string" } }, { type: { kind: $.TypeKind.Basic, name: "boolean" } }] }, { name: "fixErr", args: [{ name: "err", type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }], returns: [{ type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }, { name: "Open", args: [{ name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: "File" }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }, { name: "ReadDir", args: [{ name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: { kind: $.TypeKind.Slice, elemType: "DirEntry" } }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }, { name: "ReadFile", args: [{ name: "name", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: { kind: $.TypeKind.Slice, elemType: { kind: $.TypeKind.Basic, name: "number" } } }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }, { name: "Glob", args: [{ name: "pattern", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: { kind: $.TypeKind.Slice, elemType: { kind: $.TypeKind.Basic, name: "string" } } }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }, { name: "Sub", args: [{ name: "dir", type: { kind: $.TypeKind.Basic, name: "string" } }], returns: [{ type: "FS" }, { type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }], subFS, { "fsys": "FS", "dir": { kind: $.TypeKind.Basic, name: "string" } });
171
+ }
172
+ //# sourceMappingURL=sub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub.js","sourceRoot":"","sources":["../../../../gs/io/fs/sub.ts"],"names":[],"mappings":"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EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAC7jF,KAAK,EACL,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAC,CAClE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ import { FS, DirEntry } from "./fs.js";
3
+ export declare let SkipDir: $.GoError;
4
+ export declare let SkipAll: $.GoError;
5
+ export type WalkDirFunc = ((path: string, d: DirEntry, err: $.GoError) => $.GoError) | null;
6
+ export declare function walkDir(fsys: FS, name: string, d: DirEntry, walkDirFn: WalkDirFunc): $.GoError;
7
+ export declare function WalkDir(fsys: FS, root: string, fn: WalkDirFunc): $.GoError;