@burdenoff/microfe-technospam 2026.1101.5 → 2026.1102.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/generated/wspace-types.d.ts +7468 -141
  2. package/dist/generated/wspace-types.d.ts.map +1 -1
  3. package/dist/index.js +5 -3
  4. package/dist/node_modules/@codemirror/autocomplete/dist/index.js +527 -0
  5. package/dist/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -0
  6. package/dist/node_modules/@codemirror/commands/dist/index.js +1108 -0
  7. package/dist/node_modules/@codemirror/commands/dist/index.js.map +1 -0
  8. package/dist/node_modules/@codemirror/lang-go/dist/index.js +206 -0
  9. package/dist/node_modules/@codemirror/lang-go/dist/index.js.map +1 -0
  10. package/dist/node_modules/@codemirror/lang-javascript/dist/index.js +321 -0
  11. package/dist/node_modules/@codemirror/lang-javascript/dist/index.js.map +1 -0
  12. package/dist/node_modules/@codemirror/lang-python/dist/index.js +265 -0
  13. package/dist/node_modules/@codemirror/lang-python/dist/index.js.map +1 -0
  14. package/dist/node_modules/@codemirror/language/dist/index.js +957 -0
  15. package/dist/node_modules/@codemirror/language/dist/index.js.map +1 -0
  16. package/dist/node_modules/@codemirror/legacy-modes/mode/ruby.js +164 -0
  17. package/dist/node_modules/@codemirror/legacy-modes/mode/ruby.js.map +1 -0
  18. package/dist/node_modules/@codemirror/legacy-modes/mode/shell.js +109 -0
  19. package/dist/node_modules/@codemirror/legacy-modes/mode/shell.js.map +1 -0
  20. package/dist/node_modules/@codemirror/state/dist/index.js +1739 -0
  21. package/dist/node_modules/@codemirror/state/dist/index.js.map +1 -0
  22. package/dist/node_modules/@codemirror/streamparser/dist/index.js +70 -0
  23. package/dist/node_modules/@codemirror/streamparser/dist/index.js.map +1 -0
  24. package/dist/node_modules/@codemirror/view/dist/index.js +5427 -0
  25. package/dist/node_modules/@codemirror/view/dist/index.js.map +1 -0
  26. package/dist/node_modules/@lezer/common/dist/index.js +896 -0
  27. package/dist/node_modules/@lezer/common/dist/index.js.map +1 -0
  28. package/dist/node_modules/@lezer/go/dist/index.js +215 -0
  29. package/dist/node_modules/@lezer/go/dist/index.js.map +1 -0
  30. package/dist/node_modules/@lezer/highlight/dist/index.js +395 -0
  31. package/dist/node_modules/@lezer/highlight/dist/index.js.map +1 -0
  32. package/dist/node_modules/@lezer/javascript/dist/index.js +437 -0
  33. package/dist/node_modules/@lezer/javascript/dist/index.js.map +1 -0
  34. package/dist/node_modules/@lezer/lr/dist/index.js +842 -0
  35. package/dist/node_modules/@lezer/lr/dist/index.js.map +1 -0
  36. package/dist/node_modules/@lezer/python/dist/index.js +352 -0
  37. package/dist/node_modules/@lezer/python/dist/index.js.map +1 -0
  38. package/dist/node_modules/@marijn/find-cluster-break/src/index.js +66 -0
  39. package/dist/node_modules/@marijn/find-cluster-break/src/index.js.map +1 -0
  40. package/dist/node_modules/style-mod/src/style-mod.js +74 -0
  41. package/dist/node_modules/style-mod/src/style-mod.js.map +1 -0
  42. package/dist/node_modules/w3c-keyname/index.js +90 -0
  43. package/dist/node_modules/w3c-keyname/index.js.map +1 -0
  44. package/dist/stories/fixtures/technospamFixtures.d.ts.map +1 -1
  45. package/dist/stories/journeys/Problems.stories.d.ts.map +1 -1
  46. package/dist/technospam/api/technospamApi.d.ts +39 -0
  47. package/dist/technospam/api/technospamApi.d.ts.map +1 -1
  48. package/dist/technospam/api/technospamApi.js +120 -86
  49. package/dist/technospam/api/technospamApi.js.map +1 -1
  50. package/dist/technospam/components/CertificateVerifyLink.d.ts +11 -0
  51. package/dist/technospam/components/CertificateVerifyLink.d.ts.map +1 -0
  52. package/dist/technospam/components/CertificateVerifyLink.js +63 -0
  53. package/dist/technospam/components/CertificateVerifyLink.js.map +1 -0
  54. package/dist/technospam/components/SubmissionViews.d.ts +6 -2
  55. package/dist/technospam/components/SubmissionViews.d.ts.map +1 -1
  56. package/dist/technospam/components/SubmissionViews.js +6 -5
  57. package/dist/technospam/components/SubmissionViews.js.map +1 -1
  58. package/dist/technospam/components/TechnoSpamErrorBoundary.d.ts +6 -0
  59. package/dist/technospam/components/TechnoSpamErrorBoundary.d.ts.map +1 -1
  60. package/dist/technospam/components/TechnoSpamErrorBoundary.js +2 -2
  61. package/dist/technospam/components/TechnoSpamErrorBoundary.js.map +1 -1
  62. package/dist/technospam/components/editor/CodeEditor.d.ts +26 -0
  63. package/dist/technospam/components/editor/CodeEditor.d.ts.map +1 -0
  64. package/dist/technospam/components/editor/CodeEditor.js +102 -0
  65. package/dist/technospam/components/editor/CodeEditor.js.map +1 -0
  66. package/dist/technospam/components/editor/RunOutputPanel.d.ts +14 -0
  67. package/dist/technospam/components/editor/RunOutputPanel.d.ts.map +1 -0
  68. package/dist/technospam/components/editor/RunOutputPanel.js +127 -0
  69. package/dist/technospam/components/editor/RunOutputPanel.js.map +1 -0
  70. package/dist/technospam/components/editor/editorLanguages.d.ts +11 -0
  71. package/dist/technospam/components/editor/editorLanguages.d.ts.map +1 -0
  72. package/dist/technospam/components/editor/editorLanguages.js +30 -0
  73. package/dist/technospam/components/editor/editorLanguages.js.map +1 -0
  74. package/dist/technospam/components/editor/editorTheme.d.ts +11 -0
  75. package/dist/technospam/components/editor/editorTheme.d.ts.map +1 -0
  76. package/dist/technospam/components/editor/editorTheme.js +120 -0
  77. package/dist/technospam/components/editor/editorTheme.js.map +1 -0
  78. package/dist/technospam/components/index.d.ts +1 -0
  79. package/dist/technospam/components/index.d.ts.map +1 -1
  80. package/dist/technospam/components/index.js +1 -0
  81. package/dist/technospam/hooks/useSolutionRunner.d.ts +35 -0
  82. package/dist/technospam/hooks/useSolutionRunner.d.ts.map +1 -0
  83. package/dist/technospam/hooks/useSolutionRunner.js +66 -0
  84. package/dist/technospam/hooks/useSolutionRunner.js.map +1 -0
  85. package/dist/technospam/hooks/useTechnoSpamAnalytics.d.ts +1 -1
  86. package/dist/technospam/hooks/useTechnoSpamAnalytics.d.ts.map +1 -1
  87. package/dist/technospam/hooks/useTechnoSpamAnalytics.js.map +1 -1
  88. package/dist/technospam/index.d.ts +2 -0
  89. package/dist/technospam/index.d.ts.map +1 -1
  90. package/dist/technospam/index.js +2 -0
  91. package/dist/technospam/lib/certificateVerify.d.ts +71 -0
  92. package/dist/technospam/lib/certificateVerify.d.ts.map +1 -0
  93. package/dist/technospam/lib/certificateVerify.js +55 -0
  94. package/dist/technospam/lib/certificateVerify.js.map +1 -0
  95. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.d.ts.map +1 -1
  96. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js +416 -263
  97. package/dist/technospam/pages/ApplicationsProblemDetailsPagePage.js.map +1 -1
  98. package/dist/technospam/pages/CoursesCourseDetailsPagePage.d.ts.map +1 -1
  99. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js +236 -231
  100. package/dist/technospam/pages/CoursesCourseDetailsPagePage.js.map +1 -1
  101. package/dist/technospam/pages/CoursesMyLearningPagePage.d.ts.map +1 -1
  102. package/dist/technospam/pages/CoursesMyLearningPagePage.js +104 -96
  103. package/dist/technospam/pages/CoursesMyLearningPagePage.js.map +1 -1
  104. package/dist/technospam/pages/public/CertificateVerifyPage.d.ts +4 -0
  105. package/dist/technospam/pages/public/CertificateVerifyPage.d.ts.map +1 -0
  106. package/dist/technospam/pages/public/CertificateVerifyPage.js +257 -0
  107. package/dist/technospam/pages/public/CertificateVerifyPage.js.map +1 -0
  108. package/package.json +14 -4
