firefly-compiler 0.5.77 → 0.5.79

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 (161) hide show
  1. package/bin/firefly.mjs +1 -1
  2. package/compiler/Builder.ff +1 -1
  3. package/compiler/Compiler.ff +7 -3
  4. package/compiler/JsEmitter.ff +1573 -623
  5. package/compiler/Main.ff +7 -2
  6. package/compiler/SourceMap.ff +149 -0
  7. package/core/Buffer.ff +2 -1
  8. package/core/BuildSystem.ff +3 -1
  9. package/core/Core.ff +4 -4
  10. package/core/Error.ff +7 -1
  11. package/core/Js.ff +17 -0
  12. package/firefly.sh +1 -1
  13. package/fireflysite/Html.ff +15 -2
  14. package/fireflysite/Main.ff +2 -1
  15. package/output/js/ff/compiler/Builder.mjs +5 -46
  16. package/output/js/ff/compiler/Builder.mjs.map +181 -0
  17. package/output/js/ff/compiler/Compiler.mjs +23 -16
  18. package/output/js/ff/compiler/Compiler.mjs.map +155 -0
  19. package/output/js/ff/compiler/Dependencies.mjs +12 -14
  20. package/output/js/ff/compiler/Dependencies.mjs.map +128 -0
  21. package/output/js/ff/compiler/DependencyLock.mjs +1 -4
  22. package/output/js/ff/compiler/DependencyLock.mjs.map +22 -0
  23. package/output/js/ff/compiler/Deriver.mjs +10 -11
  24. package/output/js/ff/compiler/Deriver.mjs.map +204 -0
  25. package/output/js/ff/compiler/Dictionaries.mjs +12 -13
  26. package/output/js/ff/compiler/Dictionaries.mjs.map +183 -0
  27. package/output/js/ff/compiler/Environment.mjs +24 -27
  28. package/output/js/ff/compiler/Environment.mjs.map +141 -0
  29. package/output/js/ff/compiler/Inference.mjs +85 -94
  30. package/output/js/ff/compiler/Inference.mjs.map +355 -0
  31. package/output/js/ff/compiler/JsEmitter.mjs +3730 -1682
  32. package/output/js/ff/compiler/JsEmitter.mjs.map +423 -0
  33. package/output/js/ff/compiler/JsImporter.mjs +9 -12
  34. package/output/js/ff/compiler/JsImporter.mjs.map +52 -0
  35. package/output/js/ff/compiler/LspHook.mjs +17 -18
  36. package/output/js/ff/compiler/LspHook.mjs.map +140 -0
  37. package/output/js/ff/compiler/Main.mjs +69 -69
  38. package/output/js/ff/compiler/Main.mjs.map +231 -0
  39. package/output/js/ff/compiler/ModuleCache.mjs +1 -4
  40. package/output/js/ff/compiler/ModuleCache.mjs.map +82 -0
  41. package/output/js/ff/compiler/Parser.mjs +58 -61
  42. package/output/js/ff/compiler/Parser.mjs.map +406 -0
  43. package/output/js/ff/compiler/Patterns.mjs +19 -22
  44. package/output/js/ff/compiler/Patterns.mjs.map +119 -0
  45. package/output/js/ff/compiler/Resolver.mjs +42 -41
  46. package/output/js/ff/compiler/Resolver.mjs.map +294 -0
  47. package/output/js/ff/compiler/SourceMap.mjs +402 -0
  48. package/output/js/ff/compiler/SourceMap.mjs.map +83 -0
  49. package/output/js/ff/compiler/Substitution.mjs +1 -4
  50. package/output/js/ff/compiler/Substitution.mjs.map +138 -0
  51. package/output/js/ff/compiler/Syntax.mjs +252 -251
  52. package/output/js/ff/compiler/Syntax.mjs.map +351 -0
  53. package/output/js/ff/compiler/Token.mjs +17 -22
  54. package/output/js/ff/compiler/Token.mjs.map +113 -0
  55. package/output/js/ff/compiler/Tokenizer.mjs +5 -12
  56. package/output/js/ff/compiler/Tokenizer.mjs.map +101 -0
  57. package/output/js/ff/compiler/Unification.mjs +32 -33
  58. package/output/js/ff/compiler/Unification.mjs.map +135 -0
  59. package/output/js/ff/compiler/Wildcards.mjs +1 -4
  60. package/output/js/ff/compiler/Wildcards.mjs.map +69 -0
  61. package/output/js/ff/compiler/Workspace.mjs +17 -16
  62. package/output/js/ff/compiler/Workspace.mjs.map +96 -0
  63. package/output/js/ff/core/Any.mjs +1 -4
  64. package/output/js/ff/core/Any.mjs.map +21 -0
  65. package/output/js/ff/core/Array.mjs +14 -15
  66. package/output/js/ff/core/Array.mjs.map +90 -0
  67. package/output/js/ff/core/AssetSystem.mjs +1 -4
  68. package/output/js/ff/core/AssetSystem.mjs.map +56 -0
  69. package/output/js/ff/core/Atomic.mjs +1 -4
  70. package/output/js/ff/core/Atomic.mjs.map +24 -0
  71. package/output/js/ff/core/Bool.mjs +4 -9
  72. package/output/js/ff/core/Bool.mjs.map +19 -0
  73. package/output/js/ff/core/BrowserSystem.mjs +1 -8
  74. package/output/js/ff/core/BrowserSystem.mjs.map +47 -0
  75. package/output/js/ff/core/Buffer.mjs +18 -17
  76. package/output/js/ff/core/Buffer.mjs.map +123 -0
  77. package/output/js/ff/core/BuildSystem.mjs +7 -10
  78. package/output/js/ff/core/BuildSystem.mjs.map +87 -0
  79. package/output/js/ff/core/Channel.mjs +1 -4
  80. package/output/js/ff/core/Channel.mjs.map +67 -0
  81. package/output/js/ff/core/Char.mjs +1 -8
  82. package/output/js/ff/core/Char.mjs.map +21 -0
  83. package/output/js/ff/core/Core.mjs +9 -16
  84. package/output/js/ff/core/Core.mjs.map +38 -0
  85. package/output/js/ff/core/Crypto.mjs +1 -4
  86. package/output/js/ff/core/Crypto.mjs.map +65 -0
  87. package/output/js/ff/core/Date.mjs +8 -7
  88. package/output/js/ff/core/Date.mjs.map +168 -0
  89. package/output/js/ff/core/Duration.mjs +4 -9
  90. package/output/js/ff/core/Duration.mjs.map +18 -0
  91. package/output/js/ff/core/Equal.mjs +9 -14
  92. package/output/js/ff/core/Equal.mjs.map +22 -0
  93. package/output/js/ff/core/Error.mjs +33 -10
  94. package/output/js/ff/core/Error.mjs.map +34 -0
  95. package/output/js/ff/core/FileHandle.mjs +1 -8
  96. package/output/js/ff/core/FileHandle.mjs.map +32 -0
  97. package/output/js/ff/core/Float.mjs +4 -5
  98. package/output/js/ff/core/Float.mjs.map +93 -0
  99. package/output/js/ff/core/HttpClient.mjs +1 -4
  100. package/output/js/ff/core/HttpClient.mjs.map +62 -0
  101. package/output/js/ff/core/Int.mjs +4 -9
  102. package/output/js/ff/core/Int.mjs.map +49 -0
  103. package/output/js/ff/core/IntMap.mjs +3 -6
  104. package/output/js/ff/core/IntMap.mjs.map +52 -0
  105. package/output/js/ff/core/Js.mjs +29 -8
  106. package/output/js/ff/core/Js.mjs.map +125 -0
  107. package/output/js/ff/core/JsSystem.mjs +1 -8
  108. package/output/js/ff/core/JsSystem.mjs.map +59 -0
  109. package/output/js/ff/core/JsValue.mjs +23 -42
  110. package/output/js/ff/core/JsValue.mjs.map +155 -0
  111. package/output/js/ff/core/Json.mjs +25 -26
  112. package/output/js/ff/core/Json.mjs.map +134 -0
  113. package/output/js/ff/core/List.mjs +11 -12
  114. package/output/js/ff/core/List.mjs.map +123 -0
  115. package/output/js/ff/core/Lock.mjs +7 -14
  116. package/output/js/ff/core/Lock.mjs.map +52 -0
  117. package/output/js/ff/core/Log.mjs +1 -8
  118. package/output/js/ff/core/Log.mjs.map +26 -0
  119. package/output/js/ff/core/Map.mjs +6 -7
  120. package/output/js/ff/core/Map.mjs.map +67 -0
  121. package/output/js/ff/core/NodeSystem.mjs +11 -14
  122. package/output/js/ff/core/NodeSystem.mjs.map +137 -0
  123. package/output/js/ff/core/Nothing.mjs +1 -10
  124. package/output/js/ff/core/Nothing.mjs.map +11 -0
  125. package/output/js/ff/core/Option.mjs +10 -15
  126. package/output/js/ff/core/Option.mjs.map +67 -0
  127. package/output/js/ff/core/Ordering.mjs +12 -13
  128. package/output/js/ff/core/Ordering.mjs.map +48 -0
  129. package/output/js/ff/core/Pair.mjs +8 -13
  130. package/output/js/ff/core/Pair.mjs.map +48 -0
  131. package/output/js/ff/core/Path.mjs +5 -14
  132. package/output/js/ff/core/Path.mjs.map +178 -0
  133. package/output/js/ff/core/Queue.mjs +1 -4
  134. package/output/js/ff/core/Queue.mjs.map +45 -0
  135. package/output/js/ff/core/Random.mjs +1 -4
  136. package/output/js/ff/core/Random.mjs.map +79 -0
  137. package/output/js/ff/core/RbMap.mjs +1 -16
  138. package/output/js/ff/core/RbMap.mjs.map +92 -0
  139. package/output/js/ff/core/Serializable.mjs +17 -22
  140. package/output/js/ff/core/Serializable.mjs.map +73 -0
  141. package/output/js/ff/core/Set.mjs +6 -7
  142. package/output/js/ff/core/Set.mjs.map +45 -0
  143. package/output/js/ff/core/Show.mjs +11 -20
  144. package/output/js/ff/core/Show.mjs.map +29 -0
  145. package/output/js/ff/core/SourceLocation.mjs +7 -8
  146. package/output/js/ff/core/SourceLocation.mjs.map +41 -0
  147. package/output/js/ff/core/Stream.mjs +1 -4
  148. package/output/js/ff/core/Stream.mjs.map +92 -0
  149. package/output/js/ff/core/String.mjs +14 -19
  150. package/output/js/ff/core/String.mjs.map +106 -0
  151. package/output/js/ff/core/StringMap.mjs +3 -6
  152. package/output/js/ff/core/StringMap.mjs.map +52 -0
  153. package/output/js/ff/core/Task.mjs +1 -8
  154. package/output/js/ff/core/Task.mjs.map +79 -0
  155. package/output/js/ff/core/Try.mjs +3 -6
  156. package/output/js/ff/core/Try.mjs.map +41 -0
  157. package/output/js/ff/core/Unit.mjs +5 -12
  158. package/output/js/ff/core/Unit.mjs.map +18 -0
  159. package/package.json +1 -2
  160. package/vscode/package.json +1 -1
  161. package/webserver/WebServer.ff +1 -1
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  import * as ff_compiler_Compiler from "../../ff/compiler/Compiler.mjs"
4
2
 
