firefly-compiler 0.5.35 → 0.5.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.hintrc +4 -4
- package/.vscode/settings.json +4 -4
- package/bin/Release.ff +157 -154
- package/bin/firefly.mjs +1 -1
- package/compiler/Builder.ff +275 -277
- package/compiler/Compiler.ff +234 -233
- package/compiler/Dependencies.ff +186 -187
- package/compiler/DependencyLock.ff +17 -17
- package/compiler/Deriver.ff +23 -31
- package/compiler/Dictionaries.ff +1 -1
- package/compiler/Inference.ff +43 -20
- package/compiler/JsEmitter.ff +1437 -1282
- package/compiler/LspHook.ff +202 -202
- package/compiler/Main.ff +25 -24
- package/compiler/ModuleCache.ff +178 -178
- package/compiler/Parser.ff +36 -109
- package/compiler/Resolver.ff +5 -8
- package/compiler/Substitution.ff +1 -1
- package/compiler/Syntax.ff +1 -16
- package/compiler/Token.ff +9 -0
- package/compiler/Tokenizer.ff +4 -0
- package/compiler/Workspace.ff +88 -88
- package/core/.firefly/include/package.json +5 -5
- package/core/.firefly/package.ff +2 -2
- package/core/Any.ff +26 -30
- package/core/Array.ff +298 -265
- package/core/Atomic.ff +63 -64
- package/core/Box.ff +7 -7
- package/core/BrowserSystem.ff +40 -40
- package/core/Buffer.ff +185 -152
- package/core/BuildSystem.ff +156 -148
- package/core/Channel.ff +95 -92
- package/core/Char.ff +3 -2
- package/core/Core.ff +16 -23
- package/core/Crypto.ff +94 -96
- package/core/Equal.ff +41 -36
- package/core/Error.ff +15 -10
- package/core/FileHandle.ff +45 -37
- package/core/Float.ff +176 -200
- package/core/HttpClient.ff +142 -148
- package/core/Instant.ff +6 -8
- package/core/Int.ff +40 -24
- package/core/IntMap.ff +61 -39
- package/core/Js.ff +305 -0
- package/core/JsSystem.ff +135 -114
- package/core/JsValue.ff +303 -159
- package/core/Json.ff +423 -443
- package/core/List.ff +482 -486
- package/core/Lock.ff +108 -144
- package/core/Log.ff +25 -14
- package/core/NodeSystem.ff +198 -191
- package/core/Ordering.ff +160 -161
- package/core/Path.ff +377 -409
- package/core/Queue.ff +90 -0
- package/core/Random.ff +140 -134
- package/core/RbMap.ff +216 -216
- package/core/Serializable.ff +16 -13
- package/core/Show.ff +44 -43
- package/core/SourceLocation.ff +68 -68
- package/core/Stream.ff +1 -1
- package/core/String.ff +224 -202
- package/core/StringMap.ff +58 -36
- package/core/Task.ff +165 -149
- package/experimental/benchmarks/ListGrab.ff +23 -23
- package/experimental/benchmarks/ListGrab.java +55 -55
- package/experimental/benchmarks/Pyrotek45.ff +30 -30
- package/experimental/benchmarks/Pyrotek45.java +64 -64
- package/experimental/bidirectional/Bidi.ff +88 -88
- package/experimental/lines/Main.ff +40 -0
- package/experimental/random/Index.ff +53 -53
- package/experimental/random/Process.ff +120 -120
- package/experimental/random/RunLength.ff +65 -65
- package/experimental/random/Scrape.ff +51 -51
- package/experimental/random/Symbols.ff +73 -73
- package/experimental/random/Tensor.ff +52 -52
- package/experimental/random/Units.ff +36 -36
- package/experimental/s3/S3TestAuthorizationHeader.ff +39 -39
- package/experimental/s3/S3TestPut.ff +16 -16
- package/experimental/tests/TestJson.ff +26 -26
- package/firefly.sh +0 -0
- package/fireflysite/.firefly/package.ff +4 -4
- package/fireflysite/CommunityOverview.ff +20 -20
- package/fireflysite/CountingButtonDemo.ff +58 -58
- package/fireflysite/DocumentParser.ff +325 -331
- package/fireflysite/ExamplesOverview.ff +40 -40
- package/fireflysite/FrontPage.ff +344 -344
- package/fireflysite/GettingStarted.ff +45 -45
- package/fireflysite/Guide.ff +456 -456
- package/fireflysite/Main.ff +163 -152
- package/fireflysite/MatchingPasswordsDemo.ff +82 -82
- package/fireflysite/PackagesOverview.ff +49 -49
- package/fireflysite/PostgresqlDemo.ff +34 -34
- package/fireflysite/ReferenceAll.ff +18 -18
- package/fireflysite/ReferenceIntroduction.ff +11 -11
- package/fireflysite/Styles.ff +567 -567
- package/fireflysite/Test.ff +121 -62
- package/fireflysite/assets/markdown/reference/BaseTypes.md +209 -209
- package/fireflysite/assets/markdown/reference/EmittedJavascript.md +65 -65
- package/fireflysite/assets/markdown/reference/Exceptions.md +101 -101
- package/fireflysite/assets/markdown/reference/FunctionsAndMethods.md +364 -364
- package/fireflysite/assets/markdown/reference/JavascriptInterop.md +235 -172
- package/fireflysite/assets/markdown/reference/ModulesAndPackages.md +162 -162
- package/fireflysite/assets/markdown/reference/OldStructuredConcurrency.md +48 -48
- package/fireflysite/assets/markdown/reference/PatternMatching.md +224 -224
- package/fireflysite/assets/markdown/reference/StatementsAndExpressions.md +86 -86
- package/fireflysite/assets/markdown/reference/StructuredConcurrency.md +99 -99
- package/fireflysite/assets/markdown/reference/TraitsAndInstances.md +100 -100
- package/fireflysite/assets/markdown/reference/UserDefinedTypes.md +184 -184
- package/fireflysite/assets/markdown/scratch/ControlFlow.md +136 -136
- package/fireflysite/assets/markdown/scratch/Toc.md +40 -40
- package/lsp/.firefly/package.ff +1 -1
- package/lsp/CompletionHandler.ff +827 -827
- package/lsp/Handler.ff +714 -714
- package/lsp/HoverHandler.ff +79 -79
- package/lsp/LanguageServer.ff +272 -272
- package/lsp/SignatureHelpHandler.ff +55 -55
- package/lsp/SymbolHandler.ff +181 -181
- package/lsp/TestReferences.ff +17 -17
- package/lsp/TestReferencesCase.ff +7 -7
- package/lsp/stderr.txt +1 -1
- package/lsp/stdout.txt +34 -34
- package/lux/.firefly/package.ff +1 -1
- package/lux/Css.ff +648 -648
- package/lux/CssTest.ff +48 -48
- package/lux/Lux.ff +608 -617
- package/lux/LuxEvent.ff +79 -116
- package/lux/Main.ff +123 -123
- package/lux/Main2.ff +143 -143
- package/lux/TestDry.ff +28 -28
- package/output/js/ff/compiler/Builder.mjs +72 -71
- package/output/js/ff/compiler/Compiler.mjs +19 -13
- package/output/js/ff/compiler/Dependencies.mjs +8 -7
- package/output/js/ff/compiler/DependencyLock.mjs +6 -4
- package/output/js/ff/compiler/Deriver.mjs +26 -24
- package/output/js/ff/compiler/Dictionaries.mjs +14 -18
- package/output/js/ff/compiler/Environment.mjs +6 -4
- package/output/js/ff/compiler/Inference.mjs +238 -164
- package/output/js/ff/compiler/JsEmitter.mjs +1160 -350
- package/output/js/ff/compiler/JsImporter.mjs +20 -18
- package/output/js/ff/compiler/LspHook.mjs +12 -10
- package/output/js/ff/compiler/Main.mjs +61 -41
- package/output/js/ff/compiler/ModuleCache.mjs +10 -8
- package/output/js/ff/compiler/Parser.mjs +153 -669
- package/output/js/ff/compiler/Patterns.mjs +12 -10
- package/output/js/ff/compiler/Resolver.mjs +52 -78
- package/output/js/ff/compiler/Substitution.mjs +12 -16
- package/output/js/ff/compiler/Syntax.mjs +50 -341
- package/output/js/ff/compiler/Token.mjs +126 -4
- package/output/js/ff/compiler/Tokenizer.mjs +62 -52
- package/output/js/ff/compiler/Unification.mjs +74 -90
- package/output/js/ff/compiler/Wildcards.mjs +4 -2
- package/output/js/ff/compiler/Workspace.mjs +26 -20
- package/output/js/ff/core/Any.mjs +20 -20
- package/output/js/ff/core/Array.mjs +268 -175
- package/output/js/ff/core/AssetSystem.mjs +8 -6
- package/output/js/ff/core/Atomic.mjs +84 -52
- package/output/js/ff/core/Bool.mjs +6 -4
- package/output/js/ff/core/BrowserSystem.mjs +38 -29
- package/output/js/ff/core/Buffer.mjs +285 -133
- package/output/js/ff/core/BuildSystem.mjs +36 -56
- package/output/js/ff/core/Channel.mjs +250 -97
- package/output/js/ff/core/Char.mjs +5 -3
- package/output/js/ff/core/Core.mjs +28 -34
- package/output/js/ff/core/Crypto.mjs +30 -52
- package/output/js/ff/core/Duration.mjs +4 -2
- package/output/js/ff/core/Equal.mjs +14 -12
- package/output/js/ff/core/Error.mjs +17 -11
- package/output/js/ff/core/FileHandle.mjs +76 -38
- package/output/js/ff/core/Float.mjs +92 -160
- package/output/js/ff/core/HttpClient.mjs +208 -76
- package/output/js/ff/core/Instant.mjs +8 -10
- package/output/js/ff/core/Int.mjs +36 -26
- package/output/js/ff/core/IntMap.mjs +79 -33
- package/output/js/ff/core/Js.mjs +751 -0
- package/output/js/ff/core/JsSystem.mjs +54 -60
- package/output/js/ff/core/JsValue.mjs +294 -143
- package/output/js/ff/core/Json.mjs +443 -253
- package/output/js/ff/core/List.mjs +262 -214
- package/output/js/ff/core/Lock.mjs +156 -125
- package/output/js/ff/core/Log.mjs +20 -10
- package/output/js/ff/core/Map.mjs +10 -8
- package/output/js/ff/core/NodeSystem.mjs +189 -123
- package/output/js/ff/core/Nothing.mjs +4 -2
- package/output/js/ff/core/Option.mjs +40 -38
- package/output/js/ff/core/Ordering.mjs +26 -20
- package/output/js/ff/core/Pair.mjs +4 -2
- package/output/js/ff/core/Path.mjs +517 -315
- package/output/js/ff/core/Queue.mjs +306 -0
- package/output/js/ff/core/Random.mjs +141 -77
- package/output/js/ff/core/RbMap.mjs +36 -34
- package/output/js/ff/core/Serializable.mjs +44 -28
- package/output/js/ff/core/Set.mjs +6 -4
- package/output/js/ff/core/Show.mjs +8 -6
- package/output/js/ff/core/SourceLocation.mjs +4 -2
- package/output/js/ff/core/Stream.mjs +30 -50
- package/output/js/ff/core/String.mjs +263 -172
- package/output/js/ff/core/StringMap.mjs +77 -31
- package/output/js/ff/core/Task.mjs +91 -76
- package/output/js/ff/core/Try.mjs +20 -18
- package/output/js/ff/core/Unit.mjs +4 -2
- package/package.json +1 -1
- package/postgresql/Pg.ff +53 -59
- package/rpc/.firefly/package.ff +1 -1
- package/rpc/Rpc.ff +70 -70
- package/s3/.firefly/package.ff +1 -1
- package/s3/S3.ff +92 -94
- package/vscode/LICENSE.txt +21 -21
- package/vscode/Prepublish.ff +15 -15
- package/vscode/README.md +16 -16
- package/vscode/client/package-lock.json +544 -544
- package/vscode/client/package.json +22 -22
- package/vscode/client/src/extension.ts +104 -104
- package/vscode/icons/firefly-icon.svg +10 -10
- package/vscode/language-configuration.json +61 -61
- package/vscode/package-lock.json +3623 -3623
- package/vscode/package.json +1 -1
- package/vscode/snippets.json +241 -241
- package/vscode/syntaxes/firefly-markdown-injection.json +45 -45
- package/webserver/.firefly/include/package.json +5 -5
- package/webserver/.firefly/package.ff +2 -2
- package/webserver/WebServer.ff +647 -685
- package/websocket/.firefly/package.ff +1 -1
- package/websocket/WebSocket.ff +100 -131
- package/core/UnsafeJs.ff +0 -42
- package/output/js/ff/core/UnsafeJs.mjs +0 -191
|
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
42
42
|
|
|
43
43
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
44
44
|
|
|
45
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
46
|
+
|
|
45
47
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
46
48
|
|
|
47
49
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
68
70
|
|
|
69
71
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
70
72
|
|
|
73
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
74
|
+
|
|
71
75
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
72
76
|
|
|
73
77
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
90
94
|
|
|
91
95
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
92
96
|
|
|
93
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
94
|
-
|
|
95
97
|
// type GrabException
|
|
96
98
|
const GrabException$ = {GrabException: true};
|
|
97
99
|
export function GrabException() {
|
|
@@ -106,7 +108,7 @@ const _1 = condition_;
|
|
|
106
108
|
if(!_1) {
|
|
107
109
|
return ff_core_Option.None()
|
|
108
110
|
}
|
|
109
|
-
|
|
111
|
+
{
|
|
110
112
|
return ff_core_Option.Some(body_())
|
|
111
113
|
}
|
|
112
114
|
}
|
|
@@ -120,7 +122,7 @@ if(!_1) {
|
|
|
120
122
|
|
|
121
123
|
return
|
|
122
124
|
}
|
|
123
|
-
|
|
125
|
+
{
|
|
124
126
|
body_();
|
|
125
127
|
{
|
|
126
128
|
const condition_r_ = condition_;
|
|
@@ -150,7 +152,7 @@ if(_1.Some) {
|
|
|
150
152
|
const v_ = _1.value_;
|
|
151
153
|
return v_
|
|
152
154
|
}
|
|
153
|
-
|
|
155
|
+
{
|
|
154
156
|
{
|
|
155
157
|
const body_r_ = body_;
|
|
156
158
|
body_ = body_r_
|
|
@@ -168,13 +170,11 @@ return body_()
|
|
|
168
170
|
}
|
|
169
171
|
|
|
170
172
|
export function try_(body_) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
|
|
173
|
+
try {
|
|
174
|
+
return ff_core_Try.Success(body_())
|
|
175
|
+
} catch(e_) {
|
|
176
|
+
return ff_core_Try.Failure(e_)
|
|
177
|
+
}
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
export function throw_(exception_, ff_core_Any_HasAnyTag$E) {
|
|
@@ -182,15 +182,13 @@ return ff_core_Core.throwAny_(ff_core_Any.toAny_(exception_, ff_core_Any_HasAnyT
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
export function throwAny_(exception_) {
|
|
185
|
-
|
|
185
|
+
const e_ = (new Error());
|
|
186
|
+
e_.ffException = exception_;
|
|
187
|
+
throw e_
|
|
186
188
|
}
|
|
187
189
|
|
|
188
190
|
export function panic_(message_) {
|
|
189
|
-
throw new Error(message_)
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
export function same_(x_, y_) {
|
|
193
|
-
return x_ === y_
|
|
191
|
+
throw (new Error(message_))
|
|
194
192
|
}
|
|
195
193
|
|
|
196
194
|
export async function if_$(condition_, body_, $task) {
|
|
@@ -199,7 +197,7 @@ const _1 = condition_;
|
|
|
199
197
|
if(!_1) {
|
|
200
198
|
return ff_core_Option.None()
|
|
201
199
|
}
|
|
202
|
-
|
|
200
|
+
{
|
|
203
201
|
return ff_core_Option.Some((await body_($task)))
|
|
204
202
|
}
|
|
205
203
|
}
|
|
@@ -213,7 +211,7 @@ if(!_1) {
|
|
|
213
211
|
|
|
214
212
|
return
|
|
215
213
|
}
|
|
216
|
-
|
|
214
|
+
{
|
|
217
215
|
(await body_($task));
|
|
218
216
|
{
|
|
219
217
|
const condition_r_ = condition_;
|
|
@@ -243,7 +241,7 @@ if(_1.Some) {
|
|
|
243
241
|
const v_ = _1.value_;
|
|
244
242
|
return v_
|
|
245
243
|
}
|
|
246
|
-
|
|
244
|
+
{
|
|
247
245
|
{
|
|
248
246
|
const body_r_ = body_;
|
|
249
247
|
body_ = body_r_
|
|
@@ -261,13 +259,11 @@ return (await body_($task))
|
|
|
261
259
|
}
|
|
262
260
|
|
|
263
261
|
export async function try_$(body_, $task) {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
270
|
-
|
|
262
|
+
try {
|
|
263
|
+
return ff_core_Try.Success((await body_($task)))
|
|
264
|
+
} catch(e_) {
|
|
265
|
+
return ff_core_Try.Failure(e_)
|
|
266
|
+
}
|
|
271
267
|
}
|
|
272
268
|
|
|
273
269
|
export async function throw_$(exception_, ff_core_Any_HasAnyTag$E, $task) {
|
|
@@ -275,15 +271,13 @@ return ff_core_Core.throwAny_(ff_core_Any.toAny_(exception_, ff_core_Any_HasAnyT
|
|
|
275
271
|
}
|
|
276
272
|
|
|
277
273
|
export async function throwAny_$(exception_, $task) {
|
|
278
|
-
|
|
274
|
+
const e_ = (new Error());
|
|
275
|
+
e_.ffException = exception_;
|
|
276
|
+
throw e_
|
|
279
277
|
}
|
|
280
278
|
|
|
281
279
|
export async function panic_$(message_, $task) {
|
|
282
|
-
throw new Error(
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
export async function same_$(x_, y_, $task) {
|
|
286
|
-
throw new Error('Function same is missing on this target in async context.');
|
|
280
|
+
throw (new Error(message_))
|
|
287
281
|
}
|
|
288
282
|
|
|
289
283
|
|
|
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
42
42
|
|
|
43
43
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
44
44
|
|
|
45
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
46
|
+
|
|
45
47
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
46
48
|
|
|
47
49
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
68
70
|
|
|
69
71
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
70
72
|
|
|
73
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
74
|
+
|
|
71
75
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
72
76
|
|
|
73
77
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -90,42 +94,27 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
90
94
|
|
|
91
95
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
92
96
|
|
|
93
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
94
|
-
|
|
95
97
|
// type Crypto
|
|
96
98
|
|
|
97
99
|
|
|
98
100
|
|
|
99
101
|
|
|
100
102
|
export function internalHashPassword_(system_, salt_, password_, iterations_) {
|
|
101
|
-
|
|
103
|
+
;
|
|
104
|
+
const keyMaterial_ = system_.subtle.importKey("raw", password_, {name: "PBKDF2"}, false, ["deriveBits"]);
|
|
105
|
+
const hashBuffer_ = system_.subtle.deriveBits({name: "PBKDF2", salt: salt_, iterations: iterations_, hash: "SHA-256"}, keyMaterial_, 256);
|
|
106
|
+
return (new DataView(hashBuffer_))
|
|
102
107
|
}
|
|
103
108
|
|
|
104
109
|
export async function internalHashPassword_$(system_, salt_, password_, iterations_, $task) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
{name: 'PBKDF2'},
|
|
110
|
-
false,
|
|
111
|
-
['deriveBits']
|
|
112
|
-
);
|
|
113
|
-
const hashBuffer = await crypto.subtle.deriveBits(
|
|
114
|
-
{
|
|
115
|
-
name: 'PBKDF2',
|
|
116
|
-
salt: salt_,
|
|
117
|
-
iterations: iterations_,
|
|
118
|
-
hash: 'SHA-256'
|
|
119
|
-
},
|
|
120
|
-
keyMaterial,
|
|
121
|
-
256
|
|
122
|
-
);
|
|
123
|
-
return new DataView(hashBuffer);
|
|
124
|
-
|
|
110
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
111
|
+
const keyMaterial_ = (await system_.subtle.importKey("raw", password_, {name: "PBKDF2"}, false, ["deriveBits"]));
|
|
112
|
+
const hashBuffer_ = (await system_.subtle.deriveBits({name: "PBKDF2", salt: salt_, iterations: iterations_, hash: "SHA-256"}, keyMaterial_, 256));
|
|
113
|
+
return (new DataView(hashBuffer_))
|
|
125
114
|
}
|
|
126
115
|
|
|
127
116
|
export function Crypto_randomUuid(self_) {
|
|
128
|
-
|
|
117
|
+
return self_.randomUUID()
|
|
129
118
|
}
|
|
130
119
|
|
|
131
120
|
export function Crypto_randomBuffer(self_, size_) {
|
|
@@ -135,15 +124,20 @@ return buffer_
|
|
|
135
124
|
}
|
|
136
125
|
|
|
137
126
|
export function Crypto_randomizeBuffer(self_, buffer_) {
|
|
138
|
-
|
|
127
|
+
self_.getRandomValues((new Uint8Array(buffer_.buffer, buffer_.byteOffset, buffer_.byteLength)))
|
|
139
128
|
}
|
|
140
129
|
|
|
141
130
|
export function Crypto_hmacSha256(self_, key_, buffer_) {
|
|
142
|
-
|
|
131
|
+
;
|
|
132
|
+
const cryptoKey_ = self_.subtle.importKey("raw", key_, {name: "HMAC", hash: {name: "SHA-256"}}, false, ["sign"]);
|
|
133
|
+
const signature_ = self_.subtle.sign("HMAC", cryptoKey_, buffer_);
|
|
134
|
+
return (new DataView(signature_))
|
|
143
135
|
}
|
|
144
136
|
|
|
145
137
|
export function Crypto_sha256(self_, buffer_) {
|
|
146
|
-
|
|
138
|
+
;
|
|
139
|
+
const hash_ = self_.subtle.digest("SHA-256", buffer_);
|
|
140
|
+
return (new DataView(hash_))
|
|
147
141
|
}
|
|
148
142
|
|
|
149
143
|
export function Crypto_hashPassword(self_, password_, iterations_ = 600000) {
|
|
@@ -188,9 +182,7 @@ return (v_ === 0)
|
|
|
188
182
|
}
|
|
189
183
|
|
|
190
184
|
export async function Crypto_randomUuid$(self_, $task) {
|
|
191
|
-
|
|
192
|
-
return self_.randomUUID();
|
|
193
|
-
|
|
185
|
+
return self_.randomUUID()
|
|
194
186
|
}
|
|
195
187
|
|
|
196
188
|
export async function Crypto_randomBuffer$(self_, size_, $task) {
|
|
@@ -200,34 +192,20 @@ return buffer_
|
|
|
200
192
|
}
|
|
201
193
|
|
|
202
194
|
export async function Crypto_randomizeBuffer$(self_, buffer_, $task) {
|
|
203
|
-
|
|
204
|
-
self_.getRandomValues(new Uint8Array(buffer_.buffer, buffer_.byteOffset, buffer_.byteLength));
|
|
205
|
-
|
|
195
|
+
self_.getRandomValues((new Uint8Array(buffer_.buffer, buffer_.byteOffset, buffer_.byteLength)))
|
|
206
196
|
}
|
|
207
197
|
|
|
208
198
|
export async function Crypto_hmacSha256$(self_, key_, buffer_, $task) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
{name: 'HMAC', hash: {name: 'SHA-256'}},
|
|
214
|
-
false,
|
|
215
|
-
['sign']
|
|
216
|
-
);
|
|
217
|
-
const signature = await self_.subtle.sign(
|
|
218
|
-
'HMAC',
|
|
219
|
-
cryptoKey,
|
|
220
|
-
buffer_
|
|
221
|
-
);
|
|
222
|
-
return new DataView(signature);
|
|
223
|
-
|
|
199
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
200
|
+
const cryptoKey_ = (await self_.subtle.importKey("raw", key_, {name: "HMAC", hash: {name: "SHA-256"}}, false, ["sign"]));
|
|
201
|
+
const signature_ = (await self_.subtle.sign("HMAC", cryptoKey_, buffer_));
|
|
202
|
+
return (new DataView(signature_))
|
|
224
203
|
}
|
|
225
204
|
|
|
226
205
|
export async function Crypto_sha256$(self_, buffer_, $task) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
206
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
207
|
+
const hash_ = (await self_.subtle.digest("SHA-256", buffer_));
|
|
208
|
+
return (new DataView(hash_))
|
|
231
209
|
}
|
|
232
210
|
|
|
233
211
|
export async function Crypto_hashPassword$(self_, password_, iterations_ = 600000, $task) {
|
|
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
42
42
|
|
|
43
43
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
44
44
|
|
|
45
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
46
|
+
|
|
45
47
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
46
48
|
|
|
47
49
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
68
70
|
|
|
69
71
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
70
72
|
|
|
73
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
74
|
+
|
|
71
75
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
72
76
|
|
|
73
77
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
90
94
|
|
|
91
95
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
92
96
|
|
|
93
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
94
|
-
|
|
95
97
|
// newtype Duration
|
|
96
98
|
|
|
97
99
|
|
|
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
42
42
|
|
|
43
43
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
44
44
|
|
|
45
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
46
|
+
|
|
45
47
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
46
48
|
|
|
47
49
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
68
70
|
|
|
69
71
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
70
72
|
|
|
73
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
74
|
+
|
|
71
75
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
72
76
|
|
|
73
77
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
90
94
|
|
|
91
95
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
92
96
|
|
|
93
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
94
|
-
|
|
95
97
|
|
|
96
98
|
|
|
97
99
|
|
|
@@ -117,46 +119,46 @@ return true
|
|
|
117
119
|
|
|
118
120
|
export const ff_core_Equal_Equal$ff_core_Bool_Bool = {
|
|
119
121
|
equals_(x_, y_) {
|
|
120
|
-
return x_ === y_
|
|
122
|
+
return (x_ === y_)
|
|
121
123
|
},
|
|
122
124
|
async equals_$(x_, y_, $task) {
|
|
123
|
-
|
|
125
|
+
return (x_ === y_)
|
|
124
126
|
}
|
|
125
127
|
};
|
|
126
128
|
|
|
127
129
|
export const ff_core_Equal_Equal$ff_core_Char_Char = {
|
|
128
130
|
equals_(x_, y_) {
|
|
129
|
-
return x_ === y_
|
|
131
|
+
return (x_ === y_)
|
|
130
132
|
},
|
|
131
133
|
async equals_$(x_, y_, $task) {
|
|
132
|
-
|
|
134
|
+
return (x_ === y_)
|
|
133
135
|
}
|
|
134
136
|
};
|
|
135
137
|
|
|
136
138
|
export const ff_core_Equal_Equal$ff_core_Int_Int = {
|
|
137
139
|
equals_(x_, y_) {
|
|
138
|
-
return x_ === y_
|
|
140
|
+
return (x_ === y_)
|
|
139
141
|
},
|
|
140
142
|
async equals_$(x_, y_, $task) {
|
|
141
|
-
|
|
143
|
+
return (x_ === y_)
|
|
142
144
|
}
|
|
143
145
|
};
|
|
144
146
|
|
|
145
147
|
export const ff_core_Equal_Equal$ff_core_Float_Float = {
|
|
146
148
|
equals_(x_, y_) {
|
|
147
|
-
return x_ === y_
|
|
149
|
+
return (x_ === y_)
|
|
148
150
|
},
|
|
149
151
|
async equals_$(x_, y_, $task) {
|
|
150
|
-
|
|
152
|
+
return (x_ === y_)
|
|
151
153
|
}
|
|
152
154
|
};
|
|
153
155
|
|
|
154
156
|
export const ff_core_Equal_Equal$ff_core_String_String = {
|
|
155
157
|
equals_(x_, y_) {
|
|
156
|
-
return x_ === y_
|
|
158
|
+
return (x_ === y_)
|
|
157
159
|
},
|
|
158
160
|
async equals_$(x_, y_, $task) {
|
|
159
|
-
|
|
161
|
+
return (x_ === y_)
|
|
160
162
|
}
|
|
161
163
|
};
|
|
162
164
|
|
|
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
42
42
|
|
|
43
43
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
44
44
|
|
|
45
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
46
|
+
|
|
45
47
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
46
48
|
|
|
47
49
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
68
70
|
|
|
69
71
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
70
72
|
|
|
73
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
74
|
+
|
|
71
75
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
72
76
|
|
|
73
77
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
90
94
|
|
|
91
95
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
92
96
|
|
|
93
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
94
|
-
|
|
95
97
|
// type Error
|
|
96
98
|
|
|
97
99
|
|
|
@@ -106,39 +108,43 @@ throw self_
|
|
|
106
108
|
}
|
|
107
109
|
|
|
108
110
|
export function Error_name(self_) {
|
|
109
|
-
return self_.name
|
|
111
|
+
return ff_core_JsValue.JsValue_coalesce(self_.name, "", ff_core_JsValue.ff_core_JsValue_IsJsValue$ff_core_String_String)
|
|
110
112
|
}
|
|
111
113
|
|
|
112
114
|
export function Error_message(self_) {
|
|
113
|
-
return self_.message
|
|
115
|
+
return ff_core_JsValue.JsValue_coalesce(self_.message, "", ff_core_JsValue.ff_core_JsValue_IsJsValue$ff_core_String_String)
|
|
114
116
|
}
|
|
115
117
|
|
|
116
118
|
export function Error_stack(self_) {
|
|
117
|
-
return self_.stack
|
|
119
|
+
return ff_core_JsValue.JsValue_coalesce(self_.stack, "", ff_core_JsValue.ff_core_JsValue_IsJsValue$ff_core_String_String)
|
|
118
120
|
}
|
|
119
121
|
|
|
120
122
|
export function Error_exception(self_) {
|
|
121
|
-
|
|
123
|
+
if((!ff_core_JsValue.JsValue_isNullOrUndefined(self_.ffException))) {
|
|
124
|
+
return ff_core_Option.Some(self_.ffException)
|
|
125
|
+
} else return ff_core_Option.None()
|
|
122
126
|
}
|
|
123
127
|
|
|
124
128
|
export async function Error_rethrow$(self_, $task) {
|
|
125
|
-
throw
|
|
129
|
+
throw self_
|
|
126
130
|
}
|
|
127
131
|
|
|
128
132
|
export async function Error_name$(self_, $task) {
|
|
129
|
-
|
|
133
|
+
return ff_core_JsValue.JsValue_coalesce(self_.name, "", ff_core_JsValue.ff_core_JsValue_IsJsValue$ff_core_String_String)
|
|
130
134
|
}
|
|
131
135
|
|
|
132
136
|
export async function Error_message$(self_, $task) {
|
|
133
|
-
|
|
137
|
+
return ff_core_JsValue.JsValue_coalesce(self_.message, "", ff_core_JsValue.ff_core_JsValue_IsJsValue$ff_core_String_String)
|
|
134
138
|
}
|
|
135
139
|
|
|
136
140
|
export async function Error_stack$(self_, $task) {
|
|
137
|
-
|
|
141
|
+
return ff_core_JsValue.JsValue_coalesce(self_.stack, "", ff_core_JsValue.ff_core_JsValue_IsJsValue$ff_core_String_String)
|
|
138
142
|
}
|
|
139
143
|
|
|
140
144
|
export async function Error_exception$(self_, $task) {
|
|
141
|
-
|
|
145
|
+
if((!ff_core_JsValue.JsValue_isNullOrUndefined(self_.ffException))) {
|
|
146
|
+
return ff_core_Option.Some(self_.ffException)
|
|
147
|
+
} else return ff_core_Option.None()
|
|
142
148
|
}
|
|
143
149
|
|
|
144
150
|
|
|
@@ -42,6 +42,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
42
42
|
|
|
43
43
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
44
44
|
|
|
45
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
46
|
+
|
|
45
47
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
46
48
|
|
|
47
49
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -68,6 +70,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
68
70
|
|
|
69
71
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
70
72
|
|
|
73
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
74
|
+
|
|
71
75
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
72
76
|
|
|
73
77
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -90,8 +94,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
90
94
|
|
|
91
95
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
92
96
|
|
|
93
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
94
|
-
|
|
95
97
|
// type FileHandle
|
|
96
98
|
|
|
97
99
|
|
|
@@ -102,81 +104,117 @@ import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
|
102
104
|
|
|
103
105
|
|
|
104
106
|
export function FileHandle_close(self_) {
|
|
105
|
-
|
|
107
|
+
self_.close()
|
|
106
108
|
}
|
|
107
109
|
|
|
108
110
|
export function FileHandle_read(self_, buffer_, offset_ = 0, length_ = ff_core_Option.None(), position_ = ff_core_Option.None()) {
|
|
109
|
-
|
|
111
|
+
;
|
|
112
|
+
self_.read(buffer_, {offset: offset_, length: ff_core_Option.Option_else(ff_core_Option.Option_map(length_, ((_w1) => {
|
|
113
|
+
return _w1
|
|
114
|
+
})), (() => {
|
|
115
|
+
return (void 0)
|
|
116
|
+
})), position: ff_core_Option.Option_else(ff_core_Option.Option_map(position_, ((_w1) => {
|
|
117
|
+
return _w1
|
|
118
|
+
})), (() => {
|
|
119
|
+
return (void 0)
|
|
120
|
+
}))})
|
|
110
121
|
}
|
|
111
122
|
|
|
112
123
|
export function FileHandle_write(self_, buffer_, offset_ = 0, length_ = ff_core_Option.None(), position_ = ff_core_Option.None()) {
|
|
113
|
-
|
|
124
|
+
;
|
|
125
|
+
self_.write(buffer_, offset_, ff_core_Option.Option_else(ff_core_Option.Option_map(length_, ((_w1) => {
|
|
126
|
+
return _w1
|
|
127
|
+
})), (() => {
|
|
128
|
+
return (void 0)
|
|
129
|
+
})), ff_core_Option.Option_else(ff_core_Option.Option_map(position_, ((_w1) => {
|
|
130
|
+
return _w1
|
|
131
|
+
})), (() => {
|
|
132
|
+
return (void 0)
|
|
133
|
+
})))
|
|
114
134
|
}
|
|
115
135
|
|
|
116
136
|
export function FileHandle_writeText(self_, text_, position_ = ff_core_Option.None(), encoding_ = "utf8") {
|
|
117
|
-
|
|
137
|
+
;
|
|
138
|
+
self_.write(text_, ff_core_Option.Option_else(ff_core_Option.Option_map(position_, ((_w1) => {
|
|
139
|
+
return _w1
|
|
140
|
+
})), (() => {
|
|
141
|
+
return (void 0)
|
|
142
|
+
})), encoding_)
|
|
118
143
|
}
|
|
119
144
|
|
|
120
145
|
export function FileHandle_writeLine(self_, text_, position_ = ff_core_Option.None(), encoding_ = "utf8") {
|
|
121
|
-
|
|
146
|
+
ff_core_FileHandle.FileHandle_writeText(self_, (text_ + "\n"), position_, encoding_)
|
|
122
147
|
}
|
|
123
148
|
|
|
124
149
|
export function FileHandle_truncate(self_, length_ = 0) {
|
|
125
|
-
|
|
150
|
+
;
|
|
151
|
+
self_.truncate(length_)
|
|
126
152
|
}
|
|
127
153
|
|
|
128
154
|
export function FileHandle_sync(self_, dataOnly_ = false) {
|
|
129
|
-
|
|
155
|
+
;
|
|
156
|
+
if(dataOnly_) {
|
|
157
|
+
self_.datasync()
|
|
158
|
+
} else {
|
|
159
|
+
self_.sync()
|
|
160
|
+
}
|
|
130
161
|
}
|
|
131
162
|
|
|
132
163
|
export async function FileHandle_close$(self_, $task) {
|
|
133
|
-
|
|
134
|
-
await self_.close()
|
|
135
|
-
|
|
164
|
+
(await self_.close())
|
|
136
165
|
}
|
|
137
166
|
|
|
138
167
|
export async function FileHandle_read$(self_, buffer_, offset_ = 0, length_ = ff_core_Option.None(), position_ = ff_core_Option.None(), $task) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
168
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
169
|
+
(await self_.read(buffer_, {offset: offset_, length: ff_core_Option.Option_else(ff_core_Option.Option_map(length_, ((_w1) => {
|
|
170
|
+
return _w1
|
|
171
|
+
})), (() => {
|
|
172
|
+
return (void 0)
|
|
173
|
+
})), position: ff_core_Option.Option_else(ff_core_Option.Option_map(position_, ((_w1) => {
|
|
174
|
+
return _w1
|
|
175
|
+
})), (() => {
|
|
176
|
+
return (void 0)
|
|
177
|
+
}))}))
|
|
143
178
|
}
|
|
144
179
|
|
|
145
180
|
export async function FileHandle_write$(self_, buffer_, offset_ = 0, length_ = ff_core_Option.None(), position_ = ff_core_Option.None(), $task) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
181
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
182
|
+
(await self_.write(buffer_, offset_, ff_core_Option.Option_else(ff_core_Option.Option_map(length_, ((_w1) => {
|
|
183
|
+
return _w1
|
|
184
|
+
})), (() => {
|
|
185
|
+
return (void 0)
|
|
186
|
+
})), ff_core_Option.Option_else(ff_core_Option.Option_map(position_, ((_w1) => {
|
|
187
|
+
return _w1
|
|
188
|
+
})), (() => {
|
|
189
|
+
return (void 0)
|
|
190
|
+
}))))
|
|
150
191
|
}
|
|
151
192
|
|
|
152
193
|
export async function FileHandle_writeText$(self_, text_, position_ = ff_core_Option.None(), encoding_ = "utf8", $task) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
194
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
195
|
+
(await self_.write(text_, ff_core_Option.Option_else(ff_core_Option.Option_map(position_, ((_w1) => {
|
|
196
|
+
return _w1
|
|
197
|
+
})), (() => {
|
|
198
|
+
return (void 0)
|
|
199
|
+
})), encoding_))
|
|
157
200
|
}
|
|
158
201
|
|
|
159
202
|
export async function FileHandle_writeLine$(self_, text_, position_ = ff_core_Option.None(), encoding_ = "utf8", $task) {
|
|
160
|
-
|
|
161
|
-
ff_core_Task.Task_throwIfAborted($task)
|
|
162
|
-
await self_.write(text + "\
|
|
163
|
-
", position.value_, encoding_)
|
|
164
|
-
|
|
203
|
+
(await ff_core_FileHandle.FileHandle_writeText$(self_, (text_ + "\n"), position_, encoding_, $task))
|
|
165
204
|
}
|
|
166
205
|
|
|
167
206
|
export async function FileHandle_truncate$(self_, length_ = 0, $task) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
await self_.truncate(length_)
|
|
171
|
-
|
|
207
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
208
|
+
(await self_.truncate(length_))
|
|
172
209
|
}
|
|
173
210
|
|
|
174
211
|
export async function FileHandle_sync$(self_, dataOnly_ = false, $task) {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
212
|
+
ff_core_Task.Task_throwIfAborted($task);
|
|
213
|
+
if(dataOnly_) {
|
|
214
|
+
(await self_.datasync())
|
|
215
|
+
} else {
|
|
216
|
+
(await self_.sync())
|
|
217
|
+
}
|
|
180
218
|
}
|
|
181
219
|
|
|
182
220
|
|