firefly-compiler 0.4.4

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 (221) hide show
  1. package/.firefly-workspace +1 -0
  2. package/.vscode/settings.json +5 -0
  3. package/LICENSE.txt +21 -0
  4. package/README.md +96 -0
  5. package/bin/firefly.mjs +2 -0
  6. package/compiler/.firefly/package.ff +1 -0
  7. package/compiler/Builder.ff +218 -0
  8. package/compiler/Compiler.ff +241 -0
  9. package/compiler/Dependencies.ff +179 -0
  10. package/compiler/Deriver.ff +647 -0
  11. package/compiler/Dictionaries.ff +205 -0
  12. package/compiler/Environment.ff +166 -0
  13. package/compiler/Inference.ff +1117 -0
  14. package/compiler/JsEmitter.ff +861 -0
  15. package/compiler/JsImporter.ff +56 -0
  16. package/compiler/LspHook.ff +188 -0
  17. package/compiler/Main.ff +237 -0
  18. package/compiler/Parser.ff +1383 -0
  19. package/compiler/Patterns.ff +111 -0
  20. package/compiler/Resolver.ff +620 -0
  21. package/compiler/Substitution.ff +178 -0
  22. package/compiler/Syntax.ff +299 -0
  23. package/compiler/Token.ff +180 -0
  24. package/compiler/Tokenizer.ff +278 -0
  25. package/compiler/Unification.ff +220 -0
  26. package/compiler/Wildcards.ff +50 -0
  27. package/compiler/Workspace.ff +88 -0
  28. package/core/.firefly/package.ff +2 -0
  29. package/core/Any.ff +30 -0
  30. package/core/Array.ff +249 -0
  31. package/core/AssetSystem.ff +61 -0
  32. package/core/Atomic.ff +64 -0
  33. package/core/Bool.ff +13 -0
  34. package/core/BrowserSystem.ff +14 -0
  35. package/core/Buffer.ff +211 -0
  36. package/core/BuildSystem.ff +144 -0
  37. package/core/Channel.ff +131 -0
  38. package/core/Char.ff +18 -0
  39. package/core/Core.ff +58 -0
  40. package/core/Duration.ff +15 -0
  41. package/core/Equal.ff +52 -0
  42. package/core/Error.ff +20 -0
  43. package/core/FileHandle.ff +41 -0
  44. package/core/Float.ff +41 -0
  45. package/core/HttpClient.ff +84 -0
  46. package/core/Instant.ff +9 -0
  47. package/core/Int.ff +61 -0
  48. package/core/IntMap.ff +85 -0
  49. package/core/JsSystem.ff +66 -0
  50. package/core/JsValue.ff +240 -0
  51. package/core/List.ff +440 -0
  52. package/core/Lock.ff +144 -0
  53. package/core/Log.ff +24 -0
  54. package/core/Map.ff +126 -0
  55. package/core/NodeSystem.ff +88 -0
  56. package/core/Nothing.ff +1 -0
  57. package/core/Option.ff +133 -0
  58. package/core/Ordering.ff +157 -0
  59. package/core/Pair.ff +55 -0
  60. package/core/Path.ff +393 -0
  61. package/core/RbMap.ff +216 -0
  62. package/core/Serializable.ff +173 -0
  63. package/core/Set.ff +38 -0
  64. package/core/Show.ff +43 -0
  65. package/core/Stack.ff +263 -0
  66. package/core/Stream.ff +406 -0
  67. package/core/String.ff +175 -0
  68. package/core/StringMap.ff +85 -0
  69. package/core/Task.ff +138 -0
  70. package/core/Try.ff +81 -0
  71. package/core/Unit.ff +3 -0
  72. package/experimental/random/AltGeneric.ff +44 -0
  73. package/experimental/random/Async.ff +68 -0
  74. package/experimental/random/Buffer2.ff +77 -0
  75. package/experimental/random/Cat.ff +12 -0
  76. package/experimental/random/Dictionary.ff +52 -0
  77. package/experimental/random/Example.ff +46 -0
  78. package/experimental/random/Generic.ff +102 -0
  79. package/experimental/random/HappyEyeballs.ff +40 -0
  80. package/experimental/random/HashMap.ff +72 -0
  81. package/experimental/random/IfElseUnit.ff +9 -0
  82. package/experimental/random/InputOutput.ff +23 -0
  83. package/experimental/random/ListVsArray.ff +45 -0
  84. package/experimental/random/Main.ff +44 -0
  85. package/experimental/random/MapTest.ff +67 -0
  86. package/experimental/random/OldTaskSystem.ff +210 -0
  87. package/experimental/random/PatternTest.ff +39 -0
  88. package/experimental/random/Patterns.ff +226 -0
  89. package/experimental/random/ReadBytesTest.ff +10 -0
  90. package/experimental/random/RunLength.ff +65 -0
  91. package/experimental/random/Scrape.ff +51 -0
  92. package/experimental/random/Serialization.ff +217 -0
  93. package/experimental/random/SerializationTest.ff +46 -0
  94. package/experimental/random/Serializer.ff +36 -0
  95. package/experimental/random/StdInOutErr.ff +4 -0
  96. package/experimental/random/Symbols.ff +74 -0
  97. package/experimental/random/Tag.ff +49 -0
  98. package/experimental/random/Tensor.ff +52 -0
  99. package/experimental/random/Try.ff +56 -0
  100. package/experimental/random/Tsv.ff +9 -0
  101. package/experimental/random/TypesAreModules.ff +87 -0
  102. package/experimental/random/blueprints/Blueprint.ff +52 -0
  103. package/experimental/random/blueprints/Main.ff +11 -0
  104. package/experimental/random/blueprints/Pretty.ff +58 -0
  105. package/experimental/random/blueprints/User.ff +64 -0
  106. package/experimental/random/blueprintsystem/BlueprintSystem.ff +48 -0
  107. package/experimental/random/blueprintsystem/Deserialize.ff +53 -0
  108. package/experimental/random/blueprintsystem/ReadJs.ff +13 -0
  109. package/experimental/random/blueprintsystem/User.ff +2 -0
  110. package/experimental/random/kahrs/Kahrs.ff +112 -0
  111. package/experimental/random/kahrs/TestKahrs.ff +22 -0
  112. package/experimental/random/kahrs/TestMap.ff +18 -0
  113. package/experimental/random/streaming/Gzip.ff +3 -0
  114. package/experimental/random/streaming/Main.ff +34 -0
  115. package/experimental/random/streaming/S3Bucket.ff +11 -0
  116. package/experimental/random/streaming/Tar.ff +5 -0
  117. package/experimental/rhymeapp/Main.ff +81 -0
  118. package/experimental/rhymeapp/index.html +14 -0
  119. package/firefly.sh +5 -0
  120. package/fireflysite/Main.ff +13 -0
  121. package/httpserver/.firefly/package.ff +1 -0
  122. package/httpserver/HttpServer.ff +184 -0
  123. package/lsp/.firefly/package.ff +1 -0
  124. package/lsp/CompletionHandler.ff +814 -0
  125. package/lsp/Handler.ff +551 -0
  126. package/lsp/HoverHandler.ff +82 -0
  127. package/lsp/LanguageServer.ff +229 -0
  128. package/lsp/SignatureHelpHandler.ff +55 -0
  129. package/lsp/SymbolHandler.ff +167 -0
  130. package/output/js/ff/compiler/Builder.mjs +483 -0
  131. package/output/js/ff/compiler/Compiler.mjs +410 -0
  132. package/output/js/ff/compiler/Dependencies.mjs +388 -0
  133. package/output/js/ff/compiler/Deriver.mjs +1166 -0
  134. package/output/js/ff/compiler/Dictionaries.mjs +1305 -0
  135. package/output/js/ff/compiler/Environment.mjs +1005 -0
  136. package/output/js/ff/compiler/Inference.mjs +4264 -0
  137. package/output/js/ff/compiler/JsEmitter.mjs +5353 -0
  138. package/output/js/ff/compiler/JsImporter.mjs +262 -0
  139. package/output/js/ff/compiler/LspHook.mjs +789 -0
  140. package/output/js/ff/compiler/Main.mjs +1695 -0
  141. package/output/js/ff/compiler/Parser.mjs +4004 -0
  142. package/output/js/ff/compiler/Patterns.mjs +923 -0
  143. package/output/js/ff/compiler/Resolver.mjs +2303 -0
  144. package/output/js/ff/compiler/Substitution.mjs +1146 -0
  145. package/output/js/ff/compiler/Syntax.mjs +12430 -0
  146. package/output/js/ff/compiler/Token.mjs +3092 -0
  147. package/output/js/ff/compiler/Tokenizer.mjs +589 -0
  148. package/output/js/ff/compiler/Unification.mjs +1748 -0
  149. package/output/js/ff/compiler/Wildcards.mjs +604 -0
  150. package/output/js/ff/compiler/Workspace.mjs +683 -0
  151. package/output/js/ff/core/Any.mjs +139 -0
  152. package/output/js/ff/core/Array.mjs +594 -0
  153. package/output/js/ff/core/AssetSystem.mjs +270 -0
  154. package/output/js/ff/core/Atomic.mjs +186 -0
  155. package/output/js/ff/core/Bool.mjs +141 -0
  156. package/output/js/ff/core/BrowserSystem.mjs +122 -0
  157. package/output/js/ff/core/Buffer.mjs +467 -0
  158. package/output/js/ff/core/BuildSystem.mjs +320 -0
  159. package/output/js/ff/core/Channel.mjs +268 -0
  160. package/output/js/ff/core/Char.mjs +145 -0
  161. package/output/js/ff/core/Core.mjs +300 -0
  162. package/output/js/ff/core/Duration.mjs +112 -0
  163. package/output/js/ff/core/Equal.mjs +175 -0
  164. package/output/js/ff/core/Error.mjs +138 -0
  165. package/output/js/ff/core/FileHandle.mjs +164 -0
  166. package/output/js/ff/core/Float.mjs +214 -0
  167. package/output/js/ff/core/HttpClient.mjs +210 -0
  168. package/output/js/ff/core/Instant.mjs +105 -0
  169. package/output/js/ff/core/Int.mjs +254 -0
  170. package/output/js/ff/core/IntMap.mjs +282 -0
  171. package/output/js/ff/core/JsSystem.mjs +234 -0
  172. package/output/js/ff/core/JsValue.mjs +678 -0
  173. package/output/js/ff/core/List.mjs +2335 -0
  174. package/output/js/ff/core/Lock.mjs +322 -0
  175. package/output/js/ff/core/Log.mjs +159 -0
  176. package/output/js/ff/core/Map.mjs +358 -0
  177. package/output/js/ff/core/NodeSystem.mjs +288 -0
  178. package/output/js/ff/core/Nothing.mjs +100 -0
  179. package/output/js/ff/core/Option.mjs +1002 -0
  180. package/output/js/ff/core/Ordering.mjs +734 -0
  181. package/output/js/ff/core/Pair.mjs +318 -0
  182. package/output/js/ff/core/Path.mjs +768 -0
  183. package/output/js/ff/core/RbMap.mjs +1936 -0
  184. package/output/js/ff/core/Serializable.mjs +434 -0
  185. package/output/js/ff/core/Set.mjs +250 -0
  186. package/output/js/ff/core/Show.mjs +201 -0
  187. package/output/js/ff/core/Stack.mjs +595 -0
  188. package/output/js/ff/core/Stream.mjs +1300 -0
  189. package/output/js/ff/core/String.mjs +433 -0
  190. package/output/js/ff/core/StringMap.mjs +282 -0
  191. package/output/js/ff/core/Task.mjs +345 -0
  192. package/output/js/ff/core/Try.mjs +503 -0
  193. package/output/js/ff/core/Unit.mjs +103 -0
  194. package/package.json +29 -0
  195. package/postgresql/.firefly/include/package-lock.json +250 -0
  196. package/postgresql/.firefly/include/package.json +5 -0
  197. package/postgresql/.firefly/include/prepare.sh +2 -0
  198. package/postgresql/.firefly/package.ff +3 -0
  199. package/postgresql/Pg.ff +530 -0
  200. package/unsafejs/.firefly/package.ff +1 -0
  201. package/unsafejs/UnsafeJs.ff +19 -0
  202. package/vscode/.vscode/launch.json +18 -0
  203. package/vscode/.vscode/tasks.json +33 -0
  204. package/vscode/LICENSE.txt +21 -0
  205. package/vscode/Prepublish.ff +15 -0
  206. package/vscode/README.md +17 -0
  207. package/vscode/client/package-lock.json +544 -0
  208. package/vscode/client/package.json +22 -0
  209. package/vscode/client/src/extension.ts +64 -0
  210. package/vscode/client/tsconfig.json +12 -0
  211. package/vscode/icons/firefly-icon.png +0 -0
  212. package/vscode/icons/firefly-icon.svg +10 -0
  213. package/vscode/icons/firefly-logo-notext.png +0 -0
  214. package/vscode/icons/firefly-logo.png +0 -0
  215. package/vscode/language-configuration.json +39 -0
  216. package/vscode/package-lock.json +3623 -0
  217. package/vscode/package.json +144 -0
  218. package/vscode/snippets-none.json +1 -0
  219. package/vscode/snippets.json +241 -0
  220. package/vscode/syntaxes/firefly.tmLanguage.json +294 -0
  221. package/vscode/tsconfig.json +20 -0
