nestjs-web-repl 2.1.2 → 2.2.0

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 (109) hide show
  1. package/dist/ui/monaco-assets.d.ts +6 -0
  2. package/dist/ui/monaco-assets.js +44 -0
  3. package/dist/ui/repl-ui.html.js +18 -7
  4. package/dist/ui/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  5. package/dist/ui/vs/base/worker/workerMain.js +31 -0
  6. package/dist/ui/vs/basic-languages/abap/abap.js +10 -0
  7. package/dist/ui/vs/basic-languages/apex/apex.js +10 -0
  8. package/dist/ui/vs/basic-languages/azcli/azcli.js +10 -0
  9. package/dist/ui/vs/basic-languages/bat/bat.js +10 -0
  10. package/dist/ui/vs/basic-languages/bicep/bicep.js +11 -0
  11. package/dist/ui/vs/basic-languages/cameligo/cameligo.js +10 -0
  12. package/dist/ui/vs/basic-languages/clojure/clojure.js +10 -0
  13. package/dist/ui/vs/basic-languages/coffee/coffee.js +10 -0
  14. package/dist/ui/vs/basic-languages/cpp/cpp.js +10 -0
  15. package/dist/ui/vs/basic-languages/csharp/csharp.js +10 -0
  16. package/dist/ui/vs/basic-languages/csp/csp.js +10 -0
  17. package/dist/ui/vs/basic-languages/css/css.js +12 -0
  18. package/dist/ui/vs/basic-languages/cypher/cypher.js +10 -0
  19. package/dist/ui/vs/basic-languages/dart/dart.js +10 -0
  20. package/dist/ui/vs/basic-languages/dockerfile/dockerfile.js +10 -0
  21. package/dist/ui/vs/basic-languages/ecl/ecl.js +10 -0
  22. package/dist/ui/vs/basic-languages/elixir/elixir.js +10 -0
  23. package/dist/ui/vs/basic-languages/flow9/flow9.js +10 -0
  24. package/dist/ui/vs/basic-languages/freemarker2/freemarker2.js +12 -0
  25. package/dist/ui/vs/basic-languages/fsharp/fsharp.js +10 -0
  26. package/dist/ui/vs/basic-languages/go/go.js +10 -0
  27. package/dist/ui/vs/basic-languages/graphql/graphql.js +10 -0
  28. package/dist/ui/vs/basic-languages/handlebars/handlebars.js +10 -0
  29. package/dist/ui/vs/basic-languages/hcl/hcl.js +10 -0
  30. package/dist/ui/vs/basic-languages/html/html.js +10 -0
  31. package/dist/ui/vs/basic-languages/ini/ini.js +10 -0
  32. package/dist/ui/vs/basic-languages/java/java.js +10 -0
  33. package/dist/ui/vs/basic-languages/javascript/javascript.js +10 -0
  34. package/dist/ui/vs/basic-languages/julia/julia.js +10 -0
  35. package/dist/ui/vs/basic-languages/kotlin/kotlin.js +10 -0
  36. package/dist/ui/vs/basic-languages/less/less.js +11 -0
  37. package/dist/ui/vs/basic-languages/lexon/lexon.js +10 -0
  38. package/dist/ui/vs/basic-languages/liquid/liquid.js +10 -0
  39. package/dist/ui/vs/basic-languages/lua/lua.js +10 -0
  40. package/dist/ui/vs/basic-languages/m3/m3.js +10 -0
  41. package/dist/ui/vs/basic-languages/markdown/markdown.js +10 -0
  42. package/dist/ui/vs/basic-languages/mdx/mdx.js +10 -0
  43. package/dist/ui/vs/basic-languages/mips/mips.js +10 -0
  44. package/dist/ui/vs/basic-languages/msdax/msdax.js +10 -0
  45. package/dist/ui/vs/basic-languages/mysql/mysql.js +10 -0
  46. package/dist/ui/vs/basic-languages/objective-c/objective-c.js +10 -0
  47. package/dist/ui/vs/basic-languages/pascal/pascal.js +10 -0
  48. package/dist/ui/vs/basic-languages/pascaligo/pascaligo.js +10 -0
  49. package/dist/ui/vs/basic-languages/perl/perl.js +10 -0
  50. package/dist/ui/vs/basic-languages/pgsql/pgsql.js +10 -0
  51. package/dist/ui/vs/basic-languages/php/php.js +10 -0
  52. package/dist/ui/vs/basic-languages/pla/pla.js +10 -0
  53. package/dist/ui/vs/basic-languages/postiats/postiats.js +10 -0
  54. package/dist/ui/vs/basic-languages/powerquery/powerquery.js +10 -0
  55. package/dist/ui/vs/basic-languages/powershell/powershell.js +10 -0
  56. package/dist/ui/vs/basic-languages/protobuf/protobuf.js +11 -0
  57. package/dist/ui/vs/basic-languages/pug/pug.js +10 -0
  58. package/dist/ui/vs/basic-languages/python/python.js +10 -0
  59. package/dist/ui/vs/basic-languages/qsharp/qsharp.js +10 -0
  60. package/dist/ui/vs/basic-languages/r/r.js +10 -0
  61. package/dist/ui/vs/basic-languages/razor/razor.js +10 -0
  62. package/dist/ui/vs/basic-languages/redis/redis.js +10 -0
  63. package/dist/ui/vs/basic-languages/redshift/redshift.js +10 -0
  64. package/dist/ui/vs/basic-languages/restructuredtext/restructuredtext.js +10 -0
  65. package/dist/ui/vs/basic-languages/ruby/ruby.js +10 -0
  66. package/dist/ui/vs/basic-languages/rust/rust.js +10 -0
  67. package/dist/ui/vs/basic-languages/sb/sb.js +10 -0
  68. package/dist/ui/vs/basic-languages/scala/scala.js +10 -0
  69. package/dist/ui/vs/basic-languages/scheme/scheme.js +10 -0
  70. package/dist/ui/vs/basic-languages/scss/scss.js +12 -0
  71. package/dist/ui/vs/basic-languages/shell/shell.js +10 -0
  72. package/dist/ui/vs/basic-languages/solidity/solidity.js +10 -0
  73. package/dist/ui/vs/basic-languages/sophia/sophia.js +10 -0
  74. package/dist/ui/vs/basic-languages/sparql/sparql.js +10 -0
  75. package/dist/ui/vs/basic-languages/sql/sql.js +10 -0
  76. package/dist/ui/vs/basic-languages/st/st.js +10 -0
  77. package/dist/ui/vs/basic-languages/swift/swift.js +13 -0
  78. package/dist/ui/vs/basic-languages/systemverilog/systemverilog.js +10 -0
  79. package/dist/ui/vs/basic-languages/tcl/tcl.js +10 -0
  80. package/dist/ui/vs/basic-languages/twig/twig.js +10 -0
  81. package/dist/ui/vs/basic-languages/typescript/typescript.js +10 -0
  82. package/dist/ui/vs/basic-languages/typespec/typespec.js +10 -0
  83. package/dist/ui/vs/basic-languages/vb/vb.js +10 -0
  84. package/dist/ui/vs/basic-languages/wgsl/wgsl.js +307 -0
  85. package/dist/ui/vs/basic-languages/xml/xml.js +10 -0
  86. package/dist/ui/vs/basic-languages/yaml/yaml.js +10 -0
  87. package/dist/ui/vs/editor/editor.main.css +8 -0
  88. package/dist/ui/vs/editor/editor.main.js +798 -0
  89. package/dist/ui/vs/language/css/cssMode.js +13 -0
  90. package/dist/ui/vs/language/css/cssWorker.js +77 -0
  91. package/dist/ui/vs/language/html/htmlMode.js +13 -0
  92. package/dist/ui/vs/language/html/htmlWorker.js +454 -0
  93. package/dist/ui/vs/language/json/jsonMode.js +19 -0
  94. package/dist/ui/vs/language/json/jsonWorker.js +42 -0
  95. package/dist/ui/vs/language/typescript/tsMode.js +20 -0
  96. package/dist/ui/vs/language/typescript/tsWorker.js +51328 -0
  97. package/dist/ui/vs/loader.js +11 -0
  98. package/dist/ui/vs/nls.messages.de.js +20 -0
  99. package/dist/ui/vs/nls.messages.es.js +20 -0
  100. package/dist/ui/vs/nls.messages.fr.js +18 -0
  101. package/dist/ui/vs/nls.messages.it.js +18 -0
  102. package/dist/ui/vs/nls.messages.ja.js +20 -0
  103. package/dist/ui/vs/nls.messages.ko.js +18 -0
  104. package/dist/ui/vs/nls.messages.ru.js +20 -0
  105. package/dist/ui/vs/nls.messages.zh-cn.js +20 -0
  106. package/dist/ui/vs/nls.messages.zh-tw.js +18 -0
  107. package/dist/web-repl.controller.d.ts +2 -1
  108. package/dist/web-repl.controller.js +20 -0
  109. package/package.json +5 -4
