@explorable-viz/fluid 0.7.16 → 0.7.18
Sign up to get free protection for your applications and to get access to all the features.
- package/.spago/node-child-process/v9.0.0/.eslintrc.json +29 -0
- package/.spago/node-child-process/v9.0.0/.gitignore +8 -0
- package/dist/fluid/fluid.mjs +335 -16
- package/package.json +6 -3
- package/script/bundle-page.sh +21 -0
- package/script/bundle-website.sh +44 -0
- package/script/util/bundle.sh +3 -0
- package/script/util/clean.sh +5 -0
- package/script/util/compile.sh +7 -0
- package/script/util/lisp-case.sh +10 -0
@@ -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
|
+
}
|
package/dist/fluid/fluid.mjs
CHANGED
@@ -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
|
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(
|
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 =
|
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
|
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:
|
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 =
|
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 =
|
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 =
|
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 =
|
16442
|
+
const v = lookup2(ordString)(x)(opDefs);
|
16414
16443
|
if (v.tag === "Just") {
|
16415
16444
|
return v._1.prec;
|
16416
16445
|
}
|
@@ -24775,6 +24804,8 @@ 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;
|
24808
|
+
var File = (x) => x;
|
24778
24809
|
var parse = (dictMonadError) => {
|
24779
24810
|
const $0 = dictMonadError.MonadThrow0();
|
24780
24811
|
const $1 = $0.Monad0().Applicative0().pure;
|
@@ -24895,6 +24926,48 @@ function nullable(a, r, f) {
|
|
24895
24926
|
return a == null ? r : f(a);
|
24896
24927
|
}
|
24897
24928
|
|
24929
|
+
// output-es/Node.Buffer.Immutable/foreign.js
|
24930
|
+
function toStringImpl(enc) {
|
24931
|
+
return (buff) => {
|
24932
|
+
return buff.toString(enc);
|
24933
|
+
};
|
24934
|
+
}
|
24935
|
+
|
24936
|
+
// output-es/Node.Buffer.Immutable/index.js
|
24937
|
+
var toString = (x) => toStringImpl((() => {
|
24938
|
+
if (x === "ASCII") {
|
24939
|
+
return "ascii";
|
24940
|
+
}
|
24941
|
+
if (x === "UTF8") {
|
24942
|
+
return "utf8";
|
24943
|
+
}
|
24944
|
+
if (x === "UTF16LE") {
|
24945
|
+
return "utf16le";
|
24946
|
+
}
|
24947
|
+
if (x === "UCS2") {
|
24948
|
+
return "ucs2";
|
24949
|
+
}
|
24950
|
+
if (x === "Base64") {
|
24951
|
+
return "base64";
|
24952
|
+
}
|
24953
|
+
if (x === "Latin1") {
|
24954
|
+
return "latin1";
|
24955
|
+
}
|
24956
|
+
if (x === "Binary") {
|
24957
|
+
return "binary";
|
24958
|
+
}
|
24959
|
+
if (x === "Hex") {
|
24960
|
+
return "hex";
|
24961
|
+
}
|
24962
|
+
fail();
|
24963
|
+
})());
|
24964
|
+
|
24965
|
+
// output-es/Node.Buffer.Internal/index.js
|
24966
|
+
var toString2 = (dictMonad) => (m) => {
|
24967
|
+
const $0 = toString(m);
|
24968
|
+
return (buf) => dictMonad.Bind1().Apply0().Functor0().map($0)(dictMonad.Applicative0().pure(buf));
|
24969
|
+
};
|
24970
|
+
|
24898
24971
|
// output-es/Node.FS.Constants/foreign.js
|
24899
24972
|
import { constants } from "node:fs";
|
24900
24973
|
var f_OK = constants.F_OK;
|
@@ -24997,6 +25070,132 @@ var loadFile = (v) => (v1) => (dictMonadAff) => {
|
|
24997
25070
|
return (dictMonadError) => Monad0.Bind1().bind(dictMonadAff.liftAff(toAff2(readTextFile)(ASCII)(v + "/" + v1 + ".fld")))((buffer) => Monad0.Applicative0().pure(buffer));
|
24998
25071
|
};
|
24999
25072
|
|
25073
|
+
// output-es/Node.ChildProcess/foreign.js
|
25074
|
+
import { spawn, exec, execFile, execSync, execFileSync, fork as cp_fork } from "child_process";
|
25075
|
+
function execImpl(command2) {
|
25076
|
+
return (opts) => (callback2) => () => exec(
|
25077
|
+
command2,
|
25078
|
+
opts,
|
25079
|
+
(err, stdout, stderr) => {
|
25080
|
+
callback2(err)(stdout)(stderr)();
|
25081
|
+
}
|
25082
|
+
);
|
25083
|
+
}
|
25084
|
+
var _undefined = void 0;
|
25085
|
+
|
25086
|
+
// output-es/Node.ChildProcess/index.js
|
25087
|
+
var convertExecOptions = (opts) => ({
|
25088
|
+
cwd: (() => {
|
25089
|
+
if (opts.cwd.tag === "Nothing") {
|
25090
|
+
return _undefined;
|
25091
|
+
}
|
25092
|
+
if (opts.cwd.tag === "Just") {
|
25093
|
+
return opts.cwd._1;
|
25094
|
+
}
|
25095
|
+
fail();
|
25096
|
+
})(),
|
25097
|
+
env: (() => {
|
25098
|
+
if (opts.env.tag === "Nothing") {
|
25099
|
+
return _undefined;
|
25100
|
+
}
|
25101
|
+
if (opts.env.tag === "Just") {
|
25102
|
+
return opts.env._1;
|
25103
|
+
}
|
25104
|
+
fail();
|
25105
|
+
})(),
|
25106
|
+
encoding: (() => {
|
25107
|
+
if (opts.encoding.tag === "Nothing") {
|
25108
|
+
return _undefined;
|
25109
|
+
}
|
25110
|
+
if (opts.encoding.tag === "Just") {
|
25111
|
+
if (opts.encoding._1 === "ASCII") {
|
25112
|
+
return "ascii";
|
25113
|
+
}
|
25114
|
+
if (opts.encoding._1 === "UTF8") {
|
25115
|
+
return "utf8";
|
25116
|
+
}
|
25117
|
+
if (opts.encoding._1 === "UTF16LE") {
|
25118
|
+
return "utf16le";
|
25119
|
+
}
|
25120
|
+
if (opts.encoding._1 === "UCS2") {
|
25121
|
+
return "ucs2";
|
25122
|
+
}
|
25123
|
+
if (opts.encoding._1 === "Base64") {
|
25124
|
+
return "base64";
|
25125
|
+
}
|
25126
|
+
if (opts.encoding._1 === "Latin1") {
|
25127
|
+
return "latin1";
|
25128
|
+
}
|
25129
|
+
if (opts.encoding._1 === "Binary") {
|
25130
|
+
return "binary";
|
25131
|
+
}
|
25132
|
+
if (opts.encoding._1 === "Hex") {
|
25133
|
+
return "hex";
|
25134
|
+
}
|
25135
|
+
}
|
25136
|
+
fail();
|
25137
|
+
})(),
|
25138
|
+
shell: (() => {
|
25139
|
+
if (opts.shell.tag === "Nothing") {
|
25140
|
+
return _undefined;
|
25141
|
+
}
|
25142
|
+
if (opts.shell.tag === "Just") {
|
25143
|
+
return opts.shell._1;
|
25144
|
+
}
|
25145
|
+
fail();
|
25146
|
+
})(),
|
25147
|
+
timeout: (() => {
|
25148
|
+
if (opts.timeout.tag === "Nothing") {
|
25149
|
+
return _undefined;
|
25150
|
+
}
|
25151
|
+
if (opts.timeout.tag === "Just") {
|
25152
|
+
return opts.timeout._1;
|
25153
|
+
}
|
25154
|
+
fail();
|
25155
|
+
})(),
|
25156
|
+
maxBuffer: (() => {
|
25157
|
+
if (opts.maxBuffer.tag === "Nothing") {
|
25158
|
+
return _undefined;
|
25159
|
+
}
|
25160
|
+
if (opts.maxBuffer.tag === "Just") {
|
25161
|
+
return opts.maxBuffer._1;
|
25162
|
+
}
|
25163
|
+
fail();
|
25164
|
+
})(),
|
25165
|
+
killSignal: (() => {
|
25166
|
+
if (opts.killSignal.tag === "Nothing") {
|
25167
|
+
return _undefined;
|
25168
|
+
}
|
25169
|
+
if (opts.killSignal.tag === "Just") {
|
25170
|
+
return opts.killSignal._1;
|
25171
|
+
}
|
25172
|
+
fail();
|
25173
|
+
})(),
|
25174
|
+
uid: (() => {
|
25175
|
+
if (opts.uid.tag === "Nothing") {
|
25176
|
+
return _undefined;
|
25177
|
+
}
|
25178
|
+
if (opts.uid.tag === "Just") {
|
25179
|
+
return opts.uid._1;
|
25180
|
+
}
|
25181
|
+
fail();
|
25182
|
+
})(),
|
25183
|
+
gid: (() => {
|
25184
|
+
if (opts.gid.tag === "Nothing") {
|
25185
|
+
return _undefined;
|
25186
|
+
}
|
25187
|
+
if (opts.gid.tag === "Just") {
|
25188
|
+
return opts.gid._1;
|
25189
|
+
}
|
25190
|
+
fail();
|
25191
|
+
})()
|
25192
|
+
});
|
25193
|
+
var exec2 = (cmd) => (opts) => (callback2) => execImpl(cmd)(convertExecOptions(opts))((err) => (stdout$p) => (stderr$p) => callback2({
|
25194
|
+
error: nullable(err, Nothing, Just),
|
25195
|
+
stdout: stdout$p,
|
25196
|
+
stderr: stderr$p
|
25197
|
+
}));
|
25198
|
+
|
25000
25199
|
// output-es/Options.Applicative.Internal.Utils/index.js
|
25001
25200
|
var whitespaceRegex = /* @__PURE__ */ (() => {
|
25002
25201
|
const v = regex("\\s+")(noFlags);
|
@@ -25779,9 +25978,15 @@ var manyM = (p) => freeMonadRec.tailRecM((acc) => $Free(
|
|
25779
25978
|
// output-es/Options.Applicative.Builder.Internal/index.js
|
25780
25979
|
var $DefaultProp = (_1, _2) => ({ tag: "DefaultProp", _1, _2 });
|
25781
25980
|
var $Mod = (_1, _2, _3) => ({ tag: "Mod", _1, _2, _3 });
|
25981
|
+
var lookup4 = /* @__PURE__ */ lookup(foldableArray)(eqString);
|
25782
25982
|
var identity26 = (x) => x;
|
25783
25983
|
var Mod = (value0) => (value1) => (value2) => $Mod(value0, value1, value2);
|
25784
25984
|
var optionFieldsHasName = { name: (n) => (fields) => ({ optNames: [n, ...fields.optNames], optCompleter: fields.optCompleter, optNoArgError: fields.optNoArgError }) };
|
25985
|
+
var mkCommand = (m) => {
|
25986
|
+
const v = m._1({ cmdCommands: [], cmdGroup: Nothing });
|
25987
|
+
const $0 = v.cmdCommands;
|
25988
|
+
return $Tuple(v.cmdGroup, $Tuple(arrayMap(fst)($0), $Tuple((v1) => lookup4(v1)($0), void 0)));
|
25989
|
+
};
|
25785
25990
|
var modSemigroup = {
|
25786
25991
|
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
25992
|
};
|
@@ -25850,6 +26055,14 @@ var option = (r) => (m) => {
|
|
25850
26055
|
m._2._2.tag === "Nothing" ? $0._2._2 : m._2._2
|
25851
26056
|
))((x) => m._3($0._3(x)))($OptReader("OptReader", $1.optNames, { crCompleter: $1.optCompleter, crReader: r }, $1.optNoArgError));
|
25852
26057
|
};
|
26058
|
+
var subparser = (m) => {
|
26059
|
+
const $0 = optionMod((p) => ({ propMetaVar: "COMMAND", propDescMod: p.propDescMod, propHelp: p.propHelp, propShowDefault: p.propShowDefault, propVisibility: p.propVisibility }));
|
26060
|
+
const v1 = mkCommand(m);
|
26061
|
+
return mkParser($DefaultProp(
|
26062
|
+
m._2._1.tag === "Nothing" ? $0._2._1 : m._2._1,
|
26063
|
+
m._2._2.tag === "Nothing" ? $0._2._2 : m._2._2
|
26064
|
+
))((x) => m._3($0._3(x)))($OptReader("CmdReader", v1._1, v1._2._1, v1._2._2._1));
|
26065
|
+
};
|
25853
26066
|
var hidden = /* @__PURE__ */ optionMod((p) => ({
|
25854
26067
|
propVisibility: min3(Hidden)(p.propVisibility),
|
25855
26068
|
propDescMod: p.propDescMod,
|
@@ -25906,6 +26119,11 @@ var defaultPrefs = {
|
|
25906
26119
|
prefBacktrack: Backtrack,
|
25907
26120
|
prefColumns: 80
|
25908
26121
|
};
|
26122
|
+
var command = (cmd) => (pinfo) => $Mod(
|
26123
|
+
(p) => ({ cmdCommands: [$Tuple(cmd, pinfo), ...p.cmdCommands], cmdGroup: p.cmdGroup }),
|
26124
|
+
$DefaultProp(Nothing, Nothing),
|
26125
|
+
identity26
|
26126
|
+
);
|
25909
26127
|
var abortOption = (err) => (m) => {
|
25910
26128
|
const $0 = fold3([
|
25911
26129
|
$Mod(
|
@@ -25931,10 +26149,10 @@ var abortOption = (err) => (m) => {
|
|
25931
26149
|
};
|
25932
26150
|
|
25933
26151
|
// output-es/Node.Process/foreign.js
|
25934
|
-
import
|
26152
|
+
import process2 from "process";
|
25935
26153
|
function exit(code) {
|
25936
26154
|
return () => {
|
25937
|
-
|
26155
|
+
process2.exit(code);
|
25938
26156
|
};
|
25939
26157
|
}
|
25940
26158
|
function copyArray(xs) {
|
@@ -25942,7 +26160,7 @@ function copyArray(xs) {
|
|
25942
26160
|
}
|
25943
26161
|
|
25944
26162
|
// output-es/Node.Process/index.js
|
25945
|
-
var argv = /* @__PURE__ */ (() => copyArray(
|
26163
|
+
var argv = /* @__PURE__ */ (() => copyArray(process2.argv))();
|
25946
26164
|
|
25947
26165
|
// output-es/Node.Stream/foreign.js
|
25948
26166
|
function writeStringImpl(w) {
|
@@ -28102,7 +28320,7 @@ var handleParseResult = (v) => {
|
|
28102
28320
|
return () => {
|
28103
28321
|
const progn = getProgName();
|
28104
28322
|
const v1 = renderFailure($0)(progn);
|
28105
|
-
writeString(v1._2 === "Success" ?
|
28323
|
+
writeString(v1._2 === "Success" ? process2.stdout : process2.stderr)(UTF8)(v1._1 + "\n")(mempty22)();
|
28106
28324
|
return exit(boundedEnumExitCode.fromEnum(v1._2))();
|
28107
28325
|
};
|
28108
28326
|
}
|
@@ -28111,7 +28329,7 @@ var handleParseResult = (v) => {
|
|
28111
28329
|
return () => {
|
28112
28330
|
const progn = getProgName();
|
28113
28331
|
const msg = $0.execCompletion(progn)();
|
28114
|
-
writeString(
|
28332
|
+
writeString(process2.stdout)(UTF8)(msg)(mempty22)();
|
28115
28333
|
return exitSuccess();
|
28116
28334
|
};
|
28117
28335
|
}
|
@@ -28139,11 +28357,14 @@ var execParserPure = (pprefs) => (pinfo) => (args) => {
|
|
28139
28357
|
};
|
28140
28358
|
|
28141
28359
|
// output-es/Fluid/index.js
|
28360
|
+
var $Command = (tag, _1, _2, _3) => ({ tag, _1, _2, _3 });
|
28142
28361
|
var $Program = (_1) => ({ tag: "Program", _1 });
|
28143
28362
|
var loadProgCxt2 = /* @__PURE__ */ loadProgCxt(monadAffAff)(monadErrorAff)(loadFile);
|
28144
28363
|
var prepConfig2 = /* @__PURE__ */ prepConfig(monadAffAff)(monadErrorAff)(loadFile);
|
28145
28364
|
var graphEval2 = /* @__PURE__ */ graphEval(monadErrorAff);
|
28146
28365
|
var fromFoldable29 = /* @__PURE__ */ (() => fromFoldableImpl(foldableList.foldr))();
|
28366
|
+
var Evaluate = (value0) => $Command("Evaluate", value0);
|
28367
|
+
var Publish = (value0) => (value1) => (value2) => $Command("Publish", value0, value1, value2);
|
28147
28368
|
var parseImports = /* @__PURE__ */ $Parser(
|
28148
28369
|
"BindP",
|
28149
28370
|
/* @__PURE__ */ manyM(/* @__PURE__ */ option(readerAsk)(/* @__PURE__ */ (() => {
|
@@ -28169,6 +28390,40 @@ var output = (v) => {
|
|
28169
28390
|
})(v2["out\u03B1"]._2)
|
28170
28391
|
)))));
|
28171
28392
|
};
|
28393
|
+
var execOptions = {
|
28394
|
+
cwd: Nothing,
|
28395
|
+
env: Nothing,
|
28396
|
+
timeout: Nothing,
|
28397
|
+
killSignal: Nothing,
|
28398
|
+
maxBuffer: Nothing,
|
28399
|
+
uid: Nothing,
|
28400
|
+
gid: Nothing,
|
28401
|
+
encoding: Nothing,
|
28402
|
+
shell: Nothing
|
28403
|
+
};
|
28404
|
+
var tester = (website) => exec2("yarn bundle-website " + website)(execOptions)((v) => {
|
28405
|
+
if (v.error.tag === "Just") {
|
28406
|
+
return log(showErrorImpl(v.error._1));
|
28407
|
+
}
|
28408
|
+
if (v.error.tag === "Nothing") {
|
28409
|
+
const $0 = toString2(monadEffect)(ASCII)(v.stdout);
|
28410
|
+
return () => {
|
28411
|
+
const out = $0();
|
28412
|
+
return log(out)();
|
28413
|
+
};
|
28414
|
+
}
|
28415
|
+
fail();
|
28416
|
+
});
|
28417
|
+
var dispatchCommand = (v) => {
|
28418
|
+
if (v.tag === "Evaluate") {
|
28419
|
+
return output(v._1);
|
28420
|
+
}
|
28421
|
+
if (v.tag === "Publish") {
|
28422
|
+
const $0 = v._1;
|
28423
|
+
return _bind(_liftEffect(tester(v._2)))(() => _bind(_liftEffect(log("Published")))(() => output($0)));
|
28424
|
+
}
|
28425
|
+
fail();
|
28426
|
+
};
|
28172
28427
|
var callback = (v) => {
|
28173
28428
|
if (v.tag === "Left") {
|
28174
28429
|
return log(showErrorImpl(v._1));
|
@@ -28261,6 +28516,70 @@ var program = /* @__PURE__ */ (() => $Parser(
|
|
28261
28516
|
})())
|
28262
28517
|
)
|
28263
28518
|
))();
|
28519
|
+
var publish = /* @__PURE__ */ (() => $Parser(
|
28520
|
+
"MultP",
|
28521
|
+
$MultPE(
|
28522
|
+
$Parser(
|
28523
|
+
"MultP",
|
28524
|
+
$MultPE(
|
28525
|
+
parserFunctor.map(Publish)(program),
|
28526
|
+
parserFunctor.map(Folder)(option(readerAsk)((() => {
|
28527
|
+
const $0 = help("root directory under dist/");
|
28528
|
+
const $1 = $0._2._1.tag === "Nothing" ? Nothing : $0._2._1;
|
28529
|
+
const $2 = $0._2._2.tag === "Nothing" ? Nothing : $0._2._2;
|
28530
|
+
return $Mod(
|
28531
|
+
(x) => $0._1({
|
28532
|
+
optNames: [$OptName("OptShort", "r"), $OptName("OptLong", "root"), ...x.optNames],
|
28533
|
+
optCompleter: x.optCompleter,
|
28534
|
+
optNoArgError: x.optNoArgError
|
28535
|
+
}),
|
28536
|
+
$DefaultProp($1.tag === "Nothing" ? Nothing : $1, $2.tag === "Nothing" ? Nothing : $2),
|
28537
|
+
(x) => $0._3(x)
|
28538
|
+
);
|
28539
|
+
})()))
|
28540
|
+
)
|
28541
|
+
),
|
28542
|
+
parserFunctor.map(File)(option(readerAsk)((() => {
|
28543
|
+
const $0 = help("Template for web-page");
|
28544
|
+
const $1 = $0._2._1.tag === "Nothing" ? Nothing : $0._2._1;
|
28545
|
+
const $2 = $0._2._2.tag === "Nothing" ? Nothing : $0._2._2;
|
28546
|
+
return $Mod(
|
28547
|
+
(x) => $0._1({
|
28548
|
+
optNames: [$OptName("OptShort", "t"), $OptName("OptLong", "template"), ...x.optNames],
|
28549
|
+
optCompleter: x.optCompleter,
|
28550
|
+
optNoArgError: x.optNoArgError
|
28551
|
+
}),
|
28552
|
+
$DefaultProp($1.tag === "Nothing" ? Nothing : $1, $2.tag === "Nothing" ? Nothing : $2),
|
28553
|
+
(x) => $0._3(x)
|
28554
|
+
);
|
28555
|
+
})()))
|
28556
|
+
)
|
28557
|
+
))();
|
28558
|
+
var commandParser = /* @__PURE__ */ subparser(/* @__PURE__ */ (() => {
|
28559
|
+
const $0 = command("evaluate")(progDesc("Evaluate a file")({
|
28560
|
+
infoParser: parserFunctor.map(Evaluate)(program),
|
28561
|
+
infoFullDesc: true,
|
28562
|
+
infoProgDesc: mempty12,
|
28563
|
+
infoHeader: mempty12,
|
28564
|
+
infoFooter: mempty12,
|
28565
|
+
infoFailureCode: $$Error,
|
28566
|
+
infoPolicy: Intersperse
|
28567
|
+
}));
|
28568
|
+
const $1 = command("publish")(progDesc("Publish a file")({
|
28569
|
+
infoParser: publish,
|
28570
|
+
infoFullDesc: true,
|
28571
|
+
infoProgDesc: mempty12,
|
28572
|
+
infoHeader: mempty12,
|
28573
|
+
infoFooter: mempty12,
|
28574
|
+
infoFailureCode: $$Error,
|
28575
|
+
infoPolicy: Intersperse
|
28576
|
+
}));
|
28577
|
+
return $Mod(
|
28578
|
+
(x) => $1._1($0._1(x)),
|
28579
|
+
$DefaultProp($1._2._1.tag === "Nothing" ? $0._2._1 : $1._2._1, $1._2._2.tag === "Nothing" ? $0._2._2 : $1._2._2),
|
28580
|
+
(x) => $1._3($0._3(x))
|
28581
|
+
);
|
28582
|
+
})());
|
28264
28583
|
var main = /* @__PURE__ */ (() => {
|
28265
28584
|
const $0 = runAff(callback)(_bind(_liftEffect((() => {
|
28266
28585
|
const $02 = header("parse - a simple parser")(progDesc("Parse a file")({
|
@@ -28268,7 +28587,7 @@ var main = /* @__PURE__ */ (() => {
|
|
28268
28587
|
infoFailureCode: $$Error,
|
28269
28588
|
infoFooter: mempty12,
|
28270
28589
|
infoHeader: mempty12,
|
28271
|
-
infoParser: apApplyFlipped(parserApply)(
|
28590
|
+
infoParser: apApplyFlipped(parserApply)(commandParser)(helper),
|
28272
28591
|
infoPolicy: Intersperse,
|
28273
28592
|
infoProgDesc: mempty12
|
28274
28593
|
}));
|
@@ -28276,7 +28595,7 @@ var main = /* @__PURE__ */ (() => {
|
|
28276
28595
|
const a$p = getArgs();
|
28277
28596
|
return handleParseResult(execParserPure(defaultPrefs)($02)(a$p))();
|
28278
28597
|
};
|
28279
|
-
})()))(
|
28598
|
+
})()))(dispatchCommand));
|
28280
28599
|
return () => {
|
28281
28600
|
$0();
|
28282
28601
|
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@explorable-viz/fluid",
|
3
|
-
"version": "0.7.
|
3
|
+
"version": "0.7.18",
|
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",
|
@@ -53,7 +56,6 @@
|
|
53
56
|
"node": "^22.11.0",
|
54
57
|
"node-process": "^1.0.1",
|
55
58
|
"os": "^0.1.2",
|
56
|
-
"purescript": "^0.15.10",
|
57
59
|
"util": "^0.12.5"
|
58
60
|
},
|
59
61
|
"devDependencies": {
|
@@ -65,6 +67,7 @@
|
|
65
67
|
"karma-mocha-reporter": "2.2.5",
|
66
68
|
"mocha": "^10.0.0",
|
67
69
|
"puppeteer": "^23.2.0",
|
70
|
+
"purescript": "^0.15.10",
|
68
71
|
"purescript-language-server": "0.16.6",
|
69
72
|
"purescript-psa": "0.8.2",
|
70
73
|
"purs-backend-es": "1.4.2",
|
@@ -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"
|