@@ -0,0 +1,109 @@
1
+ //#region node_modules/@codemirror/legacy-modes/mode/shell.js
2
+ var e = {};
3
+ function t(t, n) {
4
+ for (var r = 0; r < n.length; r++) e[n[r]] = t;
5
+ }
6
+ var n = ["true", "false"], r = [
7
+ "if",
8
+ "then",
9
+ "do",
10
+ "else",
11
+ "elif",
12
+ "while",
13
+ "until",
14
+ "for",
15
+ "in",
16
+ "esac",
17
+ "fi",
18
+ "fin",
19
+ "fil",
20
+ "done",
21
+ "exit",
22
+ "set",
23
+ "unset",
24
+ "export",
25
+ "function"
26
+ ], i = /* @__PURE__ */ "ab.awk.bash.beep.cat.cc.cd.chown.chmod.chroot.clear.cp.curl.cut.diff.echo.find.gawk.gcc.get.git.grep.hg.kill.killall.ln.ls.make.mkdir.openssl.mv.nc.nl.node.npm.ping.ps.restart.rm.rmdir.sed.service.sh.shopt.shred.source.sort.sleep.ssh.start.stop.su.sudo.svn.tee.telnet.top.touch.vi.vim.wall.wc.wget.who.write.yes.zsh".split(".");
27
+ t("atom", n), t("keyword", r), t("builtin", i);
28
+ function a(t, n) {
29
+ if (t.eatSpace()) return null;
30
+ var r = t.sol(), i = t.next();
31
+ if (i === "\\") return t.next(), null;
32
+ if (i === "'" || i === "\"" || i === "`") return n.tokens.unshift(o(i, i === "`" ? "quote" : "string")), u(t, n);
33
+ if (i === "#") return r && t.eat("!") ? (t.skipToEnd(), "meta") : (t.skipToEnd(), "comment");
34
+ if (i === "$") return n.tokens.unshift(c), u(t, n);
35
+ if (i === "+" || i === "=") return "operator";
36
+ if (i === "-") return t.eat("-"), t.eatWhile(/\w/), "attribute";
37
+ if (i == "<") {
38
+ if (t.match("<<")) return "operator";
39
+ var a = t.match(/^<-?\s*(?:['"]([^'"]*)['"]|([^'"\s]*))/);
40
+ if (a) return n.tokens.unshift(l(a[1] || a[2])), "string.special";
41
+ }
42
+ if (/\d/.test(i) && (t.eatWhile(/\d/), t.eol() || !/\w/.test(t.peek()))) return "number";
43
+ t.eatWhile(/[\w-]/);
44
+ var s = t.current();
45
+ return t.peek() === "=" && /\w+/.test(s) ? "def" : e.hasOwnProperty(s) ? e[s] : null;
46
+ }
47
+ function o(e, t) {
48
+ var n = e == "(" ? ")" : e == "{" ? "}" : e;
49
+ return function(r, i) {
50
+ for (var a, l = !1; (a = r.next()) != null;) {
51
+ if (a === n && !l) {
52
+ i.tokens.shift();
53
+ break;
54
+ } else if (a === "$" && !l && e !== "'" && r.peek() != n) {
55
+ l = !0, r.backUp(1), i.tokens.unshift(c);
56
+ break;
57
+ } else if (!l && e !== n && a === e) return i.tokens.unshift(o(e, t)), u(r, i);
58
+ else if (!l && /['"]/.test(a) && !/['"]/.test(e)) {
59
+ i.tokens.unshift(s(a, "string")), r.backUp(1);
60
+ break;
61
+ }
62
+ l = !l && a === "\\";
63
+ }
64
+ return t;
65
+ };
66
+ }
67
+ function s(e, t) {
68
+ return function(n, r) {
69
+ return r.tokens[0] = o(e, t), n.next(), u(n, r);
70
+ };
71
+ }
72
+ var c = function(e, t) {
73
+ t.tokens.length > 1 && e.eat("$");
74
+ var n = e.next();
75
+ return /['"({]/.test(n) ? (t.tokens[0] = o(n, n == "(" ? "quote" : n == "{" ? "def" : "string"), u(e, t)) : (/\d/.test(n) || e.eatWhile(/\w/), t.tokens.shift(), "def");
76
+ };
77
+ function l(e) {
78
+ return function(t, n) {
79
+ return t.sol() && t.string == e && n.tokens.shift(), t.skipToEnd(), "string.special";
80
+ };
81
+ }
82
+ function u(e, t) {
83
+ return (t.tokens[0] || a)(e, t);
84
+ }
85
+ var d = {
86
+ name: "shell",
87
+ startState: function() {
88
+ return { tokens: [] };
89
+ },
90
+ token: function(e, t) {
91
+ return u(e, t);
92
+ },
93
+ languageData: {
94
+ autocomplete: n.concat(r, i),
95
+ closeBrackets: { brackets: [
96
+ "(",
97
+ "[",
98
+ "{",
99
+ "'",
100
+ "\"",
101
+ "`"
102
+ ] },
103
+ commentTokens: { line: "#" }
104
+ }
105
+ };
106
+ //#endregion
107
+ export { d as shell };
108
+
109
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","names":[],"sources":["../../../../../node_modules/@codemirror/legacy-modes/mode/shell.js"],"sourcesContent":["var words = {};\nfunction define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n};\n\nvar commonAtoms = [\"true\", \"false\"];\nvar commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\nvar commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]))\n return 'string.special'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n}\n\nfunction tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n};\n\nfunction tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n}\n\nvar tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n};\n\nfunction tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string.special\"\n }\n}\n\nfunction tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n};\n\nexport const shell = {\n name: \"shell\",\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n languageData: {\n autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n commentTokens: {line: \"#\"}\n }\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}