goscript 0.2.3 → 0.2.5

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 (160) hide show
  1. package/README.md +8 -8
  2. package/cmd/go_js_wasm_exec/main.go +1 -1
  3. package/cmd/go_js_wasm_exec/main_test.go +1 -1
  4. package/cmd/goscript/cmd-compile.go +9 -1
  5. package/cmd/goscript/cmd-test.go +1 -1
  6. package/cmd/goscript/cmd_compile_test.go +44 -0
  7. package/cmd/goscript/deps.go +1 -1
  8. package/cmd/goscript-wasm/main.go +2 -2
  9. package/compiler/compile-request.go +19 -0
  10. package/compiler/compile_bench_test.go +121 -0
  11. package/compiler/compliance_test.go +17 -1
  12. package/compiler/config.go +2 -0
  13. package/compiler/gotest/result.go +1 -1
  14. package/compiler/gotest/runner.go +2 -2
  15. package/compiler/gotest/runner_test.go +4 -7
  16. package/compiler/index.test.ts +28 -0
  17. package/compiler/index.ts +32 -16
  18. package/compiler/lowering.go +1236 -143
  19. package/compiler/lowering_bench_test.go +4 -0
  20. package/compiler/override-facts.go +1 -1
  21. package/compiler/override-registry_test.go +125 -0
  22. package/compiler/package-graph.go +92 -0
  23. package/compiler/package-graph_test.go +113 -0
  24. package/compiler/runtime-contract.go +1 -1
  25. package/compiler/semantic-model.go +32 -0
  26. package/compiler/skeleton_test.go +284 -11
  27. package/compiler/wasm/compile.go +1 -1
  28. package/compiler/wasm/compile_test.go +1 -1
  29. package/dist/compiler/index.d.ts +4 -0
  30. package/dist/compiler/index.js +26 -15
  31. package/dist/compiler/index.js.map +1 -1
  32. package/dist/gs/compress/gzip/index.d.ts +41 -0
  33. package/dist/gs/compress/gzip/index.js +235 -0
  34. package/dist/gs/compress/gzip/index.js.map +1 -0
  35. package/dist/gs/database/sql/driver/index.d.ts +165 -0
  36. package/dist/gs/database/sql/driver/index.js +432 -0
  37. package/dist/gs/database/sql/driver/index.js.map +1 -0
  38. package/dist/gs/encoding/binary/index.d.ts +71 -0
  39. package/dist/gs/encoding/binary/index.js +778 -0
  40. package/dist/gs/encoding/binary/index.js.map +1 -0
  41. package/dist/gs/fmt/fmt.js +156 -57
  42. package/dist/gs/fmt/fmt.js.map +1 -1
  43. package/dist/gs/github.com/klauspost/cpuid/v2/index.d.ts +11 -0
  44. package/dist/gs/github.com/klauspost/cpuid/v2/index.js +28 -0
  45. package/dist/gs/github.com/klauspost/cpuid/v2/index.js.map +1 -0
  46. package/dist/gs/github.com/pkg/errors/errors.d.ts +0 -2
  47. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
  48. package/dist/gs/github.com/pkg/errors/index.d.ts +2 -1
  49. package/dist/gs/github.com/pkg/errors/index.js +1 -1
  50. package/dist/gs/github.com/pkg/errors/index.js.map +1 -1
  51. package/dist/gs/github.com/pkg/errors/stack.d.ts +8 -19
  52. package/dist/gs/github.com/pkg/errors/stack.js +26 -61
  53. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
  54. package/dist/gs/golang.org/x/crypto/cryptobyte/asn1/index.d.ts +19 -0
  55. package/dist/gs/golang.org/x/crypto/cryptobyte/asn1/index.js +25 -0
  56. package/dist/gs/golang.org/x/crypto/cryptobyte/asn1/index.js.map +1 -0
  57. package/dist/gs/golang.org/x/crypto/cryptobyte/index.d.ts +104 -0
  58. package/dist/gs/golang.org/x/crypto/cryptobyte/index.js +1107 -0
  59. package/dist/gs/golang.org/x/crypto/cryptobyte/index.js.map +1 -0
  60. package/dist/gs/golang.org/x/crypto/internal/alias/index.d.ts +3 -0
  61. package/dist/gs/golang.org/x/crypto/internal/alias/index.js +39 -0
  62. package/dist/gs/golang.org/x/crypto/internal/alias/index.js.map +1 -0
  63. package/dist/gs/io/fs/glob.js +1 -1
  64. package/dist/gs/io/fs/glob.js.map +1 -1
  65. package/dist/gs/io/fs/readlink.d.ts +1 -1
  66. package/dist/gs/io/fs/readlink.js +2 -2
  67. package/dist/gs/io/fs/readlink.js.map +1 -1
  68. package/dist/gs/io/fs/stat.d.ts +4 -2
  69. package/dist/gs/io/fs/stat.js +12 -73
  70. package/dist/gs/io/fs/stat.js.map +1 -1
  71. package/dist/gs/io/fs/sub.d.ts +2 -2
  72. package/dist/gs/io/fs/sub.js +7 -7
  73. package/dist/gs/io/fs/sub.js.map +1 -1
  74. package/dist/gs/io/fs/walk.js +1 -1
  75. package/dist/gs/io/fs/walk.js.map +1 -1
  76. package/dist/gs/net/http/index.d.ts +18 -14
  77. package/dist/gs/net/http/index.js +44 -23
  78. package/dist/gs/net/http/index.js.map +1 -1
  79. package/dist/gs/net/http/pprof/index.d.ts +5 -5
  80. package/dist/gs/net/http/pprof/index.js +21 -21
  81. package/dist/gs/net/http/pprof/index.js.map +1 -1
  82. package/dist/gs/runtime/runtime.d.ts +6 -1
  83. package/dist/gs/runtime/runtime.js +15 -8
  84. package/dist/gs/runtime/runtime.js.map +1 -1
  85. package/dist/gs/runtime/trace/index.d.ts +8 -5
  86. package/dist/gs/runtime/trace/index.js +324 -23
  87. package/dist/gs/runtime/trace/index.js.map +1 -1
  88. package/dist/gs/slices/slices.d.ts +2 -1
  89. package/dist/gs/slices/slices.js +9 -3
  90. package/dist/gs/slices/slices.js.map +1 -1
  91. package/dist/gs/sort/search.gs.d.ts +3 -1
  92. package/dist/gs/sort/search.gs.js +18 -53
  93. package/dist/gs/sort/search.gs.js.map +1 -1
  94. package/dist/gs/sync/sync.d.ts +1 -1
  95. package/dist/gs/sync/sync.js +3 -0
  96. package/dist/gs/sync/sync.js.map +1 -1
  97. package/dist/gs/time/time.d.ts +22 -29
  98. package/dist/gs/time/time.js +111 -32
  99. package/dist/gs/time/time.js.map +1 -1
  100. package/dist/gs/unsafe/unsafe.d.ts +3 -2
  101. package/dist/gs/unsafe/unsafe.js.map +1 -1
  102. package/go.mod +7 -5
  103. package/go.sum +12 -26
  104. package/gs/builtin/runtime-contract.test.ts +25 -0
  105. package/gs/compress/gzip/index.test.ts +86 -0
  106. package/gs/compress/gzip/index.ts +297 -0
  107. package/gs/compress/gzip/meta.json +6 -0
  108. package/gs/compress/gzip/parity.json +45 -0
  109. package/gs/database/sql/driver/index.test.ts +88 -0
  110. package/gs/database/sql/driver/index.ts +675 -0
  111. package/gs/database/sql/driver/meta.json +3 -0
  112. package/gs/database/sql/driver/parity.json +144 -0
  113. package/gs/embed/index.test.ts +1 -1
  114. package/gs/encoding/binary/index.test.ts +239 -0
  115. package/gs/encoding/binary/index.ts +999 -0
  116. package/gs/encoding/binary/meta.json +9 -0
  117. package/gs/encoding/binary/parity.json +72 -0
  118. package/gs/fmt/fmt.test.ts +28 -0
  119. package/gs/fmt/fmt.ts +198 -61
  120. package/gs/fmt/meta.json +2 -1
  121. package/gs/github.com/klauspost/cpuid/v2/index.ts +38 -0
  122. package/gs/github.com/klauspost/cpuid/v2/meta.json +3 -0
  123. package/gs/github.com/pkg/errors/errors.ts +1 -2
  124. package/gs/github.com/pkg/errors/index.ts +2 -1
  125. package/gs/github.com/pkg/errors/stack.ts +34 -62
  126. package/gs/golang.org/x/crypto/cryptobyte/asn1/index.test.ts +19 -0
  127. package/gs/golang.org/x/crypto/cryptobyte/asn1/index.ts +29 -0
  128. package/gs/golang.org/x/crypto/cryptobyte/index.test.ts +255 -0
  129. package/gs/golang.org/x/crypto/cryptobyte/index.ts +1441 -0
  130. package/gs/golang.org/x/crypto/cryptobyte/meta.json +3 -0
  131. package/gs/golang.org/x/crypto/internal/alias/index.test.ts +40 -0
  132. package/gs/golang.org/x/crypto/internal/alias/index.ts +40 -0
  133. package/gs/io/fs/glob.ts +1 -1
  134. package/gs/io/fs/meta.json +3 -0
  135. package/gs/io/fs/readlink.test.ts +2 -2
  136. package/gs/io/fs/readlink.ts +5 -2
  137. package/gs/io/fs/stat.test.ts +79 -0
  138. package/gs/io/fs/stat.ts +24 -10
  139. package/gs/io/fs/sub.test.ts +93 -0
  140. package/gs/io/fs/sub.ts +9 -9
  141. package/gs/io/fs/walk.ts +1 -1
  142. package/gs/net/http/index.test.ts +207 -2
  143. package/gs/net/http/index.ts +68 -37
  144. package/gs/net/http/meta.json +3 -1
  145. package/gs/net/http/pprof/index.test.ts +4 -4
  146. package/gs/net/http/pprof/index.ts +30 -27
  147. package/gs/runtime/runtime.test.ts +16 -0
  148. package/gs/runtime/runtime.ts +17 -9
  149. package/gs/runtime/trace/index.test.ts +113 -14
  150. package/gs/runtime/trace/index.ts +384 -34
  151. package/gs/runtime/trace/meta.json +1 -0
  152. package/gs/slices/slices.test.ts +24 -1
  153. package/gs/slices/slices.ts +14 -4
  154. package/gs/sort/meta.json +1 -0
  155. package/gs/sort/search.gs.ts +20 -5
  156. package/gs/sync/sync.ts +4 -1
  157. package/gs/time/time.test.ts +79 -2
  158. package/gs/time/time.ts +133 -33
  159. package/gs/unsafe/unsafe.ts +4 -2
  160. package/package.json +2 -2
