goscript 0.0.76 → 0.0.77
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/compiler/analysis.go +100 -33
- package/compiler/analysis_test.go +2 -7
- package/compiler/code-writer.go +2 -2
- package/compiler/compiler.go +4 -4
- package/compiler/composite-lit.go +4 -6
- package/compiler/constraint.go +2 -4
- package/compiler/expr-call-async.go +4 -0
- package/compiler/expr-call-helpers.go +98 -8
- package/compiler/expr-call-make.go +4 -4
- package/compiler/expr-call.go +3 -0
- package/compiler/expr-type.go +42 -0
- package/compiler/gs_dependencies_test.go +3 -14
- package/compiler/index.ts +20 -5
- package/compiler/protobuf.go +21 -21
- package/compiler/spec-struct.go +22 -30
- package/compiler/spec.go +2 -2
- package/compiler/stmt-assign.go +2 -2
- package/compiler/type-info.go +20 -3
- package/compiler/type-utils.go +2 -4
- package/compiler/type.go +3 -4
- package/dist/compiler/index.js +13 -4
- package/dist/compiler/index.js.map +1 -1
- package/dist/gs/builtin/slice.js +2 -3
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +1 -0
- package/dist/gs/builtin/type.js +8 -14
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/bytes/buffer.gs.d.ts +1 -0
- package/dist/gs/bytes/buffer.gs.js +20 -0
- package/dist/gs/bytes/buffer.gs.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +5 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +10 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.d.ts +50 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js +221 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.d.ts +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.js +2 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.d.ts +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.js +2 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.d.ts +56 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.js +17 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.js.map +1 -0
- package/dist/gs/io/fs/format.js +2 -6
- package/dist/gs/io/fs/format.js.map +1 -1
- package/dist/gs/io/fs/glob.js +18 -23
- package/dist/gs/io/fs/glob.js.map +1 -1
- package/dist/gs/path/match.js +9 -22
- package/dist/gs/path/match.js.map +1 -1
- package/dist/gs/reflect/index.d.ts +1 -1
- package/dist/gs/reflect/index.js +1 -1
- package/dist/gs/reflect/index.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +1 -0
- package/dist/gs/reflect/type.js +52 -23
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/strings/iter.js +1 -1
- package/dist/gs/strings/iter.js.map +1 -1
- package/dist/gs/strings/reader.js +1 -1
- package/dist/gs/strings/reader.js.map +1 -1
- package/dist/gs/strings/replace.js +9 -20
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/time/time.js +2 -2
- package/dist/gs/time/time.js.map +1 -1
- package/go.mod +1 -1
- package/go.sum +2 -2
- package/gs/builtin/slice.ts +2 -2
- package/gs/builtin/type.ts +14 -14
- package/gs/bytes/buffer.gs.ts +21 -1
- package/gs/fmt/fmt.test.ts +1 -1
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +14 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.ts +238 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.ts +1 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/meta.json +12 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.ts +1 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/meta.json +8 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.ts +94 -0
- package/gs/io/fs/format.ts +2 -5
- package/gs/io/fs/glob.ts +18 -21
- package/gs/path/match.ts +9 -22
- package/gs/reflect/index.ts +1 -0
- package/gs/reflect/type.ts +62 -25
- package/gs/strings/iter.ts +1 -1
- package/gs/strings/reader.ts +1 -1
- package/gs/strings/replace.ts +13 -18
- package/gs/time/time.ts +2 -2
- package/package.json +18 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface VmRuntime {
|
|
2
|
+
Compile(ctx: any, wasm: Uint8Array | number[]): Promise<VmModule>;
|
|
3
|
+
Close(ctx: any): Promise<any>;
|
|
4
|
+
}
|
|
5
|
+
export interface VmModule {
|
|
6
|
+
Instantiate(ctx: any, config: VmModuleConfig): Promise<VmInstance>;
|
|
7
|
+
Close(ctx: any): Promise<any>;
|
|
8
|
+
}
|
|
9
|
+
export interface VmModuleConfig {
|
|
10
|
+
Name: string;
|
|
11
|
+
Args: string[] | null;
|
|
12
|
+
Env: string[] | null;
|
|
13
|
+
Stdin: any;
|
|
14
|
+
Stdout: any;
|
|
15
|
+
Stderr: any;
|
|
16
|
+
HostFunctions: Map<string, HostFunction> | null;
|
|
17
|
+
}
|
|
18
|
+
export type HostFunction = (ctx: any, inst: VmInstance | null, stack: number[]) => any;
|
|
19
|
+
export interface VmInstance {
|
|
20
|
+
Call(ctx: any, name: string, ...args: number[]): Promise<number[] | null>;
|
|
21
|
+
Memory(): VmMemory | null;
|
|
22
|
+
ExportedFunction(name: string): VmFunction | null;
|
|
23
|
+
ExportedGlobal(name: string): VmGlobal | null;
|
|
24
|
+
Close(ctx: any): Promise<any>;
|
|
25
|
+
}
|
|
26
|
+
export interface VmFunction {
|
|
27
|
+
Call(ctx: any, ...args: number[]): Promise<number[] | null>;
|
|
28
|
+
}
|
|
29
|
+
export interface VmGlobal {
|
|
30
|
+
Get(): number;
|
|
31
|
+
Set(val: number): void;
|
|
32
|
+
}
|
|
33
|
+
export interface VmMemory {
|
|
34
|
+
Read(offset: number, length: number): [Uint8Array | number[], boolean];
|
|
35
|
+
ReadByteAt(offset: number): [number, boolean];
|
|
36
|
+
ReadUint32Le(offset: number): [number, boolean];
|
|
37
|
+
ReadUint64Le(offset: number): [bigint | number, boolean];
|
|
38
|
+
Write(offset: number, data: Uint8Array | number[]): boolean;
|
|
39
|
+
WriteByteAt(offset: number, val: number): boolean;
|
|
40
|
+
WriteUint32Le(offset: number, val: number): boolean;
|
|
41
|
+
WriteUint64Le(offset: number, val: bigint | number): boolean;
|
|
42
|
+
Size(): number;
|
|
43
|
+
Grow(pages: number): [number, boolean];
|
|
44
|
+
}
|
|
45
|
+
export declare class ExitError extends Error {
|
|
46
|
+
Code: number;
|
|
47
|
+
constructor(code: number);
|
|
48
|
+
ExitCode(): number;
|
|
49
|
+
}
|
|
50
|
+
export declare function NewExitError(code: number): ExitError;
|
|
51
|
+
export interface Snapshotable {
|
|
52
|
+
Snapshot(): Snapshot;
|
|
53
|
+
}
|
|
54
|
+
export interface Snapshot {
|
|
55
|
+
Restore(returnValues: number[]): void;
|
|
56
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Package vmruntime defines abstract interfaces for WASM execution engines.
|
|
2
|
+
// ExitError represents a clean process exit with a status code.
|
|
3
|
+
export class ExitError extends Error {
|
|
4
|
+
Code;
|
|
5
|
+
constructor(code) {
|
|
6
|
+
super('exit: ' + code);
|
|
7
|
+
this.Code = code;
|
|
8
|
+
}
|
|
9
|
+
ExitCode() {
|
|
10
|
+
return this.Code;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
// NewExitError creates an ExitError with the given code.
|
|
14
|
+
export function NewExitError(code) {
|
|
15
|
+
return new ExitError(code);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../../../../gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAkE5E,gEAAgE;AAChE,MAAM,OAAO,SAAU,SAAQ,KAAK;IAC3B,IAAI,CAAQ;IAEnB,YAAY,IAAY;QACtB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC"}
|
package/dist/gs/io/fs/format.js
CHANGED
|
@@ -13,13 +13,9 @@ export function FormatFileInfo(info) {
|
|
|
13
13
|
b.push(fileModeString(info.Mode()));
|
|
14
14
|
b.push(' ');
|
|
15
15
|
let size = info.Size();
|
|
16
|
-
|
|
17
|
-
if (size
|
|
18
|
-
usize = size;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
16
|
+
const usize = size >= 0 ? size : -size;
|
|
17
|
+
if (size < 0) {
|
|
21
18
|
b.push('-');
|
|
22
|
-
usize = -size;
|
|
23
19
|
}
|
|
24
20
|
b.push(usize.toString());
|
|
25
21
|
b.push(' ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../gs/io/fs/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAsB,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAE/C,4EAA4E;AAC5E,oEAAoE;AACpE,yEAAyE;AACzE,6BAA6B;AAC7B,EAAE;AACF,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,IAAI,CAAC,GAAa,EAAE,CAAA;IACpB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../gs/io/fs/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAsB,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAE/C,4EAA4E;AAC5E,oEAAoE;AACpE,yEAAyE;AACzE,6BAA6B;AAC7B,EAAE;AACF,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,IAAI,CAAC,GAAa,EAAE,CAAA;IACpB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,gEAAgE;IAChE,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,OAAO,EAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,IAAI,IAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC;AAED,2EAA2E;AAC3E,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,YAAY;AACZ,aAAa;AACb,MAAM,UAAU,cAAc,CAAC,GAAa;IAC1C,IAAI,IAAI,GAAG,GAAI,CAAC,IAAI,EAAE,CAAA;IACtB,IAAI,CAAC,GAAa,EAAE,CAAA;IAEpB,uDAAuD;IACvD,iCAAiC;IACjC,IAAI,IAAI,GAAG,cAAc,CAAC,GAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACtC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAEtD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,IAAI,GAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC"}
|
package/dist/gs/io/fs/glob.js
CHANGED
|
@@ -49,7 +49,6 @@ export function Glob(fsys, pattern) {
|
|
|
49
49
|
}
|
|
50
50
|
export function globWithLimit(fsys, pattern, depth) {
|
|
51
51
|
let matches = null;
|
|
52
|
-
let err = null;
|
|
53
52
|
{
|
|
54
53
|
// This limit is added to prevent stack exhaustion issues. See
|
|
55
54
|
// CVE-2022-30630.
|
|
@@ -65,16 +64,15 @@ export function globWithLimit(fsys, pattern, depth) {
|
|
|
65
64
|
}
|
|
66
65
|
// Check pattern is well-formed.
|
|
67
66
|
{
|
|
68
|
-
|
|
69
|
-
if (
|
|
70
|
-
return [null,
|
|
67
|
+
const [, matchErr] = path.Match(pattern, '');
|
|
68
|
+
if (matchErr != null) {
|
|
69
|
+
return [null, matchErr];
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
72
|
if (!hasMeta(pattern)) {
|
|
74
73
|
{
|
|
75
|
-
;
|
|
76
|
-
|
|
77
|
-
if (err != null) {
|
|
74
|
+
const [, statErr] = Stat(fsys, pattern);
|
|
75
|
+
if (statErr != null) {
|
|
78
76
|
return [null, null];
|
|
79
77
|
}
|
|
80
78
|
}
|
|
@@ -89,22 +87,21 @@ export function globWithLimit(fsys, pattern, depth) {
|
|
|
89
87
|
if (dir == pattern) {
|
|
90
88
|
return [null, path.ErrBadPattern];
|
|
91
89
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return [null, err];
|
|
90
|
+
const [dirs, dirErr] = globWithLimit(fsys, dir, depth + 1);
|
|
91
|
+
if (dirErr != null) {
|
|
92
|
+
return [null, dirErr];
|
|
96
93
|
}
|
|
97
|
-
for (let _i = 0; _i < $.len(
|
|
98
|
-
const d =
|
|
94
|
+
for (let _i = 0; _i < $.len(dirs); _i++) {
|
|
95
|
+
const d = dirs[_i];
|
|
99
96
|
{
|
|
100
|
-
;
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
return [matches,
|
|
97
|
+
const [nextMatches, globErr] = glob(fsys, d, file, matches);
|
|
98
|
+
matches = nextMatches;
|
|
99
|
+
if (globErr != null) {
|
|
100
|
+
return [matches, globErr];
|
|
104
101
|
}
|
|
105
102
|
}
|
|
106
103
|
}
|
|
107
|
-
return [matches,
|
|
104
|
+
return [matches, null];
|
|
108
105
|
}
|
|
109
106
|
}
|
|
110
107
|
// cleanGlobPath prepares path for glob matching.
|
|
@@ -124,14 +121,12 @@ export function cleanGlobPath(path) {
|
|
|
124
121
|
// If the directory cannot be opened, glob returns the existing matches.
|
|
125
122
|
// New matches are added in lexicographical order.
|
|
126
123
|
export function glob(fs, dir, pattern, matches) {
|
|
127
|
-
let m =
|
|
128
|
-
let e = null;
|
|
124
|
+
let m = matches;
|
|
129
125
|
{
|
|
130
|
-
m = matches;
|
|
131
126
|
let [infos, err] = ReadDir(fs, dir);
|
|
132
127
|
// ignore I/O error
|
|
133
128
|
if (err != null) {
|
|
134
|
-
return [m,
|
|
129
|
+
return [m, null];
|
|
135
130
|
}
|
|
136
131
|
for (let _i = 0; _i < $.len(infos); _i++) {
|
|
137
132
|
const info = infos[_i];
|
|
@@ -146,7 +141,7 @@ export function glob(fs, dir, pattern, matches) {
|
|
|
146
141
|
}
|
|
147
142
|
}
|
|
148
143
|
}
|
|
149
|
-
return [m,
|
|
144
|
+
return [m, null];
|
|
150
145
|
}
|
|
151
146
|
}
|
|
152
147
|
// hasMeta reports whether path contains any of the magic characters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../gs/io/fs/glob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAW/C,CAAC,CAAC,qBAAqB,CACrB,QAAQ,EACR,IAAI,EAAE,mCAAmC;AACzC;IACE;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACtE;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK;oBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACrD;aACF;YACD;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;oBAC1B,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,EAAE;4BACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;yBAChE;qBACF;iBACF;aACF;SACF;KACF;CACF,CACF,CAAA;AAED,8DAA8D;AAC9D,mEAAmE;AACnE,0EAA0E;AAC1E,gBAAgB;AAChB,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,4BAA4B;AAC5B,EAAE;AACF,iDAAiD;AACjD,gEAAgE;AAChE,wCAAwC;AACxC,MAAM,UAAU,IAAI,CAAC,IAAQ,EAAE,OAAe;IAC5C,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAQ,EACR,OAAe,EACf,KAAa;IAEb,IAAI,OAAO,GAAoB,IAAI,CAAA;IACnC,
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../gs/io/fs/glob.ts"],"names":[],"mappings":"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"}
|
package/dist/gs/path/match.js
CHANGED
|
@@ -36,13 +36,7 @@ export function Match(pattern, name) {
|
|
|
36
36
|
// Before returning false with no error,
|
|
37
37
|
// check that the remainder of the pattern is syntactically valid.
|
|
38
38
|
Pattern: for (; $.len(pattern) > 0;) {
|
|
39
|
-
|
|
40
|
-
let chunk = '';
|
|
41
|
-
let rest = '';
|
|
42
|
-
let scanResult = scanChunk(pattern);
|
|
43
|
-
star = scanResult[0];
|
|
44
|
-
chunk = scanResult[1];
|
|
45
|
-
rest = scanResult[2];
|
|
39
|
+
const [star, chunk, rest] = scanChunk(pattern);
|
|
46
40
|
pattern = rest;
|
|
47
41
|
// Trailing * matches rest of string unless it has a /.
|
|
48
42
|
if (star && chunk == '') {
|
|
@@ -87,13 +81,7 @@ export function Match(pattern, name) {
|
|
|
87
81
|
// Before returning false with no error,
|
|
88
82
|
// check that the remainder of the pattern is syntactically valid.
|
|
89
83
|
for (; $.len(pattern) > 0;) {
|
|
90
|
-
|
|
91
|
-
let chunk2 = '';
|
|
92
|
-
let rest2 = '';
|
|
93
|
-
let scanResult2 = scanChunk(pattern);
|
|
94
|
-
// star2 = scanResult2[0]
|
|
95
|
-
chunk2 = scanResult2[1];
|
|
96
|
-
rest2 = scanResult2[2];
|
|
84
|
+
const [, chunk2, rest2] = scanChunk(pattern);
|
|
97
85
|
pattern = rest2;
|
|
98
86
|
{
|
|
99
87
|
let [, , err] = matchChunk(chunk2, '');
|
|
@@ -117,7 +105,7 @@ export function scanChunk(pattern) {
|
|
|
117
105
|
star = true;
|
|
118
106
|
}
|
|
119
107
|
let inrange = false;
|
|
120
|
-
let i
|
|
108
|
+
let i;
|
|
121
109
|
// error check handled in matchChunk: bad pattern.
|
|
122
110
|
Scan: for (i = 0; i < $.len(pattern); i++) {
|
|
123
111
|
// error check handled in matchChunk: bad pattern.
|
|
@@ -151,7 +139,7 @@ export function scanChunk(pattern) {
|
|
|
151
139
|
// If so, it returns the remainder of s (after the match).
|
|
152
140
|
// Chunk is all single-character operators: literals, char classes, and ?.
|
|
153
141
|
export function matchChunk(chunk, s) {
|
|
154
|
-
let err
|
|
142
|
+
let err;
|
|
155
143
|
{
|
|
156
144
|
// failed records whether the match has failed.
|
|
157
145
|
// After the match fails, the loop continues on processing chunk,
|
|
@@ -171,10 +159,9 @@ export function matchChunk(chunk, s) {
|
|
|
171
159
|
case 91: {
|
|
172
160
|
let r = 0;
|
|
173
161
|
if (!failed) {
|
|
174
|
-
|
|
175
|
-
let decoded = utf8.DecodeRuneInString(s);
|
|
162
|
+
const decoded = utf8.DecodeRuneInString(s);
|
|
176
163
|
r = decoded[0];
|
|
177
|
-
n = decoded[1];
|
|
164
|
+
const n = decoded[1];
|
|
178
165
|
s = $.sliceString(s, n, undefined);
|
|
179
166
|
}
|
|
180
167
|
chunk = $.sliceString(chunk, 1, undefined);
|
|
@@ -192,10 +179,10 @@ export function matchChunk(chunk, s) {
|
|
|
192
179
|
chunk = $.sliceString(chunk, 1, undefined);
|
|
193
180
|
break;
|
|
194
181
|
}
|
|
195
|
-
let lo
|
|
196
|
-
let hi
|
|
182
|
+
let lo;
|
|
183
|
+
let hi;
|
|
197
184
|
{
|
|
198
|
-
|
|
185
|
+
const escResult = getEsc(chunk);
|
|
199
186
|
lo = escResult[0];
|
|
200
187
|
chunk = escResult[1];
|
|
201
188
|
err = escResult[2];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../gs/path/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAEnD,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAA;AAEvD,MAAM,CAAC,IAAI,aAAa,GAAc,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AAE3E,wDAAwD;AACxD,yBAAyB;AACzB,EAAE;AACF,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,wDAAwD;AACxD,kDAAkD;AAClD,uCAAuC;AACvC,mDAAmD;AACnD,8DAA8D;AAC9D,mCAAmC;AACnC,EAAE;AACF,mBAAmB;AACnB,yDAAyD;AACzD,mCAAmC;AACnC,qDAAqD;AACrD,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,gBAAgB;AAChB,MAAM,UAAU,KAAK,CAAC,OAAe,EAAE,IAAY;IACjD,CAAC;QACC,uDAAuD;QAEvD,sCAAsC;QAEtC,8DAA8D;QAC9D,mEAAmE;QACnE,iBAAiB;QAEjB,qCAAqC;QACrC,iBAAiB;QAEjB,2DAA2D;QAE3D,wCAAwC;QACxC,kEAAkE;QAClE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAI,CAAC;YACrC,
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../gs/path/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAEnD,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAA;AAEvD,MAAM,CAAC,IAAI,aAAa,GAAc,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AAE3E,wDAAwD;AACxD,yBAAyB;AACzB,EAAE;AACF,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,wDAAwD;AACxD,kDAAkD;AAClD,uCAAuC;AACvC,mDAAmD;AACnD,8DAA8D;AAC9D,mCAAmC;AACnC,EAAE;AACF,mBAAmB;AACnB,yDAAyD;AACzD,mCAAmC;AACnC,qDAAqD;AACrD,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,gBAAgB;AAChB,MAAM,UAAU,KAAK,CAAC,OAAe,EAAE,IAAY;IACjD,CAAC;QACC,uDAAuD;QAEvD,sCAAsC;QAEtC,8DAA8D;QAC9D,mEAAmE;QACnE,iBAAiB;QAEjB,qCAAqC;QACrC,iBAAiB;QAEjB,2DAA2D;QAE3D,wCAAwC;QACxC,kEAAkE;QAClE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAI,CAAC;YACrC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAC9C,OAAO,GAAG,IAAI,CAAA;YAEd,uDAAuD;YACvD,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBACxB,uDAAuD;gBACvD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;YACD,sCAAsC;YACtC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAC1C,8DAA8D;YAC9D,mEAAmE;YACnE,iBAAiB;YACjB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChD,IAAI,GAAG,CAAC,CAAA;gBACR,SAAQ;YACV,CAAC;YACD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACrB,CAAC;YAED,qCAAqC;YACrC,iBAAiB;YAEjB,2DAA2D;YAC3D,IAAI,IAAI,EAAE,CAAC;gBACT,qCAAqC;gBACrC,iBAAiB;gBAEjB,2DAA2D;gBAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,UAAU,CAC3B,KAAK,EACL,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAClC,CAAA;oBAED,2DAA2D;oBAC3D,IAAI,EAAE,EAAE,CAAC;wBACP,2DAA2D;wBAC3D,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;4BACxC,SAAQ;wBACV,CAAC;wBACD,IAAI,GAAG,CAAC,CAAA;wBACR,SAAS,OAAO,CAAA;oBAClB,CAAC;oBACD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,wCAAwC;YACxC,kEAAkE;YAClE,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAI,CAAC;gBAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;gBAC5C,OAAO,GAAG,KAAK,CAAA;gBACf,CAAC;oBACC,IAAI,CAAC,EAAE,AAAD,EAAG,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;oBACtC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACtB,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,+BAA+B;AAC/B,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,IAAI,GAAY,KAAK,CAAA;IACzB,CAAC;QACC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAI,CAAC;YAC/D,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;YAC9C,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,CAAS,CAAA;QAEb,kDAAkD;QAClD,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,kDAAkD;YAClD,QAAQ,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClC,KAAK,EAAE;oBACL,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3B,CAAC,EAAE,CAAA;oBACL,CAAC;oBACD,MAAK;gBACP,KAAK,EAAE;oBACL,OAAO,GAAG,IAAI,CAAA;oBACd,MAAK;gBACP,KAAK,EAAE;oBACL,OAAO,GAAG,KAAK,CAAA;oBACf,MAAK;gBACP,KAAK,EAAE;oBACL,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,MAAM,IAAI,CAAA;oBACZ,CAAC;oBACD,MAAK;YACT,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI;YACJ,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC;SACrC,CAAA;IACH,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,0DAA0D;AAC1D,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,CAAS;IAET,IAAI,GAAc,CAAA;IAClB,CAAC;QACC,+CAA+C;QAC/C,iEAAiE;QACjE,oEAAoE;QACpE,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,kBAAkB;QAElB,mBAAmB;QAEnB,mBAAmB;QACnB,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,CAAC;YAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;YAED,kBAAkB;YAElB,mBAAmB;YAEnB,mBAAmB;YACnB,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACR,IAAI,CAAC,GAAW,CAAC,CAAA;oBACjB,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;wBAC1C,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;wBACd,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;wBACpB,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBACpC,CAAC;oBACD,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBAC1C,IAAI,OAAO,GAAG,KAAK,CAAA;oBACnB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wBACtD,OAAO,GAAG,IAAI,CAAA;wBACd,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBAC5C,CAAC;oBACD,IAAI,KAAK,GAAG,KAAK,CAAA;oBACjB,IAAI,MAAM,GAAG,CAAC,CAAA;oBACd,SAAS,CAAC;wBACR,IACE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;4BAChB,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;4BAC7B,MAAM,GAAG,CAAC,EACV,CAAC;4BACD,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;4BAC1C,MAAK;wBACP,CAAC;wBACD,IAAI,EAAU,CAAA;wBACd,IAAI,EAAU,CAAA;wBACd,CAAC;4BACC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;4BAC/B,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BACjB,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BACpB,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BAClB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gCAChB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;4BACzB,CAAC;wBACH,CAAC;wBACD,EAAE,GAAG,EAAE,CAAA;wBACP,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;4BAClC,CAAC;gCACC,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;gCAC3D,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;gCAClB,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;gCACrB,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;gCACnB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oCAChB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;gCACzB,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;4BACvB,KAAK,GAAG,IAAI,CAAA;wBACd,CAAC;wBACD,MAAM,EAAE,CAAA;oBACV,CAAC;oBACD,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;wBACrB,MAAM,GAAG,IAAI,CAAA;oBACf,CAAC;oBACD,MAAK;gBACP,CAAC;gBACD,KAAK,EAAE,CAAC,CAAC,CAAC;oBACR,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;4BAC9B,MAAM,GAAG,IAAI,CAAA;wBACf,CAAC;wBACD,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;wBACtC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBACpC,CAAC;oBACD,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBAC1C,MAAK;gBACP,CAAC;gBACD,KAAK,EAAE,CAAC,CAAC,CAAC;oBACR,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBAC1C,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACtB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;oBACnC,CAAC;oBACD,gDAAgD;oBAChD,MAAK;gBACP,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;4BACnD,MAAM,GAAG,IAAI,CAAA;wBACf,CAAC;wBACD,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBACpC,CAAC;oBACD,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBAC1C,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,IACE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;QAC7B,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAC7B,CAAC;QACD,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QAC1C,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAA;IAC/B,CAAC;IACD,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IAC1C,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, } from './type.js';
|
|
1
|
+
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, getInterfaceLiteralTypeByName, } from './type.js';
|
|
2
2
|
export type { Type, ChanDir, Kind } from './type.js';
|
|
3
3
|
export { DeepEqual } from './deepequal.js';
|
|
4
4
|
export { Zero, Copy, Indirect, New, MakeSlice, MakeMap, Append, MakeChan, Select, } from './value.js';
|
package/dist/gs/reflect/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Export the main reflect functions organized like Go stdlib
|
|
2
|
-
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, } from './type.js';
|
|
2
|
+
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, getInterfaceLiteralTypeByName, } from './type.js';
|
|
3
3
|
export { DeepEqual } from './deepequal.js';
|
|
4
4
|
export { Zero, Copy, Indirect, New, MakeSlice, MakeMap, Append, MakeChan, Select, } from './value.js';
|
|
5
5
|
export { Swapper } from './swapper.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/reflect/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,OAAO,EACP,OAAO,EACP,OAAO,EACP,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/reflect/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,OAAO,EACP,OAAO,EACP,OAAO,EACP,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,GACP,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,iCAAiC;AACjC,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAA;AAWnB,wBAAwB;AACxB,OAAO,EACL,OAAO,EACP,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,GAAG,EACH,GAAG,EACH,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,GACd,MAAM,WAAW,CAAA"}
|
|
@@ -174,6 +174,7 @@ export declare function TypeFor(): Type;
|
|
|
174
174
|
* and returns a Type for it. Returns an interface{} type if not found.
|
|
175
175
|
*/
|
|
176
176
|
export declare function getInterfaceTypeByName(name: string): Type;
|
|
177
|
+
export declare function getInterfaceLiteralTypeByName(name: string): Type;
|
|
177
178
|
export declare function canRangeFunc(t: Type): boolean;
|
|
178
179
|
export declare function canRangeFunc2(t: Type): boolean;
|
|
179
180
|
export declare function funcLayout(_t: Type, _rcvr: Type | null): {
|
package/dist/gs/reflect/type.js
CHANGED
|
@@ -1172,7 +1172,9 @@ class MapType {
|
|
|
1172
1172
|
*/
|
|
1173
1173
|
function typeImplementsInterface(typeName, interfaceType) {
|
|
1174
1174
|
// Get the interface name and look it up in the type registry
|
|
1175
|
-
const interfaceName = interfaceType
|
|
1175
|
+
const interfaceName = interfaceType instanceof InterfaceType ?
|
|
1176
|
+
interfaceType.registeredName() || interfaceType.String()
|
|
1177
|
+
: interfaceType.String();
|
|
1176
1178
|
const interfaceTypeInfo = builtinGetTypeByName(interfaceName);
|
|
1177
1179
|
if (!interfaceTypeInfo || !isInterfaceTypeInfo(interfaceTypeInfo)) {
|
|
1178
1180
|
return false;
|
|
@@ -1428,8 +1430,10 @@ class ChannelType {
|
|
|
1428
1430
|
// Interface type implementation
|
|
1429
1431
|
class InterfaceType {
|
|
1430
1432
|
_name;
|
|
1431
|
-
|
|
1433
|
+
_registeredName;
|
|
1434
|
+
constructor(_name = 'interface{}', _registeredName) {
|
|
1432
1435
|
this._name = _name;
|
|
1436
|
+
this._registeredName = _registeredName;
|
|
1433
1437
|
}
|
|
1434
1438
|
String() {
|
|
1435
1439
|
return this._name;
|
|
@@ -1447,9 +1451,25 @@ class InterfaceType {
|
|
|
1447
1451
|
return 0;
|
|
1448
1452
|
}
|
|
1449
1453
|
PkgPath() {
|
|
1454
|
+
if (this._name === 'interface{}' ||
|
|
1455
|
+
this._name.startsWith('interface {')) {
|
|
1456
|
+
return '';
|
|
1457
|
+
}
|
|
1458
|
+
const dotIndex = this._name.lastIndexOf('.');
|
|
1459
|
+
if (dotIndex > 0) {
|
|
1460
|
+
return this._name.substring(0, dotIndex);
|
|
1461
|
+
}
|
|
1450
1462
|
return '';
|
|
1451
1463
|
}
|
|
1452
1464
|
Name() {
|
|
1465
|
+
if (this._name === 'interface{}' ||
|
|
1466
|
+
this._name.startsWith('interface {')) {
|
|
1467
|
+
return this._name;
|
|
1468
|
+
}
|
|
1469
|
+
const dotIndex = this._name.lastIndexOf('.');
|
|
1470
|
+
if (dotIndex >= 0) {
|
|
1471
|
+
return this._name.substring(dotIndex + 1);
|
|
1472
|
+
}
|
|
1453
1473
|
return this._name;
|
|
1454
1474
|
}
|
|
1455
1475
|
Field(_i) {
|
|
@@ -1479,6 +1499,9 @@ class InterfaceType {
|
|
|
1479
1499
|
Bits() {
|
|
1480
1500
|
throw new Error('reflect: call of reflect.Type.Bits on interface Type');
|
|
1481
1501
|
}
|
|
1502
|
+
registeredName() {
|
|
1503
|
+
return this._registeredName;
|
|
1504
|
+
}
|
|
1482
1505
|
}
|
|
1483
1506
|
function getTypeOf(value) {
|
|
1484
1507
|
// Check for typed nil before checking for plain null
|
|
@@ -1724,28 +1747,34 @@ export function TypeFor() {
|
|
|
1724
1747
|
export function getInterfaceTypeByName(name) {
|
|
1725
1748
|
const typeInfo = builtinGetTypeByName(name);
|
|
1726
1749
|
if (typeInfo && typeInfo.kind === TypeKind.Interface) {
|
|
1727
|
-
|
|
1750
|
+
return new InterfaceType(name, name);
|
|
1751
|
+
}
|
|
1752
|
+
return new InterfaceType('interface{}');
|
|
1753
|
+
}
|
|
1754
|
+
export function getInterfaceLiteralTypeByName(name) {
|
|
1755
|
+
const typeInfo = builtinGetTypeByName(name);
|
|
1756
|
+
if (typeInfo && typeInfo.kind === TypeKind.Interface) {
|
|
1728
1757
|
const methods = typeInfo.methods || [];
|
|
1729
|
-
if (methods.length
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
}
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
}
|
|
1744
|
-
|
|
1745
|
-
})
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
}
|
|
1758
|
+
if (methods.length === 0) {
|
|
1759
|
+
return new InterfaceType('interface{}', name);
|
|
1760
|
+
}
|
|
1761
|
+
const methodSigs = methods
|
|
1762
|
+
.map((m) => {
|
|
1763
|
+
const args = m.args
|
|
1764
|
+
?.map((a) => (typeof a === 'string' ? a : 'any'))
|
|
1765
|
+
.join(', ') || '';
|
|
1766
|
+
const returns = m.returns?.map((r) => typeof r === 'string' ? r : 'any');
|
|
1767
|
+
let returnSig = '';
|
|
1768
|
+
if (returns && returns.length === 1) {
|
|
1769
|
+
returnSig = ` ${returns[0]}`;
|
|
1770
|
+
}
|
|
1771
|
+
else if (returns && returns.length > 1) {
|
|
1772
|
+
returnSig = ` (${returns.join(', ')})`;
|
|
1773
|
+
}
|
|
1774
|
+
return `${m.name}(${args})${returnSig}`;
|
|
1775
|
+
})
|
|
1776
|
+
.join('; ');
|
|
1777
|
+
return new InterfaceType(`interface { ${methodSigs} }`, name);
|
|
1749
1778
|
}
|
|
1750
1779
|
return new InterfaceType('interface{}');
|
|
1751
1780
|
}
|