goscript 0.0.24 → 0.0.26

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 (75) hide show
  1. package/README.md +1 -1
  2. package/cmd/goscript/cmd_compile.go +17 -1
  3. package/compiler/analysis.go +1 -1
  4. package/compiler/builtin_test.go +2 -14
  5. package/compiler/compiler.go +251 -11
  6. package/compiler/compiler_test.go +60 -0
  7. package/compiler/decl.go +7 -1
  8. package/compiler/expr-call.go +212 -2
  9. package/compiler/expr.go +46 -2
  10. package/compiler/field.go +4 -4
  11. package/compiler/spec-value.go +1 -1
  12. package/compiler/stmt-range.go +204 -1
  13. package/compiler/type.go +47 -4
  14. package/dist/gs/builtin/builtin.d.ts +9 -0
  15. package/dist/gs/builtin/builtin.js +10 -1
  16. package/dist/gs/builtin/builtin.js.map +1 -1
  17. package/dist/gs/builtin/channel.d.ts +193 -0
  18. package/dist/gs/builtin/channel.js.map +1 -1
  19. package/dist/gs/builtin/defer.d.ts +38 -0
  20. package/dist/gs/builtin/defer.js.map +1 -1
  21. package/dist/gs/builtin/index.d.ts +1 -0
  22. package/dist/gs/builtin/index.js +2 -0
  23. package/dist/gs/builtin/index.js.map +1 -0
  24. package/dist/gs/builtin/io.d.ts +16 -0
  25. package/dist/gs/builtin/io.js.map +1 -1
  26. package/dist/gs/builtin/map.d.ts +33 -0
  27. package/dist/gs/builtin/map.js.map +1 -1
  28. package/dist/gs/builtin/slice.d.ts +173 -0
  29. package/dist/gs/builtin/slice.js +38 -24
  30. package/dist/gs/builtin/slice.js.map +1 -1
  31. package/dist/gs/builtin/type.d.ts +203 -0
  32. package/dist/gs/builtin/type.js +1 -2
  33. package/dist/gs/builtin/type.js.map +1 -1
  34. package/dist/gs/builtin/varRef.d.ts +14 -0
  35. package/dist/gs/builtin/varRef.js.map +1 -1
  36. package/dist/gs/cmp/index.d.ts +4 -0
  37. package/dist/gs/cmp/index.js +27 -0
  38. package/dist/gs/cmp/index.js.map +1 -0
  39. package/dist/gs/context/context.d.ts +26 -0
  40. package/dist/gs/context/context.js +297 -38
  41. package/dist/gs/context/context.js.map +1 -1
  42. package/dist/gs/context/index.d.ts +1 -0
  43. package/dist/gs/errors/errors.d.ts +8 -0
  44. package/dist/gs/errors/errors.js +190 -0
  45. package/dist/gs/errors/errors.js.map +1 -0
  46. package/dist/gs/errors/index.d.ts +1 -0
  47. package/dist/gs/errors/index.js +2 -0
  48. package/dist/gs/errors/index.js.map +1 -0
  49. package/dist/gs/internal/goarch/index.d.ts +6 -0
  50. package/dist/gs/internal/goarch/index.js +14 -0
  51. package/dist/gs/internal/goarch/index.js.map +1 -0
  52. package/dist/gs/iter/index.d.ts +1 -0
  53. package/dist/gs/iter/index.js +2 -0
  54. package/dist/gs/iter/index.js.map +1 -0
  55. package/dist/gs/iter/iter.d.ts +4 -0
  56. package/dist/gs/iter/iter.js +91 -0
  57. package/dist/gs/iter/iter.js.map +1 -0
  58. package/dist/gs/math/bits/index.d.ts +47 -0
  59. package/dist/gs/math/bits/index.js +300 -0
  60. package/dist/gs/math/bits/index.js.map +1 -0
  61. package/dist/gs/runtime/index.d.ts +1 -0
  62. package/dist/gs/runtime/runtime.d.ts +42 -0
  63. package/dist/gs/runtime/runtime.js +15 -18
  64. package/dist/gs/runtime/runtime.js.map +1 -1
  65. package/dist/gs/slices/index.d.ts +1 -0
  66. package/dist/gs/slices/index.js +2 -0
  67. package/dist/gs/slices/index.js.map +1 -0
  68. package/dist/gs/slices/slices.d.ts +8 -0
  69. package/dist/gs/slices/slices.js +20 -0
  70. package/dist/gs/slices/slices.js.map +1 -0
  71. package/dist/gs/time/index.d.ts +1 -0
  72. package/dist/gs/time/time.d.ts +57 -0
  73. package/dist/gs/time/time.js +108 -15
  74. package/dist/gs/time/time.js.map +1 -1
  75. package/package.json +3 -2
@@ -5,6 +5,15 @@ export * from './io.js';
5
5
  export * from './map.js';
6
6
  export * from './slice.js';
7
7
  export * from './type.js';
8
+ // Copy is the Go builtin function that copies the contents of one slice to another.
9
+ // It returns the number of elements copied.
10
+ export function copy(dst, src) {
11
+ const n = Math.min(dst.length, src.length);
12
+ for (let i = 0; i < n; i++) {
13
+ dst[i] = src[i];
14
+ }
15
+ return n;
16
+ }
8
17
  // Duration multiplication helper for time package operations
