@explorable-viz/fluid 0.7.16 → 0.7.18
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.
- 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"
|