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
package/core/Path.ff CHANGED
@@ -72,9 +72,9 @@ extend self: Path {
72
72
  Js.await(fs->promises->stat(self.absolutePath))?
73
73
  }
74
74
 
75
- modified(): Instant {
75
+ modified(): Date {
76
76
  let fs = Js.import("fs")
77
- (Js.await(fs->promises->stat(self.absolutePath))->mtimeMs * 0.001!)?
77
+ Date.newEpochMilliseconds("UTC", Js.await(fs->promises->stat(self.absolutePath))->mtimeMs?)
78
78
  }
79
79
 
80
80
  entries(): Stream[PathEntry] {
package/core/Random.ff CHANGED
@@ -19,10 +19,6 @@ newFromFloat(seed: Float): Random {
19
19
  newFromBuffer(buffer)
20
20
  }
21
21
 
22
- newFromInstant(seed: Instant): Random {
23
- newFromFloat(seed.since1970.seconds)
24
- }
25
-
26
22
  newFromBuffer(buffer: Buffer): Random {
27
23
  mutable n: Float = (0xefc8249d).toFloat()
28
24
  function mash(data: Buffer): Float {
package/core/RbMap.ff CHANGED
@@ -124,6 +124,22 @@ extend self[K: Order, V]: RB[K, V] {
124
124
  }
125
125
  }
126
126
 
127
+ first(): Option[Pair[K, V]] {
128
+ self.{
129
+ | E => None
130
+ | T(_, E, k, v, _) => Some(Pair(k, v))
131
+ | T(_, l, _, _, _) => l.first()
132
+ }
133
+ }
134
+
135
+ last(): Option[Pair[K, V]] {
136
+ self.{
137
+ | E => None
138
+ | T(_, _, k, v, E) => Some(Pair(k, v))
139
+ | T(_, _, _, _, r) => r.last()
140
+ }
141
+ }
142
+
127
143
  lastBefore(key: K): Option[Pair[K, V]] {
128
144
  self.{
129
145
  | E => None
package/core/Set.ff CHANGED
@@ -17,6 +17,8 @@ extend self[T: Order]: Set[T] {
17
17
  remove(value: T): Set[T] {Set(self.map.remove(value))}
18
18
  removeAll(that: Set[T]): Set[T] {Set(self.map.removeAll(that.map))}
19
19
  contains(value: T): Bool {self.map.contains(value)}
20
+ first(): Option[T] {self.map.first().map {_.first}}
21
+ last(): Option[T] {self.map.last().map {_.first}}
20
22
  lastBefore(key: T): Option[T] {self.map.lastBefore(key).map {_.first}}
21
23
  firstAfter(key: T): Option[T] {self.map.firstAfter(key).map {_.first}}
22
24
  size(): Int {self.map.size()}
@@ -43,4 +45,4 @@ instance Set[A: Show: Order]: Show {
43
45
  show(value: Set[A]): String {
44
46
  Show.show(value.toList()) + ".toSet()"
45
47
  }
46
- }
48
+ }
package/core/Task.ff CHANGED
@@ -74,10 +74,6 @@ extend self: Task {
74
74
  )
75
75
  }
76
76
 
77
- now(): Instant {
78
- Instant(Duration(Js->Date->now()? * 0.001))
79
- }
80
-
81
77
  elapsed(): Duration {
82
78
  let now = Js->performance->now()? * 0.001
83
79
  Duration(now - self.started.seconds)
@@ -0,0 +1,10 @@
1
+ nodeMain(system: NodeSystem) {
2
+ let now = system.date()
3
+ let tuesday = now.schedule {_.add(days = 1)}.find {_.dayOfWeek() == Date.tuesday}.grab()
4
+ let tuesdayAtSix = tuesday.startOfDay().with(hour = Some(18))
5
+ let tuesdaysAtSix = tuesdayAtSix.schedule {_.add(weeks = 1)}
6
+ let meetups = tuesdaysAtSix.filter {d => d.month() < d.add(weeks = 1).month()}
7
+ meetups.takeFirst(12).each {meetup =>
8
+ Log.debug("Meetup: " + meetup.toRfc9557())
9
+ }
10
+ }
@@ -0,0 +1,84 @@
1
+ nodeMain(system: NodeSystem) {
2
+ let rules = [Monday, Saturday].map {NewsletterRule(_, 7, 0)}
3
+ let next = nextDelivery(rules, system.date())
4
+ Log.debug("Next delivery: " + next.map {_.toRfc9557()}.else {"None"})
5
+ }
6
+
7
+
8
+ data DeliveryFrequency {
9
+ Workday
10
+ Day
11
+ Monday
12
+ Tuesday
13
+ Wednesday
14
+ Thursday
15
+ Friday
16
+ Saturday
17
+ Sunday
18
+ Never
19
+ }
20
+
21
+ data NewsletterRule(
22
+ frequency: DeliveryFrequency
23
+ hour: Int
24
+ minute: Int
25
+ )
26
+
27
+
28
+ nextDelivery(rules: List[NewsletterRule], date: Date): Option[Date] {
29
+ mutable next: Option[Date] = None
30
+ rules.each {rule =>
31
+ if(isValidDay(rule.frequency, date)) {
32
+ let ruleDate = date.startOfDay().with(hour = Some(rule.hour), minute = Some(rule.minute))
33
+ next = bestDate(next, Some(ruleDate), Some(date))
34
+ }
35
+ let validDay = nextValidDay(rule.frequency, date)
36
+ let ruleDate = validDay.startOfDay().with(hour = Some(rule.hour), minute = Some(rule.minute))
37
+ next = bestDate(next, Some(ruleDate), Some(date))
38
+ }
39
+ next
40
+ }
41
+
42
+ isValidDay(frequency: DeliveryFrequency, date: Date): Bool {
43
+ | Monday, _ => date.dayOfWeek() == Date.monday
44
+ | Tuesday, _ => date.dayOfWeek() == Date.tuesday
45
+ | Wednesday, _ => date.dayOfWeek() == Date.wednesday
46
+ | Thursday, _ => date.dayOfWeek() == Date.thursday
47
+ | Friday, _ => date.dayOfWeek() == Date.friday
48
+ | Saturday, _ => date.dayOfWeek() == Date.saturday
49
+ | Sunday, _ => date.dayOfWeek() == Date.sunday
50
+ | Workday, _ => date.dayOfWeek() <= Date.friday
51
+ | Day, _ => True
52
+ | Never, _ => panic("Unexhaustive")
53
+ }
54
+
55
+ bestDate(a: Option[Date], b: Option[Date], after: Option[Date]): Option[Date] {
56
+ | Some(x), Some(y), _ {after.all {x > _} && after.all {y > _}} => Some(if(x < y) {x} else {y})
57
+ | Some(x), _, _ {after.all {x > _}} => Some(x)
58
+ | _, Some(y), _ {after.all {y > _}} => Some(y)
59
+ | _, _, _ => None
60
+ }
61
+
62
+ nextValidDay(frequency: DeliveryFrequency, date: Date): Date {
63
+ | Monday, _ => nextDayOfWeek(date, Date.monday)
64
+ | Tuesday, _ => nextDayOfWeek(date, Date.tuesday)
65
+ | Wednesday, _ => nextDayOfWeek(date, Date.wednesday)
66
+ | Thursday, _ => nextDayOfWeek(date, Date.thursday)
67
+ | Friday, _ => nextDayOfWeek(date, Date.friday)
68
+ | Saturday, _ => nextDayOfWeek(date, Date.saturday)
69
+ | Sunday, _ => nextDayOfWeek(date, Date.sunday)
70
+ | Workday, _ =>
71
+ if(date.dayOfWeek() >= Date.friday) {
72
+ nextDayOfWeek(date, Date.monday)
73
+ } else {
74
+ date.add(days = 1)
75
+ }
76
+ | Day, _ => date.add(days = 1)
77
+ | Never, _ => panic("Unexhaustive")
78
+ }
79
+
80
+ nextDayOfWeek(date: Date, dayOfWeek: Int): Date {
81
+ date
82
+ .schedule {_.add(days = 1)}.dropFirst()
83
+ .find {_.dayOfWeek() == dayOfWeek}.grab()
84
+ }
package/firefly.sh CHANGED
@@ -1,5 +1,5 @@
1
- #!/bin/bash
2
- set -e
3
- firefly_link=`readlink -f "$0"`
4
- firefly=`dirname "$firefly_link"`
5
- node "$firefly/output/js/ff/compiler/Main.mjs" $@
1
+ #!/bin/bash
2
+ set -e
3
+ firefly_link=`readlink -f "$0"`
4
+ firefly=`dirname "$firefly_link"`
5
+ node --harmony-temporal "$firefly/output/js/ff/compiler/Main.mjs" $@
@@ -48,6 +48,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
48
48
 
49
49
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
50
50
 
51
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
52
+
51
53
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
52
54
 
53
55
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -60,8 +62,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
60
62
 
61
63
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
62
64
 
63
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
64
-
65
65
  import * as ff_core_Int from "../../ff/core/Int.mjs"
66
66
 
67
67
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -48,6 +48,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
48
48
 
49
49
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
50
50
 
51
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
52
+
51
53
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
52
54
 
53
55
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -60,8 +62,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
60
62
 
61
63
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
62
64
 
63
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
64
-
65
65
  import * as ff_core_Int from "../../ff/core/Int.mjs"
66
66
 
67
67
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -123,7 +123,7 @@ export function Compiler(emitTarget_, task_, compilerModulePath_, jsOutputPath_,
123
123
  return {emitTarget_, task_, compilerModulePath_, jsOutputPath_, packagePaths_, singleFilePackages_, virtualFiles_, cache_, lspHook_, phaseDurationDelta_, phaseDurations_};
124
124
  }
125
125
 
126
- export const coreImports_ = ff_core_List.List_map(["Any", "Array", "AssetSystem", "Atomic", "Bool", "BrowserSystem", "Buffer", "BuildSystem", "Channel", "Char", "Core", "Crypto", "Duration", "Equal", "Error", "FileHandle", "Float", "HttpClient", "Instant", "Int", "IntMap", "Json", "JsValue", "JsSystem", "List", "Lock", "Log", "Map", "NodeSystem", "Nothing", "Option", "Ordering", "Pair", "Path", "Queue", "Random", "Serializable", "Set", "Show", "SourceLocation", "Stream", "String", "StringMap", "Task", "Try", "Unit", "Js"], ((moduleName_) => {
126
+ export const coreImports_ = ff_core_List.List_map(["Any", "Array", "AssetSystem", "Atomic", "Bool", "BrowserSystem", "Buffer", "BuildSystem", "Channel", "Char", "Core", "Crypto", "Date", "Duration", "Equal", "Error", "FileHandle", "Float", "HttpClient", "Int", "IntMap", "Json", "JsValue", "JsSystem", "List", "Lock", "Log", "Map", "NodeSystem", "Nothing", "Option", "Ordering", "Pair", "Path", "Queue", "Random", "Serializable", "Set", "Show", "SourceLocation", "Stream", "String", "StringMap", "Task", "Try", "Unit", "Js"], ((moduleName_) => {
127
127
  return ff_compiler_Syntax.DImport(ff_compiler_Syntax.Location("<prelude>", 1, 1), moduleName_, ff_compiler_Syntax.PackagePair("ff", "core"), [], moduleName_)
128
128
  }));
129
129
 
@@ -38,6 +38,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
38
38
 
39
39
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
40
40
 
41
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
42
+
41
43
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
42
44
 
43
45
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -50,8 +52,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
50
52
 
51
53
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
52
54
 
53
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
54
-
55
55
  import * as ff_core_Int from "../../ff/core/Int.mjs"
56
56
 
57
57
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -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"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -32,6 +32,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
32
32
 
33
33
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
34
34
 
35
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
36
+
35
37
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
36
38
 
37
39
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -44,8 +46,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
44
46
 
45
47
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
46
48
 
47
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
48
-
49
49
  import * as ff_core_Int from "../../ff/core/Int.mjs"
50
50
 
51
51
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -36,6 +36,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
36
36
 
37
37
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
38
38
 
39
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
40
+
39
41
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
40
42
 
41
43
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -48,8 +50,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
48
50
 
49
51
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
50
52
 
51
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
52
-
53
53
  import * as ff_core_Int from "../../ff/core/Int.mjs"
54
54
 
55
55
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -32,6 +32,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
32
32
 
33
33
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
34
34
 
35
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
36
+
35
37
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
36
38
 
37
39
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -44,8 +46,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
44
46
 
45
47
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
46
48
 
47
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
48
-
49
49
  import * as ff_core_Int from "../../ff/core/Int.mjs"
50
50
 
51
51
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -32,6 +32,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
32
32
 
33
33
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
34
34
 
35
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
36
+
35
37
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
36
38
 
37
39
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -44,8 +46,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
44
46
 
45
47
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
46
48
 
47
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
48
-
49
49
  import * as ff_core_Int from "../../ff/core/Int.mjs"
50
50
 
51
51
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -52,6 +52,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
52
52
 
53
53
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
54
54
 
55
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
56
+
55
57
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
56
58
 
57
59
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -64,8 +66,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
64
66
 
65
67
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
66
68
 
67
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
68
-
69
69
  import * as ff_core_Int from "../../ff/core/Int.mjs"
70
70
 
71
71
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -34,6 +34,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
34
34
 
35
35
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
36
36
 
37
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
38
+
37
39
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
38
40
 
39
41
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -46,8 +48,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
46
48
 
47
49
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
48
50
 
49
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
50
-
51
51
  import * as ff_core_Int from "../../ff/core/Int.mjs"
52
52
 
53
53
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  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"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -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"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -32,6 +32,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
32
32
 
33
33
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
34
34
 
35
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
36
+
35
37
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
36
38
 
37
39
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -44,8 +46,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
44
46
 
45
47
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
46
48
 
47
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
48
-
49
49
  import * as ff_core_Int from "../../ff/core/Int.mjs"
50
50
 
51
51
  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"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
@@ -28,6 +28,8 @@ import * as ff_core_Core from "../../ff/core/Core.mjs"
28
28
 
29
29
  import * as ff_core_Crypto from "../../ff/core/Crypto.mjs"
30
30
 
31
+ import * as ff_core_Date from "../../ff/core/Date.mjs"
32
+
31
33
  import * as ff_core_Duration from "../../ff/core/Duration.mjs"
32
34
 
33
35
  import * as ff_core_Equal from "../../ff/core/Equal.mjs"
@@ -40,8 +42,6 @@ import * as ff_core_Float from "../../ff/core/Float.mjs"
40
42
 
41
43
  import * as ff_core_HttpClient from "../../ff/core/HttpClient.mjs"
42
44
 
43
- import * as ff_core_Instant from "../../ff/core/Instant.mjs"
44
-
45
45
  import * as ff_core_Int from "../../ff/core/Int.mjs"
46
46
 
47
47
  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"