firefly-compiler 0.5.48 → 0.5.49

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 (94) hide show
  1. package/bin/firefly.mjs +1 -1
  2. package/compiler/Compiler.ff +1 -1
  3. package/core/BrowserSystem.ff +5 -0
  4. package/core/Date.ff +623 -0
  5. package/core/Instant.ff +0 -24
  6. package/core/JsValue.ff +1 -1
  7. package/core/Map.ff +8 -0
  8. package/core/NodeSystem.ff +5 -0
  9. package/core/Path.ff +2 -2
  10. package/core/Random.ff +0 -4
  11. package/core/RbMap.ff +16 -0
  12. package/core/Set.ff +3 -1
  13. package/core/Task.ff +0 -4
  14. package/experimental/tests/TestDate.ff +10 -0
  15. package/experimental/tests/TestEmailAlertDateLogic.ff +84 -0
  16. package/firefly.sh +5 -5
  17. package/output/js/ff/compiler/Builder.mjs +2 -2
  18. package/output/js/ff/compiler/Compiler.mjs +3 -3
  19. package/output/js/ff/compiler/Dependencies.mjs +2 -2
  20. package/output/js/ff/compiler/DependencyLock.mjs +2 -2
  21. package/output/js/ff/compiler/Deriver.mjs +2 -2
  22. package/output/js/ff/compiler/Dictionaries.mjs +2 -2
  23. package/output/js/ff/compiler/Environment.mjs +2 -2
  24. package/output/js/ff/compiler/Inference.mjs +2 -2
  25. package/output/js/ff/compiler/JsEmitter.mjs +2 -2
  26. package/output/js/ff/compiler/JsImporter.mjs +2 -2
  27. package/output/js/ff/compiler/LspHook.mjs +2 -2
  28. package/output/js/ff/compiler/Main.mjs +2 -2
  29. package/output/js/ff/compiler/ModuleCache.mjs +2 -2
  30. package/output/js/ff/compiler/Parser.mjs +2 -2
  31. package/output/js/ff/compiler/Patterns.mjs +2 -2
  32. package/output/js/ff/compiler/Resolver.mjs +2 -2
  33. package/output/js/ff/compiler/Substitution.mjs +2 -2
  34. package/output/js/ff/compiler/Syntax.mjs +2 -2
  35. package/output/js/ff/compiler/Token.mjs +2 -2
  36. package/output/js/ff/compiler/Tokenizer.mjs +2 -2
  37. package/output/js/ff/compiler/Unification.mjs +2 -2
  38. package/output/js/ff/compiler/Wildcards.mjs +2 -2
  39. package/output/js/ff/compiler/Workspace.mjs +2 -2
  40. package/output/js/ff/core/Any.mjs +2 -2
  41. package/output/js/ff/core/Array.mjs +2 -2
  42. package/output/js/ff/core/AssetSystem.mjs +2 -2
  43. package/output/js/ff/core/Atomic.mjs +2 -2
  44. package/output/js/ff/core/Bool.mjs +2 -2
  45. package/output/js/ff/core/BrowserSystem.mjs +28 -2
  46. package/output/js/ff/core/Buffer.mjs +2 -2
  47. package/output/js/ff/core/BuildSystem.mjs +2 -2
  48. package/output/js/ff/core/Channel.mjs +2 -2
  49. package/output/js/ff/core/Char.mjs +2 -2
  50. package/output/js/ff/core/Core.mjs +2 -2
  51. package/output/js/ff/core/Crypto.mjs +2 -2
  52. package/output/js/ff/core/Date.mjs +1009 -0
  53. package/output/js/ff/core/Duration.mjs +2 -2
  54. package/output/js/ff/core/Equal.mjs +2 -2
  55. package/output/js/ff/core/Error.mjs +2 -2
  56. package/output/js/ff/core/FileHandle.mjs +2 -2
  57. package/output/js/ff/core/Float.mjs +2 -2
  58. package/output/js/ff/core/HttpClient.mjs +2 -2
  59. package/output/js/ff/core/Int.mjs +2 -2
  60. package/output/js/ff/core/IntMap.mjs +2 -2
  61. package/output/js/ff/core/Js.mjs +2 -2
  62. package/output/js/ff/core/JsSystem.mjs +2 -2
  63. package/output/js/ff/core/JsValue.mjs +3 -3
  64. package/output/js/ff/core/Json.mjs +2 -2
  65. package/output/js/ff/core/List.mjs +2 -2
  66. package/output/js/ff/core/Lock.mjs +2 -2
  67. package/output/js/ff/core/Log.mjs +2 -2
  68. package/output/js/ff/core/Map.mjs +18 -2
  69. package/output/js/ff/core/NodeSystem.mjs +28 -2
  70. package/output/js/ff/core/Nothing.mjs +2 -2
  71. package/output/js/ff/core/Option.mjs +2 -2
  72. package/output/js/ff/core/Ordering.mjs +2 -2
  73. package/output/js/ff/core/Pair.mjs +2 -2
  74. package/output/js/ff/core/Path.mjs +4 -4
  75. package/output/js/ff/core/Queue.mjs +2 -2
  76. package/output/js/ff/core/Random.mjs +2 -10
  77. package/output/js/ff/core/RbMap.mjs +74 -2
  78. package/output/js/ff/core/Serializable.mjs +2 -2
  79. package/output/js/ff/core/Set.mjs +26 -2
  80. package/output/js/ff/core/Show.mjs +2 -2
  81. package/output/js/ff/core/SourceLocation.mjs +2 -2
  82. package/output/js/ff/core/Stream.mjs +2 -2
  83. package/output/js/ff/core/String.mjs +2 -2
  84. package/output/js/ff/core/StringMap.mjs +2 -2
  85. package/output/js/ff/core/Task.mjs +2 -10
  86. package/output/js/ff/core/Try.mjs +2 -2
  87. package/output/js/ff/core/Unit.mjs +2 -2
  88. package/package.json +1 -1
  89. package/postgresql/Pg.ff +0 -40
  90. package/s3/S3.ff +4 -4
  91. package/vscode/package.json +1 -1
  92. package/experimental/IfBug.ff +0 -8
  93. package/output/js/ff/core/Instant.mjs +0 -149
  94. /package/fireflysite/assets/markdown/scratch/{Toc.md → toc.md} +0 -0
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -877,7 +877,7 @@ export const ff_core_JsValue_IsJsValue$ff_core_Error_Error = {
877
877
 
878
878
  };