9
18
  // Handles expressions like time.Hour * 24
10
19
  export function multiplyDuration(duration, multiplier) {
@@ -24,7 +33,7 @@ export function multiplyDuration(duration, multiplier) {
24
33
  // Fallback: return a simple object with valueOf
25
34
  return {
26
35
  valueOf: () => numValue * multiplier,
27
- toString: () => (numValue * multiplier).toString() + "ns"
36
+ toString: () => (numValue * multiplier).toString() + 'ns',
28
37
  };
29
38
  }
30
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,6DAA6D;AAC7D,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,QAAa,EAAE,UAAkB,EAAO;IACvE,oEAAoE;IACpE,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,gEAAgE;IAChE,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpC,gEAAgE;QAChE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,gDAAgD;YAChD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;YACzD,CAAC;YACD,gDAAgD;YAChD,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,GAAG,UAAU;gBACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;aAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,QAAQ,EAAE,CAAC,CAAC;AAAA,CACxE"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../gs/builtin/builtin.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,oFAAoF;AACpF,4CAA4C;AAC5C,MAAM,UAAU,IAAI,CAAI,GAAQ,EAAE,GAAQ;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,6DAA6D;AAC7D,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,QAAa,EAAE,UAAkB;IAChE,oEAAoE;IACpE,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED,gEAAgE;IAChE,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;QACnC,gEAAgE;QAChE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,gDAAgD;YAChD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAA;YACxD,CAAC;YACD,gDAAgD;YAChD,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,GAAG,UAAU;gBACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;aAC1D,CAAA;QACH,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,QAAQ,EAAE,CAAC,CAAA;AACxE,CAAC"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Represents the result of a channel receive operation with 'ok' value
3
+ */
4
+ export interface ChannelReceiveResult<T> {
5
+ value: T;
6
+ ok: boolean;
7
+ }
8
+ /**
9
+ * Represents a result from a select operation
10
+ */
11
+ export interface SelectResult<T> {
12
+ value: T;
13
+ ok: boolean;
14
+ id: number;
15
+ }
16
+ /**
17
+ * Represents a Go channel in TypeScript.
18
+ * Supports asynchronous sending and receiving of values.
19
+ */
20
+ export interface Channel<T> {
21
+ /**
22
+ * Sends a value to the channel.
23
+ * Returns a promise that resolves when the value is accepted by the channel.
24
+ * @param value The value to send.
25
+ */
26
+ send(value: T): Promise<void>;
27
+ /**
28
+ * Receives a value from the channel.
29
+ * Returns a promise that resolves with the received value.
30
+ * If the channel is closed, it throws an error.
31
+ */
32
+ receive(): Promise<T>;
33
+ /**
34
+ * Receives a value from the channel along with a boolean indicating
35
+ * whether the channel is still open.
36
+ * Returns a promise that resolves with {value, ok}.
37
+ * - If channel is open and has data: {value: <data>, ok: true}
38
+ * - If channel is closed and empty: {value: <zero value>, ok: false}
39
+ * - If channel is closed but has remaining buffered data: {value: <data>, ok: true}
40
+ */
41
+ receiveWithOk(): Promise<ChannelReceiveResult<T>>;
42
+ /**
43
+ * Closes the channel.
44
+ * No more values can be sent to a closed channel.
45
+ * Receive operations on a closed channel return the zero value and ok=false.
46
+ */
47
+ close(): void;
48
+ /**
49
+ * Used in select statements to create a receive operation promise.
50
+ * @param id An identifier for this case in the select statement
51
+ * @returns Promise that resolves when this case is selected
52
+ */
53
+ selectReceive(id: number): Promise<SelectResult<T>>;
54
+ /**
55
+ * Used in select statements to create a send operation promise.
56
+ * @param value The value to send
57
+ * @param id An identifier for this case in the select statement
58
+ * @returns Promise that resolves when this case is selected
59
+ */
60
+ selectSend(value: T, id: number): Promise<SelectResult<boolean>>;
61
+ /**
62
+ * Checks if the channel has data ready to be received without blocking.
63
+ * Used for non-blocking select operations.
64
+ */
65
+ canReceiveNonBlocking(): boolean;
66
+ /**
67
+ * Checks if the channel can accept a send operation without blocking.
68
+ * Used for non-blocking select operations.
69
+ */
70
+ canSendNonBlocking(): boolean;
71
+ }
72
+ /**
73
+ * Represents a case in a select statement.
74
+ */
75
+ export interface SelectCase<T> {
76
+ id: number;
77
+ isSend: boolean;
78
+ channel: Channel<any> | ChannelRef<any> | null;
79
+ value?: any;
80
+ onSelected?: (result: SelectResult<T>) => Promise<void>;
81
+ }
82
+ /**
83
+ * Helper for 'select' statements. Takes an array of select cases
84
+ * and resolves when one of them completes, following Go's select rules.
85
+ *
86
+ * @param cases Array of SelectCase objects
87
+ * @param hasDefault Whether there is a default case
88
+ * @returns A promise that resolves with the result of the selected case
89
+ */
90
+ export declare function selectStatement<T>(cases: SelectCase<T>[], hasDefault?: boolean): Promise<void>;
91
+ /**
92
+ * Helper function for channel send operations that handles nil channels correctly.
93
+ * In Go, sending to a nil channel blocks forever.
94
+ * @param channel The channel to send to (can be null)
95
+ * @param value The value to send
96
+ * @returns Promise that never resolves if channel is null, otherwise delegates to channel.send()
97
+ */
98
+ export declare function chanSend<T>(channel: Channel<T> | ChannelRef<T> | null, value: T): Promise<void>;
99
+ /**
100
+ * Helper function for channel receive operations that handles nil channels correctly.
101
+ * In Go, receiving from a nil channel blocks forever.
102
+ * @param channel The channel to receive from (can be null)
103
+ * @returns Promise that never resolves if channel is null, otherwise delegates to channel.receive()
104
+ */
105
+ export declare function chanRecv<T>(channel: Channel<T> | ChannelRef<T> | null): Promise<T>;
106
+ /**
107
+ * Helper function for channel receive operations with ok value that handles nil channels correctly.
108
+ * In Go, receiving from a nil channel blocks forever.
109
+ * @param channel The channel to receive from (can be null)
110
+ * @returns Promise that never resolves if channel is null, otherwise delegates to channel.receiveWithOk()
111
+ */
112
+ export declare function chanRecvWithOk<T>(channel: Channel<T> | ChannelRef<T> | null): Promise<ChannelReceiveResult<T>>;
113
+ /**
114
+ * Creates a new channel with the specified buffer size and zero value.
115
+ * @param bufferSize The size of the channel buffer. If 0, creates an unbuffered channel.
116
+ * @param zeroValue The zero value for the channel's element type.
117
+ * @param direction Optional direction for the channel. Default is 'both' (bidirectional).
118
+ * @returns A new channel instance or channel reference.
119
+ */
120
+ export declare const makeChannel: <T>(bufferSize: number, zeroValue: T, direction?: "send" | "receive" | "both") => Channel<T> | ChannelRef<T>;
121
+ /**
122
+ * Represents a reference to a channel with a specific direction.
123
+ */
124
+ export interface ChannelRef<T> {
125
+ /**
126
+ * The underlying channel
127
+ */
128
+ channel: Channel<T>;
129
+ /**
130
+ * The direction of this channel reference
131
+ */
132
+ direction: 'send' | 'receive' | 'both';
133
+ send(value: T): Promise<void>;
134
+ receive(): Promise<T>;
135
+ receiveWithOk(): Promise<ChannelReceiveResult<T>>;
136
+ close(): void;
137
+ canSendNonBlocking(): boolean;
138
+ canReceiveNonBlocking(): boolean;
139
+ selectSend(value: T, id: number): Promise<SelectResult<boolean>>;
140
+ selectReceive(id: number): Promise<SelectResult<T>>;
141
+ }
142
+ /**
143
+ * A bidirectional channel reference.
144
+ */
145
+ export declare class BidirectionalChannelRef<T> implements ChannelRef<T> {
146
+ channel: Channel<T>;
147
+ direction: 'both';
148
+ constructor(channel: Channel<T>);
149
+ send(value: T): Promise<void>;
150
+ receive(): Promise<T>;
151
+ receiveWithOk(): Promise<ChannelReceiveResult<T>>;
152
+ close(): void;
153
+ canSendNonBlocking(): boolean;
154
+ canReceiveNonBlocking(): boolean;
155
+ selectSend(value: T, id: number): Promise<SelectResult<boolean>>;
156
+ selectReceive(id: number): Promise<SelectResult<T>>;
157
+ }
158
+ /**
159
+ * A send-only channel reference.
160
+ */
161
+ export declare class SendOnlyChannelRef<T> implements ChannelRef<T> {
162
+ channel: Channel<T>;
163
+ direction: 'send';
164
+ constructor(channel: Channel<T>);
165
+ send(value: T): Promise<void>;
166
+ close(): void;
167
+ canSendNonBlocking(): boolean;
168
+ selectSend(value: T, id: number): Promise<SelectResult<boolean>>;
169
+ receive(): Promise<T>;
170
+ receiveWithOk(): Promise<ChannelReceiveResult<T>>;
171
+ canReceiveNonBlocking(): boolean;
172
+ selectReceive(id: number): Promise<SelectResult<T>>;
173
+ }
174
+ /**
175
+ * A receive-only channel reference.
176
+ */
177
+ export declare class ReceiveOnlyChannelRef<T> implements ChannelRef<T> {
178
+ channel: Channel<T>;
179
+ direction: 'receive';
180
+ constructor(channel: Channel<T>);
181
+ receive(): Promise<T>;
182
+ receiveWithOk(): Promise<ChannelReceiveResult<T>>;
183
+ canReceiveNonBlocking(): boolean;
184
+ selectReceive(id: number): Promise<SelectResult<T>>;
185
+ send(value: T): Promise<void>;
186
+ close(): void;
187
+ canSendNonBlocking(): boolean;
188
+ selectSend(value: T, id: number): Promise<SelectResult<boolean>>;
189
+ }
190
+ /**
191
+ * Creates a new channel reference with the specified direction.
192
+ */
193
+ export declare function makeChannelRef<T>(channel: Channel<T>, direction: 'send' | 'receive' | 'both'): ChannelRef<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../gs/builtin/channel.ts"],"names":[],"mappings":"AA6FA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAsB,EACtB,UAAU,GAAY,KAAK,EACZ;IACf,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,uEAAuE;QACvE,+DAA+D;QAC/D,OAAO,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,yBAAyB;IAC9D,CAAC;IAED,+CAA+C;IAC/C,MAAM,UAAU,GAAoB,EAAE,CAAA;IACtC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,kCAAkC;YAClC,SAAQ;QACV,CAAC;QACD,iDAAiD;QACjD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;iBAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;gBACtE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,6DAA6D;QAC7D,MAAM,YAAY,GAChB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;QAE3D,4DAA4D;QAC5D,kCAAkC;QAClC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAClD,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,EAAE,CAChB,CAAA;gBACD,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;oBAC5B,MAAM,YAAY,CAAC,UAAU,CAAC,MAAyB,CAAC,CAAA,CAAC,oBAAoB;gBAC/E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;gBACxE,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;oBAC5B,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC,oBAAoB;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mFAAmF;YACnF,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAA;QACjE,CAAC;QACD,OAAM,CAAC,sCAAsC;IAC/C,CAAC;IAED,2EAA2E;IAC3E,IAAI,UAAU,EAAE,CAAC;QACf,6CAA6C;QAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC1C,sDAAsD;YACtD,MAAM,WAAW,CAAC,UAAU,CAAC;gBAC3B,KAAK,EAAE,SAAS;gBAChB,EAAE,EAAE,KAAK;gBACT,EAAE,EAAE,CAAC,CAAC;aACY,CAAC,CAAA,CAAC,oBAAoB;QAC5C,CAAC;QACD,OAAM,CAAC,0CAA0C;IACnD,CAAC;IAED,8EAA8E;IAC9E,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,KAAK;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB;SAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,kDAAkD;SACpF,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,6DAA6D;QAC7D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,OAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,OAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnD,CAAC;IAAA,CACF,CAAC,CAAA;IAEJ,2EAA2E;IAC3E,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,4EAA4E;QAC5E,OAAO,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,yBAAyB;IAC9D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACnD,mDAAmD;IACnD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;IAC1D,IAAI,YAAY,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC,oBAAoB;IAC5D,CAAC;IACD,yFAAyF;AADxF,CAEF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAA0C,EAC1C,KAAQ,EACO;IACf,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,iDAAiD;QACjD,OAAO,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,8BAA8B;IACnE,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAAA,CAC3B;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAA0C,EAC9B;IACZ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,qDAAqD;QACrD,OAAO,IAAI,OAAO,CAAI,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,8BAA8B;IAChE,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;AAAA,CACzB;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA0C,EACR;IAClC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,qDAAqD;QACrD,OAAO,IAAI,OAAO,CAA0B,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,8BAA8B;IACtF,CAAC;IACD,OAAO,OAAO,CAAC,aAAa,EAAE,CAAA;AAAA,CAC/B;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,UAAkB,EAClB,SAAY,EACZ,SAAS,GAAgC,MAAM,EACnB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,eAAe,CAAI,UAAU,EAAE,SAAS,CAAC,CAAA;IAE7D,sEAAsE;IACtE,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,IAAI,kBAAkB,CAAI,OAAO,CAAkB,CAAA;IAC5D,CAAC;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,qBAAqB,CAAI,OAAO,CAAkB,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;AAAA,CACF,CAAA;AAED,+CAA+C;AAC/C,MAAM,eAAe;IACX,MAAM,GAAQ,EAAE,CAAA;IAChB,MAAM,GAAY,KAAK,CAAA;IACvB,QAAQ,CAAQ;IACjB,SAAS,CAAG,CAAC,6DAA6D;IAEjF,qEAAqE;IAC7D,OAAO,GAIV,EAAE,CAAA;IAEP,oFAAoF;IAC5E,SAAS,GAGZ,EAAE,CAAA;IAEP,4EAA4E;IACpE,eAAe,GAElB,EAAE,CAAA;IAEP,YAAY,QAAgB,EAAE,SAAY,EAAE;QAC1C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAAA,CAC3B;IAED,KAAK,CAAC,IAAI,CAAC,KAAQ,EAAiB;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,yDAAyD;QACzD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAG,CAAA;YAC5C,cAAc,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;YACxD,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAG,CAAA;YAClD,cAAc,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACtE,OAAM;QACR,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;QAED,qFAAqF;QACrF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;QAAA,CACvE,CAAC,CAAA;IAAA,CACH;IAED,KAAK,CAAC,OAAO,GAAe;QAC1B,mCAAmC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,CAAA;YAClC,mEAAmE;YACnE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,CAAC,sCAAsC;gBACzE,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,iBAAiB;YAClE,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,mBAAmB;QACnB,iEAAiE;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CAAA;QACvB,CAAC;QAED,oCAAoC;QACpC,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;YACxC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,qBAAqB;YACpE,OAAO,UAAU,CAAC,KAAK,CAAA,CAAC,+BAA+B;QACzD,CAAC;QAED,6EAA6E;QAC7E,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAA;QAAA,CACxE,CAAC,CAAA;IAAA,CACH;IAED,KAAK,CAAC,aAAa,GAAqC;QACtD,mCAAmC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,CAAA;YAClC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBAClC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QAC5B,CAAC;QAED,mBAAmB;QACnB,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;YACxC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;YAC9C,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QAC9C,CAAC;QAED,uCAAuC;QACvC,0DAA0D;QAC1D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;QAC7C,CAAC;QAED,6EAA6E;QAC7E,OAAO,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAA;QAAA,CACvD,CAAC,CAAA;IAAA,CACH;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAA4B;QACxD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,CAAA;YAClC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBAClC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;YACxC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;YAC9C,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QACjD,CAAC;QAED,OAAO,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACxB,cAAc,EAAE,CAAC,MAA+B,EAAE,EAAE,CAAC;oBACnD,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;gBAAA,CAC3B;aACF,CAAC,CAAA;QAAA,CACH,CAAC,CAAA;IAAA,CACH;IAED,KAAK,CAAC,UAAU,CAAC,KAAQ,EAAE,EAAU,EAAkC;QACrE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,0DAA0D;YAC1D,6DAA6D;YAC7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAG,CAAA;YAC5C,cAAc,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;YACxD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAG,CAAA;YAClD,cAAc,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACtE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QACtC,CAAC;QAED,OAAO,IAAI,OAAO,CAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,KAAK;gBACL,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACzD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,oCAAoC;aACnE,CAAC,CAAA;QAAA,CACH,CAAC,CAAA;IAAA,CACH;IAED,KAAK,GAAS;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAElB,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC,6BAA6B;QACvE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;YACzC,cAAc,CAAC,GAAG,EAAE,CAClB,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAC3D,CAAA;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,YAAY,IAAI,iBAAiB,EAAE,CAAC;YAC7C,cAAc,CAAC,GAAG,EAAE,CAClB,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5C,CAAA;QACH,CAAC;QAED,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAA;QACzD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,KAAK,MAAM,YAAY,IAAI,uBAAuB,EAAE,CAAC;YACnD,cAAc,CAAC,GAAG,EAAE,CAClB,YAAY,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAClE,CAAA;QACH,CAAC;IAAA,CACF;IAED,qBAAqB,GAAY;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAA;IAAA,CACxE;IAED,kBAAkB,GAAY;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAA,CAAC,iBAAiB;QAC/B,CAAC;QACD,OAAO,CACL,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAChC,CAAA;IAAA,CACF;CACF;AA2BD;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAGf,OAAO;IAF1B,SAAS,GAAW,MAAM,CAAA;IAE1B,YAAmB,OAAmB,EAAE;uBAArB,OAAO;IAAe,CAAC;IAE1C,iDAAiD;IACjD,IAAI,CAAC,KAAQ,EAAiB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAAA,CAChC;IAED,OAAO,GAAe;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAAA,CAC9B;IAED,aAAa,GAAqC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;IAAA,CACpC;IAED,KAAK,GAAS;QACZ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAAA,CACrB;IAED,kBAAkB,GAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAA;IAAA,CACzC;IAED,qBAAqB,GAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAA;IAAA,CAC5C;IAED,UAAU,CAAC,KAAQ,EAAE,EAAU,EAAkC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAAA,CAC1C;IAED,aAAa,CAAC,EAAU,EAA4B;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAAA,CACtC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAGV,OAAO;IAF1B,SAAS,GAAW,MAAM,CAAA;IAE1B,YAAmB,OAAmB,EAAE;uBAArB,OAAO;IAAe,CAAC;IAE1C,wBAAwB;IACxB,IAAI,CAAC,KAAQ,EAAiB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAAA,CAChC;IAED,yBAAyB;IACzB,KAAK,GAAS;QACZ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAAA,CACrB;IAED,kBAAkB,GAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAA;IAAA,CACzC;IAED,UAAU,CAAC,KAAQ,EAAE,EAAU,EAAkC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAAA,CAC1C;IAED,8BAA8B;IAC9B,OAAO,GAAe;QACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAAA,CACzD;IAED,aAAa,GAAqC;QAChD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAAA,CACzD;IAED,qBAAqB,GAAY;QAC/B,OAAO,KAAK,CAAA;IAAA,CACb;IAED,aAAa,CAAC,EAAU,EAA4B;QAClD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAAA,CACzD;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAGb,OAAO;IAF1B,SAAS,GAAc,SAAS,CAAA;IAEhC,YAAmB,OAAmB,EAAE;uBAArB,OAAO;IAAe,CAAC;IAE1C,2BAA2B;IAC3B,OAAO,GAAe;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAAA,CAC9B;IAED,aAAa,GAAqC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;IAAA,CACpC;IAED,qBAAqB,GAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAA;IAAA,CAC5C;IAED,aAAa,CAAC,EAAU,EAA4B;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAAA,CACtC;IAED,2BAA2B;IAC3B,IAAI,CAAC,KAAQ,EAAiB;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAAA,CACvD;IAED,4BAA4B;IAC5B,KAAK,GAAS;QACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAAA,CACrD;IAED,kBAAkB,GAAY;QAC5B,OAAO,KAAK,CAAA;IAAA,CACb;IAED,UAAU,CAAC,KAAQ,EAAE,EAAU,EAAkC;QAC/D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAAA,CACvD;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAmB,EACnB,SAAsC,EACvB;IACf,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,IAAI,kBAAkB,CAAI,OAAO,CAAC,CAAA;QAC3C,KAAK,SAAS;YACZ,OAAO,IAAI,qBAAqB,CAAI,OAAO,CAAC,CAAA;QAC9C,SAAS,SAAS;YAChB,OAAO,IAAI,uBAAuB,CAAI,OAAO,CAAC,CAAA;IAClD,CAAC;AAAA,CACF"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../gs/builtin/channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * DisposableStack manages synchronous disposable resources, mimicking Go's defer behavior.
3
+ * Functions added via `defer` are executed in LIFO order when the stack is disposed.
4
+ * Implements the `Disposable` interface for use with `using` declarations.
5
+ */
6
+ export declare class DisposableStack implements Disposable {
7
+ private stack;
8
+ /**
9
+ * Adds a function to be executed when the stack is disposed.
10
+ * @param fn The function to defer.
11
+ */
12
+ defer(fn: () => void): void;
13
+ /**
14
+ * Disposes of the resources in the stack by executing the deferred functions
15
+ * in Last-In, First-Out (LIFO) order.
16
+ * If a deferred function throws an error, disposal stops, and the error is rethrown,
17
+ * similar to Go's panic behavior during defer execution.
18
+ */
19
+ [Symbol.dispose](): void;
20
+ }
21
+ /**
22
+ * AsyncDisposableStack manages asynchronous disposable resources, mimicking Go's defer behavior.
23
+ * Functions added via `defer` are executed sequentially in LIFO order when the stack is disposed.
24
+ * Implements the `AsyncDisposable` interface for use with `await using` declarations.
25
+ */
26
+ export declare class AsyncDisposableStack implements AsyncDisposable {
27
+ private stack;
28
+ /**
29
+ * Adds a synchronous or asynchronous function to be executed when the stack is disposed.
30
+ * @param fn The function to defer. Can return void or a Promise<void>.
31
+ */
32
+ defer(fn: () => Promise<void> | void): void;
33
+ /**
34
+ * Asynchronously disposes of the resources in the stack by executing the deferred functions
35
+ * sequentially in Last-In, First-Out (LIFO) order. It awaits each function if it returns a promise.
36
+ */
37
+ [Symbol.asyncDispose](): Promise<void>;
38
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"defer.js","sourceRoot":"","sources":["../../../gs/builtin/defer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAClB,KAAK,GAAmB,EAAE,CAAA;IAElC;;;OAGG;IACH,KAAK,CAAC,EAAc,EAAQ;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAAA,CACpB;IAED;;;;;OAKG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,GAAS;QACvB,qDAAqD;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAG,CAAA;YAC5B,EAAE,EAAE,CAAA;QACN,CAAC;IAAA,CACF;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IACvB,KAAK,GAAmC,EAAE,CAAA;IAElD;;;OAGG;IACH,KAAK,CAAC,EAA8B,EAAQ;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAAA,CACpB;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAkB;QAC3C,kEAAkE;QAClE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvB,CAAC;IAAA,CACF;CACF"}
1
+ {"version":3,"file":"defer.js","sourceRoot":"","sources":["../../../gs/builtin/defer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAClB,KAAK,GAAmB,EAAE,CAAA;IAElC;;;OAGG;IACH,KAAK,CAAC,EAAc;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IAED;;;;;OAKG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,qDAAqD;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAG,CAAA;YAC5B,EAAE,EAAE,CAAA;QACN,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IACvB,KAAK,GAAmC,EAAE,CAAA;IAElD;;;OAGG;IACH,KAAK,CAAC,EAA8B;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,kEAAkE;QAClE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export * from './builtin.js';
@@ -0,0 +1,2 @@
1
+ export * from './builtin.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/builtin/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Implementation of Go's built-in println function
3
+ * @param args Arguments to print
4
+ */
5
+ export declare function println(...args: any[]): void;
6
+ /**
7
+ * Implementation of Go's built-in panic function
8
+ * @param args Arguments passed to panic
9
+ */
10
+ export declare function panic(...args: any[]): void;
11
+ /**
12
+ * Represents the Go error type (interface).
13
+ */
14
+ export type GoError = {
15
+ Error(): string;
16
+ } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../gs/builtin/io.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAG,IAAW,EAAQ;IAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;AAAA,CACrB;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,GAAG,IAAW,EAAQ;IAC1C,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAAA,CACtE"}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../gs/builtin/io.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAG,IAAW;IACpC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,GAAG,IAAW;IAClC,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACvE,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Creates a new map (TypeScript Map).
3
+ * @returns A new TypeScript Map.
4
+ */
5
+ export declare const makeMap: <K, V>() => Map<K, V>;
6
+ /**
7
+ * Gets a value from a map, with a default value if the key doesn't exist.
8
+ * @param map The map to get from.
9
+ * @param key The key to get.
10
+ * @param defaultValue The default value to return if the key doesn't exist (defaults to 0).
11
+ * @returns The value for the key, or the default value if the key doesn't exist.
12
+ */
13
+ export declare const mapGet: <K, V>(map: Map<K, V>, key: K, defaultValue?: V | null) => V | null;
14
+ /**
15
+ * Sets a value in a map.
16
+ * @param map The map to set in.
17
+ * @param key The key to set.
18
+ * @param value The value to set.
19
+ */
20
+ export declare const mapSet: <K, V>(map: Map<K, V>, key: K, value: V) => void;
21
+ /**
22
+ * Deletes a key from a map.
23
+ * @param map The map to delete from.
24
+ * @param key The key to delete.
25
+ */
26
+ export declare const deleteMapEntry: <K, V>(map: Map<K, V>, key: K) => void;
27
+ /**
28
+ * Checks if a key exists in a map.
29
+ * @param map The map to check in.
30
+ * @param key The key to check.
31
+ * @returns True if the key exists, false otherwise.
32
+ */
33
+ export declare const mapHas: <K, V>(map: Map<K, V>, key: K) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../gs/builtin/map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAoB,EAAE,CAAC;IAC5C,OAAO,IAAI,GAAG,EAAQ,CAAA;AAAA,CACvB,CAAA;AACD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAAc,EACd,GAAM,EACN,YAAY,GAAa,IAAI,EACnB,EAAE,CAAC;IACb,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,YAAY,CAAA;AAAA,CACnD,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAE,KAAQ,EAAQ,EAAE,CAAC;IACtE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAAA,CACpB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAO,GAAc,EAAE,GAAM,EAAQ,EAAE,CAAC;IACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAAA,CAChB,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAW,EAAE,CAAC;IAC/D,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAAA,CACpB,CAAA"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../gs/builtin/map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAoB,EAAE;IAC3C,OAAO,IAAI,GAAG,EAAQ,CAAA;AACxB,CAAC,CAAA;AACD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAAc,EACd,GAAM,EACN,eAAyB,IAAI,EACnB,EAAE;IACZ,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,YAAY,CAAA;AACpD,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAE,KAAQ,EAAQ,EAAE;IACrE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACrB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAO,GAAc,EAAE,GAAM,EAAQ,EAAE;IACnE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,GAAc,EAAE,GAAM,EAAW,EAAE;IAC9D,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACrB,CAAC,CAAA"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * GoSliceObject contains metadata for complex slice views
3
+ */
4
+ interface GoSliceObject<T> {
5
+ backing: T[];
6
+ offset: number;
7
+ length: number;
8
+ capacity: number;
9
+ }
10
+ /**
11
+ * SliceProxy is a proxy object for complex slices
12
+ */
13
+ export type SliceProxy<T> = T[] & {
14
+ __meta__: GoSliceObject<T>;
15
+ };
16
+ /**
17
+ * Slice<T> is a union type that is either a plain array or a proxy
18
+ * null represents the nil state.
19
+ *
20
+ * Slice<number> can be represented as Uint8Array.
21
+ */
22
+ export type Slice<T> = T[] | SliceProxy<T> | null | (T extends number ? Uint8Array : never);
23
+ export declare function asArray<T>(slice: Slice<T>): T[];
24
+ /**
25
+ * Creates a new slice with the specified length and capacity.
26
+ * @param length The length of the slice.
27
+ * @param capacity The capacity of the slice (optional).
28
+ * @returns A new slice.
29
+ */
30
+ export declare const makeSlice: <T>(length: number, capacity?: number, typeHint?: string) => Slice<T>;
31
+ /**
32
+ * goSlice creates a slice from s[low:high:max]
33
+ * Arguments mirror Go semantics; omitted indices are undefined.
34
+ *
35
+ * @param s The original slice
36
+ * @param low Starting index (defaults to 0)
37
+ * @param high Ending index (defaults to s.length)
38
+ * @param max Capacity limit (defaults to original capacity)
39
+ */
40
+ export declare const goSlice: <T>(// T can be number for Uint8Array case
41
+ s: Slice<T>, low?: number, high?: number, max?: number) => Slice<T>;
42
+ /**
43
+ * Converts a JavaScript array to a Go slice.
44
+ * For multi-dimensional arrays, recursively converts nested arrays to slices.
45
+ * @param arr The JavaScript array to convert
46
+ * @param depth How many levels of nesting to convert (default: 1, use Infinity for all levels)
47
+ * @returns A Go slice containing the same elements
48
+ */
49
+ export declare const arrayToSlice: <T>(arr: T[] | null | undefined, depth?: number) => Slice<T>;
50
+ /**
51
+ * Returns the length of a collection (string, array, slice, map, or set).
52
+ * @param obj The collection to get the length of.
53
+ * @returns The length of the collection.
54
+ */
55
+ export declare const len: <T = unknown, V = unknown>(obj: string | Array<T> | Slice<T> | Map<T, V> | Set<T> | Uint8Array | null | undefined) => number;
56
+ /**
57
+ * Returns the capacity of a slice.
58
+ * @param obj The slice.
59
+ * @returns The capacity of the slice.
60
+ */
61
+ export declare const cap: <T>(obj: Slice<T> | Uint8Array) => number;
62
+ /**
63
+ * Appends elements to a slice.
64
+ * Note: In Go, append can return a new slice if the underlying array is reallocated.
65
+ * This helper emulates that by returning the modified or new slice.
66
+ * @param slice The slice to append to.
67
+ * @param elements The elements to append.
68
+ * @returns The modified or new slice.
69
+ */
70
+ export declare const append: <T>(slice: Slice<T> | Uint8Array, ...elements: any[]) => Slice<T>;
71
+ /**
72
+ * Copies elements from src to dst.
73
+ * @param dst The destination slice.
74
+ * @param src The source slice.
75
+ * @returns The number of elements copied.
76
+ */
77
+ export declare const copy: <T>(dst: Slice<T>, src: Slice<T>) => number;
78
+ /**
79
+ * Accesses an element at a specific index for various Go-like types (string, slice, array).
80
+ * Mimics Go's indexing behavior: `myCollection[index]`
81
+ * For strings, it returns the byte value at the specified byte index.
82
+ * For slices/arrays, it returns the element at the specified index.
83
+ * This is used when dealing with types like "string | []byte"
84
+ * @param collection The string, Slice, or Array to access.
85
+ * @param index The index.
86
+ * @returns The element or byte value at the specified index.
87
+ * @throws Error if index is out of bounds or type is unsupported.
88
+ */
89
+ export declare function index<T>(collection: string | Slice<T> | T[], index: number): T | number;
90
+ /**
91
+ * Converts a string to an array of Unicode code points (runes).
92
+ * @param str The input string.
93
+ * @returns An array of numbers representing the Unicode code points.
94
+ */
95
+ export declare const stringToRunes: (str: string) => number[];
96
+ /**
97
+ * Converts an array of Unicode code points (runes) to a string.
98
+ * @param runes The input array of numbers representing Unicode code points.
99
+ * @returns The resulting string.
100
+ */
101
+ export declare const runesToString: (runes: Slice<number>) => string;
102
+ /**
103
+ * Converts a number to a byte (uint8) by truncating to the range 0-255.
104
+ * Equivalent to Go's byte() conversion.
105
+ * @param n The number to convert to a byte.
106
+ * @returns The byte value (0-255).
107
+ */
108
+ export declare const byte: (n: number) => number;
109
+ /**
110
+ * Accesses the byte value at a specific index of a UTF-8 encoded string.
111
+ * Mimics Go's string indexing behavior: `myString[index]`
112
+ * @param str The string to access.
113
+ * @param index The byte index.
114
+ * @returns The byte value (0-255) at the specified index.
115
+ * @throws Error if index is out of bounds.
116
+ */
117
+ export declare const indexString: (str: string, index: number) => number;
118
+ /**
119
+ * Returns the byte length of a string.
120
+ * Mimics Go's `len(string)` behavior.
121
+ * @param str The string.
122
+ * @returns The number of bytes in the UTF-8 representation of the string.
123
+ */
124
+ export declare const stringLen: (str: string) => number;
125
+ /**
126
+ * Slices a string based on byte indices.
127
+ * Mimics Go's string slicing behavior: `myString[low:high]` for valid UTF-8 slices only.
128
+ * @param str The string to slice.
129
+ * @param low The starting byte index (inclusive). Defaults to 0.
130
+ * @param high The ending byte index (exclusive). Defaults to string byte length.
131
+ * @returns The sliced string.
132
+ * @throws Error if the slice would create invalid UTF-8.
133
+ */
134
+ export declare const sliceString: (str: string, low?: number, high?: number) => string;
135
+ /**
136
+ * Converts a Slice<number> (byte array) to a string using TextDecoder.
137
+ * @param bytes The Slice<number> to convert.
138
+ * @returns The resulting string.
139
+ */
140
+ export declare const bytesToString: (bytes: Slice<number> | Uint8Array) => string;
141
+ /**
142
+ * Converts a string to a Uint8Array (byte slice).
143
+ * @param s The input string.
144
+ * @returns A Uint8Array representing the UTF-8 bytes of the string.
145
+ */
146
+ export declare function stringToBytes(s: string): Uint8Array;
147
+ /**
148
+ * Handles string() conversion for values that could be either string or []byte.
149
+ * Used for generic type parameters with constraint []byte|string.
150
+ * @param value Value that is either a string or Uint8Array
151
+ * @returns The string representation
152
+ */
153
+ export declare function genericBytesOrStringToString(value: string | Uint8Array): string;
154
+ /**
155
+ * Indexes into a value that could be either a string or Uint8Array.
156
+ * Used for generic type parameters with constraint string | []byte.
157
+ * Both cases return a byte value (number).
158
+ * @param value Value that is either a string or Uint8Array
159
+ * @param index The index to access
160
+ * @returns The byte value at the specified index
161
+ */
162
+ export declare function indexStringOrBytes(value: string | Uint8Array, index: number): number;
163
+ /**
164
+ * Slices a value that could be either a string or Uint8Array.
165
+ * Used for generic type parameters with constraint string | []byte.
166
+ * @param value Value that is either a string or Uint8Array
167
+ * @param low Starting index (inclusive). Defaults to 0.
168
+ * @param high Ending index (exclusive). Defaults to length.
169
+ * @param max Capacity limit (only used for Uint8Array, ignored for strings)
170
+ * @returns The sliced value of the same type as input
171
+ */
172
+ export declare function sliceStringOrBytes<T extends string | Uint8Array>(value: T, low?: number, high?: number, max?: number): T;
173
+ export {};