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.
Files changed (305) hide show
  1. package/dist/apl-fqmucPXA.js +141 -0
  2. package/dist/apl-fqmucPXA.js.map +1 -0
  3. package/dist/asciiarmor-DucZyvP0.js +57 -0
  4. package/dist/asciiarmor-DucZyvP0.js.map +1 -0
  5. package/dist/asn1-BnOEsgAm.js +145 -0
  6. package/dist/asn1-BnOEsgAm.js.map +1 -0
  7. package/dist/assets/tar-worker-CxTcoQcr.js +593 -0
  8. package/dist/assets/tar-worker-CxTcoQcr.js.map +1 -0
  9. package/dist/asterisk-QAlztEwS.js +346 -0
  10. package/dist/asterisk-QAlztEwS.js.map +1 -0
  11. package/dist/brainfuck-DZVCuF_t.js +54 -0
  12. package/dist/brainfuck-DZVCuF_t.js.map +1 -0
  13. package/dist/clike-CTYGlS6x.js +800 -0
  14. package/dist/clike-CTYGlS6x.js.map +1 -0
  15. package/dist/clojure-BhXMqnxz.js +850 -0
  16. package/dist/clojure-BhXMqnxz.js.map +1 -0
  17. package/dist/cmake-BGaNd9E7.js +72 -0
  18. package/dist/cmake-BGaNd9E7.js.map +1 -0
  19. package/dist/cobol-4yqQntpt.js +121 -0
  20. package/dist/cobol-4yqQntpt.js.map +1 -0
  21. package/dist/codemirror-De3S70Np.js +2912 -0
  22. package/dist/codemirror-De3S70Np.js.map +1 -0
  23. package/dist/coffeescript-D2dXvhEc.js +309 -0
  24. package/dist/coffeescript-D2dXvhEc.js.map +1 -0
  25. package/dist/commonlisp-CF_VNHQR.js +131 -0
  26. package/dist/commonlisp-CF_VNHQR.js.map +1 -0
  27. package/dist/crystal-DyuLTqLs.js +399 -0
  28. package/dist/crystal-DyuLTqLs.js.map +1 -0
  29. package/dist/css-DkSyTW67.js +1773 -0
  30. package/dist/css-DkSyTW67.js.map +1 -0
  31. package/dist/cypher-Dlu_3r4V.js +122 -0
  32. package/dist/cypher-Dlu_3r4V.js.map +1 -0
  33. package/dist/d-UURgV0Ux.js +180 -0
  34. package/dist/d-UURgV0Ux.js.map +1 -0
  35. package/dist/diff-B_Bi2Crb.js +26 -0
  36. package/dist/diff-B_Bi2Crb.js.map +1 -0
  37. package/dist/dockerfile-Bvk733Ga.js +202 -0
  38. package/dist/dockerfile-Bvk733Ga.js.map +1 -0
  39. package/dist/dtd-Dy74G54E.js +115 -0
  40. package/dist/dtd-Dy74G54E.js.map +1 -0
  41. package/dist/dylan-TSb-Nfix.js +315 -0
  42. package/dist/dylan-TSb-Nfix.js.map +1 -0
  43. package/dist/ebnf-4fKAGW3a.js +141 -0
  44. package/dist/ebnf-4fKAGW3a.js.map +1 -0
  45. package/dist/ecl-B59qGGVg.js +179 -0
  46. package/dist/ecl-B59qGGVg.js.map +1 -0
  47. package/dist/eiffel-Dze7nlu3.js +135 -0
  48. package/dist/eiffel-Dze7nlu3.js.map +1 -0
  49. package/dist/elm-DG7jkhNZ.js +177 -0
  50. package/dist/elm-DG7jkhNZ.js.map +1 -0
  51. package/dist/erlang-BO6gOnGA.js +675 -0
  52. package/dist/erlang-BO6gOnGA.js.map +1 -0
  53. package/dist/factor-CMxFHDqz.js +66 -0
  54. package/dist/factor-CMxFHDqz.js.map +1 -0
  55. package/dist/fcl-CDDUNjTj.js +142 -0
  56. package/dist/fcl-CDDUNjTj.js.map +1 -0
  57. package/dist/forth-B9D2JCeE.js +117 -0
  58. package/dist/forth-B9D2JCeE.js.map +1 -0
  59. package/dist/fortran-CAG2BFbe.js +468 -0
  60. package/dist/fortran-CAG2BFbe.js.map +1 -0
  61. package/dist/gas-0Aw8zDr5.js +294 -0
  62. package/dist/gas-0Aw8zDr5.js.map +1 -0
  63. package/dist/gherkin-DhZlEZiy.js +116 -0
  64. package/dist/gherkin-DhZlEZiy.js.map +1 -0
  65. package/dist/gjs-DfguZDLq.js +173 -0
  66. package/dist/gjs-DfguZDLq.js.map +1 -0
  67. package/dist/gmd-Yas-Oo8k.js +163 -0
  68. package/dist/gmd-Yas-Oo8k.js.map +1 -0
  69. package/dist/groovy-CpwJiBl7.js +224 -0
  70. package/dist/groovy-CpwJiBl7.js.map +1 -0
  71. package/dist/haskell-ySd-OUo8.js +460 -0
  72. package/dist/haskell-ySd-OUo8.js.map +1 -0
  73. package/dist/haxe-7MlzfeYV.js +515 -0
  74. package/dist/haxe-7MlzfeYV.js.map +1 -0
  75. package/dist/hbs-CxcmWxSJ.js +62 -0
  76. package/dist/hbs-CxcmWxSJ.js.map +1 -0
  77. package/dist/http-BqypyemW.js +80 -0
  78. package/dist/http-BqypyemW.js.map +1 -0
  79. package/dist/idl-4HIGJlDI.js +986 -0
  80. package/dist/idl-4HIGJlDI.js.map +1 -0
  81. package/dist/index-B3Meoznj.js +118 -0
  82. package/dist/index-B3Meoznj.js.map +1 -0
  83. package/dist/index-BQyfDUUx.js +692 -0
  84. package/dist/index-BQyfDUUx.js.map +1 -0
  85. package/dist/index-BRDroAD8.js +305 -0
  86. package/dist/index-BRDroAD8.js.map +1 -0
  87. package/dist/index-BRMAzRyM.js +179 -0
  88. package/dist/index-BRMAzRyM.js.map +1 -0
  89. package/dist/index-Bb8uYQgv.js +927 -0
  90. package/dist/index-Bb8uYQgv.js.map +1 -0
  91. package/dist/index-BlOjO66K.js +17618 -0
  92. package/dist/index-BlOjO66K.js.map +1 -0
  93. package/dist/index-BoGWnSNL.js +706 -0
  94. package/dist/index-BoGWnSNL.js.map +1 -0
  95. package/dist/index-BsRrEiOu.js +98 -0
  96. package/dist/index-BsRrEiOu.js.map +1 -0
  97. package/dist/index-C2sFZMth.js +391 -0
  98. package/dist/index-C2sFZMth.js.map +1 -0
  99. package/dist/index-C7xwOjmS.js +291 -0
  100. package/dist/index-C7xwOjmS.js.map +1 -0
  101. package/dist/index-CA3lFUx6.js +315 -0
  102. package/dist/index-CA3lFUx6.js.map +1 -0
  103. package/dist/index-CB-pPTIf.js +98 -0
  104. package/dist/index-CB-pPTIf.js.map +1 -0
  105. package/dist/index-CCa6x1FE.js +386 -0
  106. package/dist/index-CCa6x1FE.js.map +1 -0
  107. package/dist/index-CD4DINI1.js +158 -0
  108. package/dist/index-CD4DINI1.js.map +1 -0
  109. package/dist/index-CE0B_fcG.js +328 -0
  110. package/dist/index-CE0B_fcG.js.map +1 -0
  111. package/dist/index-CVGAEPMV.js +2139 -0
  112. package/dist/index-CVGAEPMV.js.map +1 -0
  113. package/dist/index-CmaT2afn.js +332 -0
  114. package/dist/index-CmaT2afn.js.map +1 -0
  115. package/dist/index-D8sUxXp5.js +83 -0
  116. package/dist/index-D8sUxXp5.js.map +1 -0
  117. package/dist/index-DIz8Vpn-.js +737 -0
  118. package/dist/index-DIz8Vpn-.js.map +1 -0
  119. package/dist/index-DNP1xT-S.js +408 -0
  120. package/dist/index-DNP1xT-S.js.map +1 -0
  121. package/dist/index-DOAqdvnQ.js +862 -0
  122. package/dist/index-DOAqdvnQ.js.map +1 -0
  123. package/dist/index-DVUMFbgi.js +152 -0
  124. package/dist/index-DVUMFbgi.js.map +1 -0
  125. package/dist/index-VeTBKRVd.js +83 -0
  126. package/dist/index-VeTBKRVd.js.map +1 -0
  127. package/dist/index-dXZeR7Bx.js +1767 -0
  128. package/dist/index-dXZeR7Bx.js.map +1 -0
  129. package/dist/index-gtqbIb6T.js +62 -0
  130. package/dist/index-gtqbIb6T.js.map +1 -0
  131. package/dist/index-pN_pUAQ7.js +2426 -0
  132. package/dist/index-pN_pUAQ7.js.map +1 -0
  133. package/dist/index-wasu5VX0.js +1150 -0
  134. package/dist/index-wasu5VX0.js.map +1 -0
  135. package/dist/javascript-Bt8B7yTi.js +993 -0
  136. package/dist/javascript-Bt8B7yTi.js.map +1 -0
  137. package/dist/julia-Bs6JJhYG.js +408 -0
  138. package/dist/julia-Bs6JJhYG.js.map +1 -0
  139. package/dist/livescript-DmzgM3Yt.js +297 -0
  140. package/dist/livescript-DmzgM3Yt.js.map +1 -0
  141. package/dist/lua-8cJgIlqe.js +257 -0
  142. package/dist/lua-8cJgIlqe.js.map +1 -0
  143. package/dist/mathematica-DNLOL9PQ.js +111 -0
  144. package/dist/mathematica-DNLOL9PQ.js.map +1 -0
  145. package/dist/mbox-Ga7d4MMN.js +118 -0
  146. package/dist/mbox-Ga7d4MMN.js.map +1 -0
  147. package/dist/mirc-Dma3B8rS.js +108 -0
  148. package/dist/mirc-Dma3B8rS.js.map +1 -0
  149. package/dist/mllike-DHn7xckP.js +335 -0
  150. package/dist/mllike-DHn7xckP.js.map +1 -0
  151. package/dist/modelica-0d55jYY0.js +148 -0
  152. package/dist/modelica-0d55jYY0.js.map +1 -0
  153. package/dist/mscgen-DdqZYINH.js +136 -0
  154. package/dist/mscgen-DdqZYINH.js.map +1 -0
  155. package/dist/mumps-Btr8VblO.js +94 -0
  156. package/dist/mumps-Btr8VblO.js.map +1 -0
  157. package/dist/nginx-DTDtBDVN.js +142 -0
  158. package/dist/nginx-DTDtBDVN.js.map +1 -0
  159. package/dist/nsis-3zG7tgur.js +63 -0
  160. package/dist/nsis-3zG7tgur.js.map +1 -0
  161. package/dist/ntriples-CvgOYMpL.js +154 -0
  162. package/dist/ntriples-CvgOYMpL.js.map +1 -0
  163. package/dist/octave-DYBj3-tl.js +201 -0
  164. package/dist/octave-DYBj3-tl.js.map +1 -0
  165. package/dist/oz-R_e8WMIi.js +232 -0
  166. package/dist/oz-R_e8WMIi.js.map +1 -0
  167. package/dist/parse-CAqQaKsh.js +21685 -0
  168. package/dist/parse-CAqQaKsh.js.map +1 -0
  169. package/dist/pascal-GD8iposT.js +106 -0
  170. package/dist/pascal-GD8iposT.js.map +1 -0
  171. package/dist/perl-DL9mHpoi.js +1106 -0
  172. package/dist/perl-DL9mHpoi.js.map +1 -0
  173. package/dist/pig-C_4T4YIV.js +102 -0
  174. package/dist/pig-C_4T4YIV.js.map +1 -0
  175. package/dist/powershell-B0suO7Vd.js +329 -0
  176. package/dist/powershell-B0suO7Vd.js.map +1 -0
  177. package/dist/properties-BR-vP1aU.js +59 -0
  178. package/dist/properties-BR-vP1aU.js.map +1 -0
  179. package/dist/protobuf-BxgpyhoW.js +78 -0
  180. package/dist/protobuf-BxgpyhoW.js.map +1 -0
  181. package/dist/pug-vHnWR0UE.js +406 -0
  182. package/dist/pug-vHnWR0UE.js.map +1 -0
  183. package/dist/puppet-Bdao66PW.js +138 -0
  184. package/dist/puppet-Bdao66PW.js.map +1 -0
  185. package/dist/python-BFGRmuZ9.js +427 -0
  186. package/dist/python-BFGRmuZ9.js.map +1 -0
  187. package/dist/q-CrbCVq4a.js +132 -0
  188. package/dist/q-CrbCVq4a.js.map +1 -0
  189. package/dist/r-V7nswm59.js +171 -0
  190. package/dist/r-V7nswm59.js.map +1 -0
  191. package/dist/render-app-island-B-i8rvGi.js +61 -0
  192. package/dist/render-app-island-B-i8rvGi.js.map +1 -0
  193. package/dist/repl-sdk.js +7 -0
  194. package/dist/repl-sdk.js.map +1 -0
  195. package/dist/rpm-C-DLY-If.js +110 -0
  196. package/dist/rpm-C-DLY-If.js.map +1 -0
  197. package/dist/ruby-JDKLJNK0.js +331 -0
  198. package/dist/ruby-JDKLJNK0.js.map +1 -0
  199. package/dist/sas-D2UG-yhZ.js +208 -0
  200. package/dist/sas-D2UG-yhZ.js.map +1 -0
  201. package/dist/scheme-BKzrkGJD.js +223 -0
  202. package/dist/scheme-BKzrkGJD.js.map +1 -0
  203. package/dist/shell-BlsXDxCn.js +223 -0
  204. package/dist/shell-BlsXDxCn.js.map +1 -0
  205. package/dist/sieve-CjwBwOY5.js +136 -0
  206. package/dist/sieve-CjwBwOY5.js.map +1 -0
  207. package/dist/simple-mode-DMneyfDu.js +131 -0
  208. package/dist/simple-mode-DMneyfDu.js.map +1 -0
  209. package/dist/smalltalk-BOIGQuhN.js +122 -0
  210. package/dist/smalltalk-BOIGQuhN.js.map +1 -0
  211. package/dist/solr-CwD7U71z.js +70 -0
  212. package/dist/solr-CwD7U71z.js.map +1 -0
  213. package/dist/sparql-DYskk2vE.js +250 -0
  214. package/dist/sparql-DYskk2vE.js.map +1 -0
  215. package/dist/spreadsheet-Bgtt3oLP.js +88 -0
  216. package/dist/spreadsheet-Bgtt3oLP.js.map +1 -0
  217. package/dist/sql-Cei9CMfk.js +343 -0
  218. package/dist/sql-Cei9CMfk.js.map +1 -0
  219. package/dist/stex-C1nZSzAw.js +231 -0
  220. package/dist/stex-C1nZSzAw.js.map +1 -0
  221. package/dist/stylus-BkS-boTH.js +566 -0
  222. package/dist/stylus-BkS-boTH.js.map +1 -0
  223. package/dist/swift-FRZi1uvB.js +292 -0
  224. package/dist/swift-FRZi1uvB.js.map +1 -0
  225. package/dist/tcl-CUcaCdmq.js +115 -0
  226. package/dist/tcl-CUcaCdmq.js.map +1 -0
  227. package/dist/textile-BnFpjsrl.js +415 -0
  228. package/dist/textile-BnFpjsrl.js.map +1 -0
  229. package/dist/tiddlywiki-CjprD-Qp.js +219 -0
  230. package/dist/tiddlywiki-CjprD-Qp.js.map +1 -0
  231. package/dist/tiki-DK9DOeWn.js +269 -0
  232. package/dist/tiki-DK9DOeWn.js.map +1 -0
  233. package/dist/toml-BOuWGMcf.js +77 -0
  234. package/dist/toml-BOuWGMcf.js.map +1 -0
  235. package/dist/troff-E1bJ0PPL.js +62 -0
  236. package/dist/troff-E1bJ0PPL.js.map +1 -0
  237. package/dist/ttcn-cfg-Dc39-fIP.js +134 -0
  238. package/dist/ttcn-cfg-Dc39-fIP.js.map +1 -0
  239. package/dist/ttcn-tKd4HLu4.js +193 -0
  240. package/dist/ttcn-tKd4HLu4.js.map +1 -0
  241. package/dist/turtle-Dq7-1WAf.js +125 -0
  242. package/dist/turtle-Dq7-1WAf.js.map +1 -0
  243. package/dist/vb-Dp90gtsv.js +197 -0
  244. package/dist/vb-Dp90gtsv.js.map +1 -0
  245. package/dist/vbscript-Bfn8O8I7.js +479 -0
  246. package/dist/vbscript-Bfn8O8I7.js.map +1 -0
  247. package/dist/velocity-BwIZK1TH.js +150 -0
  248. package/dist/velocity-BwIZK1TH.js.map +1 -0
  249. package/dist/verilog-CnT9bMk0.js +430 -0
  250. package/dist/verilog-CnT9bMk0.js.map +1 -0
  251. package/dist/vhdl-DCkMIyT9.js +159 -0
  252. package/dist/vhdl-DCkMIyT9.js.map +1 -0
  253. package/dist/webidl-BTLTThCm.js +205 -0
  254. package/dist/webidl-BTLTThCm.js.map +1 -0
  255. package/dist/xquery-BrBUuxMR.js +526 -0
  256. package/dist/xquery-BrBUuxMR.js.map +1 -0
  257. package/dist/yacas-b5lAVEIl.js +131 -0
  258. package/dist/yacas-b5lAVEIl.js.map +1 -0
  259. package/dist/z80-ClgwfNdB.js +93 -0
  260. package/dist/z80-ClgwfNdB.js.map +1 -0
  261. package/package.json +81 -9
  262. package/src/cache.js +138 -0
  263. package/src/cdn.js +93 -0
  264. package/src/codemirror.js +161 -0
  265. package/src/compilers/ember/gjs.js +212 -0
  266. package/src/compilers/ember/gmd.js +190 -0
  267. package/src/compilers/ember/hbs.js +98 -0
  268. package/src/compilers/ember/render-app-island.js +83 -0
  269. package/src/compilers/ember.js +166 -0
  270. package/src/compilers/js.js +32 -0
  271. package/src/compilers/markdown/build-compiler.js +151 -0
  272. package/src/compilers/markdown/const.js +2 -0
  273. package/src/compilers/markdown/heading-id.js +75 -0
  274. package/src/compilers/markdown/live-code-extraction.js +198 -0
  275. package/src/compilers/markdown/parse.js +22 -0
  276. package/src/compilers/markdown/parse.test.ts +363 -0
  277. package/src/compilers/markdown/sanitize-for-glimmer.js +26 -0
  278. package/src/compilers/markdown/types.ts +21 -0
  279. package/src/compilers/markdown/utils.js +78 -0
  280. package/src/compilers/markdown.js +125 -0
  281. package/src/compilers/mermaid.js +35 -0
  282. package/src/compilers/react.js +59 -0
  283. package/src/compilers/svelte.js +116 -0
  284. package/src/compilers/vue.js +58 -0
  285. package/src/compilers.js +108 -0
  286. package/src/es-module-shim.js +53 -0
  287. package/src/index.d.ts +53 -4
  288. package/src/index.js +744 -89
  289. package/src/npm.js +58 -0
  290. package/src/request.Request.test.ts +59 -0
  291. package/src/request.js +140 -0
  292. package/src/resolve.fromImports.test.ts +35 -0
  293. package/src/resolve.fromInternalImport.test.ts +69 -0
  294. package/src/resolve.js +352 -0
  295. package/src/resolve.resolvePath.test.ts +24 -0
  296. package/src/resolve.test.ts +23 -0
  297. package/src/specifier.js +71 -0
  298. package/src/specifier.test.ts +90 -0
  299. package/src/tar-worker.js +61 -0
  300. package/src/tar.js +76 -0
  301. package/src/types.ts +335 -58
  302. package/src/utils.js +28 -1
  303. package/declarations/index.d.ts +0 -73
  304. package/dist/index.js +0 -107
  305. 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": "0.0.0",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
7
- "types": "./declarations/index.d.ts",
8
- "default": "./dist/index.js"
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
- "prettier": "^3.2.5",
31
- "typescript": "^5.4.5",
32
- "vite": "^5.2.11",
33
- "vite-plugin-dts": "4.0.0-beta.1"
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
- "es-module-shims": "^1.10.0"
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
- "start": "vite build --watch"
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
+ };