879
879
 
880
- export const ff_core_JsValue_IsJsValue$ff_core_Instant_Instant = {
880
+ export const ff_core_JsValue_IsJsValue$ff_core_Date_Date = {
881
881
 
882
882
  };
883
883
 
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -137,6 +137,14 @@ export function Map_get(self_, key_, ff_core_Ordering_Order$K) {
137
137
  return ff_core_RbMap.RB_get(self_, key_, ff_core_Ordering_Order$K)
138
138
  }
139
139
 
140
+ export function Map_first(self_, ff_core_Ordering_Order$K) {
141
+ return ff_core_RbMap.RB_first(self_, ff_core_Ordering_Order$K)
142
+ }
143
+
144
+ export function Map_last(self_, ff_core_Ordering_Order$K) {
145
+ return ff_core_RbMap.RB_last(self_, ff_core_Ordering_Order$K)
146
+ }
147
+
140
148
  export function Map_lastBefore(self_, key_, ff_core_Ordering_Order$K) {
141
149
  return ff_core_RbMap.RB_lastBefore(self_, key_, ff_core_Ordering_Order$K)
142
150
  }
@@ -264,6 +272,14 @@ export async function Map_get$(self_, key_, ff_core_Ordering_Order$K, $task) {
264
272
  return ff_core_RbMap.RB_get(self_, key_, ff_core_Ordering_Order$K)
265
273
  }
266
274
 
275
+ export async function Map_first$(self_, ff_core_Ordering_Order$K, $task) {
276
+ return ff_core_RbMap.RB_first(self_, ff_core_Ordering_Order$K)
277
+ }
278
+
279
+ export async function Map_last$(self_, ff_core_Ordering_Order$K, $task) {
280
+ return ff_core_RbMap.RB_last(self_, ff_core_Ordering_Order$K)
281
+ }
282
+
267
283
  export async function Map_lastBefore$(self_, key_, ff_core_Ordering_Order$K, $task) {
268
284
  return ff_core_RbMap.RB_lastBefore(self_, key_, ff_core_Ordering_Order$K)
269
285
  }
@@ -30,6 +30,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
30
30
 
31
31
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
32
32
 
33
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
34
+
33
35
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
34
36
 
35
37
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -42,8 +44,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
42
44
 
43
45
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
44
46
 
45
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
46
-
47
47
  import * as ff_core_Int from "../../ff/core/Int.mjs"
48
48
 
49
49
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -199,6 +199,19 @@ export function NodeSystem_js(self_) {
199
199
  return globalThis
200
200
  }
201
201
 
202
+ export function NodeSystem_date(self_, timeZoneId_ = ff_core_Option.None(), calendarId_ = ff_core_Date.isoCalendarId_) {
203
+ const date_ = Temporal.Now.zonedDateTimeISO(ff_core_Option.Option_else(ff_core_Option.Option_map(timeZoneId_, ((_w1) => {
204
+ return _w1
205
+ })), (() => {
206
+ return (void 0)
207
+ })));
208
+ if((calendarId_ === ff_core_Date.isoCalendarId_)) {
209
+ return date_
210
+ } else {
211
+ return ff_core_Date.Date_withCalendar(date_, calendarId_)
212
+ }
213
+ }
214
+
202
215
  export function NodeSystem_exit(self_, exitCode_ = 0) {
203
216
  return process.exit(exitCode_)
204
217
  }
@@ -369,6 +382,19 @@ export async function NodeSystem_js$(self_, $task) {
369
382
  return globalThis
370
383
  }
371
384
 
385
+ export async function NodeSystem_date$(self_, timeZoneId_ = ff_core_Option.None(), calendarId_ = ff_core_Date.isoCalendarId_, $task) {
386
+ const date_ = Temporal.Now.zonedDateTimeISO(ff_core_Option.Option_else(ff_core_Option.Option_map(timeZoneId_, ((_w1) => {
387
+ return _w1
388
+ })), (() => {
389
+ return (void 0)
390
+ })));
391
+ if((calendarId_ === ff_core_Date.isoCalendarId_)) {
392
+ return date_
393
+ } else {
394
+ return ff_core_Date.Date_withCalendar(date_, calendarId_)
395
+ }
396
+ }
397
+
372
398
  export async function NodeSystem_exit$(self_, exitCode_ = 0, $task) {
373
399
  return process.exit(exitCode_)
374
400
  }
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -30,6 +30,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
30
30
 
31
31
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
32
32
 
33
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
34
+
33
35
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
34
36
 
35
37
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -42,8 +44,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
42
44
 
43
45
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
44
46
 
45
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
46
-
47
47
  import * as ff_core_Int from "../../ff/core/Int.mjs"
48
48
 
49
49
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -416,7 +416,7 @@ return fs_.promises.stat(self_.absolutePath_)
416
416
 
417
417
  export function Path_modified(self_) {
418
418
  const fs_ = import$0;
419
- return (fs_.promises.stat(self_.absolutePath_).mtimeMs * 0.001)
419
+ return ff_core_Date.newEpochMilliseconds_("UTC", fs_.promises.stat(self_.absolutePath_).mtimeMs, "iso8601")
420
420
  }
421
421
 
422
422
  export function Path_entries(self_) {
@@ -714,7 +714,7 @@ return (await fs_.promises.stat(self_.absolutePath_))
714
714
 
715
715
  export async function Path_modified$(self_, $task) {
716
716
  const fs_ = import$0;
717
- return ((await fs_.promises.stat(self_.absolutePath_)).mtimeMs * 0.001)
717
+ return ff_core_Date.newEpochMilliseconds_("UTC", (await fs_.promises.stat(self_.absolutePath_)).mtimeMs, "iso8601")
718
718
  }
719
719
 
720
720
  export async function Path_entries$(self_, $task) {
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -24,6 +24,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
24
24
 
25
25
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
26
26
 
27
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
28
+
27
29
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
28
30
 
29
31
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -36,8 +38,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
36
38
 
37
39
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
38
40
 
39
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
40
-
41
41
  import * as ff_core_Int from "../../ff/core/Int.mjs"
42
42
 
43
43
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -111,10 +111,6 @@ ff_core_Buffer.Buffer_setFloat64(buffer_, 0, seed_, true);
111
111
  return ff_core_Random.newFromBuffer_(buffer_)
112
112
  }
113
113
 
114
- export function newFromInstant_(seed_) {
115
- return ff_core_Random.newFromFloat_(seed_)
116
- }
117
-
118
114
  export function newFromBuffer_(buffer_) {
119
115
  let n_ = ff_core_Int.Int_toFloat(0xefc8249d);
120
116
  function mash_(data_) {
@@ -158,10 +154,6 @@ ff_core_Buffer.Buffer_setFloat64(buffer_, 0, seed_, true);
158
154
  return ff_core_Random.newFromBuffer_(buffer_)
159
155
  }
160
156
 
161
- export async function newFromInstant_$(seed_, $task) {
162
- return ff_core_Random.newFromFloat_(seed_)
163
- }
164
-
165
157
  export async function newFromBuffer_$(buffer_, $task) {
166
158
  let n_ = ff_core_Int.Int_toFloat(0xefc8249d);
167
159
  function mash_(data_) {
@@ -26,6 +26,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
26
26
 
27
27
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
28
28
 
29
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
30
+
29
31
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
30
32
 
31
33
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -38,8 +40,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
38
40
 
39
41
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
40
42
 
41
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
42
-
43
43
  import * as ff_core_Int from "../../ff/core/Int.mjs"
44
44
 
45
45
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -995,6 +995,42 @@ return
995
995
  }
996
996
  }
997
997
 
998
+ export function RB_first(self_, ff_core_Ordering_Order$K) {
999
+ {
1000
+ const _1 = self_;
1001
+ if(_1.E) {
1002
+ return ff_core_Option.None()
1003
+ }
1004
+ if(_1.T && _1.left_.E) {
1005
+ const k_ = _1.key_;
1006
+ const v_ = _1.value_;
1007
+ return ff_core_Option.Some(ff_core_Pair.Pair(k_, v_))
1008
+ }
1009
+ {
1010
+ const l_ = _1.left_;
1011
+ return ff_core_RbMap.RB_first(l_, ff_core_Ordering_Order$K)
1012
+ }
1013
+ }
1014
+ }
1015
+
1016
+ export function RB_last(self_, ff_core_Ordering_Order$K) {
1017
+ {
1018
+ const _1 = self_;
1019
+ if(_1.E) {
1020
+ return ff_core_Option.None()
1021
+ }
1022
+ if(_1.T && _1.right_.E) {
1023
+ const k_ = _1.key_;
1024
+ const v_ = _1.value_;
1025
+ return ff_core_Option.Some(ff_core_Pair.Pair(k_, v_))
1026
+ }
1027
+ {
1028
+ const r_ = _1.right_;
1029
+ return ff_core_RbMap.RB_last(r_, ff_core_Ordering_Order$K)
1030
+ }
1031
+ }
1032
+ }
1033
+
998
1034
  export function RB_lastBefore(self_, key_, ff_core_Ordering_Order$K) {
999
1035
  {
1000
1036
  const _1 = self_;
@@ -1244,6 +1280,42 @@ return
1244
1280
  }
1245
1281
  }
1246
1282
 
1283
+ export async function RB_first$(self_, ff_core_Ordering_Order$K, $task) {
1284
+ {
1285
+ const _1 = self_;
1286
+ if(_1.E) {
1287
+ return ff_core_Option.None()
1288
+ }
1289
+ if(_1.T && _1.left_.E) {
1290
+ const k_ = _1.key_;
1291
+ const v_ = _1.value_;
1292
+ return ff_core_Option.Some(ff_core_Pair.Pair(k_, v_))
1293
+ }
1294
+ {
1295
+ const l_ = _1.left_;
1296
+ return ff_core_RbMap.RB_first(l_, ff_core_Ordering_Order$K)
1297
+ }
1298
+ }
1299
+ }
1300
+
1301
+ export async function RB_last$(self_, ff_core_Ordering_Order$K, $task) {
1302
+ {
1303
+ const _1 = self_;
1304
+ if(_1.E) {
1305
+ return ff_core_Option.None()
1306
+ }
1307
+ if(_1.T && _1.right_.E) {
1308
+ const k_ = _1.key_;
1309
+ const v_ = _1.value_;
1310
+ return ff_core_Option.Some(ff_core_Pair.Pair(k_, v_))
1311
+ }
1312
+ {
1313
+ const r_ = _1.right_;
1314
+ return ff_core_RbMap.RB_last(r_, ff_core_Ordering_Order$K)
1315
+ }
1316
+ }
1317
+ }
1318
+
1247
1319
  export async function RB_lastBefore$(self_, key_, ff_core_Ordering_Order$K, $task) {
1248
1320
  {
1249
1321
  const _1 = self_;