goscript 0.1.4 → 0.2.1

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 (295) hide show
  1. package/README.md +5 -2
  2. package/cmd/go_js_wasm_exec/main.go +201 -0
  3. package/cmd/go_js_wasm_exec/main_test.go +83 -0
  4. package/cmd/goscript/{cmd_compile.go → cmd-compile.go} +7 -0
  5. package/cmd/goscript/cmd-test.go +14 -0
  6. package/cmd/goscript/cmd-test_test.go +1 -1
  7. package/cmd/goscript-wasm/main.go +38 -6
  8. package/compiler/compile-request.go +12 -9
  9. package/compiler/compliance_test.go +0 -1
  10. package/compiler/config.go +2 -0
  11. package/compiler/diagnostic.go +104 -12
  12. package/compiler/diagnostic_test.go +106 -0
  13. package/compiler/gotest/request.go +28 -0
  14. package/compiler/gotest/runner.go +354 -44
  15. package/compiler/gotest/runner_test.go +293 -1
  16. package/compiler/gotest/testdata/browserapi/browserapi_test.go +20 -0
  17. package/compiler/gotest/testdata/browserapi/go.mod +3 -0
  18. package/compiler/index.test.ts +23 -0
  19. package/compiler/lowered-program.go +33 -24
  20. package/compiler/lowering.go +746 -194
  21. package/compiler/lowering_bench_test.go +42 -27
  22. package/compiler/lowering_internal_test.go +18 -0
  23. package/compiler/override-facts.go +15 -0
  24. package/compiler/override-parity-verifier.go +450 -0
  25. package/compiler/override-parity.go +122 -0
  26. package/compiler/override-registry_test.go +559 -0
  27. package/compiler/protobuf-ts-binding.go +567 -0
  28. package/compiler/protobuf-ts-binding_test.go +402 -0
  29. package/compiler/runtime-contract.go +4 -0
  30. package/compiler/runtime-contract_test.go +2 -0
  31. package/compiler/semantic-model-types.go +9 -4
  32. package/compiler/semantic-model.go +282 -70
  33. package/compiler/semantic-model_test.go +82 -1
  34. package/compiler/service.go +21 -1
  35. package/compiler/skeleton_test.go +118 -10
  36. package/compiler/typescript-emitter.go +128 -13
  37. package/compiler/wasm/compile_test.go +37 -4
  38. package/compiler/{wasm_api.go → wasm-api.go} +57 -7
  39. package/dist/gs/builtin/hostio.js +5 -0
  40. package/dist/gs/builtin/hostio.js.map +1 -1
  41. package/dist/gs/builtin/slice.d.ts +13 -2
  42. package/dist/gs/builtin/slice.js +187 -6
  43. package/dist/gs/builtin/slice.js.map +1 -1
  44. package/dist/gs/builtin/type.d.ts +13 -5
  45. package/dist/gs/builtin/type.js +153 -60
  46. package/dist/gs/builtin/type.js.map +1 -1
  47. package/dist/gs/builtin/varRef.d.ts +11 -0
  48. package/dist/gs/builtin/varRef.js +57 -2
  49. package/dist/gs/builtin/varRef.js.map +1 -1
  50. package/dist/gs/bytes/buffer.gs.js +1 -1
  51. package/dist/gs/bytes/buffer.gs.js.map +1 -1
  52. package/dist/gs/bytes/reader.gs.js +1 -1
  53. package/dist/gs/bytes/reader.gs.js.map +1 -1
  54. package/dist/gs/compress/zlib/index.d.ts +10 -3
  55. package/dist/gs/compress/zlib/index.js +50 -16
  56. package/dist/gs/compress/zlib/index.js.map +1 -1
  57. package/dist/gs/encoding/json/index.d.ts +114 -0
  58. package/dist/gs/encoding/json/index.js +544 -36
  59. package/dist/gs/encoding/json/index.js.map +1 -1
  60. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +101 -0
  61. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +589 -0
  62. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
  63. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.d.ts +1 -0
  64. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js +17 -11
  65. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js.map +1 -1
  66. package/dist/gs/github.com/pkg/errors/errors.js +54 -30
  67. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
  68. package/dist/gs/go/scanner/index.d.ts +2 -0
  69. package/dist/gs/go/scanner/index.js +29 -5
  70. package/dist/gs/go/scanner/index.js.map +1 -1
  71. package/dist/gs/go/token/index.js +22 -6
  72. package/dist/gs/go/token/index.js.map +1 -1
  73. package/dist/gs/hash/index.d.ts +6 -0
  74. package/dist/gs/hash/index.js +20 -0
  75. package/dist/gs/hash/index.js.map +1 -1
  76. package/dist/gs/internal/byteorder/index.js +2 -2
  77. package/dist/gs/internal/byteorder/index.js.map +1 -1
  78. package/dist/gs/internal/goarch/index.d.ts +43 -3
  79. package/dist/gs/internal/goarch/index.js +42 -10
  80. package/dist/gs/internal/goarch/index.js.map +1 -1
  81. package/dist/gs/io/fs/fs.js +26 -14
  82. package/dist/gs/io/fs/fs.js.map +1 -1
  83. package/dist/gs/io/fs/readdir.js +4 -2
  84. package/dist/gs/io/fs/readdir.js.map +1 -1
  85. package/dist/gs/io/fs/sub.js +8 -1
  86. package/dist/gs/io/fs/sub.js.map +1 -1
  87. package/dist/gs/io/io.d.ts +2 -0
  88. package/dist/gs/io/io.js.map +1 -1
  89. package/dist/gs/math/bits/index.d.ts +5 -0
  90. package/dist/gs/math/bits/index.js +16 -4
  91. package/dist/gs/math/bits/index.js.map +1 -1
  92. package/dist/gs/mime/index.d.ts +16 -0
  93. package/dist/gs/mime/index.js +315 -6
  94. package/dist/gs/mime/index.js.map +1 -1
  95. package/dist/gs/net/http/httptest/index.d.ts +12 -0
  96. package/dist/gs/net/http/httptest/index.js +85 -6
  97. package/dist/gs/net/http/httptest/index.js.map +1 -1
  98. package/dist/gs/net/http/index.d.ts +300 -5
  99. package/dist/gs/net/http/index.js +1598 -58
  100. package/dist/gs/net/http/index.js.map +1 -1
  101. package/dist/gs/os/dir_unix.gs.js +1 -1
  102. package/dist/gs/os/dir_unix.gs.js.map +1 -1
  103. package/dist/gs/os/error.gs.js +1 -1
  104. package/dist/gs/os/error.gs.js.map +1 -1
  105. package/dist/gs/os/exec.gs.d.ts +1 -0
  106. package/dist/gs/os/exec.gs.js +4 -8
  107. package/dist/gs/os/exec.gs.js.map +1 -1
  108. package/dist/gs/os/exec_posix.gs.js +1 -1
  109. package/dist/gs/os/exec_posix.gs.js.map +1 -1
  110. package/dist/gs/os/index.d.ts +1 -1
  111. package/dist/gs/os/index.js +1 -1
  112. package/dist/gs/os/index.js.map +1 -1
  113. package/dist/gs/os/proc.gs.d.ts +4 -0
  114. package/dist/gs/os/proc.gs.js +12 -6
  115. package/dist/gs/os/proc.gs.js.map +1 -1
  116. package/dist/gs/os/root_js.gs.js +1 -1
  117. package/dist/gs/os/root_js.gs.js.map +1 -1
  118. package/dist/gs/os/types.gs.js +1 -1
  119. package/dist/gs/os/types.gs.js.map +1 -1
  120. package/dist/gs/os/types_js.gs.js +1 -1
  121. package/dist/gs/os/types_js.gs.js.map +1 -1
  122. package/dist/gs/os/types_unix.gs.js +1 -1
  123. package/dist/gs/os/types_unix.gs.js.map +1 -1
  124. package/dist/gs/path/path.js +11 -7
  125. package/dist/gs/path/path.js.map +1 -1
  126. package/dist/gs/reflect/index.d.ts +5 -4
  127. package/dist/gs/reflect/index.js +4 -3
  128. package/dist/gs/reflect/index.js.map +1 -1
  129. package/dist/gs/reflect/map.js +15 -0
  130. package/dist/gs/reflect/map.js.map +1 -1
  131. package/dist/gs/reflect/type.d.ts +25 -6
  132. package/dist/gs/reflect/type.js +1475 -228
  133. package/dist/gs/reflect/type.js.map +1 -1
  134. package/dist/gs/reflect/types.d.ts +14 -6
  135. package/dist/gs/reflect/types.js +35 -1
  136. package/dist/gs/reflect/types.js.map +1 -1
  137. package/dist/gs/reflect/value.d.ts +1 -0
  138. package/dist/gs/reflect/value.js +83 -41
  139. package/dist/gs/reflect/value.js.map +1 -1
  140. package/dist/gs/reflect/visiblefields.js +4 -140
  141. package/dist/gs/reflect/visiblefields.js.map +1 -1
  142. package/dist/gs/runtime/pprof/index.d.ts +8 -2
  143. package/dist/gs/runtime/pprof/index.js +50 -30
  144. package/dist/gs/runtime/pprof/index.js.map +1 -1
  145. package/dist/gs/runtime/runtime.js +5 -4
  146. package/dist/gs/runtime/runtime.js.map +1 -1
  147. package/dist/gs/runtime/trace/index.js +5 -19
  148. package/dist/gs/runtime/trace/index.js.map +1 -1
  149. package/dist/gs/strconv/atoi.gs.js +1 -1
  150. package/dist/gs/strconv/atoi.gs.js.map +1 -1
  151. package/dist/gs/strconv/complex.gs.d.ts +3 -0
  152. package/dist/gs/strconv/complex.gs.js +148 -0
  153. package/dist/gs/strconv/complex.gs.js.map +1 -0
  154. package/dist/gs/strconv/index.d.ts +1 -0
  155. package/dist/gs/strconv/index.js +1 -0
  156. package/dist/gs/strconv/index.js.map +1 -1
  157. package/dist/gs/strings/builder.js +1 -1
  158. package/dist/gs/strings/reader.js +9 -5
  159. package/dist/gs/strings/reader.js.map +1 -1
  160. package/dist/gs/strings/replace.js +15 -7
  161. package/dist/gs/strings/replace.js.map +1 -1
  162. package/dist/gs/strings/strings.d.ts +5 -0
  163. package/dist/gs/strings/strings.js +57 -5
  164. package/dist/gs/strings/strings.js.map +1 -1
  165. package/dist/gs/sync/atomic/doc_64.gs.js +7 -6
  166. package/dist/gs/sync/atomic/doc_64.gs.js.map +1 -1
  167. package/dist/gs/sync/atomic/type.gs.js +9 -9
  168. package/dist/gs/sync/atomic/type.gs.js.map +1 -1
  169. package/dist/gs/sync/atomic/value.gs.js +2 -2
  170. package/dist/gs/sync/atomic/value.gs.js.map +1 -1
  171. package/dist/gs/syscall/env.js +22 -14
  172. package/dist/gs/syscall/env.js.map +1 -1
  173. package/dist/gs/testing/testing.js +55 -13
  174. package/dist/gs/testing/testing.js.map +1 -1
  175. package/dist/gs/time/time.d.ts +24 -1
  176. package/dist/gs/time/time.js +43 -3
  177. package/dist/gs/time/time.js.map +1 -1
  178. package/dist/gs/unique/index.js +7 -1
  179. package/dist/gs/unique/index.js.map +1 -1
  180. package/go.mod +3 -3
  181. package/go.sum +16 -0
  182. package/gs/builtin/hostio.test.ts +16 -0
  183. package/gs/builtin/hostio.ts +7 -0
  184. package/gs/builtin/runtime-contract.test.ts +246 -21
  185. package/gs/builtin/slice.ts +269 -24
  186. package/gs/builtin/type.ts +226 -59
  187. package/gs/builtin/varRef.ts +85 -2
  188. package/gs/bytes/buffer.gs.ts +1 -1
  189. package/gs/bytes/reader.gs.ts +1 -1
  190. package/gs/compress/zlib/index.test.ts +62 -1
  191. package/gs/compress/zlib/index.ts +53 -16
  192. package/gs/compress/zlib/parity.json +51 -0
  193. package/gs/encoding/json/index.test.ts +360 -6
  194. package/gs/encoding/json/index.ts +679 -38
  195. package/gs/encoding/json/parity.json +81 -0
  196. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +373 -3
  197. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +893 -1
  198. package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.test.ts +18 -0
  199. package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.ts +17 -11
  200. package/gs/github.com/pkg/errors/errors.ts +54 -30
  201. package/gs/go/scanner/index.test.ts +39 -56
  202. package/gs/go/scanner/index.ts +33 -5
  203. package/gs/go/scanner/parity.json +27 -0
  204. package/gs/go/token/index.ts +22 -6
  205. package/gs/hash/index.test.ts +20 -33
  206. package/gs/hash/index.ts +28 -0
  207. package/gs/hash/parity.json +21 -0
  208. package/gs/internal/byteorder/index.test.ts +2 -2
  209. package/gs/internal/byteorder/index.ts +2 -2
  210. package/gs/internal/goarch/index.test.ts +32 -0
  211. package/gs/internal/goarch/index.ts +45 -13
  212. package/gs/internal/goarch/parity.json +144 -0
  213. package/gs/io/fs/fs.ts +26 -14
  214. package/gs/io/fs/readdir.ts +4 -4
  215. package/gs/io/fs/sub.ts +8 -1
  216. package/gs/io/io.ts +1 -0
  217. package/gs/io/parity.json +162 -0
  218. package/gs/math/bits/index.test.ts +14 -1
  219. package/gs/math/bits/index.ts +23 -4
  220. package/gs/math/bits/parity.json +156 -0
  221. package/gs/mime/index.test.ts +90 -0
  222. package/gs/mime/index.ts +369 -6
  223. package/gs/mime/parity.json +36 -0
  224. package/gs/net/http/httptest/index.test.ts +98 -2
  225. package/gs/net/http/httptest/index.ts +101 -6
  226. package/gs/net/http/httptest/parity.json +15 -0
  227. package/gs/net/http/index.test.ts +781 -12
  228. package/gs/net/http/index.ts +1860 -139
  229. package/gs/net/http/meta.json +16 -1
  230. package/gs/net/http/parity.json +193 -0
  231. package/gs/os/dir_unix.gs.ts +1 -1
  232. package/gs/os/error.gs.ts +1 -1
  233. package/gs/os/exec.gs.ts +4 -8
  234. package/gs/os/exec_posix.gs.ts +1 -1
  235. package/gs/os/index.test.ts +9 -0
  236. package/gs/os/index.ts +1 -0
  237. package/gs/os/parity.json +9 -0
  238. package/gs/os/proc.gs.ts +18 -5
  239. package/gs/os/proc.test.ts +26 -0
  240. package/gs/os/root_js.gs.ts +1 -1
  241. package/gs/os/types.gs.ts +1 -1
  242. package/gs/os/types_js.gs.ts +1 -1
  243. package/gs/os/types_unix.gs.ts +1 -1
  244. package/gs/path/path.ts +11 -7
  245. package/gs/reflect/field.test.ts +37 -15
  246. package/gs/reflect/function-types.test.ts +518 -22
  247. package/gs/reflect/index.ts +8 -6
  248. package/gs/reflect/map.ts +20 -0
  249. package/gs/reflect/meta.json +6 -4
  250. package/gs/reflect/parity.json +234 -0
  251. package/gs/reflect/sliceat.test.ts +156 -0
  252. package/gs/reflect/structof.test.ts +401 -0
  253. package/gs/reflect/type.ts +1961 -317
  254. package/gs/reflect/typefor.test.ts +530 -10
  255. package/gs/reflect/types.ts +43 -18
  256. package/gs/reflect/value.ts +105 -45
  257. package/gs/reflect/visiblefields.ts +5 -168
  258. package/gs/runtime/parity.json +24 -0
  259. package/gs/runtime/pprof/index.test.ts +29 -7
  260. package/gs/runtime/pprof/index.ts +56 -30
  261. package/gs/runtime/pprof/parity.json +27 -0
  262. package/gs/runtime/runtime.test.ts +3 -1
  263. package/gs/runtime/runtime.ts +4 -3
  264. package/gs/runtime/trace/index.test.ts +5 -3
  265. package/gs/runtime/trace/index.ts +8 -20
  266. package/gs/runtime/trace/parity.json +36 -0
  267. package/gs/strconv/atoi.gs.ts +1 -1
  268. package/gs/strconv/complex.gs.ts +174 -0
  269. package/gs/strconv/complex.test.ts +65 -0
  270. package/gs/strconv/index.ts +1 -0
  271. package/gs/strconv/parity.json +120 -0
  272. package/gs/strings/builder.ts +1 -1
  273. package/gs/strings/parity.json +186 -0
  274. package/gs/strings/reader.ts +9 -5
  275. package/gs/strings/replace.ts +15 -7
  276. package/gs/strings/strings.test.ts +22 -2
  277. package/gs/strings/strings.ts +64 -6
  278. package/gs/sync/atomic/doc_64.gs.ts +6 -7
  279. package/gs/sync/atomic/doc_64.test.ts +43 -0
  280. package/gs/sync/atomic/type.gs.ts +9 -9
  281. package/gs/sync/atomic/value.gs.ts +2 -2
  282. package/gs/syscall/env.ts +29 -14
  283. package/gs/testing/testing.test.ts +67 -0
  284. package/gs/testing/testing.ts +87 -19
  285. package/gs/time/parity.json +225 -0
  286. package/gs/time/time.test.ts +20 -2
  287. package/gs/time/time.ts +49 -7
  288. package/gs/unique/index.ts +7 -1
  289. package/package.json +4 -2
  290. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.d.ts +0 -217
  291. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +0 -926
  292. package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js.map +0 -1
  293. package/gs/github.com/aperturerobotics/starpc/srpc/index.test.ts +0 -38
  294. package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +0 -1361
  295. package/gs/github.com/aperturerobotics/starpc/srpc/meta.json +0 -46
