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,141 @@
|
|
|
1
|
+
var builtInFuncs = {
|
|
2
|
+
"+": ["conjugate", "add"],
|
|
3
|
+
"−": ["negate", "subtract"],
|
|
4
|
+
"×": ["signOf", "multiply"],
|
|
5
|
+
"÷": ["reciprocal", "divide"],
|
|
6
|
+
"⌈": ["ceiling", "greaterOf"],
|
|
7
|
+
"⌊": ["floor", "lesserOf"],
|
|
8
|
+
"∣": ["absolute", "residue"],
|
|
9
|
+
"⍳": ["indexGenerate", "indexOf"],
|
|
10
|
+
"?": ["roll", "deal"],
|
|
11
|
+
"⋆": ["exponentiate", "toThePowerOf"],
|
|
12
|
+
"⍟": ["naturalLog", "logToTheBase"],
|
|
13
|
+
"○": ["piTimes", "circularFuncs"],
|
|
14
|
+
"!": ["factorial", "binomial"],
|
|
15
|
+
"⌹": ["matrixInverse", "matrixDivide"],
|
|
16
|
+
"<": [null, "lessThan"],
|
|
17
|
+
"≤": [null, "lessThanOrEqual"],
|
|
18
|
+
"=": [null, "equals"],
|
|
19
|
+
">": [null, "greaterThan"],
|
|
20
|
+
"≥": [null, "greaterThanOrEqual"],
|
|
21
|
+
"≠": [null, "notEqual"],
|
|
22
|
+
"≡": ["depth", "match"],
|
|
23
|
+
"≢": [null, "notMatch"],
|
|
24
|
+
"∈": ["enlist", "membership"],
|
|
25
|
+
"⍷": [null, "find"],
|
|
26
|
+
"∪": ["unique", "union"],
|
|
27
|
+
"∩": [null, "intersection"],
|
|
28
|
+
"∼": ["not", "without"],
|
|
29
|
+
"∨": [null, "or"],
|
|
30
|
+
"∧": [null, "and"],
|
|
31
|
+
"⍱": [null, "nor"],
|
|
32
|
+
"⍲": [null, "nand"],
|
|
33
|
+
"⍴": ["shapeOf", "reshape"],
|
|
34
|
+
",": ["ravel", "catenate"],
|
|
35
|
+
"⍪": [null, "firstAxisCatenate"],
|
|
36
|
+
"⌽": ["reverse", "rotate"],
|
|
37
|
+
"⊖": ["axis1Reverse", "axis1Rotate"],
|
|
38
|
+
"⍉": ["transpose", null],
|
|
39
|
+
"↑": ["first", "take"],
|
|
40
|
+
"↓": [null, "drop"],
|
|
41
|
+
"⊂": ["enclose", "partitionWithAxis"],
|
|
42
|
+
"⊃": ["diclose", "pick"],
|
|
43
|
+
"⌷": [null, "index"],
|
|
44
|
+
"⍋": ["gradeUp", null],
|
|
45
|
+
"⍒": ["gradeDown", null],
|
|
46
|
+
"⊤": ["encode", null],
|
|
47
|
+
"⊥": ["decode", null],
|
|
48
|
+
"⍕": ["format", "formatByExample"],
|
|
49
|
+
"⍎": ["execute", null],
|
|
50
|
+
"⊣": ["stop", "left"],
|
|
51
|
+
"⊢": ["pass", "right"]
|
|
52
|
+
};
|
|
53
|
+
var isOperator = /[\.\/⌿⍀¨⍣]/;
|
|
54
|
+
var isNiladic = /⍬/;
|
|
55
|
+
var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
|
|
56
|
+
var isArrow = /←/;
|
|
57
|
+
var isComment = /[⍝#].*$/;
|
|
58
|
+
var stringEater = function(type) {
|
|
59
|
+
var prev;
|
|
60
|
+
prev = false;
|
|
61
|
+
return function(c) {
|
|
62
|
+
prev = c;
|
|
63
|
+
if (c === type) {
|
|
64
|
+
return prev === "\\";
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
const apl = {
|
|
70
|
+
name: "apl",
|
|
71
|
+
startState: function() {
|
|
72
|
+
return {
|
|
73
|
+
prev: false,
|
|
74
|
+
func: false,
|
|
75
|
+
op: false,
|
|
76
|
+
string: false,
|
|
77
|
+
escape: false
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
token: function(stream, state) {
|
|
81
|
+
var ch;
|
|
82
|
+
if (stream.eatSpace()) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
ch = stream.next();
|
|
86
|
+
if (ch === '"' || ch === "'") {
|
|
87
|
+
stream.eatWhile(stringEater(ch));
|
|
88
|
+
stream.next();
|
|
89
|
+
state.prev = true;
|
|
90
|
+
return "string";
|
|
91
|
+
}
|
|
92
|
+
if (/[\[{\(]/.test(ch)) {
|
|
93
|
+
state.prev = false;
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
if (/[\]}\)]/.test(ch)) {
|
|
97
|
+
state.prev = true;
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
if (isNiladic.test(ch)) {
|
|
101
|
+
state.prev = false;
|
|
102
|
+
return "atom";
|
|
103
|
+
}
|
|
104
|
+
if (/[¯\d]/.test(ch)) {
|
|
105
|
+
if (state.func) {
|
|
106
|
+
state.func = false;
|
|
107
|
+
state.prev = false;
|
|
108
|
+
} else {
|
|
109
|
+
state.prev = true;
|
|
110
|
+
}
|
|
111
|
+
stream.eatWhile(/[\w\.]/);
|
|
112
|
+
return "number";
|
|
113
|
+
}
|
|
114
|
+
if (isOperator.test(ch)) {
|
|
115
|
+
return "operator";
|
|
116
|
+
}
|
|
117
|
+
if (isArrow.test(ch)) {
|
|
118
|
+
return "operator";
|
|
119
|
+
}
|
|
120
|
+
if (isFunction.test(ch)) {
|
|
121
|
+
state.func = true;
|
|
122
|
+
state.prev = false;
|
|
123
|
+
return builtInFuncs[ch] ? "variableName.function.standard" : "variableName.function";
|
|
124
|
+
}
|
|
125
|
+
if (isComment.test(ch)) {
|
|
126
|
+
stream.skipToEnd();
|
|
127
|
+
return "comment";
|
|
128
|
+
}
|
|
129
|
+
if (ch === "∘" && stream.peek() === ".") {
|
|
130
|
+
stream.next();
|
|
131
|
+
return "variableName.function";
|
|
132
|
+
}
|
|
133
|
+
stream.eatWhile(/[\w\$_]/);
|
|
134
|
+
state.prev = true;
|
|
135
|
+
return "keyword";
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
export {
|
|
139
|
+
apl
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=apl-fqmucPXA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apl-fqmucPXA.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/apl.js"],"sourcesContent":["var builtInFuncs = {\n \"+\": [\"conjugate\", \"add\"],\n \"−\": [\"negate\", \"subtract\"],\n \"×\": [\"signOf\", \"multiply\"],\n \"÷\": [\"reciprocal\", \"divide\"],\n \"⌈\": [\"ceiling\", \"greaterOf\"],\n \"⌊\": [\"floor\", \"lesserOf\"],\n \"∣\": [\"absolute\", \"residue\"],\n \"⍳\": [\"indexGenerate\", \"indexOf\"],\n \"?\": [\"roll\", \"deal\"],\n \"⋆\": [\"exponentiate\", \"toThePowerOf\"],\n \"⍟\": [\"naturalLog\", \"logToTheBase\"],\n \"○\": [\"piTimes\", \"circularFuncs\"],\n \"!\": [\"factorial\", \"binomial\"],\n \"⌹\": [\"matrixInverse\", \"matrixDivide\"],\n \"<\": [null, \"lessThan\"],\n \"≤\": [null, \"lessThanOrEqual\"],\n \"=\": [null, \"equals\"],\n \">\": [null, \"greaterThan\"],\n \"≥\": [null, \"greaterThanOrEqual\"],\n \"≠\": [null, \"notEqual\"],\n \"≡\": [\"depth\", \"match\"],\n \"≢\": [null, \"notMatch\"],\n \"∈\": [\"enlist\", \"membership\"],\n \"⍷\": [null, \"find\"],\n \"∪\": [\"unique\", \"union\"],\n \"∩\": [null, \"intersection\"],\n \"∼\": [\"not\", \"without\"],\n \"∨\": [null, \"or\"],\n \"∧\": [null, \"and\"],\n \"⍱\": [null, \"nor\"],\n \"⍲\": [null, \"nand\"],\n \"⍴\": [\"shapeOf\", \"reshape\"],\n \",\": [\"ravel\", \"catenate\"],\n \"⍪\": [null, \"firstAxisCatenate\"],\n \"⌽\": [\"reverse\", \"rotate\"],\n \"⊖\": [\"axis1Reverse\", \"axis1Rotate\"],\n \"⍉\": [\"transpose\", null],\n \"↑\": [\"first\", \"take\"],\n \"↓\": [null, \"drop\"],\n \"⊂\": [\"enclose\", \"partitionWithAxis\"],\n \"⊃\": [\"diclose\", \"pick\"],\n \"⌷\": [null, \"index\"],\n \"⍋\": [\"gradeUp\", null],\n \"⍒\": [\"gradeDown\", null],\n \"⊤\": [\"encode\", null],\n \"⊥\": [\"decode\", null],\n \"⍕\": [\"format\", \"formatByExample\"],\n \"⍎\": [\"execute\", null],\n \"⊣\": [\"stop\", \"left\"],\n \"⊢\": [\"pass\", \"right\"]\n};\n\nvar isOperator = /[\\.\\/⌿⍀¨⍣]/;\nvar isNiladic = /⍬/;\nvar isFunction = /[\\+−×÷⌈⌊∣⍳\\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;\nvar isArrow = /←/;\nvar isComment = /[⍝#].*$/;\n\nvar stringEater = function(type) {\n var prev;\n prev = false;\n return function(c) {\n prev = c;\n if (c === type) {\n return prev === \"\\\\\";\n }\n return true;\n };\n};\n\nexport const apl = {\n name: \"apl\",\n startState: function() {\n return {\n prev: false,\n func: false,\n op: false,\n string: false,\n escape: false\n };\n },\n token: function(stream, state) {\n var ch;\n if (stream.eatSpace()) {\n return null;\n }\n ch = stream.next();\n if (ch === '\"' || ch === \"'\") {\n stream.eatWhile(stringEater(ch));\n stream.next();\n state.prev = true;\n return \"string\";\n }\n if (/[\\[{\\(]/.test(ch)) {\n state.prev = false;\n return null;\n }\n if (/[\\]}\\)]/.test(ch)) {\n state.prev = true;\n return null;\n }\n if (isNiladic.test(ch)) {\n state.prev = false;\n return \"atom\";\n }\n if (/[¯\\d]/.test(ch)) {\n if (state.func) {\n state.func = false;\n state.prev = false;\n } else {\n state.prev = true;\n }\n stream.eatWhile(/[\\w\\.]/);\n return \"number\";\n }\n if (isOperator.test(ch)) {\n return \"operator\"\n }\n if (isArrow.test(ch)) {\n return \"operator\";\n }\n if (isFunction.test(ch)) {\n state.func = true;\n state.prev = false;\n return builtInFuncs[ch] ? \"variableName.function.standard\" : \"variableName.function\"\n }\n if (isComment.test(ch)) {\n stream.skipToEnd();\n return \"comment\";\n }\n if (ch === \"∘\" && stream.peek() === \".\") {\n stream.next();\n return \"variableName.function\";\n }\n stream.eatWhile(/[\\w\\$_]/);\n state.prev = true;\n return \"keyword\";\n }\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
function errorIfNotEmpty(stream) {
|
|
2
|
+
var nonWS = stream.match(/^\s*\S/);
|
|
3
|
+
stream.skipToEnd();
|
|
4
|
+
return nonWS ? "error" : null;
|
|
5
|
+
}
|
|
6
|
+
const asciiArmor = {
|
|
7
|
+
name: "asciiarmor",
|
|
8
|
+
token: function(stream, state) {
|
|
9
|
+
var m;
|
|
10
|
+
if (state.state == "top") {
|
|
11
|
+
if (stream.sol() && (m = stream.match(/^-----BEGIN (.*)?-----\s*$/))) {
|
|
12
|
+
state.state = "headers";
|
|
13
|
+
state.type = m[1];
|
|
14
|
+
return "tag";
|
|
15
|
+
}
|
|
16
|
+
return errorIfNotEmpty(stream);
|
|
17
|
+
} else if (state.state == "headers") {
|
|
18
|
+
if (stream.sol() && stream.match(/^\w+:/)) {
|
|
19
|
+
state.state = "header";
|
|
20
|
+
return "atom";
|
|
21
|
+
} else {
|
|
22
|
+
var result = errorIfNotEmpty(stream);
|
|
23
|
+
if (result) state.state = "body";
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
} else if (state.state == "header") {
|
|
27
|
+
stream.skipToEnd();
|
|
28
|
+
state.state = "headers";
|
|
29
|
+
return "string";
|
|
30
|
+
} else if (state.state == "body") {
|
|
31
|
+
if (stream.sol() && (m = stream.match(/^-----END (.*)?-----\s*$/))) {
|
|
32
|
+
if (m[1] != state.type) return "error";
|
|
33
|
+
state.state = "end";
|
|
34
|
+
return "tag";
|
|
35
|
+
} else {
|
|
36
|
+
if (stream.eatWhile(/[A-Za-z0-9+\/=]/)) {
|
|
37
|
+
return null;
|
|
38
|
+
} else {
|
|
39
|
+
stream.next();
|
|
40
|
+
return "error";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
} else if (state.state == "end") {
|
|
44
|
+
return errorIfNotEmpty(stream);
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
blankLine: function(state) {
|
|
48
|
+
if (state.state == "headers") state.state = "body";
|
|
49
|
+
},
|
|
50
|
+
startState: function() {
|
|
51
|
+
return { state: "top", type: null };
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
export {
|
|
55
|
+
asciiArmor
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=asciiarmor-DucZyvP0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asciiarmor-DucZyvP0.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/asciiarmor.js"],"sourcesContent":["function errorIfNotEmpty(stream) {\n var nonWS = stream.match(/^\\s*\\S/);\n stream.skipToEnd();\n return nonWS ? \"error\" : null;\n}\n\nexport const asciiArmor = {\n name: \"asciiarmor\",\n token: function(stream, state) {\n var m;\n if (state.state == \"top\") {\n if (stream.sol() && (m = stream.match(/^-----BEGIN (.*)?-----\\s*$/))) {\n state.state = \"headers\";\n state.type = m[1];\n return \"tag\";\n }\n return errorIfNotEmpty(stream);\n } else if (state.state == \"headers\") {\n if (stream.sol() && stream.match(/^\\w+:/)) {\n state.state = \"header\";\n return \"atom\";\n } else {\n var result = errorIfNotEmpty(stream);\n if (result) state.state = \"body\";\n return result;\n }\n } else if (state.state == \"header\") {\n stream.skipToEnd();\n state.state = \"headers\";\n return \"string\";\n } else if (state.state == \"body\") {\n if (stream.sol() && (m = stream.match(/^-----END (.*)?-----\\s*$/))) {\n if (m[1] != state.type) return \"error\";\n state.state = \"end\";\n return \"tag\";\n } else {\n if (stream.eatWhile(/[A-Za-z0-9+\\/=]/)) {\n return null;\n } else {\n stream.next();\n return \"error\";\n }\n }\n } else if (state.state == \"end\") {\n return errorIfNotEmpty(stream);\n }\n },\n blankLine: function(state) {\n if (state.state == \"headers\") state.state = \"body\";\n },\n startState: function() {\n return {state: \"top\", type: null};\n }\n};\n"],"names":[],"mappings":"AAAA,SAAS,gBAAgB,QAAQ;AAC/B,MAAI,QAAQ,OAAO,MAAM,QAAQ;AACjC,SAAO,UAAS;AAChB,SAAO,QAAQ,UAAU;AAC3B;AAEY,MAAC,aAAa;AAAA,EACxB,MAAM;AAAA,EACN,OAAO,SAAS,QAAQ,OAAO;AAC7B,QAAI;AACJ,QAAI,MAAM,SAAS,OAAO;AACxB,UAAI,OAAO,UAAU,IAAI,OAAO,MAAM,4BAA4B,IAAI;AACpE,cAAM,QAAQ;AACd,cAAM,OAAO,EAAE,CAAC;AAChB,eAAO;AAAA,MACT;AACA,aAAO,gBAAgB,MAAM;AAAA,IAC/B,WAAW,MAAM,SAAS,WAAW;AACnC,UAAI,OAAO,IAAG,KAAM,OAAO,MAAM,OAAO,GAAG;AACzC,cAAM,QAAQ;AACd,eAAO;AAAA,MACT,OAAO;AACL,YAAI,SAAS,gBAAgB,MAAM;AACnC,YAAI,OAAQ,OAAM,QAAQ;AAC1B,eAAO;AAAA,MACT;AAAA,IACF,WAAW,MAAM,SAAS,UAAU;AAClC,aAAO,UAAS;AAChB,YAAM,QAAQ;AACd,aAAO;AAAA,IACT,WAAW,MAAM,SAAS,QAAQ;AAChC,UAAI,OAAO,UAAU,IAAI,OAAO,MAAM,0BAA0B,IAAI;AAClE,YAAI,EAAE,CAAC,KAAK,MAAM,KAAM,QAAO;AAC/B,cAAM,QAAQ;AACd,eAAO;AAAA,MACT,OAAO;AACL,YAAI,OAAO,SAAS,iBAAiB,GAAG;AACtC,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO,KAAI;AACX,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,WAAW,MAAM,SAAS,OAAO;AAC/B,aAAO,gBAAgB,MAAM;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,WAAW,SAAS,OAAO;AACzB,QAAI,MAAM,SAAS,UAAW,OAAM,QAAQ;AAAA,EAC9C;AAAA,EACA,YAAY,WAAW;AACrB,WAAO,EAAC,OAAO,OAAO,MAAM,KAAI;AAAA,EAClC;AACF;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,145 @@
|
|
|
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
|
+
const defaults = {
|
|
7
|
+
keywords: words("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS MINACCESS MAXACCESS REVISION STATUS DESCRIPTION SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY IMPLIED EXPORTS"),
|
|
8
|
+
cmipVerbs: words("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),
|
|
9
|
+
compareTypes: words("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL TEXTUAL-CONVENTION"),
|
|
10
|
+
status: words("current deprecated mandatory obsolete"),
|
|
11
|
+
tags: words("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS UNIVERSAL"),
|
|
12
|
+
storage: words("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING UTCTime InterfaceIndex IANAifType CMIP-Attribute REAL PACKAGE PACKAGES IpAddress PhysAddress NetworkAddress BITS BMPString TimeStamp TimeTicks TruthValue RowStatus DisplayString GeneralString GraphicString IA5String NumericString PrintableString SnmpAdminString TeletexString UTF8String VideotexString VisibleString StringStore ISO646String T61String UniversalString Unsigned32 Integer32 Gauge Gauge32 Counter Counter32 Counter64"),
|
|
13
|
+
modifier: words("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS DEFINED"),
|
|
14
|
+
accessTypes: words("not-accessible accessible-for-notify read-only read-create read-write"),
|
|
15
|
+
multiLineStrings: true
|
|
16
|
+
};
|
|
17
|
+
function asn1(parserConfig) {
|
|
18
|
+
var keywords = parserConfig.keywords || defaults.keywords, cmipVerbs = parserConfig.cmipVerbs || defaults.cmipVerbs, compareTypes = parserConfig.compareTypes || defaults.compareTypes, status = parserConfig.status || defaults.status, tags = parserConfig.tags || defaults.tags, storage = parserConfig.storage || defaults.storage, modifier = parserConfig.modifier || defaults.modifier, accessTypes = parserConfig.accessTypes || defaults.accessTypes;
|
|
19
|
+
parserConfig.multiLineStrings || defaults.multiLineStrings;
|
|
20
|
+
var indentStatements = parserConfig.indentStatements !== false;
|
|
21
|
+
var isOperatorChar = /[\|\^]/;
|
|
22
|
+
var curPunc;
|
|
23
|
+
function tokenBase(stream, state) {
|
|
24
|
+
var ch = stream.next();
|
|
25
|
+
if (ch == '"' || ch == "'") {
|
|
26
|
+
state.tokenize = tokenString(ch);
|
|
27
|
+
return state.tokenize(stream, state);
|
|
28
|
+
}
|
|
29
|
+
if (/[\[\]\(\){}:=,;]/.test(ch)) {
|
|
30
|
+
curPunc = ch;
|
|
31
|
+
return "punctuation";
|
|
32
|
+
}
|
|
33
|
+
if (ch == "-") {
|
|
34
|
+
if (stream.eat("-")) {
|
|
35
|
+
stream.skipToEnd();
|
|
36
|
+
return "comment";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (/\d/.test(ch)) {
|
|
40
|
+
stream.eatWhile(/[\w\.]/);
|
|
41
|
+
return "number";
|
|
42
|
+
}
|
|
43
|
+
if (isOperatorChar.test(ch)) {
|
|
44
|
+
stream.eatWhile(isOperatorChar);
|
|
45
|
+
return "operator";
|
|
46
|
+
}
|
|
47
|
+
stream.eatWhile(/[\w\-]/);
|
|
48
|
+
var cur = stream.current();
|
|
49
|
+
if (keywords.propertyIsEnumerable(cur)) return "keyword";
|
|
50
|
+
if (cmipVerbs.propertyIsEnumerable(cur)) return "variableName";
|
|
51
|
+
if (compareTypes.propertyIsEnumerable(cur)) return "atom";
|
|
52
|
+
if (status.propertyIsEnumerable(cur)) return "comment";
|
|
53
|
+
if (tags.propertyIsEnumerable(cur)) return "typeName";
|
|
54
|
+
if (storage.propertyIsEnumerable(cur)) return "modifier";
|
|
55
|
+
if (modifier.propertyIsEnumerable(cur)) return "modifier";
|
|
56
|
+
if (accessTypes.propertyIsEnumerable(cur)) return "modifier";
|
|
57
|
+
return "variableName";
|
|
58
|
+
}
|
|
59
|
+
function tokenString(quote) {
|
|
60
|
+
return function(stream, state) {
|
|
61
|
+
var escaped = false, next, end = false;
|
|
62
|
+
while ((next = stream.next()) != null) {
|
|
63
|
+
if (next == quote && !escaped) {
|
|
64
|
+
var afterNext = stream.peek();
|
|
65
|
+
if (afterNext) {
|
|
66
|
+
afterNext = afterNext.toLowerCase();
|
|
67
|
+
if (afterNext == "b" || afterNext == "h" || afterNext == "o")
|
|
68
|
+
stream.next();
|
|
69
|
+
}
|
|
70
|
+
end = true;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
escaped = !escaped && next == "\\";
|
|
74
|
+
}
|
|
75
|
+
if (end || false)
|
|
76
|
+
state.tokenize = null;
|
|
77
|
+
return "string";
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function Context(indented, column, type, align, prev) {
|
|
81
|
+
this.indented = indented;
|
|
82
|
+
this.column = column;
|
|
83
|
+
this.type = type;
|
|
84
|
+
this.align = align;
|
|
85
|
+
this.prev = prev;
|
|
86
|
+
}
|
|
87
|
+
function pushContext(state, col, type) {
|
|
88
|
+
var indent = state.indented;
|
|
89
|
+
if (state.context && state.context.type == "statement")
|
|
90
|
+
indent = state.context.indented;
|
|
91
|
+
return state.context = new Context(indent, col, type, null, state.context);
|
|
92
|
+
}
|
|
93
|
+
function popContext(state) {
|
|
94
|
+
var t = state.context.type;
|
|
95
|
+
if (t == ")" || t == "]" || t == "}")
|
|
96
|
+
state.indented = state.context.indented;
|
|
97
|
+
return state.context = state.context.prev;
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
name: "asn1",
|
|
101
|
+
startState: function() {
|
|
102
|
+
return {
|
|
103
|
+
tokenize: null,
|
|
104
|
+
context: new Context(-2, 0, "top", false),
|
|
105
|
+
indented: 0,
|
|
106
|
+
startOfLine: true
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
token: function(stream, state) {
|
|
110
|
+
var ctx = state.context;
|
|
111
|
+
if (stream.sol()) {
|
|
112
|
+
if (ctx.align == null) ctx.align = false;
|
|
113
|
+
state.indented = stream.indentation();
|
|
114
|
+
state.startOfLine = true;
|
|
115
|
+
}
|
|
116
|
+
if (stream.eatSpace()) return null;
|
|
117
|
+
curPunc = null;
|
|
118
|
+
var style = (state.tokenize || tokenBase)(stream, state);
|
|
119
|
+
if (style == "comment") return style;
|
|
120
|
+
if (ctx.align == null) ctx.align = true;
|
|
121
|
+
if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") {
|
|
122
|
+
popContext(state);
|
|
123
|
+
} else if (curPunc == "{") pushContext(state, stream.column(), "}");
|
|
124
|
+
else if (curPunc == "[") pushContext(state, stream.column(), "]");
|
|
125
|
+
else if (curPunc == "(") pushContext(state, stream.column(), ")");
|
|
126
|
+
else if (curPunc == "}") {
|
|
127
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
128
|
+
if (ctx.type == "}") ctx = popContext(state);
|
|
129
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
130
|
+
} else if (curPunc == ctx.type) popContext(state);
|
|
131
|
+
else if (indentStatements && ((ctx.type == "}" || ctx.type == "top") && curPunc != ";" || ctx.type == "statement" && curPunc == "newstatement"))
|
|
132
|
+
pushContext(state, stream.column(), "statement");
|
|
133
|
+
state.startOfLine = false;
|
|
134
|
+
return style;
|
|
135
|
+
},
|
|
136
|
+
languageData: {
|
|
137
|
+
indentOnInput: /^\s*[{}]$/,
|
|
138
|
+
commentTokens: { line: "--" }
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
export {
|
|
143
|
+
asn1
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=asn1-BnOEsgAm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asn1-BnOEsgAm.js","sources":["../../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.2/node_modules/@codemirror/legacy-modes/mode/asn1.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\nconst defaults = {\n keywords: words(\"DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION\" +\n \" REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED\" +\n \" WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN\" +\n \" IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS\" +\n \" MINACCESS MAXACCESS REVISION STATUS DESCRIPTION\" +\n \" SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName\" +\n \" ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY\" +\n \" IMPLIED EXPORTS\"),\n cmipVerbs: words(\"ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE\"),\n compareTypes: words(\"OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY\" +\n \" MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY\" +\n \" OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL\" +\n \" SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL\" +\n \" TEXTUAL-CONVENTION\"),\n status: words(\"current deprecated mandatory obsolete\"),\n tags: words(\"APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS\" +\n \" UNIVERSAL\"),\n storage: words(\"BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING\" +\n \" UTCTime InterfaceIndex IANAifType CMIP-Attribute\" +\n \" REAL PACKAGE PACKAGES IpAddress PhysAddress\" +\n \" NetworkAddress BITS BMPString TimeStamp TimeTicks\" +\n \" TruthValue RowStatus DisplayString GeneralString\" +\n \" GraphicString IA5String NumericString\" +\n \" PrintableString SnmpAdminString TeletexString\" +\n \" UTF8String VideotexString VisibleString StringStore\" +\n \" ISO646String T61String UniversalString Unsigned32\" +\n \" Integer32 Gauge Gauge32 Counter Counter32 Counter64\"),\n modifier: words(\"ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS\" +\n \" GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS\" +\n \" DEFINED\"),\n accessTypes: words(\"not-accessible accessible-for-notify read-only\" +\n \" read-create read-write\"),\n multiLineStrings: true\n}\n\nexport function asn1(parserConfig) {\n var keywords = parserConfig.keywords || defaults.keywords,\n cmipVerbs = parserConfig.cmipVerbs || defaults.cmipVerbs,\n compareTypes = parserConfig.compareTypes || defaults.compareTypes,\n status = parserConfig.status || defaults.status,\n tags = parserConfig.tags || defaults.tags,\n storage = parserConfig.storage || defaults.storage,\n modifier = parserConfig.modifier || defaults.modifier,\n accessTypes = parserConfig.accessTypes|| defaults.accessTypes,\n multiLineStrings = parserConfig.multiLineStrings || defaults.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false;\n var isOperatorChar = /[\\|\\^]/;\n var curPunc;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (/[\\[\\]\\(\\){}:=,;]/.test(ch)) {\n curPunc = ch;\n return \"punctuation\";\n }\n if (ch == \"-\"){\n if (stream.eat(\"-\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/[\\w\\.]/);\n return \"number\";\n }\n if (isOperatorChar.test(ch)) {\n stream.eatWhile(isOperatorChar);\n return \"operator\";\n }\n\n stream.eatWhile(/[\\w\\-]/);\n var cur = stream.current();\n if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n if (cmipVerbs.propertyIsEnumerable(cur)) return \"variableName\";\n if (compareTypes.propertyIsEnumerable(cur)) return \"atom\";\n if (status.propertyIsEnumerable(cur)) return \"comment\";\n if (tags.propertyIsEnumerable(cur)) return \"typeName\";\n if (storage.propertyIsEnumerable(cur)) return \"modifier\";\n if (modifier.propertyIsEnumerable(cur)) return \"modifier\";\n if (accessTypes.propertyIsEnumerable(cur)) return \"modifier\";\n\n return \"variableName\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped){\n var afterNext = stream.peek();\n //look if the character if the quote is like the B in '10100010'B\n if (afterNext){\n afterNext = afterNext.toLowerCase();\n if(afterNext == \"b\" || afterNext == \"h\" || afterNext == \"o\")\n stream.next();\n }\n end = true; break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n }\n function pushContext(state, col, type) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, null, state.context);\n }\n function popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n }\n\n //Interface\n return {\n name: \"asn1\",\n startState: function() {\n return {\n tokenize: null,\n context: new Context(-2, 0, \"top\", false),\n indented: 0,\n startOfLine: true\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\")\n && ctx.type == \"statement\"){\n popContext(state);\n }\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements && (((ctx.type == \"}\" || ctx.type == \"top\")\n && curPunc != ';') || (ctx.type == \"statement\"\n && curPunc == \"newstatement\")))\n pushContext(state, stream.column(), \"statement\");\n\n state.startOfLine = false;\n return style;\n },\n\n languageData: {\n indentOnInput: /^\\s*[{}]$/,\n commentTokens: {line: \"--\"}\n }\n };\n};\n"],"names":["words"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
(function() {
|
|
2
2
|
"use strict";
|
|
3
|
-
/**
|
|
4
|
-
* @license
|
|
5
|
-
* Copyright 2019 Google LLC
|
|
6
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
-
*/
|
|
8
3
|
const proxyMarker = Symbol("Comlink.proxy");
|
|
9
4
|
const createEndpoint = Symbol("Comlink.endpoint");
|
|
10
5
|
const releaseProxy = Symbol("Comlink.releaseProxy");
|
|
@@ -595,4 +590,4 @@
|
|
|
595
590
|
return contents;
|
|
596
591
|
}
|
|
597
592
|
})();
|
|
598
|
-
//# sourceMappingURL=tar-worker-
|
|
593
|
+
//# sourceMappingURL=tar-worker-CxTcoQcr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tar-worker-kdkltuRC.js","sources":["../../../node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/esm/comlink.mjs","../../../node_modules/.pnpm/tarparser@0.0.5/node_modules/tarparser/lib/index.js","../src/utils.js","../src/cache.js","../../../node_modules/.pnpm/package-name-regex@4.0.3/node_modules/package-name-regex/dist/index.js","../src/npm.js","../src/tar-worker.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","const BLOCK_SIZE = 512;\nconst FILE_TYPE = {\n\tGZIP: \"GZIP\",\n\tGZIP2: \"GZIP2\",\n\tTAR: \"TAR\",\n\tPLAIN: \"PLAIN\",\n};\n\n/**\n * @typedef FileDescription\n * @property {string} name - The name of the file.\n * @property {\"file\"|\"directory\"|number} type - The type of the file, either \"file\" or \"directory\".\n * @property {number} size - The size of the file in bytes.\n * @property {Uint8Array} data - The binary data of the file content.\n * @property {string} text - A getter to decode and return the file content as a UTF-8 string.\n * @property {FileAttrs} attrs - file attributes\n */\n\n/**\n * @typedef FileAttrs\n * @property {string} mode - The file permissions in octal format.\n * @property {number} uid - User ID of the file owner.\n * @property {number} gid - Group ID of the file owner.\n * @property {number} mtime - Last modification time in Unix time format.\n * @property {string} user - The username of the file owner.\n * @property {string} group - The group name of the file owner.\n */\n\n/**\n * Parses a tar file from binary data and returns an array of FileDescription objects.\n * @param {ArrayBuffer|Uint8Array} data - The binary data of the tar file.\n * @returns {Promise<FileDescription[]>} - An array of FileDescription objects representing the parsed files in the tar archive.\n */\nexport async function parseTar(data) {\n\tlet buffer = /** @type {Uint8Array} */ (data).buffer || /** @type {ArrayBuffer} */ (data);\n\n\tconst ftype = checkFileType(buffer);\n\tif (ftype != FILE_TYPE.GZIP && ftype != FILE_TYPE.TAR) {\n\t\tthrow new Error(\"The file format should be tar.gz or tar\");\n\t\treturn;\n\t}\n\n\tif (ftype == FILE_TYPE.GZIP) {\n\t\t// if the file is gzip we proceed to decompress the file and set that as the\n\t\t// new buffer to be process\n\t\tconst stream = new ReadableStream({\n\t\t\tstart(controller) {\n\t\t\t\tcontroller.enqueue(new Uint8Array(data));\n\t\t\t\tcontroller.close();\n\t\t\t},\n\t\t}).pipeThrough(new DecompressionStream(\"gzip\"));\n\n\t\tbuffer = await new Response(stream).arrayBuffer();\n\t\t// TODO: we should again check the buffer type to make sure is a tar inside the gzip\n\t}\n\n\t/** @type {FileDescription[]} */\n\tconst files = [];\n\tlet offset = 0;\n\n\t// TAR files consist of 512-byte blocks. Each file is preceded by a header block\n\t// followed by data blocks. The archive ends with two consecutive null blocks.\n\twhile (offset < buffer.byteLength - BLOCK_SIZE) {\n\t\t// File name (100 bytes, null-terminated string)\n\t\t// In POSIX ustar format, this field stores the file name for short names\n\t\t// or a prefix for long names\n\t\tlet name = readString(buffer, offset, 100);\n\t\tif (name.length === 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\t// In case is a long name we need to added to the name\n\t\tconst prefix = readString(buffer, offset + 345, 155);\n\t\tif (prefix) {\n\t\t\tname = `${prefix}${name}`;\n\t\t}\n\n\t\t// File mode (8 bytes, octal number stored as ASCII)\n\t\t// This represents the file permissions in octal format\n\t\tconst mode = readString(buffer, offset + 100, 8);\n\n\t\t// File uid (8 bytes, octal number stored as ASCII)\n\t\t// User ID of the file owner\n\t\tconst uid = Number.parseInt(readString(buffer, offset + 108, 8));\n\n\t\t// File gid (8 bytes, octal number stored as ASCII)\n\t\t// Group ID of the file owner\n\t\tconst gid = Number.parseInt(readString(buffer, offset + 116, 8));\n\n\t\t// File size (12 bytes, octal number stored as ASCII)\n\t\t// Size of the file in bytes\n\t\tconst size = readNumber(buffer, offset + 124, 12);\n\n\t\t// File mtime (12 bytes, octal number stored as ASCII)\n\t\t// Last modification time in Unix time format\n\t\tconst mtime = readNumber(buffer, offset + 136, 12);\n\n\t\t// File type flag (1 byte)\n\t\t// 0 or '\\0': normal file\n\t\t// 5: directory\n\t\t// Other values represent special file types (e.g., symbolic links)\n\t\tconst _type = readNumber(buffer, offset + 156, 1);\n\t\tconst type = _type === 0 ? \"file\" : _type === 5 ? \"directory\" : _type;\n\n\t\t// File owner username (32 bytes, null-terminated string)\n\t\t// Present in POSIX ustar format\n\t\tconst user = readString(buffer, offset + 265, 32);\n\n\t\t// File owner group name (32 bytes, null-terminated string)\n\t\t// Present in POSIX ustar format\n\t\tconst group = readString(buffer, offset + 297, 32);\n\n\t\t// Where the file content start in order to read the file data\n\t\tconst fileStart = offset + BLOCK_SIZE;\n\n\t\t// File data\n\t\t// For regular files, this contains the file contents\n\t\t// For directories, this is empty (size should be 0)\n\t\tconst data = new Uint8Array(buffer, fileStart, size);\n\n\t\tfiles.push({\n\t\t\tname,\n\t\t\ttype,\n\t\t\tsize,\n\t\t\tdata,\n\t\t\tget text() {\n\t\t\t\treturn new TextDecoder().decode(this.data);\n\t\t\t},\n\t\t\tattrs: {\n\t\t\t\tmode,\n\t\t\t\tuid,\n\t\t\t\tgid,\n\t\t\t\tmtime,\n\t\t\t\tuser,\n\t\t\t\tgroup,\n\t\t\t},\n\t\t});\n\n\t\t// Move to the next file\n\t\t// The offset is increased by:\n\t\t// 1. 512 bytes for the header\n\t\t// 2. The file size rounded up to the nearest 512 bytes\n\t\toffset += 512 + 512 * Math.trunc(size / 512);\n\t\tif (size % 512) {\n\t\t\toffset += 512;\n\t\t}\n\t}\n\n\treturn files;\n}\n\n/**\n * checkFileType function to check file type using a buffer\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the file.\n * @returns {string} - The type of the file as defined in FILE_TYPE object.\n */\nfunction checkFileType(buffer) {\n\t// Read the first 2 bytes (for gzip check)\n\tlet bytes = readBytes(buffer, 0, 2);\n\tif (bufferToHex(bytes) === \"1f8b\") {\n\t\treturn FILE_TYPE.GZIP;\n\t}\n\n\t// Read the first 5 bytes (for bzip2 check)\n\tbytes = readBytes(buffer, 0, 5);\n\tif (bufferToHex(bytes) === \"425a683931\") {\n\t\treturn FILE_TYPE.GZIP2;\n\t}\n\n\t// Read 5 bytes starting at offset 257 (for tar check)\n\tbytes = readBytes(buffer, 257, 5);\n\tif (bufferToHex(bytes) === \"7573746172\") {\n\t\treturn FILE_TYPE.TAR;\n\t}\n\n\treturn FILE_TYPE.PLAIN;\n}\n\n/**\n * Reads a null-terminated string from a buffer at a specified offset and size.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the buffer.\n * @param {number} offset - The starting offset in the buffer.\n * @param {number} size - The number of bytes to read.\n * @returns {string} - The string read from the buffer.\n */\nfunction readString(buffer, offset, size) {\n\tconst view = new Uint8Array(buffer, offset, size);\n\tconst i = view.indexOf(0);\n\tconst td = new TextDecoder();\n\treturn td.decode(view.slice(0, i));\n}\n\n/**\n * Reads an 8-bit number from a buffer at a specified offset and size.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the buffer.\n * @param {number} offset - The starting offset in the buffer.\n * @param {number} size - The number of bytes to read (must be 12 for mtime).\n * @returns {number} - The numeric value read from the buffer.\n */\nfunction readNumber(buffer, offset, size) {\n\tconst view = new Uint8Array(buffer, offset, size);\n\tlet str = \"\";\n\tfor (let i = 0; i < size; i++) {\n\t\tstr += String.fromCodePoint(view[i]);\n\t}\n\treturn Number.parseInt(str, 8);\n}\n\n/**\n * Reads specific bytes from a buffer.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the buffer.\n * @param {number} start - The starting offset in the buffer.\n * @param {number} length - The number of bytes to read.\n * @returns {ArrayBuffer|Uint8Array} - A view into the Buffer containing the specified bytes.\n */\nfunction readBytes(buffer, start, length) {\n\treturn buffer.slice(start, start + length);\n}\n\n/**\n * Converts a buffer to a hex string representation.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data buffer.\n * @returns {string} - A hexadecimal string representing the buffer contents.\n */\nfunction bufferToHex(buffer) {\n\tconst uint8Array = new Uint8Array(buffer);\n\tlet hexString = \"\";\n\n\tfor (let i = 0; i < uint8Array.length; i++) {\n\t\thexString += uint8Array[i].toString(16).padStart(2, \"0\");\n\t}\n\n\treturn hexString;\n}\n","/**\n * @param {string} message\n * @param {unknown} test\n * @returns {asserts test}\n */\nexport function assert(message, test) {\n if (!test) {\n throw new Error(message);\n }\n}\n\nlet i = 0;\n\nexport function nextId() {\n i += 1;\n\n return `repl_${i}`;\n}\n\nexport const fakeDomain = 'repl.sdk';\nexport const tgzPrefix = 'file:///tgz.repl.sdk/';\nexport const unzippedPrefix = 'file:///tgz.repl.sdk/unzipped';\n\n/**\n * @param {string} url\n */\nexport function prefix_tgz(url) {\n return `${tgzPrefix}${url}`;\n}\n\n/**\n * @param {unknown} x\n * @returns {x is Record<string, unknown>}\n */\nexport function isRecord(x) {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\n","import { assert } from './utils.js';\n\nexport const secretKey = '__repl-sdk__compiler__';\n\n/**\n * @typedef {object} ResolveIdValue\n * @property {string} name\n * @property {string} version\n * @property {import('./types.ts').RequestAnswer} path\n *\n * @typedef {import('./request.js').Request} Request\n *\n * @typedef {typeof globalThis & { [secret]?: {\n * requestCache?: Map<string, Request>,\n * resolveId?: Map<string, ResolveIdValue>,\n * tarballs?: Map<string, import('./types.ts').UntarredPackage>,\n * resolves?: { [modulePath: string]: unknown },\n * promiseCache?: Map<string, Promise<unknown>>,\n * fileCache?: Map<string, { code: string, ext: string }>\n * caches?: Caches\n * } }} ExtendedWindow\n */\nconst secret = Symbol.for(secretKey);\n\nfunction getGlobal() {\n const global = /** @type {ExtendedWindow} */ (globalThis);\n\n return global;\n}\n\nassert(\n `There is already an instance of repl-sdk, and there can only be one. Make sure that your dependency graph is correct.`,\n !getGlobal()[secret]\n);\n\nclass Caches {\n clear() {\n delete getGlobal()[secret];\n }\n\n /**\n * Cache of resolved modulePaths to their module \"value\"\n *\n * @type {{ [modulePath: string]: unknown }}\n */\n get resolves() {\n this.#root.resolves ||= {};\n\n return this.#root.resolves;\n }\n\n /**\n * Cache of untarred tarballs\n *\n * @type {Map<string, import('./types.ts').UntarredPackage>}\n */\n get tarballs() {\n this.#root.tarballs ||= new Map();\n\n return this.#root.tarballs;\n }\n\n /**\n * Cache of request resolutions\n *\n * @type {Map<string, ResolveIdValue>}\n */\n get resolveId() {\n this.#root.resolveId ||= new Map();\n\n return this.#root.resolveId;\n }\n\n /**\n * Cache of request Key to file content string\n *\n * @type {Map<string, { code: string, ext: string }>}\n */\n get fileCache() {\n this.#root.fileCache ||= new Map();\n\n return this.#root.fileCache;\n }\n\n /**\n * For any key, store a promise for resolving later\n *\n * @type {Map<string, Promise<unknown>>}\n */\n get promiseCache() {\n this.#root.promiseCache ||= new Map();\n\n return this.#root.promiseCache;\n }\n\n /**\n * @template Return\n * @type {(key: string, callback: () => Promise<any>) => Promise<any>}\n */\n cachedPromise(key, callback) {\n const existing = this.promiseCache.get(key);\n\n if (existing) {\n return /** @type {Promise<Return>} */ (existing);\n }\n\n const promise = callback();\n\n this.promiseCache.set(key, promise);\n\n return promise;\n }\n\n get requestCache() {\n this.#root.requestCache ||= new Map();\n\n return this.#root.requestCache;\n }\n\n get #root() {\n const global = getGlobal();\n\n global[secret] ||= {};\n global[secret].caches ||= this;\n\n return global[secret];\n }\n}\n\nexport function deleteCache() {\n if (!getGlobal()?.[secret]) {\n return;\n }\n\n delete getGlobal()[secret];\n}\n\nexport const cache = new Caches();\n","export const packageNameRegex = /^(@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*$/;\nexport default packageNameRegex;","import packageNameRegex from 'package-name-regex';\n\nimport { cache } from './cache.js';\nimport { assert } from './utils.js';\n\n/**\n * @type {Map<string, unknown>} namp@version => manifest\n */\nconst npmInfoCache = new Map();\n\n/**\n * @param {string} name\n * @param {string} version\n */\nexport async function getNPMInfo(name, version) {\n const key = `${name}@${version}`;\n\n assert(`Must pass valid npm-compatible package name`, packageNameRegex.test(name));\n\n const existing = npmInfoCache.get(key);\n\n if (existing) {\n return existing;\n }\n\n return cache.cachedPromise(`getNPMInfo:${key}`, async () => {\n assert(`Cannot get data from NPM without specifying the name of the package`, name);\n assert(`Version is required. It may be 'latest'`, version);\n\n const response = await fetch(`https://registry.npmjs.org/${name}`);\n const json = await response.json();\n\n npmInfoCache.set(key, json);\n\n return json;\n });\n}\n\n/**\n * @param {any} npmInfo\n * @param {string} requestedVersion\n */\nexport async function getTarUrl(npmInfo, requestedVersion) {\n const json = npmInfo;\n\n if (json.error) {\n throw new Error(json.error);\n }\n\n const tag =\n requestedVersion in json['dist-tags']\n ? json['dist-tags'][requestedVersion]\n : (requestedVersion ?? json['dist-tags'].latest);\n\n const requested = json.versions[tag];\n\n return requested.dist.tarball;\n}\n","import { expose } from 'comlink';\nimport { parseTar } from 'tarparser';\n\nimport { cache } from './cache.js';\nimport { getNPMInfo, getTarUrl } from './npm.js';\n\nconst obj = { getTar };\n\nexpose(obj);\n\n/**\n * @param {string} name of the package\n * @param {string} requestedVersion version or tag to fetch the package at\n */\nasync function getTar(name, requestedVersion) {\n const key = `${name}@${requestedVersion}`;\n const untarred = cache.tarballs.get(key);\n\n if (untarred) {\n return untarred;\n }\n\n const contents = await cache.cachedPromise(`getTar:${key}`, async () => {\n const json = await getNPMInfo(name, requestedVersion);\n const tgzUrl = await getTarUrl(json, requestedVersion);\n\n const response = await fetch(tgzUrl, {\n headers: {\n ACCEPT: 'application/octet-stream',\n },\n });\n\n return await untar(await response.arrayBuffer());\n });\n\n const manifest = JSON.parse(contents['package.json'].text);\n\n const info = /** @type {import('./types.ts').UntarredPackage}*/ ({ manifest, contents });\n\n cache.tarballs.set(key, info);\n\n return info;\n}\n\n/**\n * @param {ArrayBuffer} arrayBuffer\n */\nasync function untar(arrayBuffer) {\n /**\n * @type {{ [name: string]: import('tarparser').FileDescription }}\n */\n const contents = {};\n\n for (const file of await parseTar(arrayBuffer)) {\n if (file.type === 'file') {\n contents[file.name.slice(8)] = file; // remove `package/` prefix\n }\n }\n\n return contents;\n}\n"],"names":["obj","returnValue","proxy","data"],"mappings":"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","x_google_ignoreList":[0,1,4]}
|
|
1
|
+
{"version":3,"file":"tar-worker-CxTcoQcr.js","sources":["../../../node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/esm/comlink.mjs","../../../node_modules/.pnpm/tarparser@0.0.5/node_modules/tarparser/lib/index.js","../src/utils.js","../src/cache.js","../../../node_modules/.pnpm/package-name-regex@4.0.3/node_modules/package-name-regex/dist/index.js","../src/npm.js","../src/tar-worker.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","const BLOCK_SIZE = 512;\nconst FILE_TYPE = {\n\tGZIP: \"GZIP\",\n\tGZIP2: \"GZIP2\",\n\tTAR: \"TAR\",\n\tPLAIN: \"PLAIN\",\n};\n\n/**\n * @typedef FileDescription\n * @property {string} name - The name of the file.\n * @property {\"file\"|\"directory\"|number} type - The type of the file, either \"file\" or \"directory\".\n * @property {number} size - The size of the file in bytes.\n * @property {Uint8Array} data - The binary data of the file content.\n * @property {string} text - A getter to decode and return the file content as a UTF-8 string.\n * @property {FileAttrs} attrs - file attributes\n */\n\n/**\n * @typedef FileAttrs\n * @property {string} mode - The file permissions in octal format.\n * @property {number} uid - User ID of the file owner.\n * @property {number} gid - Group ID of the file owner.\n * @property {number} mtime - Last modification time in Unix time format.\n * @property {string} user - The username of the file owner.\n * @property {string} group - The group name of the file owner.\n */\n\n/**\n * Parses a tar file from binary data and returns an array of FileDescription objects.\n * @param {ArrayBuffer|Uint8Array} data - The binary data of the tar file.\n * @returns {Promise<FileDescription[]>} - An array of FileDescription objects representing the parsed files in the tar archive.\n */\nexport async function parseTar(data) {\n\tlet buffer = /** @type {Uint8Array} */ (data).buffer || /** @type {ArrayBuffer} */ (data);\n\n\tconst ftype = checkFileType(buffer);\n\tif (ftype != FILE_TYPE.GZIP && ftype != FILE_TYPE.TAR) {\n\t\tthrow new Error(\"The file format should be tar.gz or tar\");\n\t\treturn;\n\t}\n\n\tif (ftype == FILE_TYPE.GZIP) {\n\t\t// if the file is gzip we proceed to decompress the file and set that as the\n\t\t// new buffer to be process\n\t\tconst stream = new ReadableStream({\n\t\t\tstart(controller) {\n\t\t\t\tcontroller.enqueue(new Uint8Array(data));\n\t\t\t\tcontroller.close();\n\t\t\t},\n\t\t}).pipeThrough(new DecompressionStream(\"gzip\"));\n\n\t\tbuffer = await new Response(stream).arrayBuffer();\n\t\t// TODO: we should again check the buffer type to make sure is a tar inside the gzip\n\t}\n\n\t/** @type {FileDescription[]} */\n\tconst files = [];\n\tlet offset = 0;\n\n\t// TAR files consist of 512-byte blocks. Each file is preceded by a header block\n\t// followed by data blocks. The archive ends with two consecutive null blocks.\n\twhile (offset < buffer.byteLength - BLOCK_SIZE) {\n\t\t// File name (100 bytes, null-terminated string)\n\t\t// In POSIX ustar format, this field stores the file name for short names\n\t\t// or a prefix for long names\n\t\tlet name = readString(buffer, offset, 100);\n\t\tif (name.length === 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\t// In case is a long name we need to added to the name\n\t\tconst prefix = readString(buffer, offset + 345, 155);\n\t\tif (prefix) {\n\t\t\tname = `${prefix}${name}`;\n\t\t}\n\n\t\t// File mode (8 bytes, octal number stored as ASCII)\n\t\t// This represents the file permissions in octal format\n\t\tconst mode = readString(buffer, offset + 100, 8);\n\n\t\t// File uid (8 bytes, octal number stored as ASCII)\n\t\t// User ID of the file owner\n\t\tconst uid = Number.parseInt(readString(buffer, offset + 108, 8));\n\n\t\t// File gid (8 bytes, octal number stored as ASCII)\n\t\t// Group ID of the file owner\n\t\tconst gid = Number.parseInt(readString(buffer, offset + 116, 8));\n\n\t\t// File size (12 bytes, octal number stored as ASCII)\n\t\t// Size of the file in bytes\n\t\tconst size = readNumber(buffer, offset + 124, 12);\n\n\t\t// File mtime (12 bytes, octal number stored as ASCII)\n\t\t// Last modification time in Unix time format\n\t\tconst mtime = readNumber(buffer, offset + 136, 12);\n\n\t\t// File type flag (1 byte)\n\t\t// 0 or '\\0': normal file\n\t\t// 5: directory\n\t\t// Other values represent special file types (e.g., symbolic links)\n\t\tconst _type = readNumber(buffer, offset + 156, 1);\n\t\tconst type = _type === 0 ? \"file\" : _type === 5 ? \"directory\" : _type;\n\n\t\t// File owner username (32 bytes, null-terminated string)\n\t\t// Present in POSIX ustar format\n\t\tconst user = readString(buffer, offset + 265, 32);\n\n\t\t// File owner group name (32 bytes, null-terminated string)\n\t\t// Present in POSIX ustar format\n\t\tconst group = readString(buffer, offset + 297, 32);\n\n\t\t// Where the file content start in order to read the file data\n\t\tconst fileStart = offset + BLOCK_SIZE;\n\n\t\t// File data\n\t\t// For regular files, this contains the file contents\n\t\t// For directories, this is empty (size should be 0)\n\t\tconst data = new Uint8Array(buffer, fileStart, size);\n\n\t\tfiles.push({\n\t\t\tname,\n\t\t\ttype,\n\t\t\tsize,\n\t\t\tdata,\n\t\t\tget text() {\n\t\t\t\treturn new TextDecoder().decode(this.data);\n\t\t\t},\n\t\t\tattrs: {\n\t\t\t\tmode,\n\t\t\t\tuid,\n\t\t\t\tgid,\n\t\t\t\tmtime,\n\t\t\t\tuser,\n\t\t\t\tgroup,\n\t\t\t},\n\t\t});\n\n\t\t// Move to the next file\n\t\t// The offset is increased by:\n\t\t// 1. 512 bytes for the header\n\t\t// 2. The file size rounded up to the nearest 512 bytes\n\t\toffset += 512 + 512 * Math.trunc(size / 512);\n\t\tif (size % 512) {\n\t\t\toffset += 512;\n\t\t}\n\t}\n\n\treturn files;\n}\n\n/**\n * checkFileType function to check file type using a buffer\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the file.\n * @returns {string} - The type of the file as defined in FILE_TYPE object.\n */\nfunction checkFileType(buffer) {\n\t// Read the first 2 bytes (for gzip check)\n\tlet bytes = readBytes(buffer, 0, 2);\n\tif (bufferToHex(bytes) === \"1f8b\") {\n\t\treturn FILE_TYPE.GZIP;\n\t}\n\n\t// Read the first 5 bytes (for bzip2 check)\n\tbytes = readBytes(buffer, 0, 5);\n\tif (bufferToHex(bytes) === \"425a683931\") {\n\t\treturn FILE_TYPE.GZIP2;\n\t}\n\n\t// Read 5 bytes starting at offset 257 (for tar check)\n\tbytes = readBytes(buffer, 257, 5);\n\tif (bufferToHex(bytes) === \"7573746172\") {\n\t\treturn FILE_TYPE.TAR;\n\t}\n\n\treturn FILE_TYPE.PLAIN;\n}\n\n/**\n * Reads a null-terminated string from a buffer at a specified offset and size.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the buffer.\n * @param {number} offset - The starting offset in the buffer.\n * @param {number} size - The number of bytes to read.\n * @returns {string} - The string read from the buffer.\n */\nfunction readString(buffer, offset, size) {\n\tconst view = new Uint8Array(buffer, offset, size);\n\tconst i = view.indexOf(0);\n\tconst td = new TextDecoder();\n\treturn td.decode(view.slice(0, i));\n}\n\n/**\n * Reads an 8-bit number from a buffer at a specified offset and size.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the buffer.\n * @param {number} offset - The starting offset in the buffer.\n * @param {number} size - The number of bytes to read (must be 12 for mtime).\n * @returns {number} - The numeric value read from the buffer.\n */\nfunction readNumber(buffer, offset, size) {\n\tconst view = new Uint8Array(buffer, offset, size);\n\tlet str = \"\";\n\tfor (let i = 0; i < size; i++) {\n\t\tstr += String.fromCodePoint(view[i]);\n\t}\n\treturn Number.parseInt(str, 8);\n}\n\n/**\n * Reads specific bytes from a buffer.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data of the buffer.\n * @param {number} start - The starting offset in the buffer.\n * @param {number} length - The number of bytes to read.\n * @returns {ArrayBuffer|Uint8Array} - A view into the Buffer containing the specified bytes.\n */\nfunction readBytes(buffer, start, length) {\n\treturn buffer.slice(start, start + length);\n}\n\n/**\n * Converts a buffer to a hex string representation.\n * @param {ArrayBuffer|Uint8Array} buffer - The binary data buffer.\n * @returns {string} - A hexadecimal string representing the buffer contents.\n */\nfunction bufferToHex(buffer) {\n\tconst uint8Array = new Uint8Array(buffer);\n\tlet hexString = \"\";\n\n\tfor (let i = 0; i < uint8Array.length; i++) {\n\t\thexString += uint8Array[i].toString(16).padStart(2, \"0\");\n\t}\n\n\treturn hexString;\n}\n","/**\n * @param {string} message\n * @param {unknown} test\n * @returns {asserts test}\n */\nexport function assert(message, test) {\n if (!test) {\n throw new Error(message);\n }\n}\n\nlet i = 0;\n\nexport function nextId() {\n i += 1;\n\n return `repl_${i}`;\n}\n\nexport const fakeDomain = 'repl.sdk';\nexport const tgzPrefix = 'file:///tgz.repl.sdk/';\nexport const unzippedPrefix = 'file:///tgz.repl.sdk/unzipped';\n\n/**\n * @param {string} url\n */\nexport function prefix_tgz(url) {\n return `${tgzPrefix}${url}`;\n}\n\n/**\n * @param {unknown} x\n * @returns {x is Record<string, unknown>}\n */\nexport function isRecord(x) {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\n","import { assert } from './utils.js';\n\nexport const secretKey = '__repl-sdk__compiler__';\n\n/**\n * @typedef {object} ResolveIdValue\n * @property {string} name\n * @property {string} version\n * @property {import('./types.ts').RequestAnswer} path\n *\n * @typedef {import('./request.js').Request} Request\n *\n * @typedef {typeof globalThis & { [secret]?: {\n * requestCache?: Map<string, Request>,\n * resolveId?: Map<string, ResolveIdValue>,\n * tarballs?: Map<string, import('./types.ts').UntarredPackage>,\n * resolves?: { [modulePath: string]: unknown },\n * promiseCache?: Map<string, Promise<unknown>>,\n * fileCache?: Map<string, { code: string, ext: string }>\n * caches?: Caches\n * } }} ExtendedWindow\n */\nconst secret = Symbol.for(secretKey);\n\nfunction getGlobal() {\n const global = /** @type {ExtendedWindow} */ (globalThis);\n\n return global;\n}\n\nassert(\n `There is already an instance of repl-sdk, and there can only be one. Make sure that your dependency graph is correct.`,\n !getGlobal()[secret]\n);\n\nclass Caches {\n clear() {\n delete getGlobal()[secret];\n }\n\n /**\n * Cache of resolved modulePaths to their module \"value\"\n *\n * @type {{ [modulePath: string]: unknown }}\n */\n get resolves() {\n this.#root.resolves ||= {};\n\n return this.#root.resolves;\n }\n\n /**\n * Cache of untarred tarballs\n *\n * @type {Map<string, import('./types.ts').UntarredPackage>}\n */\n get tarballs() {\n this.#root.tarballs ||= new Map();\n\n return this.#root.tarballs;\n }\n\n /**\n * Cache of request resolutions\n *\n * @type {Map<string, ResolveIdValue>}\n */\n get resolveId() {\n this.#root.resolveId ||= new Map();\n\n return this.#root.resolveId;\n }\n\n /**\n * Cache of request Key to file content string\n *\n * @type {Map<string, { code: string, ext: string }>}\n */\n get fileCache() {\n this.#root.fileCache ||= new Map();\n\n return this.#root.fileCache;\n }\n\n /**\n * For any key, store a promise for resolving later\n *\n * @type {Map<string, Promise<unknown>>}\n */\n get promiseCache() {\n this.#root.promiseCache ||= new Map();\n\n return this.#root.promiseCache;\n }\n\n /**\n * @template Return\n * @type {(key: string, callback: () => Promise<any>) => Promise<any>}\n */\n cachedPromise(key, callback) {\n const existing = this.promiseCache.get(key);\n\n if (existing) {\n return /** @type {Promise<Return>} */ (existing);\n }\n\n const promise = callback();\n\n this.promiseCache.set(key, promise);\n\n return promise;\n }\n\n get requestCache() {\n this.#root.requestCache ||= new Map();\n\n return this.#root.requestCache;\n }\n\n get #root() {\n const global = getGlobal();\n\n global[secret] ||= {};\n global[secret].caches ||= this;\n\n return global[secret];\n }\n}\n\nexport function deleteCache() {\n if (!getGlobal()?.[secret]) {\n return;\n }\n\n delete getGlobal()[secret];\n}\n\nexport const cache = new Caches();\n","export const packageNameRegex = /^(@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*$/;\nexport default packageNameRegex;","import packageNameRegex from 'package-name-regex';\n\nimport { cache } from './cache.js';\nimport { assert } from './utils.js';\n\n/**\n * @type {Map<string, unknown>} namp@version => manifest\n */\nconst npmInfoCache = new Map();\n\n/**\n * @param {string} name\n * @param {string} version\n */\nexport async function getNPMInfo(name, version) {\n const key = `${name}@${version}`;\n\n assert(`Must pass valid npm-compatible package name`, packageNameRegex.test(name));\n\n const existing = npmInfoCache.get(key);\n\n if (existing) {\n return existing;\n }\n\n return cache.cachedPromise(`getNPMInfo:${key}`, async () => {\n assert(`Cannot get data from NPM without specifying the name of the package`, name);\n assert(`Version is required. It may be 'latest'`, version);\n\n const response = await fetch(`https://registry.npmjs.org/${name}`);\n const json = await response.json();\n\n npmInfoCache.set(key, json);\n\n return json;\n });\n}\n\n/**\n * @param {any} npmInfo\n * @param {string} requestedVersion\n */\nexport async function getTarUrl(npmInfo, requestedVersion) {\n const json = npmInfo;\n\n if (json.error) {\n throw new Error(json.error);\n }\n\n const tag =\n requestedVersion in json['dist-tags']\n ? json['dist-tags'][requestedVersion]\n : (requestedVersion ?? json['dist-tags'].latest);\n\n const requested = json.versions[tag];\n\n return requested.dist.tarball;\n}\n","import { expose } from 'comlink';\nimport { parseTar } from 'tarparser';\n\nimport { cache } from './cache.js';\nimport { getNPMInfo, getTarUrl } from './npm.js';\n\nconst obj = { getTar };\n\nexpose(obj);\n\n/**\n * @param {string} name of the package\n * @param {string} requestedVersion version or tag to fetch the package at\n */\nasync function getTar(name, requestedVersion) {\n const key = `${name}@${requestedVersion}`;\n const untarred = cache.tarballs.get(key);\n\n if (untarred) {\n return untarred;\n }\n\n const contents = await cache.cachedPromise(`getTar:${key}`, async () => {\n const json = await getNPMInfo(name, requestedVersion);\n const tgzUrl = await getTarUrl(json, requestedVersion);\n\n const response = await fetch(tgzUrl, {\n headers: {\n ACCEPT: 'application/octet-stream',\n },\n });\n\n return await untar(await response.arrayBuffer());\n });\n\n const manifest = JSON.parse(contents['package.json'].text);\n\n const info = /** @type {import('./types.ts').UntarredPackage}*/ ({ manifest, contents });\n\n cache.tarballs.set(key, info);\n\n return info;\n}\n\n/**\n * @param {ArrayBuffer} arrayBuffer\n */\nasync function untar(arrayBuffer) {\n /**\n * @type {{ [name: string]: import('tarparser').FileDescription }}\n */\n const contents = {};\n\n for (const file of await parseTar(arrayBuffer)) {\n if (file.type === 'file') {\n contents[file.name.slice(8)] = file; // remove `package/` prefix\n }\n }\n\n return contents;\n}\n"],"names":["obj","returnValue","proxy","data"],"mappings":";;AAKA,QAAM,cAAc,OAAO,eAAe;AAC1C,QAAM,iBAAiB,OAAO,kBAAkB;AAChD,QAAM,eAAe,OAAO,sBAAsB;AAClD,QAAM,YAAY,OAAO,mBAAmB;AAC5C,QAAM,cAAc,OAAO,gBAAgB;AAC3C,QAAM,WAAW,CAAC,QAAS,OAAO,QAAQ,YAAY,QAAQ,QAAS,OAAO,QAAQ;AAItF,QAAM,uBAAuB;AAAA,IACzB,WAAW,CAAC,QAAQ,SAAS,GAAG,KAAK,IAAI,WAAW;AAAA,IACpD,UAAUA,MAAK;AACX,YAAM,EAAE,OAAO,MAAK,IAAK,IAAI,eAAc;AAC3C,aAAOA,MAAK,KAAK;AACjB,aAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAAA,IAC1B;AAAA,IACA,YAAY,MAAM;AACd,WAAK,MAAK;AACV,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,EACJ;AAIA,QAAM,uBAAuB;AAAA,IACzB,WAAW,CAAC,UAAU,SAAS,KAAK,KAAK,eAAe;AAAA,IACxD,UAAU,EAAE,SAAS;AACjB,UAAI;AACJ,UAAI,iBAAiB,OAAO;AACxB,qBAAa;AAAA,UACT,SAAS;AAAA,UACT,OAAO;AAAA,YACH,SAAS,MAAM;AAAA,YACf,MAAM,MAAM;AAAA,YACZ,OAAO,MAAM;AAAA,UACjC;AAAA,QACA;AAAA,MACQ,OACK;AACD,qBAAa,EAAE,SAAS,OAAO,MAAK;AAAA,MACxC;AACA,aAAO,CAAC,YAAY,EAAE;AAAA,IAC1B;AAAA,IACA,YAAY,YAAY;AACpB,UAAI,WAAW,SAAS;AACpB,cAAM,OAAO,OAAO,IAAI,MAAM,WAAW,MAAM,OAAO,GAAG,WAAW,KAAK;AAAA,MAC7E;AACA,YAAM,WAAW;AAAA,IACrB;AAAA,EACJ;AAIA,QAAM,mBAAmB,oBAAI,IAAI;AAAA,IAC7B,CAAC,SAAS,oBAAoB;AAAA,IAC9B,CAAC,SAAS,oBAAoB;AAAA,EAClC,CAAC;AACD,WAAS,gBAAgB,gBAAgB,QAAQ;AAC7C,eAAW,iBAAiB,gBAAgB;AACxC,UAAI,WAAW,iBAAiB,kBAAkB,KAAK;AACnD,eAAO;AAAA,MACX;AACA,UAAI,yBAAyB,UAAU,cAAc,KAAK,MAAM,GAAG;AAC/D,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACA,WAAS,OAAOA,MAAK,KAAK,YAAY,iBAAiB,CAAC,GAAG,GAAG;AAC1D,OAAG,iBAAiB,WAAW,SAAS,SAAS,IAAI;AACjD,UAAI,CAAC,MAAM,CAAC,GAAG,MAAM;AACjB;AAAA,MACJ;AACA,UAAI,CAAC,gBAAgB,gBAAgB,GAAG,MAAM,GAAG;AAC7C,gBAAQ,KAAK,mBAAmB,GAAG,MAAM,qBAAqB;AAC9D;AAAA,MACJ;AACA,YAAM,EAAE,IAAI,MAAM,KAAI,IAAK,OAAO,OAAO,EAAE,MAAM,CAAA,KAAM,GAAG,IAAI;AAC9D,YAAM,gBAAgB,GAAG,KAAK,gBAAgB,CAAA,GAAI,IAAI,aAAa;AACnE,UAAI;AACJ,UAAI;AACA,cAAM,SAAS,KAAK,MAAM,GAAG,EAAE,EAAE,OAAO,CAACA,MAAK,SAASA,KAAI,IAAI,GAAGA,IAAG;AACrE,cAAM,WAAW,KAAK,OAAO,CAACA,MAAK,SAASA,KAAI,IAAI,GAAGA,IAAG;AAC1D,gBAAQ,MAAI;AAAA,UACR,KAAK;AACD;AACI,4BAAc;AAAA,YAClB;AACA;AAAA,UACJ,KAAK;AACD;AACI,qBAAO,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,cAAc,GAAG,KAAK,KAAK;AACvD,4BAAc;AAAA,YAClB;AACA;AAAA,UACJ,KAAK;AACD;AACI,4BAAc,SAAS,MAAM,QAAQ,YAAY;AAAA,YACrD;AACA;AAAA,UACJ,KAAK;AACD;AACI,oBAAM,QAAQ,IAAI,SAAS,GAAG,YAAY;AAC1C,4BAAc,MAAM,KAAK;AAAA,YAC7B;AACA;AAAA,UACJ,KAAK;AACD;AACI,oBAAM,EAAE,OAAO,MAAK,IAAK,IAAI,eAAc;AAC3C,qBAAOA,MAAK,KAAK;AACjB,4BAAc,SAAS,OAAO,CAAC,KAAK,CAAC;AAAA,YACzC;AACA;AAAA,UACJ,KAAK;AACD;AACI,4BAAc;AAAA,YAClB;AACA;AAAA,UACJ;AACI;AAAA,QACpB;AAAA,MACQ,SACO,OAAO;AACV,sBAAc,EAAE,OAAO,CAAC,WAAW,GAAG,EAAC;AAAA,MAC3C;AACA,cAAQ,QAAQ,WAAW,EACtB,MAAM,CAAC,UAAU;AAClB,eAAO,EAAE,OAAO,CAAC,WAAW,GAAG,EAAC;AAAA,MACpC,CAAC,EACI,KAAK,CAACC,iBAAgB;AACvB,cAAM,CAAC,WAAW,aAAa,IAAI,YAAYA,YAAW;AAC1D,WAAG,YAAY,OAAO,OAAO,OAAO,OAAO,CAAA,GAAI,SAAS,GAAG,EAAE,GAAE,CAAE,GAAG,aAAa;AACjF,YAAI,SAAS,WAAqC;AAE9C,aAAG,oBAAoB,WAAW,QAAQ;AAC1C,wBAAc,EAAE;AAChB,cAAI,aAAaD,QAAO,OAAOA,KAAI,SAAS,MAAM,YAAY;AAC1D,YAAAA,KAAI,SAAS,EAAC;AAAA,UAClB;AAAA,QACJ;AAAA,MACJ,CAAC,EACI,MAAM,CAAC,UAAU;AAElB,cAAM,CAAC,WAAW,aAAa,IAAI,YAAY;AAAA,UAC3C,OAAO,IAAI,UAAU,6BAA6B;AAAA,UAClD,CAAC,WAAW,GAAG;AAAA,QAC/B,CAAa;AACD,WAAG,YAAY,OAAO,OAAO,OAAO,OAAO,CAAA,GAAI,SAAS,GAAG,EAAE,GAAE,CAAE,GAAG,aAAa;AAAA,MACrF,CAAC;AAAA,IACL,CAAC;AACD,QAAI,GAAG,OAAO;AACV,SAAG,MAAK;AAAA,IACZ;AAAA,EACJ;AACA,WAAS,cAAc,UAAU;AAC7B,WAAO,SAAS,YAAY,SAAS;AAAA,EACzC;AACA,WAAS,cAAc,UAAU;AAC7B,QAAI,cAAc,QAAQ;AACtB,eAAS,MAAK;AAAA,EACtB;AACA,WAAS,KAAK,IAAI,QAAQ;AACtB,UAAM,mBAAmB,oBAAI,IAAG;AAChC,OAAG,iBAAiB,WAAW,SAAS,cAAc,IAAI;AACtD,YAAM,EAAE,KAAI,IAAK;AACjB,UAAI,CAAC,QAAQ,CAAC,KAAK,IAAI;AACnB;AAAA,MACJ;AACA,YAAM,WAAW,iBAAiB,IAAI,KAAK,EAAE;AAC7C,UAAI,CAAC,UAAU;AACX;AAAA,MACJ;AACA,UAAI;AACA,iBAAS,IAAI;AAAA,MACjB,UACR;AACY,yBAAiB,OAAO,KAAK,EAAE;AAAA,MACnC;AAAA,IACJ,CAAC;AACD,WAAO,YAAY,IAAI,kBAAkB,CAAA,GAAI,MAAM;AAAA,EACvD;AACA,WAAS,qBAAqB,YAAY;AACtC,QAAI,YAAY;AACZ,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAChE;AAAA,EACJ;AACA,WAAS,gBAAgB,IAAI;AACzB,WAAO,uBAAuB,IAAI,oBAAI,OAAO;AAAA,MACzC,MAAM;AAAA,IACd,CAAK,EAAE,KAAK,MAAM;AACV,oBAAc,EAAE;AAAA,IACpB,CAAC;AAAA,EACL;AACA,QAAM,eAAe,oBAAI,QAAO;AAChC,QAAM,kBAAkB,0BAA0B,cAC9C,IAAI,qBAAqB,CAAC,OAAO;AAC7B,UAAM,YAAY,aAAa,IAAI,EAAE,KAAK,KAAK;AAC/C,iBAAa,IAAI,IAAI,QAAQ;AAC7B,QAAI,aAAa,GAAG;AAChB,sBAAgB,EAAE;AAAA,IACtB;AAAA,EACJ,CAAC;AACL,WAAS,cAAcE,QAAO,IAAI;AAC9B,UAAM,YAAY,aAAa,IAAI,EAAE,KAAK,KAAK;AAC/C,iBAAa,IAAI,IAAI,QAAQ;AAC7B,QAAI,iBAAiB;AACjB,sBAAgB,SAASA,QAAO,IAAIA,MAAK;AAAA,IAC7C;AAAA,EACJ;AACA,WAAS,gBAAgBA,QAAO;AAC5B,QAAI,iBAAiB;AACjB,sBAAgB,WAAWA,MAAK;AAAA,IACpC;AAAA,EACJ;AACA,WAAS,YAAY,IAAI,kBAAkB,OAAO,CAAA,GAAI,SAAS,WAAY;AAAA,EAAE,GAAG;AAC5E,QAAI,kBAAkB;AACtB,UAAMA,SAAQ,IAAI,MAAM,QAAQ;AAAA,MAC5B,IAAI,SAAS,MAAM;AACf,6BAAqB,eAAe;AACpC,YAAI,SAAS,cAAc;AACvB,iBAAO,MAAM;AACT,4BAAgBA,MAAK;AACrB,4BAAgB,EAAE;AAClB,6BAAiB,MAAK;AACtB,8BAAkB;AAAA,UACtB;AAAA,QACJ;AACA,YAAI,SAAS,QAAQ;AACjB,cAAI,KAAK,WAAW,GAAG;AACnB,mBAAO,EAAE,MAAM,MAAMA,OAAK;AAAA,UAC9B;AACA,gBAAM,IAAI,uBAAuB,IAAI,kBAAkB;AAAA,YACnD,MAAM;AAAA,YACN,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,UACtD,CAAiB,EAAE,KAAK,aAAa;AACrB,iBAAO,EAAE,KAAK,KAAK,CAAC;AAAA,QACxB;AACA,eAAO,YAAY,IAAI,kBAAkB,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,MAC5D;AAAA,MACA,IAAI,SAAS,MAAM,UAAU;AACzB,6BAAqB,eAAe;AAGpC,cAAM,CAAC,OAAO,aAAa,IAAI,YAAY,QAAQ;AACnD,eAAO,uBAAuB,IAAI,kBAAkB;AAAA,UAChD,MAAM;AAAA,UACN,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,UAC7C;AAAA,QAChB,GAAe,aAAa,EAAE,KAAK,aAAa;AAAA,MACxC;AAAA,MACA,MAAM,SAAS,UAAU,iBAAiB;AACtC,6BAAqB,eAAe;AACpC,cAAM,OAAO,KAAK,KAAK,SAAS,CAAC;AACjC,YAAI,SAAS,gBAAgB;AACzB,iBAAO,uBAAuB,IAAI,kBAAkB;AAAA,YAChD,MAAM;AAAA,UAC1B,CAAiB,EAAE,KAAK,aAAa;AAAA,QACzB;AAEA,YAAI,SAAS,QAAQ;AACjB,iBAAO,YAAY,IAAI,kBAAkB,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,QAC9D;AACA,cAAM,CAAC,cAAc,aAAa,IAAI,iBAAiB,eAAe;AACtE,eAAO,uBAAuB,IAAI,kBAAkB;AAAA,UAChD,MAAM;AAAA,UACN,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,UAClC;AAAA,QAChB,GAAe,aAAa,EAAE,KAAK,aAAa;AAAA,MACxC;AAAA,MACA,UAAU,SAAS,iBAAiB;AAChC,6BAAqB,eAAe;AACpC,cAAM,CAAC,cAAc,aAAa,IAAI,iBAAiB,eAAe;AACtE,eAAO,uBAAuB,IAAI,kBAAkB;AAAA,UAChD,MAAM;AAAA,UACN,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,UAClC;AAAA,QAChB,GAAe,aAAa,EAAE,KAAK,aAAa;AAAA,MACxC;AAAA,IACR,CAAK;AACD,kBAAcA,QAAO,EAAE;AACvB,WAAOA;AAAA,EACX;AACA,WAAS,OAAO,KAAK;AACjB,WAAO,MAAM,UAAU,OAAO,MAAM,CAAA,GAAI,GAAG;AAAA,EAC/C;AACA,WAAS,iBAAiB,cAAc;AACpC,UAAM,YAAY,aAAa,IAAI,WAAW;AAC9C,WAAO,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAAA,EAC1E;AACA,QAAM,gBAAgB,oBAAI,QAAO;AACjC,WAAS,SAASF,MAAK,WAAW;AAC9B,kBAAc,IAAIA,MAAK,SAAS;AAChC,WAAOA;AAAA,EACX;AACA,WAAS,MAAMA,MAAK;AAChB,WAAO,OAAO,OAAOA,MAAK,EAAE,CAAC,WAAW,GAAG,MAAM;AAAA,EACrD;AAQA,WAAS,YAAY,OAAO;AACxB,eAAW,CAAC,MAAM,OAAO,KAAK,kBAAkB;AAC5C,UAAI,QAAQ,UAAU,KAAK,GAAG;AAC1B,cAAM,CAAC,iBAAiB,aAAa,IAAI,QAAQ,UAAU,KAAK;AAChE,eAAO;AAAA,UACH;AAAA,YACI,MAAM;AAAA,YACN;AAAA,YACA,OAAO;AAAA,UAC3B;AAAA,UACgB;AAAA,QAChB;AAAA,MACQ;AAAA,IACJ;AACA,WAAO;AAAA,MACH;AAAA,QACI,MAAM;AAAA,QACN;AAAA,MACZ;AAAA,MACQ,cAAc,IAAI,KAAK,KAAK,CAAA;AAAA,IACpC;AAAA,EACA;AACA,WAAS,cAAc,OAAO;AAC1B,YAAQ,MAAM,MAAI;AAAA,MACd,KAAK;AACD,eAAO,iBAAiB,IAAI,MAAM,IAAI,EAAE,YAAY,MAAM,KAAK;AAAA,MACnE,KAAK;AACD,eAAO,MAAM;AAAA,IACzB;AAAA,EACA;AACA,WAAS,uBAAuB,IAAI,kBAAkB,KAAK,WAAW;AAClE,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,YAAM,KAAK,aAAY;AACvB,uBAAiB,IAAI,IAAI,OAAO;AAChC,UAAI,GAAG,OAAO;AACV,WAAG,MAAK;AAAA,MACZ;AACA,SAAG,YAAY,OAAO,OAAO,EAAE,MAAM,GAAG,GAAG,SAAS;AAAA,IACxD,CAAC;AAAA,EACL;AACA,WAAS,eAAe;AACpB,WAAO,IAAI,MAAM,CAAC,EACb,KAAK,CAAC,EACN,IAAI,MAAM,KAAK,MAAM,KAAK,WAAW,OAAO,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAC1E,KAAK,GAAG;AAAA,EACjB;AClWA,QAAM,aAAa;AACnB,QAAM,YAAY;AAAA,IACjB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,OAAO;AAAA,EACR;AA2BO,iBAAe,SAAS,MAAM;AACpC,QAAI;AAAA;AAAA,MAAoC,KAAM;AAAA,MAAsC;AAAA;AAEpF,UAAM,QAAQ,cAAc,MAAM;AAClC,QAAI,SAAS,UAAU,QAAQ,SAAS,UAAU,KAAK;AACtD,YAAM,IAAI,MAAM,yCAAyC;AAAA,IAE1D;AAEA,QAAI,SAAS,UAAU,MAAM;AAG5B,YAAM,SAAS,IAAI,eAAe;AAAA,QACjC,MAAM,YAAY;AACjB,qBAAW,QAAQ,IAAI,WAAW,IAAI,CAAC;AACvC,qBAAW,MAAK;AAAA,QACjB;AAAA,MACH,CAAG,EAAE,YAAY,IAAI,oBAAoB,MAAM,CAAC;AAE9C,eAAS,MAAM,IAAI,SAAS,MAAM,EAAE,YAAW;AAAA,IAEhD;AAGA,UAAM,QAAQ,CAAA;AACd,QAAI,SAAS;AAIb,WAAO,SAAS,OAAO,aAAa,YAAY;AAI/C,UAAI,OAAO,WAAW,QAAQ,QAAQ,GAAG;AACzC,UAAI,KAAK,WAAW,GAAG;AACtB;AAAA,MACD;AAGA,YAAM,SAAS,WAAW,QAAQ,SAAS,KAAK,GAAG;AACnD,UAAI,QAAQ;AACX,eAAO,GAAG,MAAM,GAAG,IAAI;AAAA,MACxB;AAIA,YAAM,OAAO,WAAW,QAAQ,SAAS,KAAK,CAAC;AAI/C,YAAM,MAAM,OAAO,SAAS,WAAW,QAAQ,SAAS,KAAK,CAAC,CAAC;AAI/D,YAAM,MAAM,OAAO,SAAS,WAAW,QAAQ,SAAS,KAAK,CAAC,CAAC;AAI/D,YAAM,OAAO,WAAW,QAAQ,SAAS,KAAK,EAAE;AAIhD,YAAM,QAAQ,WAAW,QAAQ,SAAS,KAAK,EAAE;AAMjD,YAAM,QAAQ,WAAW,QAAQ,SAAS,KAAK,CAAC;AAChD,YAAM,OAAO,UAAU,IAAI,SAAS,UAAU,IAAI,cAAc;AAIhE,YAAM,OAAO,WAAW,QAAQ,SAAS,KAAK,EAAE;AAIhD,YAAM,QAAQ,WAAW,QAAQ,SAAS,KAAK,EAAE;AAGjD,YAAM,YAAY,SAAS;AAK3B,YAAMG,QAAO,IAAI,WAAW,QAAQ,WAAW,IAAI;AAEnD,YAAM,KAAK;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAAA;AAAA,QACA,IAAI,OAAO;AACV,iBAAO,IAAI,YAAW,EAAG,OAAO,KAAK,IAAI;AAAA,QAC1C;AAAA,QACA,OAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACA,CAAG;AAMD,gBAAU,MAAM,MAAM,KAAK,MAAM,OAAO,GAAG;AAC3C,UAAI,OAAO,KAAK;AACf,kBAAU;AAAA,MACX;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AAOA,WAAS,cAAc,QAAQ;AAE9B,QAAI,QAAQ,UAAU,QAAQ,GAAG,CAAC;AAClC,QAAI,YAAY,KAAK,MAAM,QAAQ;AAClC,aAAO,UAAU;AAAA,IAClB;AAGA,YAAQ,UAAU,QAAQ,GAAG,CAAC;AAC9B,QAAI,YAAY,KAAK,MAAM,cAAc;AACxC,aAAO,UAAU;AAAA,IAClB;AAGA,YAAQ,UAAU,QAAQ,KAAK,CAAC;AAChC,QAAI,YAAY,KAAK,MAAM,cAAc;AACxC,aAAO,UAAU;AAAA,IAClB;AAEA,WAAO,UAAU;AAAA,EAClB;AASA,WAAS,WAAW,QAAQ,QAAQ,MAAM;AACzC,UAAM,OAAO,IAAI,WAAW,QAAQ,QAAQ,IAAI;AAChD,UAAM,IAAI,KAAK,QAAQ,CAAC;AACxB,UAAM,KAAK,IAAI,YAAW;AAC1B,WAAO,GAAG,OAAO,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,EAClC;AASA,WAAS,WAAW,QAAQ,QAAQ,MAAM;AACzC,UAAM,OAAO,IAAI,WAAW,QAAQ,QAAQ,IAAI;AAChD,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,MAAM,KAAK;AAC9B,aAAO,OAAO,cAAc,KAAK,CAAC,CAAC;AAAA,IACpC;AACA,WAAO,OAAO,SAAS,KAAK,CAAC;AAAA,EAC9B;AASA,WAAS,UAAU,QAAQ,OAAO,QAAQ;AACzC,WAAO,OAAO,MAAM,OAAO,QAAQ,MAAM;AAAA,EAC1C;AAOA,WAAS,YAAY,QAAQ;AAC5B,UAAM,aAAa,IAAI,WAAW,MAAM;AACxC,QAAI,YAAY;AAEhB,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC3C,mBAAa,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,IACxD;AAEA,WAAO;AAAA,EACR;ACpOO,WAAS,OAAO,SAAS,MAAM;AACpC,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,OAAO;AAAA,IACzB;AAAA,EACF;ACPO,QAAM,YAAY;AAoBzB,QAAM,SAAS,OAAO,IAAI,SAAS;AAEnC,WAAS,YAAY;AACnB,UAAM;AAAA;AAAA,MAAwC;AAAA;AAE9C,WAAO;AAAA,EACT;AAEA;AAAA,IACE;AAAA,IACA,CAAC,UAAS,EAAG,MAAM;AAAA,EACrB;AAAA,EAEA,MAAM,OAAO;AAAA,IACX,QAAQ;AACN,aAAO,UAAS,EAAG,MAAM;AAAA,IAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,IAAI,WAAW;AACb,WAAK,MAAM,aAAa,CAAA;AAExB,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,IAAI,WAAW;AACb,WAAK,MAAM,aAAa,oBAAI,IAAG;AAE/B,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,IAAI,YAAY;AACd,WAAK,MAAM,cAAc,oBAAI,IAAG;AAEhC,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,IAAI,YAAY;AACd,WAAK,MAAM,cAAc,oBAAI,IAAG;AAEhC,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,IAAI,eAAe;AACjB,WAAK,MAAM,iBAAiB,oBAAI,IAAG;AAEnC,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,cAAc,KAAK,UAAU;AAC3B,YAAM,WAAW,KAAK,aAAa,IAAI,GAAG;AAE1C,UAAI,UAAU;AACZ;AAAA;AAAA,UAAuC;AAAA;AAAA,MACzC;AAEA,YAAM,UAAU,SAAQ;AAExB,WAAK,aAAa,IAAI,KAAK,OAAO;AAElC,aAAO;AAAA,IACT;AAAA,IAEA,IAAI,eAAe;AACjB,WAAK,MAAM,iBAAiB,oBAAI,IAAG;AAEnC,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,IAEA,IAAI,QAAQ;AACV,YAAM,SAAS,UAAS;AAExB,aAAO,MAAM,MAAM,CAAA;AACnB,aAAO,MAAM,EAAE,WAAW;AAE1B,aAAO,OAAO,MAAM;AAAA,IACtB;AAAA,EACF;AAUO,QAAM,QAAQ,IAAI,OAAM;ACzIxB,QAAM,mBAAmB;ACQhC,QAAM,eAAe,oBAAI,IAAG;AAMrB,iBAAe,WAAW,MAAM,SAAS;AAC9C,UAAM,MAAM,GAAG,IAAI,IAAI,OAAO;AAE9B,WAAO,+CAA+C,iBAAiB,KAAK,IAAI,CAAC;AAEjF,UAAM,WAAW,aAAa,IAAI,GAAG;AAErC,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAEA,WAAO,MAAM,cAAc,cAAc,GAAG,IAAI,YAAY;AAC1D,aAAO,uEAAuE,IAAI;AAClF,aAAO,2CAA2C,OAAO;AAEzD,YAAM,WAAW,MAAM,MAAM,8BAA8B,IAAI,EAAE;AACjE,YAAM,OAAO,MAAM,SAAS,KAAI;AAEhC,mBAAa,IAAI,KAAK,IAAI;AAE1B,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAMO,iBAAe,UAAU,SAAS,kBAAkB;AACzD,UAAM,OAAO;AAEb,QAAI,KAAK,OAAO;AACd,YAAM,IAAI,MAAM,KAAK,KAAK;AAAA,IAC5B;AAEA,UAAM,MACJ,oBAAoB,KAAK,WAAW,IAChC,KAAK,WAAW,EAAE,gBAAgB,IACjC,oBAAoB,KAAK,WAAW,EAAE;AAE7C,UAAM,YAAY,KAAK,SAAS,GAAG;AAEnC,WAAO,UAAU,KAAK;AAAA,EACxB;ACnDA,QAAM,MAAM,EAAE,OAAM;AAEpB,SAAO,GAAG;AAMV,iBAAe,OAAO,MAAM,kBAAkB;AAC5C,UAAM,MAAM,GAAG,IAAI,IAAI,gBAAgB;AACvC,UAAM,WAAW,MAAM,SAAS,IAAI,GAAG;AAEvC,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAEA,UAAM,WAAW,MAAM,MAAM,cAAc,UAAU,GAAG,IAAI,YAAY;AACtE,YAAM,OAAO,MAAM,WAAW,MAAM,gBAAgB;AACpD,YAAM,SAAS,MAAM,UAAU,MAAM,gBAAgB;AAErD,YAAM,WAAW,MAAM,MAAM,QAAQ;AAAA,QACnC,SAAS;AAAA,UACP,QAAQ;AAAA,QAChB;AAAA,MACA,CAAK;AAED,aAAO,MAAM,MAAM,MAAM,SAAS,YAAW,CAAE;AAAA,IACjD,CAAC;AAED,UAAM,WAAW,KAAK,MAAM,SAAS,cAAc,EAAE,IAAI;AAEzD,UAAM;AAAA;AAAA,MAA2D,EAAE,UAAU;;AAE7E,UAAM,SAAS,IAAI,KAAK,IAAI;AAE5B,WAAO;AAAA,EACT;AAKA,iBAAe,MAAM,aAAa;AAIhC,UAAM,WAAW,CAAA;AAEjB,eAAW,QAAQ,MAAM,SAAS,WAAW,GAAG;AAC9C,UAAI,KAAK,SAAS,QAAQ;AACxB,iBAAS,KAAK,KAAK,MAAM,CAAC,CAAC,IAAI;AAAA,MACjC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;;","x_google_ignoreList":[0,1,4]}
|