repl-sdk 1.0.0 → 1.0.1
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/dist/apl-fqmucPXA.js +141 -0
- package/dist/apl-fqmucPXA.js.map +1 -0
- package/dist/asciiarmor-DucZyvP0.js +57 -0
- package/dist/asciiarmor-DucZyvP0.js.map +1 -0
- package/dist/asn1-BnOEsgAm.js +145 -0
- package/dist/asn1-BnOEsgAm.js.map +1 -0
- package/dist/assets/{tar-worker-kdkltuRC.js → tar-worker-CxTcoQcr.js} +1 -6
- package/dist/assets/{tar-worker-kdkltuRC.js.map → tar-worker-CxTcoQcr.js.map} +1 -1
- package/dist/asterisk-QAlztEwS.js +346 -0
- package/dist/asterisk-QAlztEwS.js.map +1 -0
- package/dist/brainfuck-DZVCuF_t.js +54 -0
- package/dist/brainfuck-DZVCuF_t.js.map +1 -0
- package/dist/clike-CTYGlS6x.js +800 -0
- package/dist/clike-CTYGlS6x.js.map +1 -0
- package/dist/clojure-BhXMqnxz.js +850 -0
- package/dist/clojure-BhXMqnxz.js.map +1 -0
- package/dist/cmake-BGaNd9E7.js +72 -0
- package/dist/cmake-BGaNd9E7.js.map +1 -0
- package/dist/cobol-4yqQntpt.js +121 -0
- package/dist/cobol-4yqQntpt.js.map +1 -0
- package/dist/codemirror-De3S70Np.js +2912 -0
- package/dist/codemirror-De3S70Np.js.map +1 -0
- package/dist/coffeescript-D2dXvhEc.js +309 -0
- package/dist/coffeescript-D2dXvhEc.js.map +1 -0
- package/dist/commonlisp-CF_VNHQR.js +131 -0
- package/dist/commonlisp-CF_VNHQR.js.map +1 -0
- package/dist/crystal-DyuLTqLs.js +399 -0
- package/dist/crystal-DyuLTqLs.js.map +1 -0
- package/dist/css-DkSyTW67.js +1773 -0
- package/dist/css-DkSyTW67.js.map +1 -0
- package/dist/cypher-Dlu_3r4V.js +122 -0
- package/dist/cypher-Dlu_3r4V.js.map +1 -0
- package/dist/d-UURgV0Ux.js +180 -0
- package/dist/d-UURgV0Ux.js.map +1 -0
- package/dist/diff-B_Bi2Crb.js +26 -0
- package/dist/diff-B_Bi2Crb.js.map +1 -0
- package/dist/dockerfile-Bvk733Ga.js +202 -0
- package/dist/dockerfile-Bvk733Ga.js.map +1 -0
- package/dist/dtd-Dy74G54E.js +115 -0
- package/dist/dtd-Dy74G54E.js.map +1 -0
- package/dist/dylan-TSb-Nfix.js +315 -0
- package/dist/dylan-TSb-Nfix.js.map +1 -0
- package/dist/ebnf-4fKAGW3a.js +141 -0
- package/dist/ebnf-4fKAGW3a.js.map +1 -0
- package/dist/ecl-B59qGGVg.js +179 -0
- package/dist/ecl-B59qGGVg.js.map +1 -0
- package/dist/eiffel-Dze7nlu3.js +135 -0
- package/dist/eiffel-Dze7nlu3.js.map +1 -0
- package/dist/elm-DG7jkhNZ.js +177 -0
- package/dist/elm-DG7jkhNZ.js.map +1 -0
- package/dist/erlang-BO6gOnGA.js +675 -0
- package/dist/erlang-BO6gOnGA.js.map +1 -0
- package/dist/factor-CMxFHDqz.js +66 -0
- package/dist/factor-CMxFHDqz.js.map +1 -0
- package/dist/fcl-CDDUNjTj.js +142 -0
- package/dist/fcl-CDDUNjTj.js.map +1 -0
- package/dist/forth-B9D2JCeE.js +117 -0
- package/dist/forth-B9D2JCeE.js.map +1 -0
- package/dist/fortran-CAG2BFbe.js +468 -0
- package/dist/fortran-CAG2BFbe.js.map +1 -0
- package/dist/gas-0Aw8zDr5.js +294 -0
- package/dist/gas-0Aw8zDr5.js.map +1 -0
- package/dist/gherkin-DhZlEZiy.js +116 -0
- package/dist/gherkin-DhZlEZiy.js.map +1 -0
- package/dist/{gjs-CzFzkEFv.js → gjs-DfguZDLq.js} +4 -4
- package/dist/gjs-DfguZDLq.js.map +1 -0
- package/dist/{gmd-D9OXs2v3.js → gmd-Yas-Oo8k.js} +3 -6
- package/dist/gmd-Yas-Oo8k.js.map +1 -0
- package/dist/groovy-CpwJiBl7.js +224 -0
- package/dist/groovy-CpwJiBl7.js.map +1 -0
- package/dist/haskell-ySd-OUo8.js +460 -0
- package/dist/haskell-ySd-OUo8.js.map +1 -0
- package/dist/haxe-7MlzfeYV.js +515 -0
- package/dist/haxe-7MlzfeYV.js.map +1 -0
- package/dist/{hbs-CuhWjffM.js → hbs-CxcmWxSJ.js} +2 -2
- package/dist/{hbs-CuhWjffM.js.map → hbs-CxcmWxSJ.js.map} +1 -1
- package/dist/http-BqypyemW.js +80 -0
- package/dist/http-BqypyemW.js.map +1 -0
- package/dist/idl-4HIGJlDI.js +986 -0
- package/dist/idl-4HIGJlDI.js.map +1 -0
- package/dist/index-B3Meoznj.js +118 -0
- package/dist/index-B3Meoznj.js.map +1 -0
- package/dist/index-BQyfDUUx.js +692 -0
- package/dist/index-BQyfDUUx.js.map +1 -0
- package/dist/index-BRDroAD8.js +305 -0
- package/dist/index-BRDroAD8.js.map +1 -0
- package/dist/index-BRMAzRyM.js +179 -0
- package/dist/index-BRMAzRyM.js.map +1 -0
- package/dist/index-Bb8uYQgv.js +927 -0
- package/dist/index-Bb8uYQgv.js.map +1 -0
- package/dist/index-BlOjO66K.js +17618 -0
- package/dist/index-BlOjO66K.js.map +1 -0
- package/dist/index-BoGWnSNL.js +706 -0
- package/dist/index-BoGWnSNL.js.map +1 -0
- package/dist/index-BsRrEiOu.js +98 -0
- package/dist/index-BsRrEiOu.js.map +1 -0
- package/dist/index-C2sFZMth.js +391 -0
- package/dist/index-C2sFZMth.js.map +1 -0
- package/dist/index-C7xwOjmS.js +291 -0
- package/dist/index-C7xwOjmS.js.map +1 -0
- package/dist/index-CA3lFUx6.js +315 -0
- package/dist/index-CA3lFUx6.js.map +1 -0
- package/dist/index-CB-pPTIf.js +98 -0
- package/dist/index-CB-pPTIf.js.map +1 -0
- package/dist/index-CCa6x1FE.js +386 -0
- package/dist/index-CCa6x1FE.js.map +1 -0
- package/dist/index-CD4DINI1.js +158 -0
- package/dist/index-CD4DINI1.js.map +1 -0
- package/dist/index-CE0B_fcG.js +328 -0
- package/dist/index-CE0B_fcG.js.map +1 -0
- package/dist/{index-CUWCqMoD.js → index-CVGAEPMV.js} +33 -27
- package/dist/index-CVGAEPMV.js.map +1 -0
- package/dist/index-CmaT2afn.js +332 -0
- package/dist/index-CmaT2afn.js.map +1 -0
- package/dist/index-D8sUxXp5.js +83 -0
- package/dist/index-D8sUxXp5.js.map +1 -0
- package/dist/index-DIz8Vpn-.js +737 -0
- package/dist/index-DIz8Vpn-.js.map +1 -0
- package/dist/index-DNP1xT-S.js +408 -0
- package/dist/index-DNP1xT-S.js.map +1 -0
- package/dist/index-DOAqdvnQ.js +862 -0
- package/dist/index-DOAqdvnQ.js.map +1 -0
- package/dist/index-DVUMFbgi.js +152 -0
- package/dist/index-DVUMFbgi.js.map +1 -0
- package/dist/index-VeTBKRVd.js +83 -0
- package/dist/index-VeTBKRVd.js.map +1 -0
- package/dist/index-dXZeR7Bx.js +1767 -0
- package/dist/index-dXZeR7Bx.js.map +1 -0
- package/dist/index-gtqbIb6T.js +62 -0
- package/dist/index-gtqbIb6T.js.map +1 -0
- package/dist/index-pN_pUAQ7.js +2426 -0
- package/dist/index-pN_pUAQ7.js.map +1 -0
- package/dist/index-wasu5VX0.js +1150 -0
- package/dist/index-wasu5VX0.js.map +1 -0
- package/dist/javascript-Bt8B7yTi.js +993 -0
- package/dist/javascript-Bt8B7yTi.js.map +1 -0
- package/dist/julia-Bs6JJhYG.js +408 -0
- package/dist/julia-Bs6JJhYG.js.map +1 -0
- package/dist/livescript-DmzgM3Yt.js +297 -0
- package/dist/livescript-DmzgM3Yt.js.map +1 -0
- package/dist/lua-8cJgIlqe.js +257 -0
- package/dist/lua-8cJgIlqe.js.map +1 -0
- package/dist/mathematica-DNLOL9PQ.js +111 -0
- package/dist/mathematica-DNLOL9PQ.js.map +1 -0
- package/dist/mbox-Ga7d4MMN.js +118 -0
- package/dist/mbox-Ga7d4MMN.js.map +1 -0
- package/dist/mirc-Dma3B8rS.js +108 -0
- package/dist/mirc-Dma3B8rS.js.map +1 -0
- package/dist/mllike-DHn7xckP.js +335 -0
- package/dist/mllike-DHn7xckP.js.map +1 -0
- package/dist/modelica-0d55jYY0.js +148 -0
- package/dist/modelica-0d55jYY0.js.map +1 -0
- package/dist/mscgen-DdqZYINH.js +136 -0
- package/dist/mscgen-DdqZYINH.js.map +1 -0
- package/dist/mumps-Btr8VblO.js +94 -0
- package/dist/mumps-Btr8VblO.js.map +1 -0
- package/dist/nginx-DTDtBDVN.js +142 -0
- package/dist/nginx-DTDtBDVN.js.map +1 -0
- package/dist/nsis-3zG7tgur.js +63 -0
- package/dist/nsis-3zG7tgur.js.map +1 -0
- package/dist/ntriples-CvgOYMpL.js +154 -0
- package/dist/ntriples-CvgOYMpL.js.map +1 -0
- package/dist/octave-DYBj3-tl.js +201 -0
- package/dist/octave-DYBj3-tl.js.map +1 -0
- package/dist/oz-R_e8WMIi.js +232 -0
- package/dist/oz-R_e8WMIi.js.map +1 -0
- package/dist/parse-CAqQaKsh.js +21685 -0
- package/dist/parse-CAqQaKsh.js.map +1 -0
- package/dist/pascal-GD8iposT.js +106 -0
- package/dist/pascal-GD8iposT.js.map +1 -0
- package/dist/perl-DL9mHpoi.js +1106 -0
- package/dist/perl-DL9mHpoi.js.map +1 -0
- package/dist/pig-C_4T4YIV.js +102 -0
- package/dist/pig-C_4T4YIV.js.map +1 -0
- package/dist/powershell-B0suO7Vd.js +329 -0
- package/dist/powershell-B0suO7Vd.js.map +1 -0
- package/dist/properties-BR-vP1aU.js +59 -0
- package/dist/properties-BR-vP1aU.js.map +1 -0
- package/dist/protobuf-BxgpyhoW.js +78 -0
- package/dist/protobuf-BxgpyhoW.js.map +1 -0
- package/dist/pug-vHnWR0UE.js +406 -0
- package/dist/pug-vHnWR0UE.js.map +1 -0
- package/dist/puppet-Bdao66PW.js +138 -0
- package/dist/puppet-Bdao66PW.js.map +1 -0
- package/dist/python-BFGRmuZ9.js +427 -0
- package/dist/python-BFGRmuZ9.js.map +1 -0
- package/dist/q-CrbCVq4a.js +132 -0
- package/dist/q-CrbCVq4a.js.map +1 -0
- package/dist/r-V7nswm59.js +171 -0
- package/dist/r-V7nswm59.js.map +1 -0
- package/dist/repl-sdk.js +7 -0
- package/dist/repl-sdk.js.map +1 -0
- package/dist/rpm-C-DLY-If.js +110 -0
- package/dist/rpm-C-DLY-If.js.map +1 -0
- package/dist/ruby-JDKLJNK0.js +331 -0
- package/dist/ruby-JDKLJNK0.js.map +1 -0
- package/dist/sas-D2UG-yhZ.js +208 -0
- package/dist/sas-D2UG-yhZ.js.map +1 -0
- package/dist/scheme-BKzrkGJD.js +223 -0
- package/dist/scheme-BKzrkGJD.js.map +1 -0
- package/dist/shell-BlsXDxCn.js +223 -0
- package/dist/shell-BlsXDxCn.js.map +1 -0
- package/dist/sieve-CjwBwOY5.js +136 -0
- package/dist/sieve-CjwBwOY5.js.map +1 -0
- package/dist/simple-mode-DMneyfDu.js +131 -0
- package/dist/simple-mode-DMneyfDu.js.map +1 -0
- package/dist/smalltalk-BOIGQuhN.js +122 -0
- package/dist/smalltalk-BOIGQuhN.js.map +1 -0
- package/dist/solr-CwD7U71z.js +70 -0
- package/dist/solr-CwD7U71z.js.map +1 -0
- package/dist/sparql-DYskk2vE.js +250 -0
- package/dist/sparql-DYskk2vE.js.map +1 -0
- package/dist/spreadsheet-Bgtt3oLP.js +88 -0
- package/dist/spreadsheet-Bgtt3oLP.js.map +1 -0
- package/dist/sql-Cei9CMfk.js +343 -0
- package/dist/sql-Cei9CMfk.js.map +1 -0
- package/dist/stex-C1nZSzAw.js +231 -0
- package/dist/stex-C1nZSzAw.js.map +1 -0
- package/dist/stylus-BkS-boTH.js +566 -0
- package/dist/stylus-BkS-boTH.js.map +1 -0
- package/dist/swift-FRZi1uvB.js +292 -0
- package/dist/swift-FRZi1uvB.js.map +1 -0
- package/dist/tcl-CUcaCdmq.js +115 -0
- package/dist/tcl-CUcaCdmq.js.map +1 -0
- package/dist/textile-BnFpjsrl.js +415 -0
- package/dist/textile-BnFpjsrl.js.map +1 -0
- package/dist/tiddlywiki-CjprD-Qp.js +219 -0
- package/dist/tiddlywiki-CjprD-Qp.js.map +1 -0
- package/dist/tiki-DK9DOeWn.js +269 -0
- package/dist/tiki-DK9DOeWn.js.map +1 -0
- package/dist/toml-BOuWGMcf.js +77 -0
- package/dist/toml-BOuWGMcf.js.map +1 -0
- package/dist/troff-E1bJ0PPL.js +62 -0
- package/dist/troff-E1bJ0PPL.js.map +1 -0
- package/dist/ttcn-cfg-Dc39-fIP.js +134 -0
- package/dist/ttcn-cfg-Dc39-fIP.js.map +1 -0
- package/dist/ttcn-tKd4HLu4.js +193 -0
- package/dist/ttcn-tKd4HLu4.js.map +1 -0
- package/dist/turtle-Dq7-1WAf.js +125 -0
- package/dist/turtle-Dq7-1WAf.js.map +1 -0
- package/dist/vb-Dp90gtsv.js +197 -0
- package/dist/vb-Dp90gtsv.js.map +1 -0
- package/dist/vbscript-Bfn8O8I7.js +479 -0
- package/dist/vbscript-Bfn8O8I7.js.map +1 -0
- package/dist/velocity-BwIZK1TH.js +150 -0
- package/dist/velocity-BwIZK1TH.js.map +1 -0
- package/dist/verilog-CnT9bMk0.js +430 -0
- package/dist/verilog-CnT9bMk0.js.map +1 -0
- package/dist/vhdl-DCkMIyT9.js +159 -0
- package/dist/vhdl-DCkMIyT9.js.map +1 -0
- package/dist/webidl-BTLTThCm.js +205 -0
- package/dist/webidl-BTLTThCm.js.map +1 -0
- package/dist/xquery-BrBUuxMR.js +526 -0
- package/dist/xquery-BrBUuxMR.js.map +1 -0
- package/dist/yacas-b5lAVEIl.js +131 -0
- package/dist/yacas-b5lAVEIl.js.map +1 -0
- package/dist/z80-ClgwfNdB.js +93 -0
- package/dist/z80-ClgwfNdB.js.map +1 -0
- package/package.json +10 -11
- package/src/compilers/ember/gjs.js +2 -2
- package/src/compilers/ember/gmd.js +1 -1
- package/src/compilers/markdown.js +1 -1
- package/src/compilers/react.js +15 -3
- package/dist/codemirror-D4aIVflZ.js +0 -110
- package/dist/codemirror-D4aIVflZ.js.map +0 -1
- package/dist/gjs-CzFzkEFv.js.map +0 -1
- package/dist/gmd-D9OXs2v3.js.map +0 -1
- package/dist/index-CUWCqMoD.js.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/parse-aBKk9rfS.js +0 -328
- package/dist/parse-aBKk9rfS.js.map +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
function words(str) {
|
|
2
|
+
var obj = {}, words2 = str.split(" ");
|
|
3
|
+
for (var i = 0; i < words2.length; ++i) obj[words2[i]] = true;
|
|
4
|
+
return obj;
|
|
5
|
+
}
|
|
6
|
+
var bodiedOps = words("Assert BackQuote D Defun Deriv For ForEach FromFile FromString Function Integrate InverseTaylor Limit LocalSymbols Macro MacroRule MacroRulePattern NIntegrate Rule RulePattern Subst TD TExplicitSum TSum Taylor Taylor1 Taylor2 Taylor3 ToFile ToStdout ToString TraceRule Until While");
|
|
7
|
+
var pFloatForm = "(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)";
|
|
8
|
+
var pIdentifier = "(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)";
|
|
9
|
+
var reFloatForm = new RegExp(pFloatForm);
|
|
10
|
+
var reIdentifier = new RegExp(pIdentifier);
|
|
11
|
+
var rePattern = new RegExp(pIdentifier + "?_" + pIdentifier);
|
|
12
|
+
var reFunctionLike = new RegExp(pIdentifier + "\\s*\\(");
|
|
13
|
+
function tokenBase(stream, state) {
|
|
14
|
+
var ch;
|
|
15
|
+
ch = stream.next();
|
|
16
|
+
if (ch === '"') {
|
|
17
|
+
state.tokenize = tokenString;
|
|
18
|
+
return state.tokenize(stream, state);
|
|
19
|
+
}
|
|
20
|
+
if (ch === "/") {
|
|
21
|
+
if (stream.eat("*")) {
|
|
22
|
+
state.tokenize = tokenComment;
|
|
23
|
+
return state.tokenize(stream, state);
|
|
24
|
+
}
|
|
25
|
+
if (stream.eat("/")) {
|
|
26
|
+
stream.skipToEnd();
|
|
27
|
+
return "comment";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
stream.backUp(1);
|
|
31
|
+
var m = stream.match(/^(\w+)\s*\(/, false);
|
|
32
|
+
if (m !== null && bodiedOps.hasOwnProperty(m[1]))
|
|
33
|
+
state.scopes.push("bodied");
|
|
34
|
+
var scope = currentScope(state);
|
|
35
|
+
if (scope === "bodied" && ch === "[")
|
|
36
|
+
state.scopes.pop();
|
|
37
|
+
if (ch === "[" || ch === "{" || ch === "(")
|
|
38
|
+
state.scopes.push(ch);
|
|
39
|
+
scope = currentScope(state);
|
|
40
|
+
if (scope === "[" && ch === "]" || scope === "{" && ch === "}" || scope === "(" && ch === ")")
|
|
41
|
+
state.scopes.pop();
|
|
42
|
+
if (ch === ";") {
|
|
43
|
+
while (scope === "bodied") {
|
|
44
|
+
state.scopes.pop();
|
|
45
|
+
scope = currentScope(state);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (stream.match(/\d+ *#/, true, false)) {
|
|
49
|
+
return "qualifier";
|
|
50
|
+
}
|
|
51
|
+
if (stream.match(reFloatForm, true, false)) {
|
|
52
|
+
return "number";
|
|
53
|
+
}
|
|
54
|
+
if (stream.match(rePattern, true, false)) {
|
|
55
|
+
return "variableName.special";
|
|
56
|
+
}
|
|
57
|
+
if (stream.match(/(?:\[|\]|{|}|\(|\))/, true, false)) {
|
|
58
|
+
return "bracket";
|
|
59
|
+
}
|
|
60
|
+
if (stream.match(reFunctionLike, true, false)) {
|
|
61
|
+
stream.backUp(1);
|
|
62
|
+
return "variableName.function";
|
|
63
|
+
}
|
|
64
|
+
if (stream.match(reIdentifier, true, false)) {
|
|
65
|
+
return "variable";
|
|
66
|
+
}
|
|
67
|
+
if (stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%|#)/, true, false)) {
|
|
68
|
+
return "operator";
|
|
69
|
+
}
|
|
70
|
+
return "error";
|
|
71
|
+
}
|
|
72
|
+
function tokenString(stream, state) {
|
|
73
|
+
var next, end = false, escaped = false;
|
|
74
|
+
while ((next = stream.next()) != null) {
|
|
75
|
+
if (next === '"' && !escaped) {
|
|
76
|
+
end = true;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
escaped = !escaped && next === "\\";
|
|
80
|
+
}
|
|
81
|
+
if (end && !escaped) {
|
|
82
|
+
state.tokenize = tokenBase;
|
|
83
|
+
}
|
|
84
|
+
return "string";
|
|
85
|
+
}
|
|
86
|
+
function tokenComment(stream, state) {
|
|
87
|
+
var prev, next;
|
|
88
|
+
while ((next = stream.next()) != null) {
|
|
89
|
+
if (prev === "*" && next === "/") {
|
|
90
|
+
state.tokenize = tokenBase;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
prev = next;
|
|
94
|
+
}
|
|
95
|
+
return "comment";
|
|
96
|
+
}
|
|
97
|
+
function currentScope(state) {
|
|
98
|
+
var scope = null;
|
|
99
|
+
if (state.scopes.length > 0)
|
|
100
|
+
scope = state.scopes[state.scopes.length - 1];
|
|
101
|
+
return scope;
|
|
102
|
+
}
|
|
103
|
+
const yacas = {
|
|
104
|
+
name: "yacas",
|
|
105
|
+
startState: function() {
|
|
106
|
+
return {
|
|
107
|
+
tokenize: tokenBase,
|
|
108
|
+
scopes: []
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
token: function(stream, state) {
|
|
112
|
+
if (stream.eatSpace()) return null;
|
|
113
|
+
return state.tokenize(stream, state);
|
|
114
|
+
},
|
|
115
|
+
indent: function(state, textAfter, cx) {
|
|
116
|
+
if (state.tokenize !== tokenBase && state.tokenize !== null)
|
|
117
|
+
return null;
|
|
118
|
+
var delta = 0;
|
|
119
|
+
if (textAfter === "]" || textAfter === "];" || textAfter === "}" || textAfter === "};" || textAfter === ");")
|
|
120
|
+
delta = -1;
|
|
121
|
+
return (state.scopes.length + delta) * cx.unit;
|
|
122
|
+
},
|
|
123
|
+
languageData: {
|
|
124
|
+
electricInput: /[{}\[\]()\;]/,
|
|
125
|
+
commentTokens: { line: "//", block: { open: "/*", close: "*/" } }
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
export {
|
|
129
|
+
yacas
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=yacas-b5lAVEIl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yacas-b5lAVEIl.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/yacas.js"],"sourcesContent":["function words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\n\nvar bodiedOps = words(\"Assert BackQuote D Defun Deriv For ForEach FromFile \" +\n \"FromString Function Integrate InverseTaylor Limit \" +\n \"LocalSymbols Macro MacroRule MacroRulePattern \" +\n \"NIntegrate Rule RulePattern Subst TD TExplicitSum \" +\n \"TSum Taylor Taylor1 Taylor2 Taylor3 ToFile \" +\n \"ToStdout ToString TraceRule Until While\");\n\n// patterns\nvar pFloatForm = \"(?:(?:\\\\.\\\\d+|\\\\d+\\\\.\\\\d*|\\\\d+)(?:[eE][+-]?\\\\d+)?)\";\nvar pIdentifier = \"(?:[a-zA-Z\\\\$'][a-zA-Z0-9\\\\$']*)\";\n\n// regular expressions\nvar reFloatForm = new RegExp(pFloatForm);\nvar reIdentifier = new RegExp(pIdentifier);\nvar rePattern = new RegExp(pIdentifier + \"?_\" + pIdentifier);\nvar reFunctionLike = new RegExp(pIdentifier + \"\\\\s*\\\\(\");\n\nfunction tokenBase(stream, state) {\n var ch;\n\n // get next character\n ch = stream.next();\n\n // string\n if (ch === '\"') {\n state.tokenize = tokenString;\n return state.tokenize(stream, state);\n }\n\n // comment\n if (ch === '/') {\n if (stream.eat('*')) {\n state.tokenize = tokenComment;\n return state.tokenize(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n\n // go back one character\n stream.backUp(1);\n\n // update scope info\n var m = stream.match(/^(\\w+)\\s*\\(/, false);\n if (m !== null && bodiedOps.hasOwnProperty(m[1]))\n state.scopes.push('bodied');\n\n var scope = currentScope(state);\n\n if (scope === 'bodied' && ch === '[')\n state.scopes.pop();\n\n if (ch === '[' || ch === '{' || ch === '(')\n state.scopes.push(ch);\n\n scope = currentScope(state);\n\n if (scope === '[' && ch === ']' ||\n scope === '{' && ch === '}' ||\n scope === '(' && ch === ')')\n state.scopes.pop();\n\n if (ch === ';') {\n while (scope === 'bodied') {\n state.scopes.pop();\n scope = currentScope(state);\n }\n }\n\n // look for ordered rules\n if (stream.match(/\\d+ *#/, true, false)) {\n return 'qualifier';\n }\n\n // look for numbers\n if (stream.match(reFloatForm, true, false)) {\n return 'number';\n }\n\n // look for placeholders\n if (stream.match(rePattern, true, false)) {\n return 'variableName.special';\n }\n\n // match all braces separately\n if (stream.match(/(?:\\[|\\]|{|}|\\(|\\))/, true, false)) {\n return 'bracket';\n }\n\n // literals looking like function calls\n if (stream.match(reFunctionLike, true, false)) {\n stream.backUp(1);\n return 'variableName.function';\n }\n\n // all other identifiers\n if (stream.match(reIdentifier, true, false)) {\n return 'variable';\n }\n\n // operators; note that operators like @@ or /; are matched separately for each symbol.\n if (stream.match(/(?:\\\\|\\+|\\-|\\*|\\/|,|;|\\.|:|@|~|=|>|<|&|\\||_|`|'|\\^|\\?|!|%|#)/, true, false)) {\n return 'operator';\n }\n\n // everything else is an error\n return 'error';\n}\n\nfunction tokenString(stream, state) {\n var next, end = false, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === '\"' && !escaped) {\n end = true;\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n if (end && !escaped) {\n state.tokenize = tokenBase;\n }\n return 'string';\n};\n\nfunction tokenComment(stream, state) {\n var prev, next;\n while((next = stream.next()) != null) {\n if (prev === '*' && next === '/') {\n state.tokenize = tokenBase;\n break;\n }\n prev = next;\n }\n return 'comment';\n}\n\nfunction currentScope(state) {\n var scope = null;\n if (state.scopes.length > 0)\n scope = state.scopes[state.scopes.length - 1];\n return scope;\n}\n\nexport const yacas = {\n name: \"yacas\",\n startState: function() {\n return {\n tokenize: tokenBase,\n scopes: []\n };\n },\n token: function(stream, state) {\n if (stream.eatSpace()) return null;\n return state.tokenize(stream, state);\n },\n indent: function(state, textAfter, cx) {\n if (state.tokenize !== tokenBase && state.tokenize !== null)\n return null;\n\n var delta = 0;\n if (textAfter === ']' || textAfter === '];' ||\n textAfter === '}' || textAfter === '};' ||\n textAfter === ');')\n delta = -1;\n\n return (state.scopes.length + delta) * cx.unit;\n },\n\n languageData: {\n electricInput: /[{}\\[\\]()\\;]/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}}\n }\n};\n"],"names":["words"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
function mkZ80(ez80) {
|
|
2
|
+
var keywords1, keywords2;
|
|
3
|
+
if (ez80) {
|
|
4
|
+
keywords1 = /^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i;
|
|
5
|
+
keywords2 = /^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i;
|
|
6
|
+
} else {
|
|
7
|
+
keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i;
|
|
8
|
+
keywords2 = /^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i;
|
|
9
|
+
}
|
|
10
|
+
var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i;
|
|
11
|
+
var variables2 = /^(n?[zc]|p[oe]?|m)\b/i;
|
|
12
|
+
var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\b/i;
|
|
13
|
+
var numbers = /^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;
|
|
14
|
+
return {
|
|
15
|
+
name: "z80",
|
|
16
|
+
startState: function() {
|
|
17
|
+
return {
|
|
18
|
+
context: 0
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
token: function(stream, state) {
|
|
22
|
+
if (!stream.column())
|
|
23
|
+
state.context = 0;
|
|
24
|
+
if (stream.eatSpace())
|
|
25
|
+
return null;
|
|
26
|
+
var w;
|
|
27
|
+
if (stream.eatWhile(/\w/)) {
|
|
28
|
+
if (ez80 && stream.eat(".")) {
|
|
29
|
+
stream.eatWhile(/\w/);
|
|
30
|
+
}
|
|
31
|
+
w = stream.current();
|
|
32
|
+
if (stream.indentation()) {
|
|
33
|
+
if ((state.context == 1 || state.context == 4) && variables1.test(w)) {
|
|
34
|
+
state.context = 4;
|
|
35
|
+
return "variable";
|
|
36
|
+
}
|
|
37
|
+
if (state.context == 2 && variables2.test(w)) {
|
|
38
|
+
state.context = 4;
|
|
39
|
+
return "variableName.special";
|
|
40
|
+
}
|
|
41
|
+
if (keywords1.test(w)) {
|
|
42
|
+
state.context = 1;
|
|
43
|
+
return "keyword";
|
|
44
|
+
} else if (keywords2.test(w)) {
|
|
45
|
+
state.context = 2;
|
|
46
|
+
return "keyword";
|
|
47
|
+
} else if (state.context == 4 && numbers.test(w)) {
|
|
48
|
+
return "number";
|
|
49
|
+
}
|
|
50
|
+
if (errors.test(w))
|
|
51
|
+
return "error";
|
|
52
|
+
} else if (stream.match(numbers)) {
|
|
53
|
+
return "number";
|
|
54
|
+
} else {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
} else if (stream.eat(";")) {
|
|
58
|
+
stream.skipToEnd();
|
|
59
|
+
return "comment";
|
|
60
|
+
} else if (stream.eat('"')) {
|
|
61
|
+
while (w = stream.next()) {
|
|
62
|
+
if (w == '"')
|
|
63
|
+
break;
|
|
64
|
+
if (w == "\\")
|
|
65
|
+
stream.next();
|
|
66
|
+
}
|
|
67
|
+
return "string";
|
|
68
|
+
} else if (stream.eat("'")) {
|
|
69
|
+
if (stream.match(/\\?.'/))
|
|
70
|
+
return "number";
|
|
71
|
+
} else if (stream.eat(".") || stream.sol() && stream.eat("#")) {
|
|
72
|
+
state.context = 5;
|
|
73
|
+
if (stream.eatWhile(/\w/))
|
|
74
|
+
return "def";
|
|
75
|
+
} else if (stream.eat("$")) {
|
|
76
|
+
if (stream.eatWhile(/[\da-f]/i))
|
|
77
|
+
return "number";
|
|
78
|
+
} else if (stream.eat("%")) {
|
|
79
|
+
if (stream.eatWhile(/[01]/))
|
|
80
|
+
return "number";
|
|
81
|
+
} else {
|
|
82
|
+
stream.next();
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const z80 = mkZ80(false);
|
|
89
|
+
mkZ80(true);
|
|
90
|
+
export {
|
|
91
|
+
z80
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=z80-ClgwfNdB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"z80-ClgwfNdB.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/z80.js"],"sourcesContent":["function mkZ80(ez80) {\n var keywords1, keywords2;\n if (ez80) {\n keywords1 = /^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\\.([sl]?i)?[sl])?\\b/i;\n keywords2 = /^(((call|j[pr]|rst|ret[in]?)(\\.([sl]?i)?[sl])?)|(rs|st)mix)\\b/i;\n } else {\n keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\\b/i;\n keywords2 = /^(call|j[pr]|ret[in]?|b_?(call|jump))\\b/i;\n }\n\n var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\\b/i;\n var variables2 = /^(n?[zc]|p[oe]?|m)\\b/i;\n var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\\b/i;\n var numbers = /^([\\da-f]+h|[0-7]+o|[01]+b|\\d+d?)\\b/i;\n\n return {\n name: \"z80\",\n startState: function() {\n return {\n context: 0\n };\n },\n token: function(stream, state) {\n if (!stream.column())\n state.context = 0;\n\n if (stream.eatSpace())\n return null;\n\n var w;\n\n if (stream.eatWhile(/\\w/)) {\n if (ez80 && stream.eat('.')) {\n stream.eatWhile(/\\w/);\n }\n w = stream.current();\n\n if (stream.indentation()) {\n if ((state.context == 1 || state.context == 4) && variables1.test(w)) {\n state.context = 4;\n return 'variable';\n }\n\n if (state.context == 2 && variables2.test(w)) {\n state.context = 4;\n return 'variableName.special';\n }\n\n if (keywords1.test(w)) {\n state.context = 1;\n return 'keyword';\n } else if (keywords2.test(w)) {\n state.context = 2;\n return 'keyword';\n } else if (state.context == 4 && numbers.test(w)) {\n return 'number';\n }\n\n if (errors.test(w))\n return 'error';\n } else if (stream.match(numbers)) {\n return 'number';\n } else {\n return null;\n }\n } else if (stream.eat(';')) {\n stream.skipToEnd();\n return 'comment';\n } else if (stream.eat('\"')) {\n while (w = stream.next()) {\n if (w == '\"')\n break;\n\n if (w == '\\\\')\n stream.next();\n }\n return 'string';\n } else if (stream.eat('\\'')) {\n if (stream.match(/\\\\?.'/))\n return 'number';\n } else if (stream.eat('.') || stream.sol() && stream.eat('#')) {\n state.context = 5;\n\n if (stream.eatWhile(/\\w/))\n return 'def';\n } else if (stream.eat('$')) {\n if (stream.eatWhile(/[\\da-f]/i))\n return 'number';\n } else if (stream.eat('%')) {\n if (stream.eatWhile(/[01]/))\n return 'number';\n } else {\n stream.next();\n }\n return null;\n }\n };\n};\n\nexport const z80 = mkZ80(false)\nexport const ez80 = mkZ80(true)\n"],"names":[],"mappings":"AAAA,SAAS,MAAM,MAAM;AACnB,MAAI,WAAW;AACf,MAAI,MAAM;AACR,gBAAY;AACZ,gBAAY;AAAA,EACd,OAAO;AACL,gBAAY;AACZ,gBAAY;AAAA,EACd;AAEA,MAAI,aAAa;AACjB,MAAI,aAAa;AACjB,MAAI,SAAS;AACb,MAAI,UAAU;AAEd,SAAO;AAAA,IACL,MAAM;AAAA,IACN,YAAY,WAAW;AACrB,aAAO;AAAA,QACL,SAAS;AAAA,MACjB;AAAA,IACI;AAAA,IACA,OAAO,SAAS,QAAQ,OAAO;AAC7B,UAAI,CAAC,OAAO,OAAM;AAChB,cAAM,UAAU;AAElB,UAAI,OAAO,SAAQ;AACjB,eAAO;AAET,UAAI;AAEJ,UAAI,OAAO,SAAS,IAAI,GAAG;AACzB,YAAI,QAAQ,OAAO,IAAI,GAAG,GAAG;AAC3B,iBAAO,SAAS,IAAI;AAAA,QACtB;AACA,YAAI,OAAO,QAAO;AAElB,YAAI,OAAO,eAAe;AACxB,eAAK,MAAM,WAAW,KAAK,MAAM,WAAW,MAAM,WAAW,KAAK,CAAC,GAAG;AACpE,kBAAM,UAAU;AAChB,mBAAO;AAAA,UACT;AAEA,cAAI,MAAM,WAAW,KAAK,WAAW,KAAK,CAAC,GAAG;AAC5C,kBAAM,UAAU;AAChB,mBAAO;AAAA,UACT;AAEA,cAAI,UAAU,KAAK,CAAC,GAAG;AACrB,kBAAM,UAAU;AAChB,mBAAO;AAAA,UACT,WAAW,UAAU,KAAK,CAAC,GAAG;AAC5B,kBAAM,UAAU;AAChB,mBAAO;AAAA,UACT,WAAW,MAAM,WAAW,KAAK,QAAQ,KAAK,CAAC,GAAG;AAChD,mBAAO;AAAA,UACT;AAEA,cAAI,OAAO,KAAK,CAAC;AACf,mBAAO;AAAA,QACX,WAAW,OAAO,MAAM,OAAO,GAAG;AAChC,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF,WAAW,OAAO,IAAI,GAAG,GAAG;AAC1B,eAAO,UAAS;AAChB,eAAO;AAAA,MACT,WAAW,OAAO,IAAI,GAAG,GAAG;AAC1B,eAAO,IAAI,OAAO,QAAQ;AACxB,cAAI,KAAK;AACP;AAEF,cAAI,KAAK;AACP,mBAAO,KAAI;AAAA,QACf;AACA,eAAO;AAAA,MACT,WAAW,OAAO,IAAI,GAAI,GAAG;AAC3B,YAAI,OAAO,MAAM,OAAO;AACtB,iBAAO;AAAA,MACX,WAAW,OAAO,IAAI,GAAG,KAAK,OAAO,SAAS,OAAO,IAAI,GAAG,GAAG;AAC7D,cAAM,UAAU;AAEhB,YAAI,OAAO,SAAS,IAAI;AACtB,iBAAO;AAAA,MACX,WAAW,OAAO,IAAI,GAAG,GAAG;AAC1B,YAAI,OAAO,SAAS,UAAU;AAC5B,iBAAO;AAAA,MACX,WAAW,OAAO,IAAI,GAAG,GAAG;AAC1B,YAAI,OAAO,SAAS,MAAM;AACxB,iBAAO;AAAA,MACX,OAAO;AACL,eAAO,KAAI;AAAA,MACb;AACA,aAAO;AAAA,IACT;AAAA,EACJ;AACA;AAEY,MAAC,MAAM,MAAM,KAAK;AACV,MAAM,IAAI;","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "repl-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -36,28 +36,27 @@
|
|
|
36
36
|
],
|
|
37
37
|
"license": "MIT",
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@
|
|
40
|
-
"@nullvoxpopuli/eslint-configs": "^5.3.4",
|
|
39
|
+
"@nullvoxpopuli/eslint-configs": "^5.4.0",
|
|
41
40
|
"@shikijs/rehype": "^3.7.0",
|
|
42
41
|
"@tsconfig/ember": "^3.0.7",
|
|
43
42
|
"@types/common-tags": "^1.8.4",
|
|
44
43
|
"@types/hast": "^3.0.4",
|
|
45
44
|
"@types/mdast": "^4.0.4",
|
|
46
45
|
"common-tags": "^1.8.2",
|
|
47
|
-
"eslint": "^9.
|
|
46
|
+
"eslint": "^9.39.1",
|
|
48
47
|
"mdast": "^3.0.0",
|
|
49
|
-
"prettier": "^3.
|
|
50
|
-
"publint": "^0.3.
|
|
48
|
+
"prettier": "^3.7.4",
|
|
49
|
+
"publint": "^0.3.16",
|
|
51
50
|
"rehype-raw": "^7.0.0",
|
|
52
51
|
"rehype-stringify": "^10.0.1",
|
|
53
52
|
"remark-gfm": "^4.0.1",
|
|
54
53
|
"remark-parse": "^11.0.0",
|
|
55
54
|
"remark-rehype": "^11.1.2",
|
|
56
|
-
"typescript": "^5.
|
|
55
|
+
"typescript": "^5.9.3",
|
|
57
56
|
"unified": "^11.0.5",
|
|
58
57
|
"unist-util-visit": "^5.0.0",
|
|
59
58
|
"vfile": "^6.0.3",
|
|
60
|
-
"vite": "^
|
|
59
|
+
"vite": "^7.2.7",
|
|
61
60
|
"vite-plugin-dts": "4.5.4",
|
|
62
61
|
"vitest": "^3.2.4"
|
|
63
62
|
},
|
|
@@ -91,9 +90,9 @@
|
|
|
91
90
|
"resolve.exports": "^2.0.3",
|
|
92
91
|
"resolve.imports": "^2.0.3",
|
|
93
92
|
"tarparser": "^0.0.5",
|
|
94
|
-
"codemirror-lang-glimdown": "2.0.
|
|
95
|
-
"codemirror-lang-glimmer": "2.0.
|
|
96
|
-
"codemirror-lang-glimmer
|
|
93
|
+
"codemirror-lang-glimdown": "2.0.1",
|
|
94
|
+
"codemirror-lang-glimmer-js": "2.0.1",
|
|
95
|
+
"codemirror-lang-glimmer": "2.0.1"
|
|
97
96
|
},
|
|
98
97
|
"volta": {
|
|
99
98
|
"extends": "../../package.json"
|
|
@@ -78,7 +78,7 @@ export async function compiler(config, api) {
|
|
|
78
78
|
* @param {string} text
|
|
79
79
|
*/
|
|
80
80
|
async function transform(text) {
|
|
81
|
-
return babel.
|
|
81
|
+
return babel.transformAsync(text, {
|
|
82
82
|
filename: `dynamic-repl.js`,
|
|
83
83
|
plugins: [
|
|
84
84
|
[
|
|
@@ -96,7 +96,7 @@ export async function compiler(config, api) {
|
|
|
96
96
|
decoratorTransforms,
|
|
97
97
|
{
|
|
98
98
|
runtime: {
|
|
99
|
-
import: 'decorator-transforms/runtime',
|
|
99
|
+
import: 'decorator-transforms/runtime-esm',
|
|
100
100
|
},
|
|
101
101
|
},
|
|
102
102
|
],
|
|
@@ -48,7 +48,7 @@ export async function compiler(config, api) {
|
|
|
48
48
|
const { isLive, isPreview, needsLive, allowedFormats, getFlavorFromMeta, isBelow } =
|
|
49
49
|
buildCodeFenceMetaUtils(api);
|
|
50
50
|
|
|
51
|
-
const { parseMarkdown } = await import(
|
|
51
|
+
const { parseMarkdown } = await import('../markdown/parse.js');
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* @type {import('../../types.ts').Compiler}
|
package/src/compilers/react.js
CHANGED
|
@@ -10,11 +10,16 @@ export const jsx = {
|
|
|
10
10
|
},
|
|
11
11
|
},
|
|
12
12
|
resolve: (id) => {
|
|
13
|
+
/**
|
|
14
|
+
* NOTE: react still only publishes CJS to NPM
|
|
15
|
+
*/
|
|
13
16
|
switch (id) {
|
|
14
17
|
case 'react':
|
|
15
|
-
return `https://esm.sh/react`;
|
|
18
|
+
return `https://esm.sh/react@19.2.3/es2022/react.development.mjs`;
|
|
19
|
+
case 'react/jsx-dev-runtime':
|
|
20
|
+
return `https://esm.sh/react@19.2.3/es2022/jsx-dev-runtime.development.mjs`;
|
|
16
21
|
case 'react-dom/client':
|
|
17
|
-
return `https://esm.sh/react-dom/client`;
|
|
22
|
+
return `https://esm.sh/react-dom@19.2.3/es2022/client.development.mjs`;
|
|
18
23
|
case '@babel/standalone':
|
|
19
24
|
return `https://esm.sh/@babel/standalone`;
|
|
20
25
|
}
|
|
@@ -28,7 +33,14 @@ export const jsx = {
|
|
|
28
33
|
async compile(text) {
|
|
29
34
|
const result = babel.transform(text, {
|
|
30
35
|
filename: `repl.js`,
|
|
31
|
-
presets: [
|
|
36
|
+
presets: [
|
|
37
|
+
[
|
|
38
|
+
babel.availablePresets.react,
|
|
39
|
+
{
|
|
40
|
+
// useBuiltIns: true,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
],
|
|
32
44
|
});
|
|
33
45
|
|
|
34
46
|
return result.code;
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { completionKeymap } from "@codemirror/autocomplete";
|
|
2
|
-
import { indentWithTab } from "@codemirror/commands";
|
|
3
|
-
import { markdownKeymap } from "@codemirror/lang-markdown";
|
|
4
|
-
import { Compartment, EditorState, EditorSelection } from "@codemirror/state";
|
|
5
|
-
import { keymap } from "@codemirror/view";
|
|
6
|
-
import { EditorView, basicSetup } from "codemirror";
|
|
7
|
-
import { foldByIndent } from "codemirror-lang-mermaid";
|
|
8
|
-
async function buildCodemirror({
|
|
9
|
-
element,
|
|
10
|
-
text,
|
|
11
|
-
format,
|
|
12
|
-
extensions,
|
|
13
|
-
handleUpdate,
|
|
14
|
-
getLang,
|
|
15
|
-
getSupport
|
|
16
|
-
}) {
|
|
17
|
-
const languageConf = new Compartment();
|
|
18
|
-
const supportConf = new Compartment();
|
|
19
|
-
const tabSize = new Compartment();
|
|
20
|
-
const updateListener = EditorView.updateListener.of(({ state, docChanged }) => {
|
|
21
|
-
if (docChanged) {
|
|
22
|
-
handleUpdate(state.doc.toString());
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
async function languageForFormat(format2) {
|
|
26
|
-
switch (format2) {
|
|
27
|
-
case "glimdown":
|
|
28
|
-
case "gdm":
|
|
29
|
-
case "gmd":
|
|
30
|
-
return getLang("gmd");
|
|
31
|
-
case "jsx":
|
|
32
|
-
case "jsx|react":
|
|
33
|
-
return getLang("jsx|react");
|
|
34
|
-
default:
|
|
35
|
-
return getLang(format2);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async function supportForFormat(format2) {
|
|
39
|
-
const support2 = await getSupport(format2);
|
|
40
|
-
if (!support2) {
|
|
41
|
-
return [];
|
|
42
|
-
}
|
|
43
|
-
return Array.isArray(support2) ? support2 : [support2];
|
|
44
|
-
}
|
|
45
|
-
const [language, support] = await Promise.all([
|
|
46
|
-
languageForFormat(format),
|
|
47
|
-
supportForFormat(format)
|
|
48
|
-
]);
|
|
49
|
-
const editorExtensions = [
|
|
50
|
-
// features
|
|
51
|
-
basicSetup,
|
|
52
|
-
foldByIndent(),
|
|
53
|
-
// Language
|
|
54
|
-
languageConf.of(language),
|
|
55
|
-
supportConf.of(support),
|
|
56
|
-
updateListener,
|
|
57
|
-
EditorView.lineWrapping,
|
|
58
|
-
keymap.of([indentWithTab, ...completionKeymap, ...markdownKeymap]),
|
|
59
|
-
// TODO: lsp,
|
|
60
|
-
...extensions ?? []
|
|
61
|
-
].filter(Boolean);
|
|
62
|
-
const view = new EditorView({
|
|
63
|
-
parent: element,
|
|
64
|
-
state: EditorState.create({
|
|
65
|
-
extensions: editorExtensions
|
|
66
|
-
})
|
|
67
|
-
});
|
|
68
|
-
const setText = async (text2, format2) => {
|
|
69
|
-
const [language2, support2] = await Promise.all([
|
|
70
|
-
languageForFormat(format2),
|
|
71
|
-
supportForFormat(format2)
|
|
72
|
-
]);
|
|
73
|
-
console.debug(`Codemirror changing to ${format2}: ${language2 ? "ok" : "not ok"}`);
|
|
74
|
-
view.dispatch({
|
|
75
|
-
changes: {
|
|
76
|
-
from: 0,
|
|
77
|
-
to: view.state.doc.length,
|
|
78
|
-
insert: text2
|
|
79
|
-
},
|
|
80
|
-
effects: [languageConf.reconfigure(language2), supportConf.reconfigure(support2)]
|
|
81
|
-
});
|
|
82
|
-
};
|
|
83
|
-
const setFormat = async (format2) => {
|
|
84
|
-
const [language2, support2] = await Promise.all([
|
|
85
|
-
languageForFormat(format2),
|
|
86
|
-
supportForFormat(format2)
|
|
87
|
-
]);
|
|
88
|
-
console.debug(`Codemirror changing to ${format2}: ${language2 ? "ok" : "not ok"}`);
|
|
89
|
-
view.dispatch({
|
|
90
|
-
effects: [languageConf.reconfigure(language2), supportConf.reconfigure(support2)]
|
|
91
|
-
});
|
|
92
|
-
};
|
|
93
|
-
view.dispatch(
|
|
94
|
-
view.state.changeByRange((range) => ({
|
|
95
|
-
changes: [{ from: range.from, insert: text }],
|
|
96
|
-
range: EditorSelection.range(range.from, range.to)
|
|
97
|
-
}))
|
|
98
|
-
);
|
|
99
|
-
view.dispatch({
|
|
100
|
-
effects: [
|
|
101
|
-
tabSize.reconfigure(EditorState.tabSize.of(2))
|
|
102
|
-
// languageConf.reconfigure(languageForFormat(format)),
|
|
103
|
-
]
|
|
104
|
-
});
|
|
105
|
-
return { view, setText, setFormat };
|
|
106
|
-
}
|
|
107
|
-
export {
|
|
108
|
-
buildCodemirror
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=codemirror-D4aIVflZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codemirror-D4aIVflZ.js","sources":["../src/codemirror.js"],"sourcesContent":["import { completionKeymap } from '@codemirror/autocomplete';\nimport { indentWithTab } from '@codemirror/commands';\nimport { markdownKeymap } from '@codemirror/lang-markdown';\nimport { Compartment, EditorSelection, EditorState } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { basicSetup, EditorView } from 'codemirror';\n// @ts-ignore\nimport { foldByIndent } from 'codemirror-lang-mermaid';\n\n/**\n * Builds and creates a codemirror instance for the given element\n *\n * @typedef {any} Extension\n *\n * @typedef {object} CodemirrorOptions\n * @property {HTMLElement} element\n * @property {string} text\n * @property {string} format\n * @property {Extension[]} [ extensions ]\n * @property {(text: string) => void} handleUpdate\n * @property {(format: string) => Promise<Extension>} getLang\n * @property {(format: string) => Promise<Extension>} getSupport\n *\n * @param {CodemirrorOptions} options\n */\nexport async function buildCodemirror({\n element,\n text,\n format,\n extensions,\n handleUpdate,\n getLang,\n getSupport,\n}) {\n const languageConf = new Compartment();\n const supportConf = new Compartment();\n const tabSize = new Compartment();\n\n const updateListener = EditorView.updateListener.of(({ state, docChanged }) => {\n if (docChanged) {\n handleUpdate(state.doc.toString());\n }\n });\n\n /**\n * @param {string} format\n */\n async function languageForFormat(format) {\n switch (format) {\n case 'glimdown':\n case 'gdm':\n case 'gmd':\n return getLang('gmd');\n case 'jsx':\n case 'jsx|react':\n return getLang('jsx|react');\n default:\n return getLang(format);\n }\n }\n\n /**\n * @param {string} format\n */\n async function supportForFormat(format) {\n const support = await getSupport(format);\n\n if (!support) {\n return [];\n }\n\n return Array.isArray(support) ? support : [support];\n }\n\n const [language, support] = await Promise.all([\n languageForFormat(format),\n supportForFormat(format),\n ]);\n\n const editorExtensions = [\n // features\n basicSetup,\n foldByIndent(),\n // Language\n languageConf.of(language),\n supportConf.of(support),\n\n updateListener,\n EditorView.lineWrapping,\n keymap.of([indentWithTab, ...completionKeymap, ...markdownKeymap]),\n\n // TODO: lsp,\n\n ...(extensions ?? []),\n ].filter(Boolean);\n\n const view = new EditorView({\n parent: element,\n state: EditorState.create({\n extensions: editorExtensions,\n }),\n });\n\n /**\n * Called from the host app to update the editor.\n *\n * @param {string} text\n * @param {string} format\n */\n const setText = async (text, format) => {\n const [language, support] = await Promise.all([\n languageForFormat(format),\n supportForFormat(format),\n ]);\n\n console.debug(`Codemirror changing to ${format}: ${language ? 'ok' : 'not ok'}`);\n\n view.dispatch({\n changes: {\n from: 0,\n to: view.state.doc.length,\n insert: text,\n },\n effects: [languageConf.reconfigure(language), supportConf.reconfigure(support)],\n });\n };\n\n /**\n * Changes just the format of the editor.\n *\n * @param {string} format\n */\n const setFormat = async (format) => {\n const [language, support] = await Promise.all([\n languageForFormat(format),\n supportForFormat(format),\n ]);\n\n console.debug(`Codemirror changing to ${format}: ${language ? 'ok' : 'not ok'}`);\n\n view.dispatch({\n effects: [languageConf.reconfigure(language), supportConf.reconfigure(support)],\n });\n };\n\n view.dispatch(\n view.state.changeByRange((range) => ({\n changes: [{ from: range.from, insert: text }],\n range: EditorSelection.range(range.from, range.to),\n }))\n );\n\n view.dispatch({\n effects: [\n tabSize.reconfigure(EditorState.tabSize.of(2)),\n // languageConf.reconfigure(languageForFormat(format)),\n ],\n });\n\n return { view, setText, setFormat };\n}\n"],"names":["format","support","text","language"],"mappings":"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"}
|
package/dist/gjs-CzFzkEFv.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gjs-CzFzkEFv.js","sources":["../src/compilers/ember/gjs.js"],"sourcesContent":["import { cache } from '../../cache.js';\nimport { renderApp } from './render-app-island.js';\n\nlet elementId = 0;\n\nconst buildDependencies = [\n /**\n * The only version of babel that is easily runnable in the browser\n * This includes way too much stuff.\n */\n '@babel/standalone',\n /**\n * We will be using this decorator transform\n * instead of the babel one.\n * The babel transform does way too much transforming.\n */\n 'decorator-transforms',\n\n /**\n * Babel plugin that understands all the different ways\n * which templates have been authored and what they need to\n * compile to over the years.\n */\n 'babel-plugin-ember-template-compilation',\n /**\n * The actual template-compiler is ember-sounce-dependent,\n * because the underlying format / bytecodes / etc is private,\n * and can change between versions of ember-source.\n */\n 'ember-source/dist/ember-template-compiler.js',\n /**\n * Converts gjs/gts to standard js/ts\n */\n 'content-tag',\n /**\n * Older-style build macros\n * (before import.meta.env was even a thing)\n *\n * These remove `@glimmer/env` and DEBUG usages\n */\n 'babel-plugin-debug-macros',\n\n /**\n * build macros, because the ecosystem isn't standardized on imprt.meta.env?.X\n * Also, @embroider/macros does dead-code-elimination, which is handy.\n */\n // '@embroider/macros/babel',\n];\n\n/**\n * @type {import('../../types.ts').CompilerConfig['compiler']}\n */\nexport async function compiler(config, api) {\n const [\n _babel,\n _decoratorTransforms,\n _emberTemplateCompilation,\n compiler,\n contentTag,\n { default: DebugMacros },\n // embroiderMacros,\n ] = await api.tryResolveAll(buildDependencies);\n\n // These libraries are compiled incorrectly for cjs<->ESM compat\n const decoratorTransforms =\n 'default' in _decoratorTransforms ? _decoratorTransforms.default : _decoratorTransforms;\n\n const emberTemplateCompilation =\n 'default' in _emberTemplateCompilation\n ? _emberTemplateCompilation.default\n : _emberTemplateCompilation;\n\n const babel = 'availablePlugins' in _babel ? _babel : _babel.default;\n\n // let macros = embroiderMacros.buildMacros();\n\n /**\n * @param {string} text\n */\n async function transform(text) {\n return babel.transform(text, {\n filename: `dynamic-repl.js`,\n plugins: [\n [\n emberTemplateCompilation,\n {\n compiler,\n transforms: [\n // ...macros.templateMacros\n ],\n targetFormat: 'wire',\n },\n ],\n [\n // @ts-ignore - we don't care about types here..\n decoratorTransforms,\n {\n runtime: {\n import: 'decorator-transforms/runtime',\n },\n },\n ],\n // ...macros.babelMacros,\n [\n DebugMacros,\n {\n flags: [\n {\n source: '@glimmer/env',\n flags: {\n DEBUG: true,\n CI: false,\n },\n },\n ],\n debugTools: {\n isDebug: true,\n source: '@ember/debug',\n assertPredicateIndex: 1,\n },\n externalizeHelpers: {\n module: '@ember/debug',\n },\n },\n '@ember/debug stripping',\n ],\n [\n DebugMacros,\n {\n externalizeHelpers: {\n module: '@ember/application/deprecations',\n },\n debugTools: {\n isDebug: true,\n source: '@ember/application/deprecations',\n assertPredicateIndex: 1,\n },\n },\n '@ember/application/deprecations stripping',\n ],\n ],\n presets: [],\n });\n }\n\n const preprocessor = new contentTag.Preprocessor();\n\n /**\n * @type {import('../../types.ts').Compiler}\n */\n const gjsCompiler = {\n compile: async (text, options) => {\n const { code: preprocessed } = preprocessor.process(text, { filename: 'dynamic-repl.js' });\n const transformed = await transform(preprocessed);\n\n const code = transformed.code;\n\n return code;\n },\n render: async (element, compiled, extra, compiler) => {\n /**\n *\n * TODO: These will make things easier:\n * https://github.com/emberjs/rfcs/pull/1099\n * https://github.com/ember-cli/ember-addon-blueprint/blob/main/files/tests/test-helper.js\n */\n const attribute = `data-repl-sdk-ember-gjs-${elementId++}`;\n\n element.setAttribute(attribute, '');\n\n const [application, destroyable, resolver, router, route, testWaiters, runloop] =\n await compiler.tryResolveAll([\n '@ember/application',\n '@ember/destroyable',\n 'ember-resolver',\n '@ember/routing/router',\n '@ember/routing/route',\n '@ember/test-waiters',\n '@ember/runloop',\n ]);\n\n // We don't want to await here, because we need to early\n // return the element so that the app can render in to it.\n // (Ember will only render in to an element if it's present in the DOM)\n return renderApp({\n element,\n selector: `[${attribute}]`,\n component: compiled,\n log: compiler.announce,\n modules: {\n application,\n destroyable,\n resolver,\n router,\n route,\n testWaiters,\n runloop,\n },\n });\n },\n handlers: {\n js: async (text) => {\n return gjsCompiler.compile(text, {});\n },\n mjs: async (text) => {\n return gjsCompiler.compile(text, {});\n },\n },\n };\n\n return gjsCompiler;\n}\n"],"names":["compiler"],"mappings":"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"}
|
package/dist/gmd-D9OXs2v3.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gmd-D9OXs2v3.js","sources":["../src/compilers/ember/gmd.js"],"sourcesContent":["/**\n * @typedef {import('unified').Plugin} Plugin\n */\nimport { assert, isRecord } from '../../utils.js';\nimport { buildCodeFenceMetaUtils } from '../markdown/utils.js';\nimport { renderApp } from './render-app-island.js';\n\nlet elementId = 0;\n\n/**\n * @param {unknown} [ options ]\n * @returns {{\n * scope: Record<string, unknown>,\n * remarkPlugins: Plugin[],\n * rehypePlugins: Plugin[],\n * ShadowComponent: string | undefined,\n * CopyComponent: string | undefined\n * }}\n */\nexport function filterOptions(options) {\n if (!isRecord(options)) {\n return {\n scope: {},\n remarkPlugins: [],\n rehypePlugins: [],\n ShadowComponent: undefined,\n CopyComponent: undefined,\n };\n }\n\n return {\n scope: /** @type {Record<string, unknown>}*/ (options?.scope || {}),\n remarkPlugins: /** @type {Plugin[]}*/ (options?.remarkPlugins || []),\n rehypePlugins: /** @type {Plugin[]}*/ (options?.rehypePlugins || []),\n ShadowComponent: /** @type {string}*/ (options?.ShadowComponent),\n CopyComponent: /** @type {string}*/ (options?.CopyComponent),\n };\n}\n\n/**\n * @type {import('../../types.ts').CompilerConfig['compiler']}\n */\nexport async function compiler(config, api) {\n const userOptions = filterOptions(\n /** @type {Record<string, unknown>} */ (config.userOptions)?.gmd || config\n );\n\n const { isLive, isPreview, needsLive, allowedFormats, getFlavorFromMeta, isBelow } =\n buildCodeFenceMetaUtils(api);\n\n const { parseMarkdown } = await import(/* @vite-ignore */ '../markdown/parse.js');\n\n /**\n * @type {import('../../types.ts').Compiler}\n */\n const gmdCompiler = {\n compile: async (text, options) => {\n const compileOptions = filterOptions(options);\n const result = await parseMarkdown(text, {\n remarkPlugins: [...userOptions.remarkPlugins, ...compileOptions.remarkPlugins],\n rehypePlugins: [...userOptions.rehypePlugins, ...compileOptions.rehypePlugins],\n isLive,\n isPreview,\n isBelow,\n needsLive,\n ALLOWED_FORMATS: allowedFormats,\n getFlavorFromMeta,\n });\n\n const { template } = await api.tryResolve('@ember/template-compiler/runtime');\n\n const scope = {\n ...filterOptions(userOptions).scope,\n ...filterOptions(options).scope,\n };\n\n const component = template(result.text, {\n scope: () => ({\n ...scope,\n // TODO: compile all the components from \"result\" and add them to scope here\n // would this be better than the markdown style multiple islands\n }),\n });\n\n return { compiled: component, ...result, scope };\n },\n render: async (element, compiled, extra, compiler) => {\n /**\n *\n * TODO: These will make things easier:\n * https://github.com/emberjs/rfcs/pull/1099\n * https://github.com/ember-cli/ember-addon-blueprint/blob/main/files/tests/test-helper.js\n */\n const attribute = `data-repl-sdk-ember-gmd-${elementId++}`;\n\n element.setAttribute(attribute, '');\n\n const [application, destroyable, resolver, router, route, testWaiters, runloop] =\n await compiler.tryResolveAll([\n '@ember/application',\n '@ember/destroyable',\n 'ember-resolver',\n '@ember/routing/router',\n '@ember/routing/route',\n '@ember/test-waiters',\n '@ember/runloop',\n ]);\n\n // We don't want to await here, because we need to early\n // return the element so that the app can render in to it.\n // (Ember will only render in to an element if it's present in the DOM)\n const destroy = await renderApp({\n element,\n selector: `[${attribute}]`,\n component: compiled,\n log: compiler.announce,\n modules: {\n application,\n destroyable,\n resolver,\n router,\n route,\n testWaiters,\n runloop,\n },\n });\n\n /**\n * @type {(() => void)[]}\n */\n const destroyables = [];\n\n await Promise.all(\n /** @type {unknown[]} */ (extra.codeBlocks).map(async (/** @type {unknown} */ info) => {\n /** @type {Record<string, unknown>} */\n const infoObj = /** @type {Record<string, unknown>} */ (info);\n\n if (\n !api.canCompile(\n /** @type {string} */ (infoObj.format),\n /** @type {string} */ (infoObj.flavor)\n )\n ) {\n return;\n }\n\n const flavor = /** @type {string} */ (infoObj.flavor);\n const hasScope =\n flavor === 'ember' || infoObj.format === 'gjs' || infoObj.format === 'hbs';\n const subRender = await compiler.compile(\n /** @type {string} */ (infoObj.format),\n /** @type {string} */ (infoObj.code),\n {\n ...compiler.optionsFor(/** @type {string} */ (infoObj.format), flavor),\n flavor: flavor,\n // @ts-ignore\n ...(hasScope\n ? {\n scope: extra.scope,\n }\n : {}),\n }\n );\n\n const selector = `#${/** @type {string} */ (infoObj.placeholderId)}`;\n const target = element.querySelector(selector);\n\n assert(\n `Could not find placeholder / target element (using selector: \\`${selector}\\`). ` +\n `Could not render ${/** @type {string} */ (infoObj.format)} block.`,\n target\n );\n\n destroyables.push(subRender.destroy);\n target.appendChild(subRender.element);\n })\n );\n\n return () => {\n for (const subDestroy of destroyables) {\n subDestroy();\n }\n\n destroy();\n };\n },\n };\n\n return gmdCompiler;\n}\n"],"names":["compiler"],"mappings":"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"}
|