@explorable-viz/fluid 0.7.17 → 0.7.19

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,29 @@
1
+ {
2
+ "parserOptions": {
3
+ "ecmaVersion": 6,
4
+ "sourceType": "module"
5
+ },
6
+ "extends": "eslint:recommended",
7
+ "env": {
8
+ "node": true
9
+ },
10
+ "rules": {
11
+ "strict": [2, "global"],
12
+ "block-scoped-var": 2,
13
+ "consistent-return": 2,
14
+ "eqeqeq": [2, "smart"],
15
+ "guard-for-in": 2,
16
+ "no-caller": 2,
17
+ "no-extend-native": 2,
18
+ "no-loop-func": 2,
19
+ "no-new": 2,
20
+ "no-param-reassign": 2,
21
+ "no-return-assign": 2,
22
+ "no-unused-expressions": 2,
23
+ "no-use-before-define": 2,
24
+ "radix": [2, "always"],
25
+ "indent": [2, 2],
26
+ "quotes": [2, "double"],
27
+ "semi": [2, "always"]
28
+ }
29
+ }
@@ -0,0 +1,8 @@
1
+ /.*
2
+ !/.gitignore
3
+ !/.eslintrc.json
4
+ !/.github/
5
+ /bower_components/
6
+ /node_modules/
7
+ /output/
8
+ package-lock.json
@@ -257,8 +257,17 @@ var pureE = function(a) {
257
257
  return a;
258
258
  };
259
259
  };
260
+ var bindE = function(a) {
261
+ return function(f) {
262
+ return function() {
263
+ return f(a())();
264
+ };
265
+ };
266
+ };
260
267
 
261
268
  // output-es/Effect/index.js