@@ -1,217 +0,0 @@
1
- import * as $ from '@goscript/builtin/index.js';
2
- import * as context from '@goscript/context/index.js';
3
- import * as io from '@goscript/io/index.js';
4
- import * as protobuf_go_lite from '@goscript/github.com/aperturerobotics/protobuf-go-lite/index.js';
5
- import type { Client as StarpcClient, Mux as StarpcMux, Server as StarpcServer } from 'starpc';
6
- export type Message = protobuf_go_lite.Message;
7
- export type TypeScriptClient = StarpcClient;
8
- export type TypeScriptMux = StarpcMux;
9
- export type TypeScriptServer = StarpcServer;
10
- type MaybePromise<T> = T | Promise<T>;
11
- export declare const ErrReset: $.GoError;
12
- export declare const ErrUnimplemented: $.GoError;
13
- export declare const ErrCompleted: $.GoError;
14
- export declare const ErrUnrecognizedPacket: $.GoError;
15
- export declare const ErrEmptyPacket: $.GoError;
16
- export declare const ErrInvalidMessage: $.GoError;
17
- export declare const ErrEmptyMethodID: $.GoError;
18
- export declare const ErrEmptyServiceID: $.GoError;
19
- export declare const ErrNoAvailableClients: $.GoError;
20
- export declare const ErrNilWriter: $.GoError;
21
- export declare class RawMessage implements Message {
22
- private data;
23
- private copyData;
24
- constructor(init?: Partial<{
25
- data?: $.Slice<number>;
26
- copy?: boolean;
27
- }>);
28
- GetData(): $.Slice<number>;
29
- SetData(data: $.Slice<number>): void;
30
- Clear(): void;
31
- Reset(): void;
32
- MarshalVT(): [$.Slice<number>, $.GoError];
33
- UnmarshalVT(data: $.Slice<number>): $.GoError;
34
- SizeVT(): number;
35
- MarshalToSizedBufferVT(dAtA: $.Slice<number>): [number, $.GoError];
36
- clone(): RawMessage;
37
- }
38
- export declare function NewRawMessage(data: $.Slice<number>, copy: boolean): RawMessage;
39
- export interface Client {
40
- ExecCall(ctx: context.Context, service: string, method: string, input: Message | null, output: Message | null): Promise<$.GoError>;
41
- NewStream(ctx: context.Context, service: string, method: string, firstMsg: Message | null): Promise<[Stream | null, $.GoError]>;
42
- }
43
- export declare class ClientSet implements Client {
44
- private clients;
45
- constructor(init?: Partial<{
46
- clients?: $.Slice<Client | null>;
47
- }>);
48
- ExecCall(ctx: context.Context, service: string, method: string, input: Message | null, output: Message | null): Promise<$.GoError>;
49
- NewStream(ctx: context.Context, service: string, method: string, firstMsg: Message | null): Promise<[Stream | null, $.GoError]>;
50
- private execCall;
51
- }
52
- export declare function NewClientSet(clients: $.Slice<Client | null>): ClientSet;
53
- export declare class PrefixClient implements Client {
54
- private client;
55
- private serviceIDPrefixes;
56
- constructor(clientOrInit?: Client | Partial<{
57
- client?: Client | null;
58
- serviceIDPrefixes?: $.Slice<string>;
59
- }> | null, serviceIDPrefixes?: $.Slice<string>);
60
- ExecCall(ctx: context.Context, service: string, method: string, input: Message | null, output: Message | null): Promise<$.GoError>;
61
- NewStream(ctx: context.Context, service: string, method: string, firstMsg: Message | null): Promise<[Stream | null, $.GoError]>;
62
- private stripCheckServiceIDPrefix;
63
- }
64
- export declare function NewPrefixClient(client: Client | null, serviceIDPrefixes: $.Slice<string>): PrefixClient;
65
- export interface Stream {
66
- Context(): context.Context;
67
- MsgSend(msg: Message | null): MaybePromise<$.GoError>;
68
- MsgRecv(msg: Message | null): MaybePromise<$.GoError>;
69
- CloseSend(): MaybePromise<$.GoError>;
70
- Close(): MaybePromise<$.GoError>;
71
- }
72
- export interface StreamRecv<T> extends Stream {
73
- Recv(): MaybePromise<[T, $.GoError]>;
74
- RecvTo(value: T): MaybePromise<$.GoError>;
75
- }
76
- export interface StreamSend<T> extends Stream {
77
- Send(value: T): MaybePromise<$.GoError>;
78
- }
79
- export interface StreamSendAndClose<T> extends StreamSend<T> {
80
- SendAndClose(value: T): MaybePromise<$.GoError>;
81
- }
82
- export declare function NewStreamWithClose(stream: Stream | null, close: () => MaybePromise<$.GoError>): Stream;
83
- export interface Invoker {
84
- InvokeMethod(serviceID: string, methodID: string, stream: Stream | null): MaybePromise<[boolean, $.GoError]>;
85
- }
86
- export interface QueryableInvoker {
87
- HasService(serviceID: string): boolean;
88
- HasServiceMethod(serviceID: string, methodID: string): boolean;
89
- }
90
- export type InvokerFunc = (serviceID: string, methodID: string, stream: Stream | null) => [boolean, $.GoError] | Promise<[boolean, $.GoError]>;
91
- export declare function InvokeMethod(fn: InvokerFunc, serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
92
- export declare function InvokerFunc_InvokeMethod(fn: InvokerFunc, serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
93
- export type InvokerSlice = $.Slice<Invoker | null>;
94
- export declare function InvokerSlice_InvokeMethod(s: InvokerSlice, serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
95
- export interface Handler extends Invoker {
96
- GetServiceID(): string;
97
- GetMethodIDs(): $.Slice<string>;
98
- }
99
- export interface Mux extends Invoker, QueryableInvoker {
100
- Register(handler: Handler | null): $.GoError;
101
- }
102
- export declare function NewMux(...fallbackInvokers: (Invoker | null)[]): Mux;
103
- export declare class PrefixInvoker implements Invoker {
104
- private inv;
105
- private serviceIDPrefixes;
106
- constructor(invOrInit?: Invoker | Partial<{
107
- inv?: Invoker | null;
108
- serviceIDPrefixes?: $.Slice<string>;
109
- }> | null, serviceIDPrefixes?: $.Slice<string>);
110
- InvokeMethod(serviceID: string, methodID: string, stream: Stream | null): Promise<[boolean, $.GoError]>;
111
- }
112
- export declare function NewPrefixInvoker(inv: Invoker | null, serviceIDPrefixes: $.Slice<string>): PrefixInvoker;
113
- export declare function CheckStripPrefix(serviceID: string, serviceIDPrefixes: $.Slice<string>): [string, string];
114
- export declare class Server {
115
- private invoker;
116
- constructor(init?: Partial<{
117
- invoker?: Invoker | null;
118
- }>);
119
- GetInvoker(): Invoker | null;
120
- HandleStream(_ctx: context.Context, _rwc: io.ReadWriteCloser | null): void;
121
- AcceptMuxedConn(_ctx: context.Context, _conn: MuxedConn | null): $.GoError;
122
- }
123
- export declare function NewServer(invoker: Invoker | null): Server;
124
- export interface PacketWriter {
125
- WritePacket(packet: Packet | null): MaybePromise<$.GoError>;
126
- Close(): MaybePromise<$.GoError>;
127
- }
128
- export type OpenStreamFunc = ((ctx: context.Context, msgHandler: PacketDataHandler, closeHandler: CloseHandler) => MaybePromise<[PacketWriter | null, $.GoError]>) & {
129
- __server?: Server;
130
- };
131
- export declare function NewClient(openStream: OpenStreamFunc | null): Client;
132
- export declare function NewClientWithInvoker(invoker: Invoker | null, contextFn?: ((ctx: context.Context) => context.Context) | null): Client;
133
- export type PacketHandler = ((pkt: Packet | null) => MaybePromise<$.GoError>) | null;
134
- export type PacketDataHandler = ((data: $.Slice<number>) => MaybePromise<$.GoError>) | null;
135
- export type CloseHandler = ((closeErr: $.GoError) => void) | null;
136
- export declare function NewStreamWithContext(stream: Stream | null, ctx: context.Context): Stream;
137
- export declare class ServerRPC {
138
- private ctx;
139
- private invoker;
140
- private writer;
141
- constructor(ctx: context.Context, invoker: Invoker | null, writer: PacketWriter | null);
142
- HandlePacketData(data: $.Slice<number>): Promise<$.GoError>;
143
- HandlePacket(pkt: Packet | null): Promise<$.GoError>;
144
- HandleCallStart(pkt: CallStart | null): Promise<$.GoError>;
145
- HandleStreamClose(_closeErr: $.GoError): void;
146
- Wait(_ctx: context.Context): $.GoError;
147
- }
148
- export declare function NewServerRPC(ctx: context.Context, invoker: Invoker | null, writer: PacketWriter | null): ServerRPC;
149
- export declare class PacketReadWriter implements PacketWriter {
150
- private rw;
151
- constructor(rw: io.ReadWriteCloser | null);
152
- Write(data: $.Slice<number>): [number, $.GoError];
153
- WritePacket(_packet: Packet | null): $.GoError;
154
- ReadPump(_cb: PacketDataHandler, closed: CloseHandler): void;
155
- ReadToHandler(_cb: PacketDataHandler): $.GoError;
156
- Close(): $.GoError;
157
- }
158
- export declare function NewPacketReadWriter(rw: io.ReadWriteCloser | null): PacketReadWriter;
159
- export declare function NewServerPipe(server: Server | null): OpenStreamFunc;
160
- export declare class MuxedConn {
161
- rwc: any;
162
- outbound: boolean;
163
- constructor(rwc?: any, outbound?: boolean);
164
- Close(): $.GoError;
165
- }
166
- export declare function NewOpenStreamWithMuxedConn(_conn: MuxedConn): OpenStreamFunc;
167
- export declare function NewMuxedConn(rwc: any, outbound: boolean, _yamuxConf: unknown): [MuxedConn | null, $.GoError];
168
- export declare function NewWebSocketConn(_ctx: context.Context, conn: unknown, isServer: boolean, yamuxConf: unknown): [MuxedConn | null, $.GoError];
169
- export declare function NewClientWithMuxedConn(_conn: MuxedConn | null): Client;
170
- export declare function NewMuxedConnWithRwc(_ctx: context.Context, _rwc: io.ReadWriteCloser | null, _outbound: boolean, _yamuxConf: unknown): [MuxedConn | null, $.GoError];
171
- export declare function NewClientInvoker(client: Client | null): Invoker;
172
- export declare class Packet {
173
- Body: unknown;
174
- GetBody(): unknown;
175
- MarshalVT(): [$.Slice<number>, $.GoError];
176
- UnmarshalVT(_data: $.Slice<number>): $.GoError;
177
- SizeVT(): number;
178
- MarshalToSizedBufferVT(_data: $.Slice<number>): [number, $.GoError];
179
- Reset(): void;
180
- }
181
- export declare class CallStart {
182
- RpcService: string;
183
- RpcMethod: string;
184
- Data: $.Slice<number>;
185
- DataIsZero: boolean;
186
- GetRpcService(): string;
187
- GetRpcMethod(): string;
188
- GetData(): $.Slice<number>;
189
- GetDataIsZero(): boolean;
190
- }
191
- export declare class CallData {
192
- Data: $.Slice<number>;
193
- DataIsZero: boolean;
194
- Complete: boolean;
195
- Error: string;
196
- GetData(): $.Slice<number>;
197
- GetDataIsZero(): boolean;
198
- GetComplete(): boolean;
199
- GetError(): string;
200
- }
201
- export declare class Packet_CallStart {
202
- CallStart: CallStart | null;
203
- constructor(CallStart?: CallStart | null);
204
- }
205
- export declare class Packet_CallData {
206
- CallData: CallData | null;
207
- constructor(CallData?: CallData | null);
208
- }
209
- export declare class Packet_CallCancel {
210
- CallCancel: boolean;
211
- constructor(CallCancel?: boolean);
212
- }
213
- export declare function NewPacketDataHandler(handler: PacketHandler): PacketDataHandler;
214
- export declare function NewCallStartPacket(service: string, method: string, data: $.Slice<number>, dataIsZero: boolean): Packet;
215
- export declare function NewCallDataPacket(data: $.Slice<number>, dataIsZero: boolean, complete: boolean, err: $.GoError): Packet;
216
- export declare function NewCallCancelPacket(): Packet;
217
- export {};