5
3
  import * as ff_compiler_Dependencies from "../../ff/compiler/Dependencies.mjs"
@@ -177,7 +175,7 @@ const if_o = importedAt_
177
175
  if(if_o.Some) {
178
176
  const at_ = if_o.value_;
179
177
  if((!ff_core_Path.Path_exists(path_, false, false, false))) {
180
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError(at_, ("Imported module not found: " + ff_compiler_Syntax.ModuleKey_importName(moduleKey_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
178
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Imported module not found: " + ff_compiler_Syntax.ModuleKey_importName(moduleKey_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
181
179
  }
182
180
  }
183
181
  };
@@ -203,7 +201,7 @@ export function Compiler_imports(self_, module_) {
203
201
  return ff_core_List.List_map(module_.imports_, ((import_) => {
204
202
  const newPackagePair_ = import_.moduleKey_.packagePair_;
205
203
  if((!ff_core_Map.Map_contains(self_.packagePaths_, newPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair))) {
206
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError(import_.at_, ("Missing dependency declaration for: " + ff_compiler_Syntax.PackagePair_groupName(newPackagePair_, ":"))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
204
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(import_.at_, ("Missing dependency declaration for: " + ff_compiler_Syntax.PackagePair_groupName(newPackagePair_, ":"))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
207
205
  };
208
206
  return ff_core_Try.Try_catch(ff_core_Try.Try_tryCatch(ff_core_Core.try_((() => {
209
207
  return ff_compiler_Compiler.Compiler_parse(self_, import_.moduleKey_, ff_core_Option.Some(import_.at_))
@@ -212,14 +210,14 @@ return ff_compiler_Compiler.Compiler_parse(self_, import_.moduleKey_, ff_core_Op
212
210
  const e_ = _1;
213
211
  const error_ = _2;
214
212
  const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse error in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
215
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileErrors([e_, newError_]), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
213
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([e_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
216
214
  }
217
215
  }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
218
216
  {
219
217
  const compileErrors_ = _1.errors_;
220
218
  const error_ = _2;
221
219
  const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse errors in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
222
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileErrors([...compileErrors_, newError_]), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
220
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([...compileErrors_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
223
221
  }
224
222
  }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)
225
223
  }))
@@ -271,17 +269,21 @@ const allModules_ = [module_, ...otherModules_];
271
269
  const emitter_ = ff_compiler_JsEmitter.new_(allModules_, self_.emitTarget_, isMainModule_, ff_core_Option.Option_map(self_.compilerModulePath_, ((_w1) => {
272
270
  return ff_core_Path.Path_url(_w1)
273
271
  })), moduleKey_);
274
- const js_ = ff_compiler_JsEmitter.JsEmitter_emitModule(emitter_, module_);
272
+ ff_compiler_JsEmitter.JsEmitter_emitModule(emitter_, module_);
275
273
  const packagePath_ = ff_core_Path.Path_slash(ff_core_Path.Path_slash(self_.jsOutputPath_, moduleKey_.packagePair_.group_), moduleKey_.packagePair_.name_);
276
274
  const jsPath_ = ff_core_List.List_foldLeft(moduleKey_.folders_, packagePath_, ((p_, f_) => {
277
275
  return ff_core_Path.Path_slash(p_, f_)
278
276
  }));
279
277
  const jsFile_ = ff_core_Path.Path_slash(jsPath_, (moduleKey_.name_ + ".mjs"));
278
+ const sourceMapFile_ = ff_core_Path.Path_slash(jsPath_, (moduleKey_.name_ + ".mjs.map"));
279
+ const source_ = ff_core_Option.Some(ff_core_Path.Path_readText(path_));
280
+ const jsAndSourceMap_ = ff_compiler_JsEmitter.JsEmitter_makeOutputAndSourceMap(emitter_, ff_core_List.List_join(ff_core_Path.Path_relativeListTo(path_, jsPath_), "/"), source_);
280
281
  ff_core_Path.Path_createDirectory(jsPath_, true);
281
- ff_core_Path.Path_writeText(jsFile_, js_);
282
+ ff_core_Path.Path_writeText(jsFile_, ((jsAndSourceMap_.first_ + "\n\n//# sourceMappingURL=") + ff_core_Path.Path_base(sourceMapFile_)));
283
+ ff_core_Path.Path_writeText(sourceMapFile_, ff_core_Json.Json_write(jsAndSourceMap_.second_, ff_core_Option.Some(" ")));
282
284
  if(isMainModule_) {
283
285
  return ff_core_Option.Some((function() {
284
- const runJs_ = ff_compiler_JsEmitter.JsEmitter_emitRun(emitter_, moduleKey_.name_, module_.functions_, moduleKey_.packagePair_, ((moduleKey_.packagePair_.group_ === "ff") && (moduleKey_.packagePair_.name_ === "compiler")));
286
+ const runJs_ = ff_compiler_JsEmitter.JsEmitter_makeRun(emitter_, moduleKey_.name_, module_.functions_, moduleKey_.packagePair_, ((moduleKey_.packagePair_.group_ === "ff") && (moduleKey_.packagePair_.name_ === "compiler")));
285
287
  const jsRunFile_ = ff_core_Path.Path_slash(jsPath_, (moduleKey_.name_ + ".run.mjs"));
286
288
  return ff_core_Path.Path_writeText(jsRunFile_, ff_core_List.List_join(ff_core_List.List_map(runJs_, ((_w1) => {
287
289
  return (_w1 + "\n")
@@ -326,7 +328,7 @@ const if_o = importedAt_
326
328
  if(if_o.Some) {
327
329
  const at_ = if_o.value_;
328
330
  if((!(await ff_core_Path.Path_exists$(path_, false, false, false, $task)))) {
329
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError(at_, ("Imported module not found: " + ff_compiler_Syntax.ModuleKey_importName(moduleKey_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
331
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Imported module not found: " + ff_compiler_Syntax.ModuleKey_importName(moduleKey_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
330
332
  }
331
333
  }
332
334
  };
@@ -352,7 +354,7 @@ export async function Compiler_imports$(self_, module_, $task) {
352
354
  return (await ff_core_List.List_map$(module_.imports_, (async (import_, $task) => {
353
355
  const newPackagePair_ = import_.moduleKey_.packagePair_;
354
356
  if((!ff_core_Map.Map_contains(self_.packagePaths_, newPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair))) {
355
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError(import_.at_, ("Missing dependency declaration for: " + ff_compiler_Syntax.PackagePair_groupName(newPackagePair_, ":"))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
357
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(import_.at_, ("Missing dependency declaration for: " + ff_compiler_Syntax.PackagePair_groupName(newPackagePair_, ":"))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
356
358
  };
357
359
  return ff_core_Try.Try_catch(ff_core_Try.Try_tryCatch((await ff_core_Core.try_$((async ($task) => {
358
360
  return (await ff_compiler_Compiler.Compiler_parse$(self_, import_.moduleKey_, ff_core_Option.Some(import_.at_), $task))
@@ -361,14 +363,14 @@ return (await ff_compiler_Compiler.Compiler_parse$(self_, import_.moduleKey_, ff
361
363
  const e_ = _1;
362
364
  const error_ = _2;
363
365
  const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse error in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
364
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileErrors([e_, newError_]), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
366
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([e_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
365
367
  }
366
368
  }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
367
369
  {
368
370
  const compileErrors_ = _1.errors_;
369
371
  const error_ = _2;
370
372
  const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse errors in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
371
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileErrors([...compileErrors_, newError_]), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
373
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([...compileErrors_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
372
374
  }
373
375
  }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)
374
376
  }), $task))
@@ -420,17 +422,21 @@ const allModules_ = [module_, ...otherModules_];
420
422
  const emitter_ = ff_compiler_JsEmitter.new_(allModules_, self_.emitTarget_, isMainModule_, (await ff_core_Option.Option_map$(self_.compilerModulePath_, (async (_w1, $task) => {
421
423
  return (await ff_core_Path.Path_url$(_w1, $task))
422
424
  }), $task)), moduleKey_);
423
- const js_ = ff_compiler_JsEmitter.JsEmitter_emitModule(emitter_, module_);
425
+ ff_compiler_JsEmitter.JsEmitter_emitModule(emitter_, module_);
424
426
  const packagePath_ = (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(self_.jsOutputPath_, moduleKey_.packagePair_.group_, $task)), moduleKey_.packagePair_.name_, $task));
425
427
  const jsPath_ = (await ff_core_List.List_foldLeft$(moduleKey_.folders_, packagePath_, (async (p_, f_, $task) => {
426
428
  return (await ff_core_Path.Path_slash$(p_, f_, $task))
427
429
  }), $task));
428
430
  const jsFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleKey_.name_ + ".mjs"), $task));
431
+ const sourceMapFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleKey_.name_ + ".mjs.map"), $task));
432
+ const source_ = ff_core_Option.Some((await ff_core_Path.Path_readText$(path_, $task)));
433
+ const jsAndSourceMap_ = ff_compiler_JsEmitter.JsEmitter_makeOutputAndSourceMap(emitter_, ff_core_List.List_join((await ff_core_Path.Path_relativeListTo$(path_, jsPath_, $task)), "/"), source_);
429
434
  (await ff_core_Path.Path_createDirectory$(jsPath_, true, $task));
430
- (await ff_core_Path.Path_writeText$(jsFile_, js_, $task));
435
+ (await ff_core_Path.Path_writeText$(jsFile_, ((jsAndSourceMap_.first_ + "\n\n//# sourceMappingURL=") + (await ff_core_Path.Path_base$(sourceMapFile_, $task))), $task));
436
+ (await ff_core_Path.Path_writeText$(sourceMapFile_, ff_core_Json.Json_write(jsAndSourceMap_.second_, ff_core_Option.Some(" ")), $task));
431
437
  if(isMainModule_) {
432
438
  return ff_core_Option.Some((await (async function() {
433
- const runJs_ = ff_compiler_JsEmitter.JsEmitter_emitRun(emitter_, moduleKey_.name_, module_.functions_, moduleKey_.packagePair_, ((moduleKey_.packagePair_.group_ === "ff") && (moduleKey_.packagePair_.name_ === "compiler")));
439
+ const runJs_ = ff_compiler_JsEmitter.JsEmitter_makeRun(emitter_, moduleKey_.name_, module_.functions_, moduleKey_.packagePair_, ((moduleKey_.packagePair_.group_ === "ff") && (moduleKey_.packagePair_.name_ === "compiler")));
434
440
  const jsRunFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleKey_.name_ + ".run.mjs"), $task));
435
441
  return (await ff_core_Path.Path_writeText$(jsRunFile_, ff_core_List.List_join(ff_core_List.List_map(runJs_, ((_w1) => {
436
442
  return (_w1 + "\n")
@@ -442,3 +448,4 @@ return (_w1 + "\n")
442
448
  }
443
449
 
444
450
 
451
+ //# sourceMappingURL=Compiler.mjs.map
@@ -0,0 +1,155 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [
4
+ "../../../../../compiler/Compiler.ff"
5
+ ],
6
+ "sourcesContent": [
7
+ "import Syntax\r\nimport Tokenizer\r\nimport ModuleCache\r\nimport Parser\r\nimport Resolver\r\nimport Deriver\r\nimport Inference\r\nimport JsEmitter\r\nimport Dictionaries\r\nimport Dependencies\r\nimport LspHook\r\n\r\ncapability Compiler(\r\n emitTarget: EmitTarget\r\n task: Task\r\n compilerModulePath: Option[Path]\r\n jsOutputPath: Path\r\n packagePaths: Map[PackagePair, Path]\r\n singleFilePackages: Set[PackagePair]\r\n virtualFiles: Map[String, String]\r\n cache: ModuleCache\r\n lspHook: LspHook\r\n mutable phaseDurationDelta: Duration\r\n phaseDurations: Array[Pair[String, Duration]]\r\n)\r\n\r\nnew(\r\n emitTarget: EmitTarget\r\n task: Task\r\n compilerModulePath: Option[Path]\r\n jsOutputPath: Path\r\n resolvedDependencies: ResolvedDependencies\r\n virtualFiles: Map[String, String]\r\n cache: ModuleCache\r\n lspHook: LspHook\r\n): Compiler {\r\n Compiler(\r\n emitTarget = emitTarget\r\n task = task\r\n compilerModulePath = compilerModulePath\r\n jsOutputPath = jsOutputPath\r\n packagePaths = resolvedDependencies.packagePaths\r\n singleFilePackages = resolvedDependencies.singleFilePackages\r\n virtualFiles = virtualFiles\r\n cache = cache\r\n lspHook = lspHook\r\n phaseDurationDelta = Duration(0.0)\r\n phaseDurations = [].toArray()\r\n )\r\n}\r\n\r\nfail[T](at: Location, message: String): T {\r\n panic(message + \" \" + at.show())\r\n}\r\n\r\ncoreImports: List[DImport] =\r\n [\r\n \"Any\"\r\n \"Array\"\r\n \"AssetSystem\"\r\n \"Atomic\"\r\n \"Bool\"\r\n \"BrowserSystem\"\r\n \"Buffer\"\r\n \"BuildSystem\"\r\n \"Channel\"\r\n \"Char\"\r\n \"Core\"\r\n \"Crypto\"\r\n \"Date\"\r\n \"Duration\"\r\n \"Equal\"\r\n \"Error\"\r\n \"FileHandle\"\r\n \"Float\"\r\n \"HttpClient\"\r\n \"Int\"\r\n \"IntMap\"\r\n \"Json\"\r\n \"JsValue\"\r\n \"JsSystem\"\r\n \"List\"\r\n \"Lock\"\r\n \"Log\"\r\n \"Map\"\r\n \"NodeSystem\"\r\n \"Nothing\"\r\n \"Option\"\r\n \"Ordering\"\r\n \"Pair\"\r\n \"Path\"\r\n \"Queue\"\r\n \"Random\"\r\n \"Serializable\"\r\n \"Set\"\r\n \"Show\"\r\n \"SourceLocation\"\r\n \"Stream\"\r\n \"String\"\r\n \"StringMap\"\r\n \"Task\"\r\n \"Try\"\r\n \"Unit\"\r\n \"Js\"\r\n ].map {moduleName =>\r\n DImport(\r\n at = Location(\"<prelude>\", 1, 1)\r\n alias = moduleName\r\n moduleKey = ModuleKey(PackagePair(\"ff\", \"core\"), [], moduleName)\r\n )\r\n }\r\n\r\nextend self: Compiler {\r\n\r\n measure[T](phase: String, moduleKey: ModuleKey, body: () => T): T {\r\n let start = Duration(self.task.elapsed().seconds - self.phaseDurationDelta.seconds)\r\n let result = body()\r\n let stop = Duration(self.task.elapsed().seconds - self.phaseDurationDelta.seconds)\r\n let duration = Duration(stop.seconds - start.seconds)\r\n self.phaseDurationDelta = Duration(self.phaseDurationDelta.seconds + duration.seconds)\r\n let text = phase + \" \" + moduleKey.qualifiedName()\r\n self.phaseDurations.push(Pair(text, duration))\r\n result\r\n }\r\n\r\n printMeasurements(): Unit {\r\n let worst = self.phaseDurations.toList().sortBy {\r\n (_.second.seconds + 1000000.0) + \"\"\r\n }.takeLast(5).reverse()\r\n worst.each {| Pair(text, duration) =>\r\n Log.debug(text + \":\\t\" + duration.show())\r\n }\r\n }\r\n\r\n parse(moduleKey: ModuleKey, importedAt: Option[Location]): Module {\r\n self.cache.cacheParsedModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Parse\", moduleKey):\r\n let code = self.virtualFiles.get(path.absolute()).else {\r\n importedAt.each {at => if(!path.exists()) {\r\n throw(CompileError(at, \"Imported module not found: \" + moduleKey.importName()))\r\n }}\r\n path.readText()\r\n }\r\n let completionAt = if(self.lspHook.isEnabled() && self.lspHook.insertIdentifier) {self.lspHook.at}\r\n let tokens = Tokenizer.tokenize(path.absolute(), code, completionAt, self.lspHook.isEnabled())\r\n let parser = Parser.new(moduleKey, tokens, self.emitTarget != EmitBrowser, self.lspHook)\r\n let module = if(self.singleFilePackages.contains(moduleKey.packagePair)) {\r\n parser.parseModuleWithPackageInfo().module\r\n } else {\r\n parser.parseModuleWithoutPackageInfo()\r\n }\r\n let result = module.Module(\r\n imports = [...coreImports, ...module.imports]\r\n )\r\n result\r\n }\r\n\r\n imports(module: Module): List[Module] {\r\n module.imports.map {import =>\r\n let newPackagePair = import.moduleKey.packagePair\r\n if(!self.packagePaths.contains(newPackagePair)) {\r\n throw(CompileError(import.at, \"Missing dependency declaration for: \" + newPackagePair.groupName()))\r\n }\r\n try {\r\n self.parse(import.moduleKey, Some(import.at))\r\n } tryCatch {| CompileError(_, _) @ e, error =>\r\n let newError = CompileError(import.at, \"Parse error in imported module: \" + import.moduleKey.importName())\r\n throw(CompileErrors([e, newError]))\r\n } catch {| CompileErrors(compileErrors), error =>\r\n let newError = CompileError(import.at, \"Parse errors in imported module: \" + import.moduleKey.importName())\r\n throw(CompileErrors([...compileErrors, newError]))\r\n }\r\n }\r\n }\r\n\r\n resolve(moduleKey: ModuleKey): Module {\r\n self.cache.cacheResolvedModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Resolve\", moduleKey):\r\n\r\n let module = self.parse(moduleKey, None)\r\n let otherModules = self.imports(module)\r\n let resolver = Resolver.new(self.lspHook)\r\n resolver.resolveModule(module, otherModules)\r\n }\r\n\r\n derive(moduleKey: ModuleKey): Module {\r\n self.cache.cacheDerivedModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Derive\", moduleKey):\r\n\r\n let module = self.resolve(moduleKey)\r\n Deriver.new().deriveModule(module)\r\n }\r\n\r\n infer(moduleKey: ModuleKey): Module {\r\n self.cache.cacheInferredModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Infer\", moduleKey):\r\n\r\n let module = self.derive(moduleKey)\r\n let otherModules = self.imports(module).map {i =>\r\n self.derive(i.moduleKey)\r\n }\r\n let inference = Inference.new([module, ...otherModules], self.lspHook)\r\n let inferredModule = inference.inferModule(module, otherModules)\r\n Dictionaries.new([module, ...otherModules]).processModule(inferredModule, otherModules)\r\n }\r\n\r\n emit(moduleKey: ModuleKey, isMainModule: Bool): Unit {\r\n self.cache.cacheEmittedModule(self.packagePaths, moduleKey, isMainModule): path => \r\n self.measure(\"Emit\", moduleKey):\r\n\r\n let module = self.infer(moduleKey)\r\n let otherModules = self.imports(module).map {i =>\r\n self.emit(i.moduleKey, isMainModule = False)\r\n self.infer(i.moduleKey)\r\n }\r\n\r\n let allModules = [module, ...otherModules]\r\n let emitter = JsEmitter.new(\r\n otherModules = allModules\r\n emitTarget = self.emitTarget\r\n isMainModule = isMainModule\r\n compilerModuleFileUrl = self.compilerModulePath.map {_.url()}\r\n moduleKey = moduleKey\r\n )\r\n emitter.emitModule(module)\r\n let packagePath = self.jsOutputPath.slash(moduleKey.packagePair.group).slash(moduleKey.packagePair.name)\r\n let jsPath = moduleKey.folders.foldLeft(packagePath) {p, f => p.slash(f)}\r\n let jsFile = jsPath.slash(moduleKey.name + \".mjs\")\r\n let sourceMapFile = jsPath.slash(moduleKey.name + \".mjs.map\")\r\n let source = Some(path.readText())\r\n let jsAndSourceMap = emitter.makeOutputAndSourceMap(path.relativeListTo(jsPath).join(\"/\"), source)\r\n jsPath.createDirectory(createParentDirectories = True)\r\n jsFile.writeText(jsAndSourceMap.first + \"\\n\\n//# sourceMappingURL=\" + sourceMapFile.base())\r\n sourceMapFile.writeText(jsAndSourceMap.second.write(Some(\" \")))\r\n if(isMainModule) {\r\n let runJs = emitter.makeRun(\r\n moduleKey.name\r\n module.functions\r\n moduleKey.packagePair\r\n moduleKey.packagePair.group == \"ff\" && moduleKey.packagePair.name == \"compiler\"\r\n )\r\n let jsRunFile = jsPath.slash(moduleKey.name + \".run.mjs\")\r\n jsRunFile.writeText(runJs.map {_ + \"\\n\"}.join())\r\n }\r\n }\r\n\r\n}\r\n"
8
+ ],
9
+ "names": [
10
+ "Compiler",
11
+ "emitTarget",
12
+ "task",
13
+ "compilerModulePath",
14
+ "jsOutputPath",
15
+ "packagePaths",
16
+ "singleFilePackages",
17
+ "virtualFiles",
18
+ "cache",
19
+ "lspHook",
20
+ "phaseDurationDelta",
21
+ "phaseDurations",
22
+ "coreImports",
23
+ "map",
24
+ "moduleName",
25
+ "DImport",
26
+ "Location",
27
+ "ModuleKey",
28
+ "PackagePair",
29
+ "new",
30
+ "resolvedDependencies",
31
+ "toArray",
32
+ "fail",
33
+ "at",
34
+ "message",
35
+ "panic",
36
+ "show",
37
+ "measure",
38
+ "self",
39
+ "phase",
40
+ "moduleKey",
41
+ "body",
42
+ "start",
43
+ "elapsed",
44
+ "result",
45
+ "stop",
46
+ "duration",
47
+ "text",
48
+ "qualifiedName",
49
+ "Pair",
50
+ "printMeasurements",
51
+ "worst",
52
+ "reverse",
53
+ "takeLast",
54
+ "sortBy",
55
+ "toList",
56
+ "w1",
57
+ "second",
58
+ "each",
59
+ "debug",
60
+ "parse",
61
+ "importedAt",
62
+ "cacheParsedModule",
63
+ "path",
64
+ "code",
65
+ "else",
66
+ "get",
67
+ "absolute",
68
+ "exists",
69
+ "CompileError",
70
+ "importName",
71
+ "readText",
72
+ "completionAt",
73
+ "isEnabled",
74
+ "insertIdentifier",
75
+ "tokens",
76
+ "tokenize",
77
+ "parser",
78
+ "notEquals",
79
+ "EmitBrowser",
80
+ "module",
81
+ "contains",
82
+ "packagePair",
83
+ "parseModuleWithPackageInfo",
84
+ "parseModuleWithoutPackageInfo",
85
+ "c",
86
+ "Module",
87
+ "imports",
88
+ "types",
89
+ "traits",
90
+ "instances",
91
+ "extends",
92
+ "lets",
93
+ "functions",
94
+ "import",
95
+ "newPackagePair",
96
+ "groupName",
97
+ "catch",
98
+ "tryCatch",
99
+ "try",
100
+ "Some",
101
+ "e",
102
+ "error",
103
+ "newError",
104
+ "CompileErrors",
105
+ "compileErrors",
106
+ "resolve",
107
+ "cacheResolvedModule",
108
+ "None",
109
+ "otherModules",
110
+ "resolver",
111
+ "resolveModule",
112
+ "derive",
113
+ "cacheDerivedModule",
114
+ "deriveModule",
115
+ "infer",
116
+ "cacheInferredModule",
117
+ "i",
118
+ "inference",
119
+ "inferredModule",
120
+ "inferModule",
121
+ "processModule",
122
+ "emit",
123
+ "isMainModule",
124
+ "cacheEmittedModule",
125
+ "allModules",
126
+ "emitter",
127
+ "url",
128
+ "emitModule",
129
+ "packagePath",
130
+ "slash",
131
+ "group",
132
+ "name",
133
+ "jsPath",
134
+ "foldLeft",
135
+ "folders",
136
+ "p",
137
+ "f",
138
+ "jsFile",
139
+ "sourceMapFile",
140
+ "source",
141
+ "jsAndSourceMap",
142
+ "makeOutputAndSourceMap",
143
+ "join",
144
+ "relativeListTo",
145
+ "createDirectory",
146
+ "writeText",
147
+ "first",
148
+ "base",
149
+ "write",
150
+ "runJs",
151
+ "makeRun",
152
+ "jsRunFile"
153
+ ],
154
+ "mappings": "A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;AAYW;AAAA,gBAAAA,QAAA,CACPC,W,EACAC,K,EACAC,mB,EACAC,a,EACAC,a,EACAC,mB,EACAC,a,EACAC,M,EACAC,Q,EACQC,mB,EACRC,eAXO;AAAA,QACPV,W,EACAC,K,EACAC,mB,EACAC,a,EACAC,a,EACAC,mB,EACAC,a,EACAC,M,EACAC,Q,EACQC,mB,EACRC,eAXO;AAAA;;A,OA2CX,MAAAC,YAAA,GAiDMC,qBAAA,CAhDF,CACI,K,EACA,O,EACA,a,EACA,Q,EACA,M,EACA,e,EACA,Q,EACA,a,EACA,S,EACA,M,EACA,M,EACA,Q,EACA,M,EACA,U,EACA,O,EACA,O,EACA,Y,EACA,O,EACA,Y,EACA,K,EACA,Q,EACA,M,EACA,S,EACA,U,EACA,M,EACA,M,EACA,K,EACA,K,EACA,Y,EACA,S,EACA,Q,EACA,U,EACA,M,EACA,M,EACA,O,EACA,Q,EACA,c,EACA,K,EACA,M,EACA,gB,EACA,Q,EACA,Q,EACA,W,EACA,M,EACA,K,EACA,M,EACA,IA/CJ,C,EAgDM,CAAA,CAACC,WAAD;AACF,OAAAC,0BAAA,CACSC,2BAAA,CAAS,W,EAAa,C,EAAG,CAAzB,C,EACGF,W,EACIG,4BAAA,CAAUC,8BAAA,CAAY,I,EAAM,MAAlB,C,EAA2B,CAAA,C,EAAIJ,WAAzC,CAHhB;AADE,EAAJ,CAjDN;;A,OA7BA,SAAAK,IAAA,CACIlB,W,EACAC,K,EACAC,mB,EACAC,a,EACAgB,qB,EACAb,a,EACAC,M,EACAC,QARJ,CAAA;AAUI,OAAAT,6BAAA,CACiBC,W,EACNC,K,EACcC,mB,EACNC,a,EACAgB,qBAAqB,CAAAf,a,EACfe,qBAAqB,CAAAd,mB,EAC3BC,a,EACPC,M,EACEC,Q,EACoB,G,EACVY,yBAAA,CAAH,CAAA,CAAG,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"
155
+ }
@@ -1,5 +1,3 @@
1
- import * as import$0 from 'tar';
2
-
3
1
  import * as ff_compiler_Dependencies from "../../ff/compiler/Dependencies.mjs"
4
2
 
5
3
  import * as ff_compiler_DependencyLock from "../../ff/compiler/DependencyLock.mjs"
@@ -106,6 +104,7 @@ import * as ff_core_Task from "../../ff/core/Task.mjs"
106
104
 
107
105
  import * as ff_core_Try from "../../ff/core/Try.mjs"
108
106
 
107
+ import * as import$0 from 'tar';
109
108
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
110
109
 
111
110
  // type Dependencies
@@ -118,16 +117,14 @@ export function ResolvedDependencies(mainPackagePair_, packages_, packagePaths_,
118
117
  return {mainPackagePair_, packages_, packagePaths_, singleFilePackages_};
119
118
  }
120
119
 
121
-
122
-
123
120
  export function process_(fetch_, dependencyLock_, path_) {
124
121
  const workspace_ = ff_compiler_Workspace.loadWorkspace_(path_);
125
122
  const self_ = ff_compiler_Dependencies.Dependencies(workspace_, ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
126
123
  const packageInfo_ = ff_core_Option.Option_else(ff_compiler_Dependencies.Dependencies_loadPackageInfo(self_, ff_compiler_Syntax.scriptPackagePair_, path_), (() => {
127
124
  if((!ff_core_Path.Path_exists(path_, false, false, false))) {
128
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(path_), 1, 1), "File not found"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
125
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(path_), 1, 1), "File not found"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
129
126
  } else {
130
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(path_), 1, 1), "Could not load package info"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
127
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(path_), 1, 1), "Could not load package info"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
131
128
  }
132
129
  }));
133
130
  const newDependencies_ = ff_compiler_Dependencies.Dependencies_processPackageInfo(self_, packageInfo_);
@@ -169,9 +166,9 @@ const workspace_ = (await ff_compiler_Workspace.loadWorkspace_$(path_, $task));
169
166
  const self_ = ff_compiler_Dependencies.Dependencies(workspace_, ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
170
167
  const packageInfo_ = (await ff_core_Option.Option_else$((await ff_compiler_Dependencies.Dependencies_loadPackageInfo$(self_, ff_compiler_Syntax.scriptPackagePair_, path_, $task)), (async ($task) => {
171
168
  if((!(await ff_core_Path.Path_exists$(path_, false, false, false, $task)))) {
172
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$(path_, $task)), 1, 1), "File not found"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
169
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$(path_, $task)), 1, 1), "File not found"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
173
170
  } else {
174
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$(path_, $task)), 1, 1), "Could not load package info"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
171
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$(path_, $task)), 1, 1), "Could not load package info"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
175
172
  }
176
173
  }), $task));
177
174
  const newDependencies_ = (await ff_compiler_Dependencies.Dependencies_processPackageInfo$(self_, packageInfo_, $task));
@@ -272,7 +269,7 @@ return ff_core_Option.Some((function() {
272
269
  ff_core_Log.trace_(("Fetching " + location_));
273
270
  const buffer_ = ff_core_HttpClient.HttpClient_get(httpClient_, location_, [], ((response_) => {
274
271
  if((!ff_core_HttpClient.FetchResponse_ok(response_))) {
275
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Could not download dependency: " + location_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
272
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Could not download dependency: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
276
273
  };
277
274
  return ff_core_HttpClient.FetchResponse_readBuffer(response_)
278
275
  }));
@@ -289,7 +286,7 @@ return ff_core_Path.Path_renameTo(tarGzPath_, donePath_)
289
286
  };
290
287
  return dependencyPath_
291
288
  } else {
292
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Loading packages by this protocol is not supported: " + location_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
289
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Loading packages by this protocol is not supported: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
293
290
  }
294
291
  } else {
295
292
  return ff_core_Path.Path_path(path_, location_)
@@ -301,7 +298,7 @@ const packageInfos_ = ff_core_List.List_map(dependencies_, ((dependency_) => {
301
298
  const dependencyPath_ = ff_compiler_Dependencies.Dependencies_fetchDependency(self_, path_, httpClient_, dependencyLock_, dependency_);
302
299
  self_.packagePaths_ = ff_core_Map.Map_add(self_.packagePaths_, dependency_.packagePair_, dependencyPath_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair);
303
300
  const packageInfo_ = ff_core_Option.Option_else(ff_compiler_Dependencies.Dependencies_loadPackageInfo(self_, dependency_.packagePair_, dependencyPath_), (() => {
304
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Dependency not found: " + ff_core_Path.Path_absolute(dependencyPath_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
301
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Dependency not found: " + ff_core_Path.Path_absolute(dependencyPath_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
305
302
  }));
306
303
  ff_compiler_Dependencies.checkPackagePairs_(dependency_.packagePair_, packageInfo_.package_.packagePair_);
307
304
  return packageInfo_
@@ -378,7 +375,7 @@ return ff_core_Option.Some((await (async function() {
378
375
  ff_core_Log.trace_(("Fetching " + location_));
379
376
  const buffer_ = (await ff_core_HttpClient.HttpClient_get$(httpClient_, location_, [], (async (response_, $task) => {
380
377
  if((!(await ff_core_HttpClient.FetchResponse_ok$(response_, $task)))) {
381
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Could not download dependency: " + location_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
378
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Could not download dependency: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
382
379
  };
383
380
  return (await ff_core_HttpClient.FetchResponse_readBuffer$(response_, $task))
384
381
  }), $task));
@@ -395,7 +392,7 @@ return (await ff_core_Path.Path_renameTo$(tarGzPath_, donePath_, $task))
395
392
  };
396
393
  return dependencyPath_
397
394
  } else {
398
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Loading packages by this protocol is not supported: " + location_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
395
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Loading packages by this protocol is not supported: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
399
396
  }
400
397
  } else {
401
398
  return (await ff_core_Path.Path_path$(path_, location_, $task))
@@ -407,7 +404,7 @@ const packageInfos_ = (await ff_core_List.List_map$(dependencies_, (async (depen
407
404
  const dependencyPath_ = (await ff_compiler_Dependencies.Dependencies_fetchDependency$(self_, path_, httpClient_, dependencyLock_, dependency_, $task));
408
405
  self_.packagePaths_ = ff_core_Map.Map_add(self_.packagePaths_, dependency_.packagePair_, dependencyPath_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair);
409
406
  const packageInfo_ = (await ff_core_Option.Option_else$((await ff_compiler_Dependencies.Dependencies_loadPackageInfo$(self_, dependency_.packagePair_, dependencyPath_, $task)), (async ($task) => {
410
- return ff_core_Core.throw_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Dependency not found: " + (await ff_core_Path.Path_absolute$(dependencyPath_, $task)))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
407
+ throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Dependency not found: " + (await ff_core_Path.Path_absolute$(dependencyPath_, $task)))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
411
408
  }), $task));
412
409
  ff_compiler_Dependencies.checkPackagePairs_(dependency_.packagePair_, packageInfo_.package_.packagePair_);
413
410
  return packageInfo_
@@ -421,3 +418,4 @@ if(ff_core_Equal.notEquals_(newDependencies_, [], ff_core_List.ff_core_Equal_Equ
421
418
  }
422
419
 
423
420
 
421
+ //# sourceMappingURL=Dependencies.mjs.map
@@ -0,0 +1,128 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [
4
+ "../../../../../compiler/Dependencies.ff"
5
+ ],
6
+ "sourcesContent": [
7
+ "import Parser\r\nimport Syntax\r\nimport Tokenizer\r\nimport Workspace\r\nimport LspHook\r\nimport DependencyLock\r\n\r\ncapability Dependencies(\r\n workspace: Workspace\r\n mutable packages: Map[PackagePair, PackageInfo]\r\n mutable packagePaths: Map[PackagePair, Path]\r\n mutable singleFilePackages: Set[PackagePair]\r\n)\r\n\r\ncapability ResolvedDependencies(\r\n mainPackagePair: PackagePair\r\n packages: Map[PackagePair, PackageInfo]\r\n packagePaths: Map[PackagePair, Path]\r\n singleFilePackages: Set[PackagePair]\r\n)\r\n\r\nextend self: Dependencies {\r\n\r\n loadPackageInfo(\r\n packagePair: PackagePair\r\n path: Path\r\n ): Option[PackageInfo] {\r\n //let packageDirectory = if(path.extension() == \".ff\") {path.parent().grab()} else {path}\r\n let packageDirectory = findScriptPackageLocation(path)\r\n let sharedPackageFile = packageDirectory.slash(\".firefly\").slash(\"package.ff\")\r\n let packageFile = if(sharedPackageFile.exists()) {\r\n sharedPackageFile\r\n } else {\r\n self.singleFilePackages = self.singleFilePackages.add(packagePair)\r\n path\r\n }\r\n try {packageFile.readText()}.toOption().map: code =>\r\n self.parsePackageFile(packagePair, packageFile.absolute(), code)\r\n }\r\n \r\n parsePackageFile(\r\n packagePair: PackagePair\r\n fileName: String\r\n code: String\r\n ): PackageInfo {\r\n let tokens = Tokenizer.tokenize(fileName, code, None, True)\r\n let moduleKey = ModuleKey(packagePair, [], \"<package>\")\r\n let parser = Parser.new(moduleKey, tokens, False, LspHook.disabled())\r\n let info = parser.parsePackageInfo()\r\n self.addCoreDependencyIfMissing(info)\r\n }\r\n\r\n addCoreDependencyIfMissing(info: PackageInfo): PackageInfo {\r\n if(info.dependencies.any {d =>\r\n d.packagePair.group == \"ff\" && d.packagePair.name == \"core\"\r\n }) {\r\n info\r\n } else {\r\n let coreDependency = DDependency(\r\n at = info.package.at\r\n packagePair = PackagePair(\"ff\", \"core\")\r\n version = Version(info.package.at, 0, 0, 0)\r\n safety = Trusted\r\n targets = info.package.targets\r\n )\r\n info.PackageInfo(dependencies = [coreDependency, ...info.dependencies])\r\n }\r\n }\r\n\r\n processPackageInfo(\r\n packageInfo: PackageInfo\r\n ): List[DDependency] {\r\n self.packages = self.packages.add(packageInfo.package.packagePair, packageInfo)\r\n packageInfo.dependencies.filter {!self.packages.contains(_.packagePair)}\r\n }\r\n\r\n fetchDependency(\r\n path: Path\r\n httpClient: HttpClient\r\n dependencyLock: DependencyLock\r\n dependency: DDependency\r\n ): Path {\r\n let location = self.workspace.findPackageLocation(dependency.packagePair, dependency.version)\r\n if(location.contains(\":\") && !location.dropFirst(1).startsWith(\":\")) {\r\n if(location.startsWith(\"http://\") || location.startsWith(\"https://\")) {\r\n let packagePair = dependency.packagePair\r\n let directory = if(path.isDirectory()) {path} else {path.parent().grab()}\r\n let dependenciesPath = directory.slash(\".firefly\").slash(\"dependencies\")\r\n let dependencyPath = dependenciesPath.slash(packagePair.group).slash(packagePair.name)\r\n let tarGzPath = dependenciesPath.slash(Workspace.tarGzName(packagePair, dependency.version))\r\n let donePath = dependenciesPath.slash(Workspace.tarGzName(packagePair, dependency.version) + \".done\")\r\n if(!donePath.exists()) {\r\n dependencyLock.do(donePath.absolute()) {\r\n if(!donePath.exists()) {\r\n Log.trace(\"Fetching \" + location)\r\n let buffer = httpClient.get(location, []) {response =>\r\n if(!response.ok()) {\r\n throw(CompileError(dependency.at, \"Could not download dependency: \" + location))\r\n }\r\n response.readBuffer()\r\n }\r\n if(dependencyPath.exists()) {\r\n dependencyPath.delete()\r\n }\r\n dependencyPath.createDirectory(createParentDirectories = True)\r\n tarGzPath.writeStream([buffer].toStream())\r\n internalExtractTarGz(tarGzPath, dependencyPath)\r\n tarGzPath.renameTo(donePath)\r\n }\r\n }\r\n }\r\n dependencyPath\r\n } else {\r\n throw(CompileError(dependency.at, \"Loading packages by this protocol is not supported: \" + location))\r\n }\r\n } else {\r\n path.path(location)\r\n }\r\n }\r\n\r\n processDependencies(\r\n path: Path\r\n httpClient: HttpClient\r\n dependencyLock: DependencyLock\r\n dependencies: List[DDependency]\r\n ): Unit {\r\n // Remember to check for cycles\r\n let packageInfos = dependencies.map {dependency =>\r\n let dependencyPath = self.fetchDependency(path, httpClient, dependencyLock, dependency)\r\n self.packagePaths = self.packagePaths.add(dependency.packagePair, dependencyPath)\r\n let packageInfo = self.loadPackageInfo(dependency.packagePair, dependencyPath).else {\r\n throw(CompileError(dependency.at, \"Dependency not found: \" + dependencyPath.absolute()))\r\n }\r\n checkPackagePairs(dependency.packagePair, packageInfo.package.packagePair)\r\n packageInfo\r\n }\r\n let newDependencies = packageInfos.flatMap {self.processPackageInfo(_)}\r\n if(newDependencies != []) {\r\n self.processDependencies(path, httpClient, dependencyLock, newDependencies)\r\n }\r\n }\r\n\r\n}\r\n\r\nprocess(fetch: HttpClient, dependencyLock: DependencyLock, path: Path): ResolvedDependencies {\r\n let workspace = Workspace.loadWorkspace(path)\r\n let self = Dependencies(workspace, [].toMap(), [].toMap(), [].toSet())\r\n let packageInfo = self.loadPackageInfo(Syntax.scriptPackagePair, path).else {\r\n if(!path.exists()) {\r\n throw(CompileError(Location(path.absolute(), 1, 1), \"File not found\"))\r\n } else {\r\n throw(CompileError(Location(path.absolute(), 1, 1), \"Could not load package info\"))\r\n }\r\n }\r\n let newDependencies = self.processPackageInfo(packageInfo)\r\n self.processDependencies(path, fetch, dependencyLock, newDependencies)\r\n let packagePaths = self.packagePaths.add(packageInfo.package.packagePair, findScriptPackageLocation(path))\r\n ResolvedDependencies(\r\n mainPackagePair = packageInfo.package.packagePair\r\n packages = self.packages\r\n packagePaths = packagePaths\r\n singleFilePackages = self.singleFilePackages\r\n )\r\n}\r\n\r\nfindScriptPackageLocation(path: Path): Path {\r\n let packageDirectory = if(path.extension() == \".ff\") {path.parent().grab()} else {path}\r\n function go(directory: Path): Path {\r\n let packageFile = directory.slash(\".firefly\").slash(\"package.ff\")\r\n if(packageFile.exists()) {\r\n directory\r\n } elseIf {!directory.parent().isEmpty()} {\r\n go(directory.parent().grab())\r\n } else {\r\n packageDirectory\r\n }\r\n }\r\n go(packageDirectory)\r\n}\r\n\r\ncheckPackagePairs(dependencyPair: PackagePair, packagePair: PackagePair): Unit {\r\n if(\r\n packagePair.group != dependencyPair.group ||\r\n packagePair.name != dependencyPair.name\r\n ) {\r\n panic(\r\n \"Dependency declaration and package declaration disagree on package name: \" +\r\n dependencyPair.groupName() + \" vs. \" + packagePair.groupName()\r\n )\r\n }\r\n}\r\n\r\ninternalExtractTarGz(tarGzPath: Path, path: Path): Unit {\r\n let tar = Js.import(\"tar\")\r\n Js.await(tar->extract(Js->(file = tarGzPath.absolutePath, cwd = path.absolutePath, strict = True)))\r\n}\r\n"
8
+ ],
9
+ "names": [
10
+ "Dependencies",
11
+ "workspace",
12
+ "packages",
13
+ "packagePaths",
14
+ "singleFilePackages",
15
+ "ResolvedDependencies",
16
+ "mainPackagePair",
17
+ "process",
18
+ "fetch",
19
+ "dependencyLock",
20
+ "path",
21
+ "loadWorkspace",
22
+ "self",
23
+ "toMap",
24
+ "toSet",
25
+ "packageInfo",
26
+ "else",
27
+ "loadPackageInfo",
28
+ "scriptPackagePair",
29
+ "exists",
30
+ "CompileError",
31
+ "Location",
32
+ "absolute",
33
+ "newDependencies",
34
+ "processPackageInfo",
35
+ "processDependencies",
36
+ "add",
37
+ "package",
38
+ "packagePair",
39
+ "findScriptPackageLocation",
40
+ "packageDirectory",
41
+ "extension",
42
+ "grab",
43
+ "parent",
44
+ "go",
45
+ "directory",
46
+ "packageFile",
47
+ "slash",
48
+ "isEmpty",
49
+ "checkPackagePairs",
50
+ "dependencyPair",
51
+ "group",
52
+ "name",
53
+ "panic",
54
+ "groupName",
55
+ "internalExtractTarGz",
56
+ "tarGzPath",
57
+ "tar",
58
+ "extract",
59
+ "file",
60
+ "absolutePath",
61
+ "cwd",
62
+ "strict",
63
+ "sharedPackageFile",
64
+ "map",
65
+ "toOption",
66
+ "try",
67
+ "readText",
68
+ "code",
69
+ "parsePackageFile",
70
+ "fileName",
71
+ "tokens",
72
+ "tokenize",
73
+ "None",
74
+ "moduleKey",
75
+ "ModuleKey",
76
+ "parser",
77
+ "new",
78
+ "disabled",
79
+ "info",
80
+ "parsePackageInfo",
81
+ "addCoreDependencyIfMissing",
82
+ "any",
83
+ "dependencies",
84
+ "d",
85
+ "coreDependency",
86
+ "DDependency",
87
+ "at",
88
+ "PackagePair",
89
+ "Version",
90
+ "Trusted",
91
+ "targets",
92
+ "c",
93
+ "PackageInfo",
94
+ "includes",
95
+ "filter",
96
+ "w1",
97
+ "contains",
98
+ "fetchDependency",
99
+ "httpClient",
100
+ "dependency",
101
+ "location",
102
+ "findPackageLocation",
103
+ "version",
104
+ "startsWith",
105
+ "dropFirst",
106
+ "isDirectory",
107
+ "dependenciesPath",
108
+ "dependencyPath",
109
+ "tarGzName",
110
+ "donePath",
111
+ "do",
112
+ "trace",
113
+ "buffer",
114
+ "get",
115
+ "response",
116
+ "ok",
117
+ "readBuffer",
118
+ "delete",
119
+ "createDirectory",
120
+ "writeStream",
121
+ "toStream",
122
+ "renameTo",
123
+ "packageInfos",
124
+ "flatMap",
125
+ "notEquals"
126
+ ],
127
+ "mappings": "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"
128
+ }