269
+ var monadEffect = { Applicative0: () => applicativeEffect, Bind1: () => bindEffect };
270
+ var bindEffect = { bind: bindE, Apply0: () => applyEffect };
262
271
  var applyEffect = {
263
272
  apply: (f) => (a) => () => {
264
273
  const f$p = f();
@@ -462,6 +471,17 @@ var iterate = (iter) => (f) => () => {
462
471
  }
463
472
  };
464
473
 
474
+ // output-es/Data.Maybe.First/index.js
475
+ var semigroupFirst = {
476
+ append: (v) => (v1) => {
477
+ if (v.tag === "Just") {
478
+ return v;
479
+ }
480
+ return v1;
481
+ }
482
+ };
483
+ var monoidFirst = { mempty: Nothing, Semigroup0: () => semigroupFirst };
484
+
465
485
  // output-es/Data.Foldable/foreign.js
466
486
  var foldrArray = function(f) {
467
487
  return function(init5) {
@@ -507,6 +527,15 @@ var foldrDefault = (dictFoldable) => {
507
527
  const foldMap2 = dictFoldable.foldMap(monoidEndo);
508
528
  return (c) => (u) => (xs) => foldMap2((x) => c(x))(xs)(u);
509
529
  };
530
+ var lookup = (dictFoldable) => {
531
+ const foldMap2 = dictFoldable.foldMap(monoidFirst);
532
+ return (dictEq) => (a) => foldMap2((v) => {
533
+ if (dictEq.eq(a)(v._1)) {
534
+ return $Maybe("Just", v._2);
535
+ }
536
+ return Nothing;
537
+ });
538
+ };
510
539
 
511
540
  // output-es/Data.Eq/foreign.js
512
541
  var refEq = function(r1) {
@@ -3271,7 +3300,7 @@ var toUnfoldable3 = (dictUnfoldable) => (m) => {
3271
3300
  };
3272
3301
  return dictUnfoldable.unfoldr(go)($List("Cons", m, Nil));
3273
3302
  };
3274
- var lookup = (dictOrd) => (k) => {
3303
+ var lookup2 = (dictOrd) => (k) => {
3275
3304
  const go = (go$a0$copy) => {
3276
3305
  let go$a0 = go$a0$copy, go$c = true, go$r;
3277
3306
  while (go$c) {
@@ -4160,7 +4189,7 @@ var $$delete = (dictOrd) => (k) => (m) => {
4160
4189
  fail();
4161
4190
  };
4162
4191
  var alter = (dictOrd) => (f) => (k) => (m) => {
4163
- const v = f(lookup(dictOrd)(k)(m));
4192
+ const v = f(lookup2(dictOrd)(k)(m));
4164
4193
  if (v.tag === "Nothing") {
4165
4194
  return $$delete(dictOrd)(k)(m);
4166
4195
  }
@@ -4198,7 +4227,7 @@ var size2 = (v) => size(v);
4198
4227
  var singleton2 = (a) => $$$Map("Two", Leaf2, a, void 0, Leaf2);
4199
4228
  var showSet = (dictShow) => ({ show: (s) => "(fromFoldable " + showArrayImpl(dictShow.show)(toUnfoldable1(s)) + ")" });
4200
4229
  var member = (dictOrd) => (a) => (v) => {
4201
- const $0 = lookup(dictOrd)(a)(v);
4230
+ const $0 = lookup2(dictOrd)(a)(v);
4202
4231
  if ($0.tag === "Nothing") {
4203
4232
  return false;
4204
4233
  }
@@ -9574,7 +9603,7 @@ var mutate = (f) => (m) => {
9574
9603
  };
9575
9604
  var member2 = ($0) => ($1) => _lookup(false, (v) => true, $0, $1);
9576
9605
  var mapWithKey = (f) => (m) => _mapWithKey(m, f);
9577
- var lookup2 = ($0) => ($1) => _lookup(Nothing, Just, $0, $1);
9606
+ var lookup3 = ($0) => ($1) => _lookup(Nothing, Just, $0, $1);
9578
9607
  var isSubmap = (dictEq) => (m1) => (m2) => all2((k) => (v) => _lookup(false, dictEq.eq(v), k, m2))(m1);
9579
9608
  var isEmpty2 = /* @__PURE__ */ all2((v) => (v1) => false);
9580
9609
  var insert2 = (k) => (v) => mutate(($0) => () => {
@@ -10043,7 +10072,7 @@ var mapObjectString = {
10043
10072
  })(),
10044
10073
  filterKeys,
10045
10074
  unionWith: unionWith2,
10046
- lookup: lookup2,
10075
+ lookup: lookup3,
10047
10076
  delete: $$delete2,
10048
10077
  insert: insert2,
10049
10078
  toUnfoldable: (dictUnfoldable) => toAscUnfoldable(dictUnfoldable),
@@ -11751,7 +11780,7 @@ var topologicalSort = (dictOrd) => (v) => {
11751
11780
  }
11752
11781
  if (v1._1._1.tag === "Visit") {
11753
11782
  if ((() => {
11754
- const $0 = lookup(dictOrd)(v1._1._1._1)(state.unvisited);
11783
+ const $0 = lookup2(dictOrd)(v1._1._1._1)(state.unvisited);
11755
11784
  if ($0.tag === "Nothing") {
11756
11785
  return false;
11757
11786
  }
@@ -11763,7 +11792,7 @@ var topologicalSort = (dictOrd) => (v) => {
11763
11792
  visit$a0 = { result: state.result, unvisited: $$delete(dictOrd)(v1._1._1._1)(state.unvisited) };
11764
11793
  visit$a1 = (() => {
11765
11794
  const $0 = fromFoldable6(listMap(Visit)((() => {
11766
- const $02 = lookup(dictOrd)(v1._1._1._1)(v);
11795
+ const $02 = lookup2(dictOrd)(v1._1._1._1)(v);
11767
11796
  if ($02.tag === "Nothing") {
11768
11797
  return Nil;
11769
11798
  }
@@ -12182,7 +12211,7 @@ var fwdSlice = (dictGraph) => {
12182
12211
  return pure($Step("Done", void 0));
12183
12212
  }
12184
12213
  if (v1.es.tag === "Cons") {
12185
- const $2 = lookup(ordVertex)(v1.es._1._1)(v1.pending);
12214
+ const $2 = lookup2(ordVertex)(v1.es._1._1)(v1.pending);
12186
12215
  const \u03B2s = (() => {
12187
12216
  if ($2.tag === "Nothing") {
12188
12217
  return $$$Map("Two", Leaf2, v1.es._1._2, void 0, Leaf2);
@@ -16410,7 +16439,7 @@ var helperMatch = (pss) => $NonEmpty(
16410
16439
  listMap((v) => $Tuple($NonEmpty(v._1, Nil), v._2))(pss._2)
16411
16440
  );
16412
16441
  var getPrec = (x) => {
16413
- const v = lookup(ordString)(x)(opDefs);
16442
+ const v = lookup2(ordString)(x)(opDefs);
16414
16443
  if (v.tag === "Just") {
16415
16444
  return v._1.prec;
16416
16445
  }
@@ -24775,6 +24804,7 @@ var concatM2 = (dictMonad) => foldrArray((() => {
24775
24804
  const $0 = dictMonad.Bind1();
24776
24805
  return (f) => (g) => (a) => $0.bind(f(a))(g);
24777
24806
  })())(dictMonad.Applicative0().pure);
24807
+ var Folder = (x) => x;
24778
24808
  var parse = (dictMonadError) => {
24779
24809
  const $0 = dictMonadError.MonadThrow0();
24780
24810
  const $1 = $0.Monad0().Applicative0().pure;
@@ -24895,6 +24925,48 @@ function nullable(a, r, f) {
24895
24925
  return a == null ? r : f(a);
24896
24926
  }
24897
24927
 
24928
+ // output-es/Node.Buffer.Immutable/foreign.js
24929
+ function toStringImpl(enc) {
24930
+ return (buff) => {
24931
+ return buff.toString(enc);
24932
+ };
24933
+ }
24934
+
24935
+ // output-es/Node.Buffer.Immutable/index.js
24936
+ var toString = (x) => toStringImpl((() => {
24937
+ if (x === "ASCII") {
24938
+ return "ascii";
24939
+ }
24940
+ if (x === "UTF8") {
24941
+ return "utf8";
24942
+ }
24943
+ if (x === "UTF16LE") {
24944
+ return "utf16le";
24945
+ }
24946
+ if (x === "UCS2") {
24947
+ return "ucs2";
24948
+ }
24949
+ if (x === "Base64") {
24950
+ return "base64";
24951
+ }
24952
+ if (x === "Latin1") {
24953
+ return "latin1";
24954
+ }
24955
+ if (x === "Binary") {
24956
+ return "binary";
24957
+ }
24958
+ if (x === "Hex") {
24959
+ return "hex";
24960
+ }
24961
+ fail();
24962
+ })());
24963
+
24964
+ // output-es/Node.Buffer.Internal/index.js
24965
+ var toString2 = (dictMonad) => (m) => {
24966
+ const $0 = toString(m);
24967
+ return (buf) => dictMonad.Bind1().Apply0().Functor0().map($0)(dictMonad.Applicative0().pure(buf));
24968
+ };
24969
+
24898
24970
  // output-es/Node.FS.Constants/foreign.js
24899
24971
  import { constants } from "node:fs";
24900
24972
  var f_OK = constants.F_OK;
@@ -24997,6 +25069,132 @@ var loadFile = (v) => (v1) => (dictMonadAff) => {
24997
25069
  return (dictMonadError) => Monad0.Bind1().bind(dictMonadAff.liftAff(toAff2(readTextFile)(ASCII)(v + "/" + v1 + ".fld")))((buffer) => Monad0.Applicative0().pure(buffer));
24998
25070
  };
24999
25071
 
25072
+ // output-es/Node.ChildProcess/foreign.js
25073
+ import { spawn, exec, execFile, execSync, execFileSync, fork as cp_fork } from "child_process";
25074
+ function execImpl(command2) {
25075
+ return (opts) => (callback2) => () => exec(
25076
+ command2,
25077
+ opts,
25078
+ (err, stdout, stderr) => {
25079
+ callback2(err)(stdout)(stderr)();
25080
+ }
25081
+ );
25082
+ }
25083
+ var _undefined = void 0;
25084
+
25085
+ // output-es/Node.ChildProcess/index.js
25086
+ var convertExecOptions = (opts) => ({
25087
+ cwd: (() => {
25088
+ if (opts.cwd.tag === "Nothing") {
25089
+ return _undefined;
25090
+ }
25091
+ if (opts.cwd.tag === "Just") {
25092
+ return opts.cwd._1;
25093
+ }
25094
+ fail();
25095
+ })(),
25096
+ env: (() => {
25097
+ if (opts.env.tag === "Nothing") {
25098
+ return _undefined;
25099
+ }
25100
+ if (opts.env.tag === "Just") {
25101
+ return opts.env._1;
25102
+ }
25103
+ fail();
25104
+ })(),
25105
+ encoding: (() => {
25106
+ if (opts.encoding.tag === "Nothing") {
25107
+ return _undefined;
25108
+ }
25109
+ if (opts.encoding.tag === "Just") {
25110
+ if (opts.encoding._1 === "ASCII") {
25111
+ return "ascii";
25112
+ }
25113
+ if (opts.encoding._1 === "UTF8") {
25114
+ return "utf8";
25115
+ }
25116
+ if (opts.encoding._1 === "UTF16LE") {
25117
+ return "utf16le";
25118
+ }
25119
+ if (opts.encoding._1 === "UCS2") {
25120
+ return "ucs2";
25121
+ }
25122
+ if (opts.encoding._1 === "Base64") {
25123
+ return "base64";
25124
+ }
25125
+ if (opts.encoding._1 === "Latin1") {
25126
+ return "latin1";
25127
+ }
25128
+ if (opts.encoding._1 === "Binary") {
25129
+ return "binary";
25130
+ }
25131
+ if (opts.encoding._1 === "Hex") {
25132
+ return "hex";
25133
+ }
25134
+ }
25135
+ fail();
25136
+ })(),
25137
+ shell: (() => {
25138
+ if (opts.shell.tag === "Nothing") {
25139
+ return _undefined;
25140
+ }
25141
+ if (opts.shell.tag === "Just") {
25142
+ return opts.shell._1;
25143
+ }
25144
+ fail();
25145
+ })(),
25146
+ timeout: (() => {
25147
+ if (opts.timeout.tag === "Nothing") {
25148
+ return _undefined;
25149
+ }
25150
+ if (opts.timeout.tag === "Just") {
25151
+ return opts.timeout._1;
25152
+ }
25153
+ fail();
25154
+ })(),
25155
+ maxBuffer: (() => {
25156
+ if (opts.maxBuffer.tag === "Nothing") {
25157
+ return _undefined;
25158
+ }
25159
+ if (opts.maxBuffer.tag === "Just") {
25160
+ return opts.maxBuffer._1;
25161
+ }
25162
+ fail();
25163
+ })(),
25164
+ killSignal: (() => {
25165
+ if (opts.killSignal.tag === "Nothing") {
25166
+ return _undefined;
25167
+ }
25168
+ if (opts.killSignal.tag === "Just") {
25169
+ return opts.killSignal._1;
25170
+ }
25171
+ fail();
25172
+ })(),
25173
+ uid: (() => {
25174
+ if (opts.uid.tag === "Nothing") {
25175
+ return _undefined;
25176
+ }
25177
+ if (opts.uid.tag === "Just") {
25178
+ return opts.uid._1;
25179
+ }
25180
+ fail();
25181
+ })(),
25182
+ gid: (() => {
25183
+ if (opts.gid.tag === "Nothing") {
25184
+ return _undefined;
25185
+ }
25186
+ if (opts.gid.tag === "Just") {
25187
+ return opts.gid._1;
25188
+ }
25189
+ fail();
25190
+ })()
25191
+ });
25192
+ var exec2 = (cmd) => (opts) => (callback2) => execImpl(cmd)(convertExecOptions(opts))((err) => (stdout$p) => (stderr$p) => callback2({
25193
+ error: nullable(err, Nothing, Just),
25194
+ stdout: stdout$p,
25195
+ stderr: stderr$p
25196
+ }));
25197
+
25000
25198
  // output-es/Options.Applicative.Internal.Utils/index.js
25001
25199
  var whitespaceRegex = /* @__PURE__ */ (() => {
25002
25200
  const v = regex("\\s+")(noFlags);
@@ -25779,9 +25977,15 @@ var manyM = (p) => freeMonadRec.tailRecM((acc) => $Free(
25779
25977
  // output-es/Options.Applicative.Builder.Internal/index.js
25780
25978
  var $DefaultProp = (_1, _2) => ({ tag: "DefaultProp", _1, _2 });
25781
25979
  var $Mod = (_1, _2, _3) => ({ tag: "Mod", _1, _2, _3 });
25980
+ var lookup4 = /* @__PURE__ */ lookup(foldableArray)(eqString);
25782
25981
  var identity26 = (x) => x;
25783
25982
  var Mod = (value0) => (value1) => (value2) => $Mod(value0, value1, value2);
25784
25983
  var optionFieldsHasName = { name: (n) => (fields) => ({ optNames: [n, ...fields.optNames], optCompleter: fields.optCompleter, optNoArgError: fields.optNoArgError }) };
25984
+ var mkCommand = (m) => {
25985
+ const v = m._1({ cmdCommands: [], cmdGroup: Nothing });
25986
+ const $0 = v.cmdCommands;
25987
+ return $Tuple(v.cmdGroup, $Tuple(arrayMap(fst)($0), $Tuple((v1) => lookup4(v1)($0), void 0)));
25988
+ };
25785
25989
  var modSemigroup = {
25786
25990
  append: (v) => (v1) => $Mod((x) => v1._1(v._1(x)), $DefaultProp(v1._2._1.tag === "Nothing" ? v._2._1 : v1._2._1, v1._2._2.tag === "Nothing" ? v._2._2 : v1._2._2), (x) => v1._3(v._3(x)))
25787
25991
  };
@@ -25850,6 +26054,14 @@ var option = (r) => (m) => {
25850
26054
  m._2._2.tag === "Nothing" ? $0._2._2 : m._2._2
25851
26055
  ))((x) => m._3($0._3(x)))($OptReader("OptReader", $1.optNames, { crCompleter: $1.optCompleter, crReader: r }, $1.optNoArgError));
25852
26056
  };
26057
+ var subparser = (m) => {
26058
+ const $0 = optionMod((p) => ({ propMetaVar: "COMMAND", propDescMod: p.propDescMod, propHelp: p.propHelp, propShowDefault: p.propShowDefault, propVisibility: p.propVisibility }));
26059
+ const v1 = mkCommand(m);
26060
+ return mkParser($DefaultProp(
26061
+ m._2._1.tag === "Nothing" ? $0._2._1 : m._2._1,
26062
+ m._2._2.tag === "Nothing" ? $0._2._2 : m._2._2
26063
+ ))((x) => m._3($0._3(x)))($OptReader("CmdReader", v1._1, v1._2._1, v1._2._2._1));
26064
+ };
25853
26065
  var hidden = /* @__PURE__ */ optionMod((p) => ({
25854
26066
  propVisibility: min3(Hidden)(p.propVisibility),
25855
26067
  propDescMod: p.propDescMod,
@@ -25906,6 +26118,11 @@ var defaultPrefs = {
25906
26118
  prefBacktrack: Backtrack,
25907
26119
  prefColumns: 80
25908
26120
  };
26121
+ var command = (cmd) => (pinfo) => $Mod(
26122
+ (p) => ({ cmdCommands: [$Tuple(cmd, pinfo), ...p.cmdCommands], cmdGroup: p.cmdGroup }),
26123
+ $DefaultProp(Nothing, Nothing),
26124
+ identity26
26125
+ );
25909
26126
  var abortOption = (err) => (m) => {
25910
26127
  const $0 = fold3([
25911
26128
  $Mod(
@@ -25931,10 +26148,10 @@ var abortOption = (err) => (m) => {
25931
26148
  };
25932
26149
 
25933
26150
  // output-es/Node.Process/foreign.js
25934
- import process from "process";
26151
+ import process2 from "process";
25935
26152
  function exit(code) {
25936
26153
  return () => {
25937
- process.exit(code);
26154
+ process2.exit(code);
25938
26155
  };
25939
26156
  }
25940
26157
  function copyArray(xs) {
@@ -25942,7 +26159,7 @@ function copyArray(xs) {
25942
26159
  }
25943
26160
 
25944
26161
  // output-es/Node.Process/index.js
25945
- var argv = /* @__PURE__ */ (() => copyArray(process.argv))();
26162
+ var argv = /* @__PURE__ */ (() => copyArray(process2.argv))();
25946
26163
 
25947
26164
  // output-es/Node.Stream/foreign.js
25948
26165
  function writeStringImpl(w) {
@@ -28102,7 +28319,7 @@ var handleParseResult = (v) => {
28102
28319
  return () => {
28103
28320
  const progn = getProgName();
28104
28321
  const v1 = renderFailure($0)(progn);
28105
- writeString(v1._2 === "Success" ? process.stdout : process.stderr)(UTF8)(v1._1 + "\n")(mempty22)();
28322
+ writeString(v1._2 === "Success" ? process2.stdout : process2.stderr)(UTF8)(v1._1 + "\n")(mempty22)();
28106
28323
  return exit(boundedEnumExitCode.fromEnum(v1._2))();
28107
28324
  };
28108
28325
  }
@@ -28111,7 +28328,7 @@ var handleParseResult = (v) => {
28111
28328
  return () => {
28112
28329
  const progn = getProgName();
28113
28330
  const msg = $0.execCompletion(progn)();
28114
- writeString(process.stdout)(UTF8)(msg)(mempty22)();
28331
+ writeString(process2.stdout)(UTF8)(msg)(mempty22)();
28115
28332
  return exitSuccess();
28116
28333
  };
28117
28334
  }
@@ -28139,11 +28356,14 @@ var execParserPure = (pprefs) => (pinfo) => (args) => {
28139
28356
  };
28140
28357
 
28141
28358
  // output-es/Fluid/index.js
28359
+ var $Command = (tag, _1, _2) => ({ tag, _1, _2 });
28142
28360
  var $Program = (_1) => ({ tag: "Program", _1 });
28143
28361
  var loadProgCxt2 = /* @__PURE__ */ loadProgCxt(monadAffAff)(monadErrorAff)(loadFile);
28144
28362
  var prepConfig2 = /* @__PURE__ */ prepConfig(monadAffAff)(monadErrorAff)(loadFile);
28145
28363
  var graphEval2 = /* @__PURE__ */ graphEval(monadErrorAff);
28146
28364
  var fromFoldable29 = /* @__PURE__ */ (() => fromFoldableImpl(foldableList.foldr))();
28365
+ var Evaluate = (value0) => $Command("Evaluate", value0);
28366
+ var Publish = (value0) => (value1) => $Command("Publish", value0, value1);
28147
28367
  var parseImports = /* @__PURE__ */ $Parser(
28148
28368
  "BindP",
28149
28369
  /* @__PURE__ */ manyM(/* @__PURE__ */ option(readerAsk)(/* @__PURE__ */ (() => {
@@ -28169,6 +28389,40 @@ var output = (v) => {
28169
28389
  })(v2["out\u03B1"]._2)
28170
28390
  )))));
28171
28391
  };
28392
+ var copyOptions = {
28393
+ cwd: Nothing,
28394
+ env: Nothing,
28395
+ timeout: Nothing,
28396
+ killSignal: Nothing,
28397
+ maxBuffer: Nothing,
28398
+ uid: Nothing,
28399
+ gid: Nothing,
28400
+ encoding: Nothing,
28401
+ shell: Nothing
28402
+ };
28403
+ var copyFiles = (website) => exec2("yarn bundle-website " + website)(copyOptions)((v) => {
28404
+ if (v.error.tag === "Just") {
28405
+ return log(showErrorImpl(v.error._1));
28406
+ }
28407
+ if (v.error.tag === "Nothing") {
28408
+ const $0 = toString2(monadEffect)(ASCII)(v.stdout);
28409
+ return () => {
28410
+ const out = $0();
28411
+ return log(out)();
28412
+ };
28413
+ }
28414
+ fail();
28415
+ });
28416
+ var dispatchCommand = (v) => {
28417
+ if (v.tag === "Evaluate") {
28418
+ return output(v._1);
28419
+ }
28420
+ if (v.tag === "Publish") {
28421
+ const $0 = v._1;
28422
+ return _bind(_liftEffect(copyFiles(v._2)))(() => _bind(_liftEffect(log("Published")))(() => output($0)));
28423
+ }
28424
+ fail();
28425
+ };
28172
28426
  var callback = (v) => {
28173
28427
  if (v.tag === "Left") {
28174
28428
  return log(showErrorImpl(v._1));
@@ -28261,6 +28515,50 @@ var program = /* @__PURE__ */ (() => $Parser(
28261
28515
  })())
28262
28516
  )
28263
28517
  ))();
28518
+ var publish = /* @__PURE__ */ (() => $Parser(
28519
+ "MultP",
28520
+ $MultPE(
28521
+ parserFunctor.map(Publish)(program),
28522
+ parserFunctor.map(Folder)(option(readerAsk)((() => {
28523
+ const $0 = help("root directory under dist/");
28524
+ const $1 = $0._2._2.tag === "Nothing" ? Nothing : $0._2._2;
28525
+ return $Mod(
28526
+ (x) => $0._1({
28527
+ optNames: [$OptName("OptShort", "r"), $OptName("OptLong", "root"), ...x.optNames],
28528
+ optCompleter: x.optCompleter,
28529
+ optNoArgError: x.optNoArgError
28530
+ }),
28531
+ $DefaultProp($Maybe("Just", "Misc"), $1.tag === "Nothing" ? Nothing : $1),
28532
+ (x) => $0._3(x)
28533
+ );
28534
+ })()))
28535
+ )
28536
+ ))();
28537
+ var commandParser = /* @__PURE__ */ subparser(/* @__PURE__ */ (() => {
28538
+ const $0 = command("evaluate")(progDesc("Evaluate a file")({
28539
+ infoParser: parserFunctor.map(Evaluate)(program),
28540
+ infoFullDesc: true,
28541
+ infoProgDesc: mempty12,
28542
+ infoHeader: mempty12,
28543
+ infoFooter: mempty12,
28544
+ infoFailureCode: $$Error,
28545
+ infoPolicy: Intersperse
28546
+ }));
28547
+ const $1 = command("publish")(progDesc("Publish a file")({
28548
+ infoParser: publish,
28549
+ infoFullDesc: true,
28550
+ infoProgDesc: mempty12,
28551
+ infoHeader: mempty12,
28552
+ infoFooter: mempty12,
28553
+ infoFailureCode: $$Error,
28554
+ infoPolicy: Intersperse
28555
+ }));
28556
+ return $Mod(
28557
+ (x) => $1._1($0._1(x)),
28558
+ $DefaultProp($1._2._1.tag === "Nothing" ? $0._2._1 : $1._2._1, $1._2._2.tag === "Nothing" ? $0._2._2 : $1._2._2),
28559
+ (x) => $1._3($0._3(x))
28560
+ );
28561
+ })());
28264
28562
  var main = /* @__PURE__ */ (() => {
28265
28563
  const $0 = runAff(callback)(_bind(_liftEffect((() => {
28266
28564
  const $02 = header("parse - a simple parser")(progDesc("Parse a file")({
@@ -28268,7 +28566,7 @@ var main = /* @__PURE__ */ (() => {
28268
28566
  infoFailureCode: $$Error,
28269
28567
  infoFooter: mempty12,
28270
28568
  infoHeader: mempty12,
28271
- infoParser: apApplyFlipped(parserApply)(program)(helper),
28569
+ infoParser: apApplyFlipped(parserApply)(commandParser)(helper),
28272
28570
  infoPolicy: Intersperse,
28273
28571
  infoProgDesc: mempty12
28274
28572
  }));
@@ -28276,7 +28574,7 @@ var main = /* @__PURE__ */ (() => {
28276
28574
  const a$p = getArgs();
28277
28575
  return handleParseResult(execParserPure(defaultPrefs)($02)(a$p))();
28278
28576
  };
28279
- })()))(output));
28577
+ })()))(dispatchCommand));
28280
28578
  return () => {
28281
28579
  $0();
28282
28580
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorable-viz/fluid",
3
- "version": "0.7.17",
3
+ "version": "0.7.19",
4
4
  "description": "Fluid is an experimental programming language which integrates a bidirectional dynamic analysis to connect outputs to data sources in a fine-grained way. Fluid is implemented in PureScript and runs in the browser.",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -18,7 +18,10 @@
18
18
  },
19
19
  "homepage": "https://f.luid.org",
20
20
  "files": [
21
- "dist/fluid/"
21
+ "dist/fluid/",
22
+ "script/bundle-website.sh",
23
+ "script/util/",
24
+ "script/bundle-page.sh"
22
25
  ],
23
26
  "scripts": {
24
27
  "tidy": "./script/tidy.sh",
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env bash
2
+ # run from project root
3
+ set -xe
4
+
5
+ MODULE=$1
6
+ SRC_PATH=${MODULE//./\/}
7
+ SRC_PATH_LISP_CASE=$(./script/util/lisp-case.sh "$SRC_PATH")
8
+ echo "$SRC_PATH -> $SRC_PATH_LISP_CASE"
9
+
10
+ if [[ ! -e "website/$SRC_PATH.purs" ]]; then
11
+ ./script/util/clean.sh $SRC_PATH_LISP_CASE
12
+ cp website/$SRC_PATH.html dist/$SRC_PATH_LISP_CASE/index.html
13
+ else
14
+ ./script/util/bundle.sh $SRC_PATH_LISP_CASE Website.$MODULE
15
+
16
+ if [[ -e "website/$SRC_PATH.html" ]]; then
17
+ cp website/$SRC_PATH.html dist/$SRC_PATH_LISP_CASE/index.html
18
+ else
19
+ cp website/FluidOrg/template.html dist/$SRC_PATH_LISP_CASE/index.html
20
+ fi
21
+ fi
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env bash
2
+ # run from project root
3
+ set -xe
4
+
5
+ WEBSITE=$1
6
+ . script/bundle-page.sh $WEBSITE
7
+
8
+ # Only support one level of nesting for now
9
+ shopt -s nullglob
10
+
11
+ set +x
12
+ PAGES=($(for FILE in website/$WEBSITE/*.purs; do
13
+ basename "$FILE" | sed 's/\.[^.]*$//'
14
+ done | sort -u))
15
+ set -x
16
+
17
+ echo "Processing ${WEBSITE} pages: ${PAGES[@]}"
18
+
19
+ for PAGE in "${PAGES[@]}"; do
20
+ . script/bundle-page.sh $WEBSITE.$PAGE
21
+ done
22
+
23
+ WEBSITE_LISP_CASE=$(./script/util/lisp-case.sh "$WEBSITE")
24
+
25
+ set +x
26
+ TO_COPY=()
27
+ for CHILD in website/$WEBSITE/*; do
28
+ BASENAME="$(basename "$CHILD")"
29
+ if [[ "$BASENAME" =~ ^[a-z] ]]; then
30
+ TO_COPY+=("$CHILD")
31
+ fi
32
+ done
33
+ set -x
34
+
35
+ echo "Processing static files:"
36
+
37
+ for CHILD in "${TO_COPY[@]}"; do
38
+ BASENAME="$(basename "$CHILD")"
39
+ cp -rL "$CHILD" "dist/$WEBSITE_LISP_CASE/$BASENAME"
40
+ done
41
+
42
+ shopt -u nullglob
43
+ cp -r fluid dist/$WEBSITE_LISP_CASE
44
+ echo "Bundled website $WEBSITE"
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+ set -xe
3
+ yarn purs-backend-es bundle-app --main $2 --to dist/$1/fluid.js ${@:3} > /dev/null
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bash
2
+ set -xe
3
+
4
+ rm -rf dist/$1
5
+ mkdir -p dist/$1
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ set -xe
3
+
4
+ rm -rf output
5
+ rm -rf output-es
6
+ yarn tidy
7
+ yarn spago build --purs-args '--strict --censor-codes=UserDefinedWarning'
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ toLispCase() {
5
+ INPUT="$1"
6
+ RESULT=$(echo "$INPUT" | sed -E 's/([a-z0-9])([A-Z])/\1-\2/g' | tr '[:upper:]' '[:lower:]')
7
+ echo "$RESULT"
8
+ }
9
+
10
+ toLispCase "$1"