@@ -0,0 +1,6 @@
1
+ export declare function monacoVsDir(): string;
2
+ export interface MonacoAsset {
3
+ buffer: Buffer;
4
+ contentType: string;
5
+ }
6
+ export declare function resolveMonacoFile(relPath: string): MonacoAsset | null;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.monacoVsDir = monacoVsDir;
4
+ exports.resolveMonacoFile = resolveMonacoFile;
5
+ const node_fs_1 = require("node:fs");
6
+ const node_path_1 = require("node:path");
7
+ // Resolve Monaco's `min/vs` directory. In a published install the build
8
+ // step (scripts/copy-monaco.mjs) copied it next to this compiled module at
9
+ // dist/ui/vs. When running from source (dev/test) that copy is absent, so
10
+ // fall back to the monaco-editor devDependency resolved from node_modules.
11
+ let cachedVsDir;
12
+ function monacoVsDir() {
13
+ if (cachedVsDir)
14
+ return cachedVsDir;
15
+ const bundled = (0, node_path_1.join)(__dirname, 'vs');
16
+ cachedVsDir = (0, node_fs_1.existsSync)(bundled)
17
+ ? bundled
18
+ : (0, node_path_1.dirname)(require.resolve('monaco-editor/min/vs/loader.js'));
19
+ return cachedVsDir;
20
+ }
21
+ const MIME_BY_EXT = {
22
+ '.js': 'text/javascript',
23
+ '.css': 'text/css',
24
+ '.ttf': 'font/ttf',
25
+ '.map': 'application/json',
26
+ };
27
+ // Resolve one file under the vs root. Returns null for a miss, a directory,
28
+ // OR any path that escapes the root -- the sole traversal guard for the
29
+ // asset route. path.join neutralizes a leading "/" (absolute paths become
30
+ // root-relative) and normalize collapses ".." so the startsWith check
31
+ // reliably rejects escapes.
32
+ function resolveMonacoFile(relPath) {
33
+ const root = monacoVsDir();
34
+ const full = (0, node_path_1.normalize)((0, node_path_1.join)(root, relPath));
35
+ if (full !== root && !full.startsWith(root + node_path_1.sep))
36
+ return null;
37
+ if (!(0, node_fs_1.existsSync)(full) || !(0, node_fs_1.statSync)(full).isFile())
38
+ return null;
39
+ const ext = (0, node_path_1.extname)(full).toLowerCase();
40
+ return {
41
+ buffer: (0, node_fs_1.readFileSync)(full),
42
+ contentType: MIME_BY_EXT[ext] ?? 'application/octet-stream',
43
+ };
44
+ }
@@ -23,28 +23,39 @@ function renderReplUi(channel) {
23
23
  <title>REPL: ${safe}</title>
24
24
  <style>
25
25
  html,body{height:100%;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace;background:#1e1e1e;color:#ddd}
26
- #app{display:flex;flex-direction:column;height:100vh}
26
+ #app{display:flex;flex-direction:column;height:100vh;height:100dvh}
27
27
  #out{flex:1;overflow:auto;padding:10px;white-space:pre-wrap;font-size:13px;line-height:1.4}
28
+ #out:empty::before{content:'Run a command to see output.';color:#666}
28
29
  #out .cmd{color:#4ec9b0}#out .sys{color:#888}#out .err{color:#f14c4c}
29
- #editor{height:32%;border-top:1px solid #333}
30
- #bar{display:flex;gap:12px;align-items:center;padding:6px 10px;background:#252526;font-size:12px;border-top:1px solid #333}
30
+ #editor{height:32%}
31
+ #bar{display:flex;gap:12px;align-items:center;padding:6px 10px;background:#252526;font-size:12px;border-top:1px solid #333;border-bottom:1px solid #333}
31
32
  #bar .dot{width:8px;height:8px;border-radius:50%;background:#666;display:inline-block;margin-right:4px}
32
33
  #bar .dot.on{background:#3fb950}
33
34
  button{background:#0e639c;color:#fff;border:0;padding:4px 12px;border-radius:3px;cursor:pointer}
35
+ @media (max-width:600px){
36
+ #bar{flex-wrap:wrap;gap:6px 12px;padding:8px 10px}
37
+ #bar>span{white-space:nowrap}
38
+ #owner{overflow:hidden;text-overflow:ellipsis;max-width:100%}
39
+ .run-wrap{flex:1 0 100%}
40
+ #run{width:100%;min-height:44px;padding:10px 16px;font-size:15px;white-space:nowrap}
41
+ #run .kbd-hint{display:none}
42
+ #out{flex:1 1 0;min-height:96px}
43
+ #editor{height:auto;flex:1 1 0;min-height:200px}
44
+ }
34
45
  </style>
35
46
  </head>
36
47
  <body>
37
48
  <div id="app">
38
49
  <div id="out"></div>
39
- <div id="editor"></div>
40
50
  <div id="bar">
41
51
  <span><span id="dot" class="dot"></span><span id="state">connecting…</span></span>
42
52
  <span>channel: <b>${safe}</b></span>
43
53
  <span id="owner"></span>
44
- <span style="margin-left:auto"><button id="run">Run ▶ (Ctrl+Enter)</button></span>
54
+ <span class="run-wrap" style="margin-left:auto"><button id="run">Run ▶ <span class="kbd-hint">(Ctrl+Enter)</span></button></span>
45
55
  </div>
56
+ <div id="editor"></div>
46
57
  </div>
47
- <script src="https://cdn.jsdelivr.net/npm/monaco-editor@0.52.0/min/vs/loader.js"></script>
58
+ <script src="vs/loader.js"></script>
48
59
  <script>
49
60
  const channel = ${channelLiteral};
50
61
  const channelPath = encodeURIComponent(channel);
@@ -100,7 +111,7 @@ function renderReplUi(channel) {
100
111
  };
101
112
 
102
113
  let editor;
103
- require.config({ paths: { vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.52.0/min/vs' }});
114
+ require.config({ paths: { vs: new URL('vs', document.baseURI).href }});
104
115
  require(['vs/editor/editor.main'], function(){
105
116
  editor = monaco.editor.create(document.getElementById('editor'), {
106
117
  value: '', language: 'typescript', theme: 'vs-dark', minimap:{enabled:false}, automaticLayout:true