@@ -0,0 +1,235 @@
1
+ import * as $ from '@goscript/builtin/index.js';
2
+ import * as errors from '@goscript/errors/index.js';
3
+ import * as io from '@goscript/io/index.js';
4
+ export const NoCompression = 0;
5
+ export const BestSpeed = 1;
6
+ export const BestCompression = 9;
7
+ export const DefaultCompression = -1;
8
+ export const HuffmanOnly = -2;
9
+ export let ErrChecksum = errors.New('gzip: invalid checksum');
10
+ export let ErrHeader = errors.New('gzip: invalid header');
11
+ export function __goscript_set_ErrChecksum(value) {
12
+ ErrChecksum = value;
13
+ }
14
+ export function __goscript_set_ErrHeader(value) {
15
+ ErrHeader = value;
16
+ }
17
+ export class Header {
18
+ Comment = '';
19
+ Extra = null;
20
+ ModTime = null;
21
+ Name = '';
22
+ OS = 255;
23
+ }
24
+ export class Reader {
25
+ data = new Uint8Array(0);
26
+ offset = 0;
27
+ pending = null;
28
+ constructor(r) {
29
+ if (r != null) {
30
+ this.Reset(r);
31
+ }
32
+ }
33
+ async Read(p) {
34
+ const pending = this.pending;
35
+ if (pending != null) {
36
+ this.pending = null;
37
+ const result = await pending;
38
+ if (result.err != null) {
39
+ return [0, result.err];
40
+ }
41
+ this.data = result.data ?? new Uint8Array(0);
42
+ this.offset = 0;
43
+ }
44
+ if (this.offset >= this.data.length) {
45
+ return [0, io.EOF];
46
+ }
47
+ const out = $.bytesToUint8Array(p);
48
+ const n = Math.min(out.length, this.data.length - this.offset);
49
+ out.set(this.data.subarray(this.offset, this.offset + n));
50
+ this.offset += n;
51
+ return [n, null];
52
+ }
53
+ Close() {
54
+ return null;
55
+ }
56
+ Reset(r) {
57
+ if (r == null) {
58
+ return errors.New('gzip: nil reader');
59
+ }
60
+ const result = readGunzipped(r);
61
+ this.data = new Uint8Array(0);
62
+ this.offset = 0;
63
+ if (result instanceof Promise) {
64
+ this.pending = result;
65
+ return null;
66
+ }
67
+ this.pending = null;
68
+ if (result.err != null) {
69
+ return result.err;
70
+ }
71
+ this.data = result.data ?? new Uint8Array(0);
72
+ return null;
73
+ }
74
+ }
75
+ export class Writer {
76
+ w;
77
+ level;
78
+ chunks = [];
79
+ closed = false;
80
+ constructor(w, level = DefaultCompression) {
81
+ this.w = w;
82
+ this.level = level;
83
+ }
84
+ Write(p) {
85
+ if (this.closed) {
86
+ return [0, errors.New('gzip: writer closed')];
87
+ }
88
+ const data = $.bytesToUint8Array(p);
89
+ this.chunks.push(data.slice());
90
+ return [data.length, null];
91
+ }
92
+ async Close() {
93
+ if (this.closed) {
94
+ return null;
95
+ }
96
+ this.closed = true;
97
+ if (this.w == null) {
98
+ return errors.New('gzip: nil writer');
99
+ }
100
+ const compressed = await gzipBytes(concat(this.chunks), this.level);
101
+ const writer = $.pointerValue(this.w);
102
+ const [, err] = await writer.Write(compressed);
103
+ return err;
104
+ }
105
+ Flush() {
106
+ return null;
107
+ }
108
+ Reset(w) {
109
+ this.w = w;
110
+ this.chunks = [];
111
+ this.closed = false;
112
+ }
113
+ }
114
+ export function NewReader(r) {
115
+ const reader = new Reader();
116
+ const err = reader.Reset(r);
117
+ if (err != null) {
118
+ return [null, err];
119
+ }
120
+ return [reader, null];
121
+ }
122
+ export function NewWriter(w) {
123
+ return new Writer(w);
124
+ }
125
+ export function NewWriterLevel(w, level) {
126
+ if (level < HuffmanOnly || level > BestCompression) {
127
+ return [null, errors.New(`gzip: invalid compression level: ${level}`)];
128
+ }
129
+ return [new Writer(w, level), null];
130
+ }
131
+ async function gzipBytes(data, level) {
132
+ const runtime = nodeCompressionRuntime();
133
+ if (runtime?.gzipSync != null) {
134
+ return runtime.gzipSync(data, { level });
135
+ }
136
+ const CompressionStreamCtor = globalThis.CompressionStream;
137
+ if (typeof CompressionStreamCtor !== 'function') {
138
+ throw new Error('compress/gzip: CompressionStream unavailable');
139
+ }
140
+ return streamTransform(data, new CompressionStreamCtor('gzip'));
141
+ }
142
+ function gunzipBytes(data) {
143
+ const runtime = nodeCompressionRuntime();
144
+ if (runtime?.gunzipSync != null) {
145
+ return runtime.gunzipSync(data);
146
+ }
147
+ const DecompressionStreamCtor = globalThis.DecompressionStream;
148
+ if (typeof DecompressionStreamCtor !== 'function') {
149
+ throw new Error('compress/gzip: DecompressionStream unavailable');
150
+ }
151
+ return streamTransform(data, new DecompressionStreamCtor('gzip'));
152
+ }
153
+ async function streamTransform(data, stream) {
154
+ const body = new ArrayBuffer(data.length);
155
+ new Uint8Array(body).set(data);
156
+ const response = new Response(new Blob([body]).stream().pipeThrough(stream));
157
+ return new Uint8Array(await response.arrayBuffer());
158
+ }
159
+ function readGunzipped(r) {
160
+ const chunks = [];
161
+ const buf = $.makeSlice(1, undefined, 'byte');
162
+ while (true) {
163
+ const read = r.Read(buf);
164
+ if (read instanceof Promise) {
165
+ return readGunzippedAsync(read, r, buf, chunks);
166
+ }
167
+ const [n, err] = read;
168
+ recordChunk(chunks, buf, n);
169
+ if (err != null) {
170
+ if (err === io.EOF) {
171
+ return inflateRecorded(chunks);
172
+ }
173
+ return { data: null, err };
174
+ }
175
+ }
176
+ }
177
+ async function readGunzippedAsync(read, r, buf, chunks) {
178
+ while (true) {
179
+ const [n, err] = await read;
180
+ recordChunk(chunks, buf, n);
181
+ if (err != null) {
182
+ if (err === io.EOF) {
183
+ return inflateRecorded(chunks);
184
+ }
185
+ return { data: null, err };
186
+ }
187
+ read = r.Read(buf);
188
+ }
189
+ }
190
+ function recordChunk(chunks, buf, n) {
191
+ if (n > 0) {
192
+ chunks.push($.bytesToUint8Array($.goSlice(buf, 0, n)).slice());
193
+ }
194
+ }
195
+ function inflateRecorded(chunks) {
196
+ try {
197
+ const inflated = gunzipBytes(concat(chunks));
198
+ if (inflated instanceof Promise) {
199
+ return inflated
200
+ .then((data) => ({ data, err: null }))
201
+ .catch(() => ({ data: null, err: ErrHeader }));
202
+ }
203
+ return { data: inflated, err: null };
204
+ }
205
+ catch {
206
+ return { data: null, err: ErrHeader };
207
+ }
208
+ }
209
+ function concat(chunks) {
210
+ let length = 0;
211
+ for (const chunk of chunks) {
212
+ length += chunk.length;
213
+ }
214
+ const out = new Uint8Array(length);
215
+ let offset = 0;
216
+ for (const chunk of chunks) {
217
+ out.set(chunk, offset);
218
+ offset += chunk.length;
219
+ }
220
+ return out;
221
+ }
222
+ function nodeCompressionRuntime() {
223
+ const processObj = globalThis.process;
224
+ if (processObj && typeof processObj.getBuiltinModule === 'function') {
225
+ const mod = processObj.getBuiltinModule('zlib');
226
+ if (mod && typeof mod.gzipSync === 'function') {
227
+ return {
228
+ gzipSync: (data, opts) => new Uint8Array(mod.gzipSync(data, opts)),
229
+ gunzipSync: (data) => new Uint8Array(mod.gunzipSync(data)),
230
+ };
231
+ }
232
+ }
233
+ return null;
234
+ }
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/compress/gzip/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ import * as $ from '@goscript/builtin/index.js';
2
+ import * as context from '@goscript/context/index.js';
3
+ export type Value = any;
4
+ export declare class NamedValue {
5
+ Name: string;
6
+ Ordinal: number;
7
+ Value: Value;
8
+ constructor(init?: Partial<{
9
+ Name: string;
10
+ Ordinal: number;
11
+ Value: Value;
12
+ }>);
13
+ clone(): NamedValue;
14
+ }
15
+ export interface Driver {
16
+ Open(name: string): [Conn | null, $.GoError];
17
+ }
18
+ export interface DriverContext {
19
+ OpenConnector(name: string): [Connector | null, $.GoError];
20
+ }
21
+ export interface Connector {
22
+ Connect(ctx: context.Context | null): [Conn | null, $.GoError];
23
+ Driver(): Driver | null;
24
+ }
25
+ export declare const ErrSkip: $.GoError;
26
+ export declare const ErrBadConn: $.GoError;
27
+ export interface Pinger {
28
+ Ping(ctx: context.Context | null): $.GoError;
29
+ }
30
+ export interface Execer {
31
+ Exec(query: string, args: $.Slice<Value>): [Result | null, $.GoError];
32
+ }
33
+ export interface ExecerContext {
34
+ ExecContext(ctx: context.Context | null, query: string, args: $.Slice<NamedValue>): [Result | null, $.GoError];
35
+ }
36
+ export interface Queryer {
37
+ Query(query: string, args: $.Slice<Value>): [Rows | null, $.GoError];
38
+ }
39
+ export interface QueryerContext {
40
+ QueryContext(ctx: context.Context | null, query: string, args: $.Slice<NamedValue>): [Rows | null, $.GoError];
41
+ }
42
+ export interface Conn {
43
+ Prepare(query: string): [Stmt | null, $.GoError];
44
+ Close(): $.GoError;
45
+ Begin(): [Tx | null, $.GoError];
46
+ }
47
+ export interface ConnPrepareContext {
48
+ PrepareContext(ctx: context.Context | null, query: string): [Stmt | null, $.GoError];
49
+ }
50
+ export type IsolationLevel = number;
51
+ export declare class TxOptions {
52
+ Isolation: IsolationLevel;
53
+ ReadOnly: boolean;
54
+ constructor(init?: Partial<{
55
+ Isolation: IsolationLevel;
56
+ ReadOnly: boolean;
57
+ }>);
58
+ clone(): TxOptions;
59
+ }
60
+ export interface ConnBeginTx {
61
+ BeginTx(ctx: context.Context | null, opts: TxOptions): [Tx | null, $.GoError];
62
+ }
63
+ export interface SessionResetter {
64
+ ResetSession(ctx: context.Context | null): $.GoError;
65
+ }
66
+ export interface Validator {
67
+ IsValid(): boolean;
68
+ }
69
+ export interface Result {
70
+ LastInsertId(): [number, $.GoError];
71
+ RowsAffected(): [number, $.GoError];
72
+ }
73
+ export interface Stmt {
74
+ Close(): $.GoError;
75
+ NumInput(): number;
76
+ Exec(args: $.Slice<Value>): [Result | null, $.GoError];
77
+ Query(args: $.Slice<Value>): [Rows | null, $.GoError];
78
+ }
79
+ export interface StmtExecContext {
80
+ ExecContext(ctx: context.Context | null, args: $.Slice<NamedValue>): [Result | null, $.GoError];
81
+ }
82
+ export interface StmtQueryContext {
83
+ QueryContext(ctx: context.Context | null, args: $.Slice<NamedValue>): [Rows | null, $.GoError];
84
+ }
85
+ export declare const ErrRemoveArgument: $.GoError;
86
+ export interface NamedValueChecker {
87
+ CheckNamedValue(value: NamedValue | $.VarRef<NamedValue> | null): $.GoError;
88
+ }
89
+ export interface ColumnConverter {
90
+ ColumnConverter(idx: number): ValueConverter | null;
91
+ }
92
+ export interface Rows {
93
+ Columns(): $.Slice<string>;
94
+ Close(): $.GoError;
95
+ Next(dest: $.Slice<Value>): $.GoError;
96
+ }
97
+ export interface RowsNextResultSet extends Rows {
98
+ HasNextResultSet(): boolean;
99
+ NextResultSet(): $.GoError;
100
+ }
101
+ export interface RowsColumnTypeScanType extends Rows {
102
+ ColumnTypeScanType(index: number): unknown;
103
+ }
104
+ export interface RowsColumnTypeDatabaseTypeName extends Rows {
105
+ ColumnTypeDatabaseTypeName(index: number): string;
106
+ }
107
+ export interface RowsColumnTypeLength extends Rows {
108
+ ColumnTypeLength(index: number): [number, boolean];
109
+ }
110
+ export interface RowsColumnTypeNullable extends Rows {
111
+ ColumnTypeNullable(index: number): [boolean, boolean];
112
+ }
113
+ export interface RowsColumnTypePrecisionScale extends Rows {
114
+ ColumnTypePrecisionScale(index: number): [number, number, boolean];
115
+ }
116
+ export interface Tx {
117
+ Commit(): $.GoError;
118
+ Rollback(): $.GoError;
119
+ }
120
+ export type RowsAffected = number;
121
+ export declare function RowsAffected_LastInsertId(_v: RowsAffected): [number, $.GoError];
122
+ export declare function RowsAffected_RowsAffected(v: RowsAffected): [number, $.GoError];
123
+ export declare const ResultNoRows: Result;
124
+ export interface ValueConverter {
125
+ ConvertValue(v: any): [Value, $.GoError];
126
+ }
127
+ export interface Valuer {
128
+ Value(): [Value, $.GoError];
129
+ }
130
+ declare class boolType implements ValueConverter {
131
+ String(): string;
132
+ ConvertValue(src: any): [Value, $.GoError];
133
+ }
134
+ export declare const Bool: boolType;
135
+ declare class int32Type implements ValueConverter {
136
+ ConvertValue(v: any): [Value, $.GoError];
137
+ }
138
+ export declare const Int32: int32Type;
139
+ declare class stringType implements ValueConverter {
140
+ ConvertValue(v: any): [Value, $.GoError];
141
+ }
142
+ export declare const String: stringType;
143
+ export declare class Null implements ValueConverter {
144
+ Converter: ValueConverter | null;
145
+ constructor(init?: Partial<{
146
+ Converter: ValueConverter | null;
147
+ }>);
148
+ clone(): Null;
149
+ ConvertValue(v: any): [Value, $.GoError];
150
+ }
151
+ export declare class NotNull implements ValueConverter {
152
+ Converter: ValueConverter | null;
153
+ constructor(init?: Partial<{
154
+ Converter: ValueConverter | null;
155
+ }>);
156
+ clone(): NotNull;
157
+ ConvertValue(v: any): [Value, $.GoError];
158
+ }
159
+ declare class defaultConverter implements ValueConverter {
160
+ ConvertValue(v: any): [Value, $.GoError];
161
+ }
162
+ export declare const DefaultParameterConverter: defaultConverter;
163
+ export declare function IsValue(v: any): boolean;
164
+ export declare function IsScanValue(v: any): boolean;
165
+ export {};