@@ -0,0 +1,122 @@
1
+
2
+
3
+ import * as ff_core_Any from "../../ff/core/Any.mjs"
4
+
5
+ import * as ff_core_Array from "../../ff/core/Array.mjs"
6
+
7
+ import * as ff_core_AssetSystem from "../../ff/core/AssetSystem.mjs"
8
+
9
+ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
10
+
11
+ import * as ff_core_Bool from "../../ff/core/Bool.mjs"
12
+
13
+ import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
14
+
15
+ import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
16
+
17
+ import * as ff_core_BuildSystem from "../../ff/core/BuildSystem.mjs"
18
+
19
+ import * as ff_core_Channel from "../../ff/core/Channel.mjs"
20
+
21
+ import * as ff_core_Char from "../../ff/core/Char.mjs"
22
+
23
+ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
+
25
+ import * as ff_core_Duration from "../../ff/core/Duration.mjs"
26
+
27
+ import * as ff_core_Equal from "../../ff/core/Equal.mjs"
28
+
29
+ import * as ff_core_Error from "../../ff/core/Error.mjs"
30
+
31
+ import * as ff_core_FileHandle from "../../ff/core/FileHandle.mjs"
32
+
33
+ import * as ff_core_Float from "../../ff/core/Float.mjs"
34
+
35
+ import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
36
+
37
+ import * as ff_core_Instant from "../../ff/core/Instant.mjs"
38
+
39
+ import * as ff_core_Int from "../../ff/core/Int.mjs"
40
+
41
+ import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
42
+
43
+ import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
44
+
45
+ import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
46
+
47
+ import * as ff_core_List from "../../ff/core/List.mjs"
48
+
49
+ import * as ff_core_Lock from "../../ff/core/Lock.mjs"
50
+
51
+ import * as ff_core_Log from "../../ff/core/Log.mjs"
52
+
53
+ import * as ff_core_Map from "../../ff/core/Map.mjs"
54
+
55
+ import * as ff_core_NodeSystem from "../../ff/core/NodeSystem.mjs"
56
+
57
+ import * as ff_core_Nothing from "../../ff/core/Nothing.mjs"
58
+
59
+ import * as ff_core_Option from "../../ff/core/Option.mjs"
60
+
61
+ import * as ff_core_Ordering from "../../ff/core/Ordering.mjs"
62
+
63
+ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
64
+
65
+ import * as ff_core_Path from "../../ff/core/Path.mjs"
66
+
67
+ import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
68
+
69
+ import * as ff_core_Set from "../../ff/core/Set.mjs"
70
+
71
+ import * as ff_core_Show from "../../ff/core/Show.mjs"
72
+
73
+ import * as ff_core_Stack from "../../ff/core/Stack.mjs"
74
+
75
+ import * as ff_core_Stream from "../../ff/core/Stream.mjs"
76
+
77
+ import * as ff_core_String from "../../ff/core/String.mjs"
78
+
79
+ import * as ff_core_StringMap from "../../ff/core/StringMap.mjs"
80
+
81
+ import * as ff_core_Task from "../../ff/core/Task.mjs"
82
+
83
+ import * as ff_core_Try from "../../ff/core/Try.mjs"
84
+
85
+ import * as ff_core_Unit from "../../ff/core/Unit.mjs"
86
+
87
+ // type BrowserSystem
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ export function BrowserSystem_httpClient(self_) {
97
+ throw new Error('Function BrowserSystem_httpClient is missing on this target in sync context.');
98
+ }
99
+
100
+ export function BrowserSystem_mainTask(self_) {
101
+ throw new Error('Function BrowserSystem_mainTask is missing on this target in sync context.');
102
+ }
103
+
104
+ export function BrowserSystem_js(self_) {
105
+ throw new Error('Function BrowserSystem_js is missing on this target in sync context.');
106
+ }
107
+
108
+ export async function BrowserSystem_httpClient$(self_, $task) {
109
+ return null
110
+ }
111
+
112
+ export async function BrowserSystem_mainTask$(self_, $task) {
113
+ return self_.task_
114
+ }
115
+
116
+ export async function BrowserSystem_js$(self_, $task) {
117
+ return typeof globalThis !== 'undefined' ? globalThis : window
118
+ }
119
+
120
+
121
+
122
+
@@ -0,0 +1,467 @@
1
+
2
+
3
+ import * as ff_core_Any from "../../ff/core/Any.mjs"
4
+
5
+ import * as ff_core_Array from "../../ff/core/Array.mjs"
6
+
7
+ import * as ff_core_AssetSystem from "../../ff/core/AssetSystem.mjs"
8
+
9
+ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
10
+
11
+ import * as ff_core_Bool from "../../ff/core/Bool.mjs"
12
+
13
+ import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
14
+
15
+ import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
16
+
17
+ import * as ff_core_BuildSystem from "../../ff/core/BuildSystem.mjs"
18
+
19
+ import * as ff_core_Channel from "../../ff/core/Channel.mjs"
20
+
21
+ import * as ff_core_Char from "../../ff/core/Char.mjs"
22
+
23
+ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
+
25
+ import * as ff_core_Duration from "../../ff/core/Duration.mjs"
26
+
27
+ import * as ff_core_Equal from "../../ff/core/Equal.mjs"
28
+
29
+ import * as ff_core_Error from "../../ff/core/Error.mjs"
30
+
31
+ import * as ff_core_FileHandle from "../../ff/core/FileHandle.mjs"
32
+
33
+ import * as ff_core_Float from "../../ff/core/Float.mjs"
34
+
35
+ import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
36
+
37
+ import * as ff_core_Instant from "../../ff/core/Instant.mjs"
38
+
39
+ import * as ff_core_Int from "../../ff/core/Int.mjs"
40
+
41
+ import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
42
+
43
+ import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
44
+
45
+ import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
46
+
47
+ import * as ff_core_List from "../../ff/core/List.mjs"
48
+
49
+ import * as ff_core_Lock from "../../ff/core/Lock.mjs"
50
+
51
+ import * as ff_core_Log from "../../ff/core/Log.mjs"
52
+
53
+ import * as ff_core_Map from "../../ff/core/Map.mjs"
54
+
55
+ import * as ff_core_NodeSystem from "../../ff/core/NodeSystem.mjs"
56
+
57
+ import * as ff_core_Nothing from "../../ff/core/Nothing.mjs"
58
+
59
+ import * as ff_core_Option from "../../ff/core/Option.mjs"
60
+
61
+ import * as ff_core_Ordering from "../../ff/core/Ordering.mjs"
62
+
63
+ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
64
+
65
+ import * as ff_core_Path from "../../ff/core/Path.mjs"
66
+
67
+ import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
68
+
69
+ import * as ff_core_Set from "../../ff/core/Set.mjs"
70
+
71
+ import * as ff_core_Show from "../../ff/core/Show.mjs"
72
+
73
+ import * as ff_core_Stack from "../../ff/core/Stack.mjs"
74
+
75
+ import * as ff_core_Stream from "../../ff/core/Stream.mjs"
76
+
77
+ import * as ff_core_String from "../../ff/core/String.mjs"
78
+
79
+ import * as ff_core_StringMap from "../../ff/core/StringMap.mjs"
80
+
81
+ import * as ff_core_Task from "../../ff/core/Task.mjs"
82
+
83
+ import * as ff_core_Try from "../../ff/core/Try.mjs"
84
+
85
+ import * as ff_core_Unit from "../../ff/core/Unit.mjs"
86
+
87
+ // type Buffer
88
+
89
+
90
+
91
+
92
+ export function make_(size_, shared_ = false) {
93
+ return new DataView(shared_ ? new SharedArrayBuffer(size_) : new ArrayBuffer(size_))
94
+ }
95
+
96
+ export function fromByteArray_(array_) {
97
+ return new DataView(new Uint8Array(array_).buffer)
98
+ }
99
+
100
+ export function fromBufferArray_(array_) {
101
+
102
+ let length = 0
103
+ for(let b of array_) length += b.byteLength
104
+ const arrayBuffer = new ArrayBuffer(length);
105
+ const result = new Uint8Array(arrayBuffer)
106
+ let offset = 0
107
+ for(let b of array_) {
108
+ result.set(new Uint8Array(b.buffer, b.byteOffset, b.byteLength), offset)
109
+ offset += b.byteLength
110
+ }
111
+ return new DataView(arrayBuffer)
112
+
113
+ }
114
+
115
+ export function fromHex_(hex_) {
116
+
117
+ const hexValues = hexString.match(/.{1,2}/g) || []
118
+ const numbers = hexValues.map(value => parseInt(value, 16))
119
+ return new DataView(new Uint8Array(numbers).buffer)
120
+
121
+ }
122
+
123
+ export function fromBase64_(base64_) {
124
+
125
+ const binaryString = atob(base64_)
126
+ const dataView = new DataView(new ArrayBuffer(binaryString.length))
127
+ dataView.setUint8(binaryString.split('').map(char => char.charCodeAt(0)))
128
+ return dataView
129
+
130
+ }
131
+
132
+ export async function make_$(size_, shared_ = false, $task) {
133
+ throw new Error('Function make is missing on this target in async context.');
134
+ }
135
+
136
+ export async function fromByteArray_$(array_, $task) {
137
+ throw new Error('Function fromByteArray is missing on this target in async context.');
138
+ }
139
+
140
+ export async function fromBufferArray_$(array_, $task) {
141
+ throw new Error('Function fromBufferArray is missing on this target in async context.');
142
+ }
143
+
144
+ export async function fromHex_$(hex_, $task) {
145
+ throw new Error('Function fromHex is missing on this target in async context.');
146
+ }
147
+
148
+ export async function fromBase64_$(base64_, $task) {
149
+ throw new Error('Function fromBase64 is missing on this target in async context.');
150
+ }
151
+
152
+ export function Buffer_grabUint64(self_, byteOffset_, littleEndian_ = true) {
153
+
154
+ const high = self_.getUint32(byteOffset_ + (littleEndian_ ? 4 : 0), littleEndian_)
155
+ const low = self_.getUint32(byteOffset_ + (littleEndian_ ? 0 : 4), littleEndian_)
156
+ const result = (high * 0x100000000) + low
157
+ if(!Number.isSafeInteger(result)) throw 'grabUint64 out of range (consider grabBigUint64)'
158
+ return result
159
+
160
+ }
161
+
162
+ export function Buffer_grabInt64(self_, byteOffset_, littleEndian_ = true) {
163
+
164
+ const high = self_.getInt32(byteOffset_ + (littleEndian_ ? 4 : 0), littleEndian_)
165
+ const low = self_.getUint32(byteOffset_ + (littleEndian_ ? 0 : 4), littleEndian_)
166
+ const result = (high * 0x100000000) + low
167
+ if(!Number.isSafeInteger(result)) throw 'grabInt64 out of range (consider grabBigInt64)'
168
+ return result
169
+
170
+ }
171
+
172
+ export function Buffer_grabFloat32(self_, byteOffset_, littleEndian_ = true) {
173
+ return self_.getFloat32(byteOffset_, littleEndian_)
174
+ }
175
+
176
+ export function Buffer_grabFloat64(self_, byteOffset_, littleEndian_ = true) {
177
+ return self_.getFloat64(byteOffset_, littleEndian_)
178
+ }
179
+
180
+ export function Buffer_grabInt16(self_, byteOffset_, littleEndian_ = true) {
181
+ return self_.getInt16(byteOffset_, littleEndian_)
182
+ }
183
+
184
+ export function Buffer_grabInt32(self_, byteOffset_, littleEndian_ = true) {
185
+ return self_.getInt32(byteOffset_, littleEndian_)
186
+ }
187
+
188
+ export function Buffer_grabInt8(self_, byteOffset_) {
189
+ return self_.getInt8(byteOffset_)
190
+ }
191
+
192
+ export function Buffer_grabUint16(self_, byteOffset_, littleEndian_ = true) {
193
+ return self_.getUint16(byteOffset_, littleEndian_)
194
+ }
195
+
196
+ export function Buffer_grabUint32(self_, byteOffset_, littleEndian_ = true) {
197
+ return self_.getUint32(byteOffset_, littleEndian_)
198
+ }
199
+
200
+ export function Buffer_grabUint8(self_, byteOffset_) {
201
+ return self_.getUint8(byteOffset_)
202
+ }
203
+
204
+ export function Buffer_setUint64(self_, byteOffset_, value_, littleEndian_ = true) {
205
+
206
+ self_.setUint32(byteOffset_ + (littleEndian_ ? 4 : 0), (value_ >>> 16) >>> 16, littleEndian_)
207
+ self_.setUint32(byteOffset_ + (littleEndian_ ? 0 : 4), value_ & 0xffffffff, littleEndian_)
208
+
209
+ }
210
+
211
+ export function Buffer_setInt64(self_, byteOffset_, value_, littleEndian_ = true) {
212
+
213
+ self_.setUint32(byteOffset_ + (littleEndian_ ? 4 : 0), (value_ >> 16) >> 16, littleEndian_)
214
+ self_.setUint32(byteOffset_ + (littleEndian_ ? 0 : 4), value_ & 0xffffffff, littleEndian_)
215
+
216
+ }
217
+
218
+ export function Buffer_setFloat32(self_, byteOffset_, value_, littleEndian_ = true) {
219
+ self_.setFloat32(byteOffset_, value_, littleEndian_)
220
+ }
221
+
222
+ export function Buffer_setFloat64(self_, byteOffset_, value_, littleEndian_ = true) {
223
+ self_.setFloat64(byteOffset_, value_, littleEndian_)
224
+ }
225
+
226
+ export function Buffer_setInt16(self_, byteOffset_, value_, littleEndian_ = true) {
227
+ self_.setInt16(byteOffset_, value_, littleEndian_)
228
+ }
229
+
230
+ export function Buffer_setInt32(self_, byteOffset_, value_, littleEndian_ = true) {
231
+ self_.setInt32(byteOffset_, value_, littleEndian_)
232
+ }
233
+
234
+ export function Buffer_setInt8(self_, byteOffset_, value_) {
235
+ self_.setInt8(byteOffset_, value_)
236
+ }
237
+
238
+ export function Buffer_setUint16(self_, byteOffset_, value_, littleEndian_ = true) {
239
+ self_.setUint16(byteOffset_, value_, littleEndian_)
240
+ }
241
+
242
+ export function Buffer_setUint32(self_, byteOffset_, value_, littleEndian_ = true) {
243
+ self_.setUint32(byteOffset_, value_, littleEndian_)
244
+ }
245
+
246
+ export function Buffer_setUint8(self_, byteOffset_, value_) {
247
+ self_.setUint8(byteOffset_, value_)
248
+ }
249
+
250
+ export function Buffer_setAll(self_, byteOffset_, buffer_) {
251
+
252
+ const sourceBuffer = new Uint8Array(buffer_.buffer, buffer_.byteOffset, buffer_.byteLength)
253
+ const targetBuffer = new Uint8Array(self_.buffer, self_.byteOffset, self_.byteLength)
254
+ targetBuffer.set(sourceBuffer, byteOffset_)
255
+
256
+ }
257
+
258
+ export function Buffer_size(self_) {
259
+ return self_.byteLength
260
+ }
261
+
262
+ export function Buffer_shared(self_) {
263
+ return typeof SharedArrayBuffer !== 'undefined' && self_.buffer instanceof SharedArrayBuffer
264
+ }
265
+
266
+ export function Buffer_view(self_, begin_, end_) {
267
+ return new DataView(self_.buffer, self_.byteOffset + begin_, end_ - begin_)
268
+ }
269
+
270
+ export function Buffer_copy(self_) {
271
+ return new DataView(self_.buffer.slice(self_.byteOffset, self_.byteOffset + self_.byteLength))
272
+ }
273
+
274
+ export function Buffer_toString(self_, encoding_ = "utf8") {
275
+
276
+ if(encoding_ === "utf8") {
277
+ if(typeof TextDecoder.ffSingleton === 'undefined') TextDecoder.ffSingleton = new TextDecoder()
278
+ return TextDecoder.ffSingleton.decode(self_)
279
+ }
280
+ return new TextDecoder().decode(self_)
281
+
282
+ }
283
+
284
+ export function Buffer_toByteArray(self_) {
285
+ return [...new Uint8Array(self_.buffer, self_.byteOffset, self_.byteLength)]
286
+ }
287
+
288
+ export function Buffer_toHex(self_) {
289
+
290
+ let hex = ''
291
+ for (let i = 0; i < self_.byteLength; i++) {
292
+ hex += self_.getUint8(i).toString(16).padStart(2, '0')
293
+ }
294
+ return hex
295
+
296
+ }
297
+
298
+ export function Buffer_toBase64(self_) {
299
+
300
+ const view = new Uint8Array(self_.buffer, self_.byteOffset, self_.byteLength);
301
+ return btoa(String.fromCharCode(...view));
302
+
303
+ }
304
+
305
+ export async function Buffer_grabUint64$(self_, byteOffset_, littleEndian_ = true, $task) {
306
+ throw new Error('Function Buffer_grabUint64 is missing on this target in async context.');
307
+ }
308
+
309
+ export async function Buffer_grabInt64$(self_, byteOffset_, littleEndian_ = true, $task) {
310
+ throw new Error('Function Buffer_grabInt64 is missing on this target in async context.');
311
+ }
312
+
313
+ export async function Buffer_grabFloat32$(self_, byteOffset_, littleEndian_ = true, $task) {
314
+ throw new Error('Function Buffer_grabFloat32 is missing on this target in async context.');
315
+ }
316
+
317
+ export async function Buffer_grabFloat64$(self_, byteOffset_, littleEndian_ = true, $task) {
318
+ throw new Error('Function Buffer_grabFloat64 is missing on this target in async context.');
319
+ }
320
+
321
+ export async function Buffer_grabInt16$(self_, byteOffset_, littleEndian_ = true, $task) {
322
+ throw new Error('Function Buffer_grabInt16 is missing on this target in async context.');
323
+ }
324
+
325
+ export async function Buffer_grabInt32$(self_, byteOffset_, littleEndian_ = true, $task) {
326
+ throw new Error('Function Buffer_grabInt32 is missing on this target in async context.');
327
+ }
328
+
329
+ export async function Buffer_grabInt8$(self_, byteOffset_, $task) {
330
+ throw new Error('Function Buffer_grabInt8 is missing on this target in async context.');
331
+ }
332
+
333
+ export async function Buffer_grabUint16$(self_, byteOffset_, littleEndian_ = true, $task) {
334
+ throw new Error('Function Buffer_grabUint16 is missing on this target in async context.');
335
+ }
336
+
337
+ export async function Buffer_grabUint32$(self_, byteOffset_, littleEndian_ = true, $task) {
338
+ throw new Error('Function Buffer_grabUint32 is missing on this target in async context.');
339
+ }
340
+
341
+ export async function Buffer_grabUint8$(self_, byteOffset_, $task) {
342
+ throw new Error('Function Buffer_grabUint8 is missing on this target in async context.');
343
+ }
344
+
345
+ export async function Buffer_setUint64$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
346
+ throw new Error('Function Buffer_setUint64 is missing on this target in async context.');
347
+ }
348
+
349
+ export async function Buffer_setInt64$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
350
+ throw new Error('Function Buffer_setInt64 is missing on this target in async context.');
351
+ }
352
+
353
+ export async function Buffer_setFloat32$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
354
+ throw new Error('Function Buffer_setFloat32 is missing on this target in async context.');
355
+ }
356
+
357
+ export async function Buffer_setFloat64$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
358
+ throw new Error('Function Buffer_setFloat64 is missing on this target in async context.');
359
+ }
360
+
361
+ export async function Buffer_setInt16$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
362
+ throw new Error('Function Buffer_setInt16 is missing on this target in async context.');
363
+ }
364
+
365
+ export async function Buffer_setInt32$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
366
+ throw new Error('Function Buffer_setInt32 is missing on this target in async context.');
367
+ }
368
+
369
+ export async function Buffer_setInt8$(self_, byteOffset_, value_, $task) {
370
+ throw new Error('Function Buffer_setInt8 is missing on this target in async context.');
371
+ }
372
+
373
+ export async function Buffer_setUint16$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
374
+ throw new Error('Function Buffer_setUint16 is missing on this target in async context.');
375
+ }
376
+
377
+ export async function Buffer_setUint32$(self_, byteOffset_, value_, littleEndian_ = true, $task) {
378
+ throw new Error('Function Buffer_setUint32 is missing on this target in async context.');
379
+ }
380
+
381
+ export async function Buffer_setUint8$(self_, byteOffset_, value_, $task) {
382
+ throw new Error('Function Buffer_setUint8 is missing on this target in async context.');
383
+ }
384
+
385
+ export async function Buffer_setAll$(self_, byteOffset_, buffer_, $task) {
386
+ throw new Error('Function Buffer_setAll is missing on this target in async context.');
387
+ }
388
+
389
+ export async function Buffer_size$(self_, $task) {
390
+ throw new Error('Function Buffer_size is missing on this target in async context.');
391
+ }
392
+
393
+ export async function Buffer_shared$(self_, $task) {
394
+ throw new Error('Function Buffer_shared is missing on this target in async context.');
395
+ }
396
+
397
+ export async function Buffer_view$(self_, begin_, end_, $task) {
398
+ throw new Error('Function Buffer_view is missing on this target in async context.');
399
+ }
400
+
401
+ export async function Buffer_copy$(self_, $task) {
402
+ throw new Error('Function Buffer_copy is missing on this target in async context.');
403
+ }
404
+
405
+ export async function Buffer_toString$(self_, encoding_ = "utf8", $task) {
406
+ throw new Error('Function Buffer_toString is missing on this target in async context.');
407
+ }
408
+
409
+ export async function Buffer_toByteArray$(self_, $task) {
410
+ throw new Error('Function Buffer_toByteArray is missing on this target in async context.');
411
+ }
412
+
413
+ export async function Buffer_toHex$(self_, $task) {
414
+ throw new Error('Function Buffer_toHex is missing on this target in async context.');
415
+ }
416
+
417
+ export async function Buffer_toBase64$(self_, $task) {
418
+ throw new Error('Function Buffer_toBase64 is missing on this target in async context.');
419
+ }
420
+
421
+ export const ff_core_Show_Show$ff_core_Buffer_Buffer = {
422
+ show_(value_) {
423
+ return ((`Buffer.fromHex("` + ff_core_Buffer.Buffer_toHex(value_)) + `")`)
424
+ },
425
+ async show_$(value_, $task) {
426
+ return ((`Buffer.fromHex("` + ff_core_Buffer.Buffer_toHex(value_)) + `")`)
427
+ }
428
+ };
429
+
430
+ export const ff_core_Equal_Equal$ff_core_Buffer_Buffer = {
431
+ equals_(x_, y_) {
432
+
433
+ if(x_.buffer.byteLength !== y_.buffer.byteLength) return false
434
+ if(x_.buffer === y_.buffer) return true
435
+ for(let i = 0; i + 4 <= x_.buffer.byteLength; i += 4) {
436
+ if(x_.getInt32(i) !== y_.getInt32(i)) return false
437
+ }
438
+ for(; i < x_.buffer.byteLength; i++) {
439
+ if(x_.getUint8(i) !== y_.getUint8(i)) return false
440
+ }
441
+ return true
442
+
443
+ },
444
+ async equals_$(x_, y_, $task) {
445
+ throw new Error('Function equals is missing on this target in async context.');
446
+ }
447
+ };
448
+
449
+ export const ff_core_Ordering_Order$ff_core_Buffer_Buffer = {
450
+ compare_(x_, y_) {
451
+
452
+ if(x_.buffer === y_.buffer) return ff_core_Ordering.OrderingSame()
453
+ const minLength = Math.min(x_.buffer.byteLength, y_.buffer.byteLength)
454
+ for(let i = 0; i < minLength; i++) {
455
+ if(x_.getUint8(i) !== y_.getUint8(i)) {
456
+ return ff_core_Ordering.fromInt_(x_.getUint8(i) - y_.getUint8(i))
457
+ }
458
+ }
459
+ return ff_core_Ordering.fromInt_(x_.buffer.byteLength - y_.buffer.byteLength)
460
+
461
+ },
462
+ async compare_$(x_, y_, $task) {
463
+ throw new Error('Function compare is missing on this target in async context.');
464
+ }
465
+ };
466
+
467
+