repl-sdk 0.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-CxTcoQcr.js +593 -0
- package/dist/assets/tar-worker-CxTcoQcr.js.map +1 -0
- 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-DfguZDLq.js +173 -0
- package/dist/gjs-DfguZDLq.js.map +1 -0
- package/dist/gmd-Yas-Oo8k.js +163 -0
- 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-CxcmWxSJ.js +62 -0
- package/dist/hbs-CxcmWxSJ.js.map +1 -0
- 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-CVGAEPMV.js +2139 -0
- 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/render-app-island-B-i8rvGi.js +61 -0
- package/dist/render-app-island-B-i8rvGi.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 +81 -9
- package/src/cache.js +138 -0
- package/src/cdn.js +93 -0
- package/src/codemirror.js +161 -0
- package/src/compilers/ember/gjs.js +212 -0
- package/src/compilers/ember/gmd.js +190 -0
- package/src/compilers/ember/hbs.js +98 -0
- package/src/compilers/ember/render-app-island.js +83 -0
- package/src/compilers/ember.js +166 -0
- package/src/compilers/js.js +32 -0
- package/src/compilers/markdown/build-compiler.js +151 -0
- package/src/compilers/markdown/const.js +2 -0
- package/src/compilers/markdown/heading-id.js +75 -0
- package/src/compilers/markdown/live-code-extraction.js +198 -0
- package/src/compilers/markdown/parse.js +22 -0
- package/src/compilers/markdown/parse.test.ts +363 -0
- package/src/compilers/markdown/sanitize-for-glimmer.js +26 -0
- package/src/compilers/markdown/types.ts +21 -0
- package/src/compilers/markdown/utils.js +78 -0
- package/src/compilers/markdown.js +125 -0
- package/src/compilers/mermaid.js +35 -0
- package/src/compilers/react.js +59 -0
- package/src/compilers/svelte.js +116 -0
- package/src/compilers/vue.js +58 -0
- package/src/compilers.js +108 -0
- package/src/es-module-shim.js +53 -0
- package/src/index.d.ts +53 -4
- package/src/index.js +744 -89
- package/src/npm.js +58 -0
- package/src/request.Request.test.ts +59 -0
- package/src/request.js +140 -0
- package/src/resolve.fromImports.test.ts +35 -0
- package/src/resolve.fromInternalImport.test.ts +69 -0
- package/src/resolve.js +352 -0
- package/src/resolve.resolvePath.test.ts +24 -0
- package/src/resolve.test.ts +23 -0
- package/src/specifier.js +71 -0
- package/src/specifier.test.ts +90 -0
- package/src/tar-worker.js +61 -0
- package/src/tar.js +76 -0
- package/src/types.ts +335 -58
- package/src/utils.js +28 -1
- package/declarations/index.d.ts +0 -73
- package/dist/index.js +0 -107
- package/dist/index.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,11 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "repl-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
|
-
"types": "./
|
|
8
|
-
"default": "./
|
|
7
|
+
"types": "./src/index.d.ts",
|
|
8
|
+
"default": "./src/index.js"
|
|
9
|
+
},
|
|
10
|
+
"./compilers/ember/*": {
|
|
11
|
+
"default": "./src/compilers/ember/*.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"ember-addon": {
|
|
15
|
+
"version": 2,
|
|
16
|
+
"type": "addon",
|
|
17
|
+
"public-assets": {
|
|
18
|
+
"./assets/tar-worker.js": "./dist/assets/tar-worker-FjwkBMqD.js"
|
|
9
19
|
}
|
|
10
20
|
},
|
|
11
21
|
"keywords": [
|
|
@@ -26,16 +36,78 @@
|
|
|
26
36
|
],
|
|
27
37
|
"license": "MIT",
|
|
28
38
|
"devDependencies": {
|
|
39
|
+
"@nullvoxpopuli/eslint-configs": "^5.4.0",
|
|
40
|
+
"@shikijs/rehype": "^3.7.0",
|
|
29
41
|
"@tsconfig/ember": "^3.0.7",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
42
|
+
"@types/common-tags": "^1.8.4",
|
|
43
|
+
"@types/hast": "^3.0.4",
|
|
44
|
+
"@types/mdast": "^4.0.4",
|
|
45
|
+
"common-tags": "^1.8.2",
|
|
46
|
+
"eslint": "^9.39.1",
|
|
47
|
+
"mdast": "^3.0.0",
|
|
48
|
+
"prettier": "^3.7.4",
|
|
49
|
+
"publint": "^0.3.16",
|
|
50
|
+
"rehype-raw": "^7.0.0",
|
|
51
|
+
"rehype-stringify": "^10.0.1",
|
|
52
|
+
"remark-gfm": "^4.0.1",
|
|
53
|
+
"remark-parse": "^11.0.0",
|
|
54
|
+
"remark-rehype": "^11.1.2",
|
|
55
|
+
"typescript": "^5.9.3",
|
|
56
|
+
"unified": "^11.0.5",
|
|
57
|
+
"unist-util-visit": "^5.0.0",
|
|
58
|
+
"vfile": "^6.0.3",
|
|
59
|
+
"vite": "^7.2.7",
|
|
60
|
+
"vite-plugin-dts": "4.5.4",
|
|
61
|
+
"vitest": "^3.2.4"
|
|
34
62
|
},
|
|
35
63
|
"dependencies": {
|
|
36
|
-
"
|
|
64
|
+
"@codemirror/autocomplete": "6.18.6",
|
|
65
|
+
"@codemirror/commands": "6.8.1",
|
|
66
|
+
"@codemirror/lang-html": "^6.4.9",
|
|
67
|
+
"@codemirror/lang-javascript": "6.2.4",
|
|
68
|
+
"@codemirror/lang-markdown": "6.3.3",
|
|
69
|
+
"@codemirror/lang-vue": "^0.1.3",
|
|
70
|
+
"@codemirror/lang-yaml": "^6.1.2",
|
|
71
|
+
"@codemirror/language": "^6.11.2",
|
|
72
|
+
"@codemirror/language-data": "^6.5.1",
|
|
73
|
+
"@codemirror/lint": "^6.8.4",
|
|
74
|
+
"@codemirror/search": "6.5.11",
|
|
75
|
+
"@codemirror/state": "6.5.2",
|
|
76
|
+
"@codemirror/view": "6.38.0",
|
|
77
|
+
"@lezer/common": "^1.2.3",
|
|
78
|
+
"@lezer/highlight": "^1.2.1",
|
|
79
|
+
"@lezer/html": "^1.3.10",
|
|
80
|
+
"@lezer/markdown": "^1.4.1",
|
|
81
|
+
"@replit/codemirror-lang-svelte": "^6.0.0",
|
|
82
|
+
"change-case": "^5.4.4",
|
|
83
|
+
"codemirror": "^6.0.2",
|
|
84
|
+
"codemirror-lang-mermaid": "^0.5.0",
|
|
85
|
+
"codemirror-languageserver": "^1.12.1",
|
|
86
|
+
"comlink": "^4.4.2",
|
|
87
|
+
"es-module-shims": "^2.6.1",
|
|
88
|
+
"mime": "^4.0.7",
|
|
89
|
+
"package-name-regex": "^4.0.3",
|
|
90
|
+
"resolve.exports": "^2.0.3",
|
|
91
|
+
"resolve.imports": "^2.0.3",
|
|
92
|
+
"tarparser": "^0.0.5",
|
|
93
|
+
"codemirror-lang-glimdown": "2.0.1",
|
|
94
|
+
"codemirror-lang-glimmer-js": "2.0.1",
|
|
95
|
+
"codemirror-lang-glimmer": "2.0.1"
|
|
96
|
+
},
|
|
97
|
+
"volta": {
|
|
98
|
+
"extends": "../../package.json"
|
|
37
99
|
},
|
|
38
100
|
"scripts": {
|
|
39
|
-
"
|
|
101
|
+
"build": "pnpm prepack",
|
|
102
|
+
"lint:fix": "pnpm -w exec lint fix",
|
|
103
|
+
"example": "cd example && vite",
|
|
104
|
+
"start": "vite build --watch",
|
|
105
|
+
"lint:package": "pnpm publint",
|
|
106
|
+
"lint:js": "pnpm -w exec lint js",
|
|
107
|
+
"lint:types": "tsc --noEmit",
|
|
108
|
+
"lint:js:fix": "pnpm -w exec lint js:fix",
|
|
109
|
+
"lint:prettier:fix": "pnpm -w exec lint prettier:fix",
|
|
110
|
+
"lint:prettier": "pnpm -w exec lint prettier",
|
|
111
|
+
"test:node": "vitest"
|
|
40
112
|
}
|
|
41
113
|
}
|
package/src/cache.js
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { assert } from './utils.js';
|
|
2
|
+
|
|
3
|
+
export const secretKey = '__repl-sdk__compiler__';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {object} ResolveIdValue
|
|
7
|
+
* @property {string} name
|
|
8
|
+
* @property {string} version
|
|
9
|
+
* @property {import('./types.ts').RequestAnswer} path
|
|
10
|
+
*
|
|
11
|
+
* @typedef {import('./request.js').Request} Request
|
|
12
|
+
*
|
|
13
|
+
* @typedef {typeof globalThis & { [secret]?: {
|
|
14
|
+
* requestCache?: Map<string, Request>,
|
|
15
|
+
* resolveId?: Map<string, ResolveIdValue>,
|
|
16
|
+
* tarballs?: Map<string, import('./types.ts').UntarredPackage>,
|
|
17
|
+
* resolves?: { [modulePath: string]: unknown },
|
|
18
|
+
* promiseCache?: Map<string, Promise<unknown>>,
|
|
19
|
+
* fileCache?: Map<string, { code: string, ext: string }>
|
|
20
|
+
* caches?: Caches
|
|
21
|
+
* } }} ExtendedWindow
|
|
22
|
+
*/
|
|
23
|
+
const secret = Symbol.for(secretKey);
|
|
24
|
+
|
|
25
|
+
function getGlobal() {
|
|
26
|
+
const global = /** @type {ExtendedWindow} */ (globalThis);
|
|
27
|
+
|
|
28
|
+
return global;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
assert(
|
|
32
|
+
`There is already an instance of repl-sdk, and there can only be one. Make sure that your dependency graph is correct.`,
|
|
33
|
+
!getGlobal()[secret]
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
class Caches {
|
|
37
|
+
clear() {
|
|
38
|
+
delete getGlobal()[secret];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Cache of resolved modulePaths to their module "value"
|
|
43
|
+
*
|
|
44
|
+
* @type {{ [modulePath: string]: unknown }}
|
|
45
|
+
*/
|
|
46
|
+
get resolves() {
|
|
47
|
+
this.#root.resolves ||= {};
|
|
48
|
+
|
|
49
|
+
return this.#root.resolves;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Cache of untarred tarballs
|
|
54
|
+
*
|
|
55
|
+
* @type {Map<string, import('./types.ts').UntarredPackage>}
|
|
56
|
+
*/
|
|
57
|
+
get tarballs() {
|
|
58
|
+
this.#root.tarballs ||= new Map();
|
|
59
|
+
|
|
60
|
+
return this.#root.tarballs;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Cache of request resolutions
|
|
65
|
+
*
|
|
66
|
+
* @type {Map<string, ResolveIdValue>}
|
|
67
|
+
*/
|
|
68
|
+
get resolveId() {
|
|
69
|
+
this.#root.resolveId ||= new Map();
|
|
70
|
+
|
|
71
|
+
return this.#root.resolveId;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Cache of request Key to file content string
|
|
76
|
+
*
|
|
77
|
+
* @type {Map<string, { code: string, ext: string }>}
|
|
78
|
+
*/
|
|
79
|
+
get fileCache() {
|
|
80
|
+
this.#root.fileCache ||= new Map();
|
|
81
|
+
|
|
82
|
+
return this.#root.fileCache;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* For any key, store a promise for resolving later
|
|
87
|
+
*
|
|
88
|
+
* @type {Map<string, Promise<unknown>>}
|
|
89
|
+
*/
|
|
90
|
+
get promiseCache() {
|
|
91
|
+
this.#root.promiseCache ||= new Map();
|
|
92
|
+
|
|
93
|
+
return this.#root.promiseCache;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @template Return
|
|
98
|
+
* @type {(key: string, callback: () => Promise<any>) => Promise<any>}
|
|
99
|
+
*/
|
|
100
|
+
cachedPromise(key, callback) {
|
|
101
|
+
const existing = this.promiseCache.get(key);
|
|
102
|
+
|
|
103
|
+
if (existing) {
|
|
104
|
+
return /** @type {Promise<Return>} */ (existing);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const promise = callback();
|
|
108
|
+
|
|
109
|
+
this.promiseCache.set(key, promise);
|
|
110
|
+
|
|
111
|
+
return promise;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
get requestCache() {
|
|
115
|
+
this.#root.requestCache ||= new Map();
|
|
116
|
+
|
|
117
|
+
return this.#root.requestCache;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
get #root() {
|
|
121
|
+
const global = getGlobal();
|
|
122
|
+
|
|
123
|
+
global[secret] ||= {};
|
|
124
|
+
global[secret].caches ||= this;
|
|
125
|
+
|
|
126
|
+
return global[secret];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function deleteCache() {
|
|
131
|
+
if (!getGlobal()?.[secret]) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
delete getGlobal()[secret];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export const cache = new Caches();
|
package/src/cdn.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { parseSpecifier } from './specifier.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {string} importPath
|
|
5
|
+
* @returns {[string, string]}
|
|
6
|
+
*/
|
|
7
|
+
function splitSubPath(importPath) {
|
|
8
|
+
const parsed = parseSpecifier(importPath);
|
|
9
|
+
|
|
10
|
+
return [parsed.name, parsed.path === '.' ? '' : parsed.path];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Generate an import URL for esm.sh
|
|
15
|
+
*
|
|
16
|
+
* @param {Record<string, string>} versions
|
|
17
|
+
* @param {string} importPath
|
|
18
|
+
*/
|
|
19
|
+
export function esmSh(versions, importPath, allExternal = false) {
|
|
20
|
+
const [name, subPath] = splitSubPath(importPath);
|
|
21
|
+
|
|
22
|
+
const version = versions[name];
|
|
23
|
+
const subPathExport = subPath.length === 0 || subPath.startsWith('/') ? subPath : `/${subPath}`;
|
|
24
|
+
|
|
25
|
+
const externals = allExternal ? '*' : '';
|
|
26
|
+
|
|
27
|
+
return version
|
|
28
|
+
? `https://esm.sh/${externals}${name}@${version}${subPathExport}`
|
|
29
|
+
: `https://esm.sh/${externals}${name}${subPathExport}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Generate an import URL for esm.run (jsdelivr)
|
|
34
|
+
*
|
|
35
|
+
* @param {Record<string, string>} versions
|
|
36
|
+
* @param {string} importPath
|
|
37
|
+
*/
|
|
38
|
+
export function esmRun(versions, importPath) {
|
|
39
|
+
const [name, subPath] = splitSubPath(importPath);
|
|
40
|
+
|
|
41
|
+
const version = versions[name];
|
|
42
|
+
const subPathExport = subPath.length === 0 || subPath.startsWith('/') ? subPath : `/${subPath}`;
|
|
43
|
+
|
|
44
|
+
return version
|
|
45
|
+
? `https://esm.run/${name}@latest${subPathExport}`
|
|
46
|
+
: `https://esm.run/${name}${subPathExport}`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export const jsdelivr = {
|
|
50
|
+
/**
|
|
51
|
+
* @param {Record<string, string>} versions
|
|
52
|
+
* @param {string} importPath
|
|
53
|
+
*/
|
|
54
|
+
async import(versions, importPath) {
|
|
55
|
+
const url = esmRun(versions, importPath);
|
|
56
|
+
|
|
57
|
+
return await import(/* @vite-ignore */ url);
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* @param {Record<string, string>} versions
|
|
61
|
+
* @param {string[]} deps the names of deps to pull from esm.sh
|
|
62
|
+
*/
|
|
63
|
+
async importAll(versions, deps = []) {
|
|
64
|
+
return await Promise.all(
|
|
65
|
+
deps.map((dep) => {
|
|
66
|
+
return jsdelivr.import(versions, dep);
|
|
67
|
+
})
|
|
68
|
+
);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const esmsh = {
|
|
73
|
+
/**
|
|
74
|
+
* @param {Record<string, string>} versions
|
|
75
|
+
* @param {string} importPath
|
|
76
|
+
*/
|
|
77
|
+
async import(versions, importPath) {
|
|
78
|
+
const url = esmSh(versions, importPath);
|
|
79
|
+
|
|
80
|
+
return await import(/* @vite-ignore */ url);
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* @param {Record<string, string>} versions
|
|
84
|
+
* @param {string[]} deps the names of deps to pull from esm.sh
|
|
85
|
+
*/
|
|
86
|
+
async importAll(versions, deps = []) {
|
|
87
|
+
return await Promise.all(
|
|
88
|
+
deps.map((dep) => {
|
|
89
|
+
return esmsh.import(versions, dep);
|
|
90
|
+
})
|
|
91
|
+
);
|
|
92
|
+
},
|
|
93
|
+
};
|