pinokiod 3.86.0 → 3.87.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 (67) hide show
  1. package/Dockerfile +61 -0
  2. package/docker-entrypoint.sh +75 -0
  3. package/kernel/api/hf/index.js +1 -1
  4. package/kernel/api/index.js +1 -1
  5. package/kernel/api/shell/index.js +6 -0
  6. package/kernel/api/terminal/index.js +166 -0
  7. package/kernel/bin/conda.js +3 -2
  8. package/kernel/bin/index.js +53 -2
  9. package/kernel/bin/setup.js +32 -0
  10. package/kernel/bin/vs.js +11 -2
  11. package/kernel/index.js +42 -2
  12. package/kernel/info.js +36 -0
  13. package/kernel/peer.js +42 -15
  14. package/kernel/router/index.js +23 -15
  15. package/kernel/router/localhost_static_router.js +0 -3
  16. package/kernel/router/pinokio_domain_router.js +333 -0
  17. package/kernel/shells.js +21 -1
  18. package/kernel/util.js +2 -2
  19. package/package.json +2 -1
  20. package/script/install-mode.js +33 -0
  21. package/script/pinokio.json +7 -0
  22. package/server/index.js +513 -173
  23. package/server/public/Socket.js +48 -0
  24. package/server/public/common.js +1441 -276
  25. package/server/public/fseditor.js +71 -12
  26. package/server/public/install.js +1 -1
  27. package/server/public/layout.js +740 -0
  28. package/server/public/modalinput.js +0 -1
  29. package/server/public/style.css +97 -105
  30. package/server/public/tab-idle-notifier.js +629 -0
  31. package/server/public/terminal_input_tracker.js +63 -0
  32. package/server/public/urldropdown.css +319 -53
  33. package/server/public/urldropdown.js +615 -159
  34. package/server/public/window_storage.js +97 -28
  35. package/server/socket.js +40 -9
  36. package/server/views/500.ejs +2 -2
  37. package/server/views/app.ejs +3136 -1367
  38. package/server/views/bookmarklet.ejs +1 -1
  39. package/server/views/bootstrap.ejs +1 -1
  40. package/server/views/columns.ejs +2 -13
  41. package/server/views/connect.ejs +3 -4
  42. package/server/views/container.ejs +1 -2
  43. package/server/views/d.ejs +223 -53
  44. package/server/views/editor.ejs +1 -1
  45. package/server/views/file_explorer.ejs +1 -1
  46. package/server/views/index.ejs +12 -11
  47. package/server/views/index2.ejs +4 -4
  48. package/server/views/init/index.ejs +4 -5
  49. package/server/views/install.ejs +1 -1
  50. package/server/views/layout.ejs +105 -0
  51. package/server/views/net.ejs +39 -7
  52. package/server/views/network.ejs +20 -6
  53. package/server/views/network2.ejs +1 -1
  54. package/server/views/old_network.ejs +2 -2
  55. package/server/views/partials/dynamic.ejs +3 -5
  56. package/server/views/partials/menu.ejs +3 -5
  57. package/server/views/partials/running.ejs +1 -1
  58. package/server/views/pro.ejs +1 -1
  59. package/server/views/prototype/index.ejs +1 -1
  60. package/server/views/review.ejs +11 -23
  61. package/server/views/rows.ejs +2 -13
  62. package/server/views/screenshots.ejs +293 -138
  63. package/server/views/settings.ejs +3 -4
  64. package/server/views/setup.ejs +1 -2
  65. package/server/views/shell.ejs +277 -26
  66. package/server/views/terminal.ejs +322 -49
  67. package/server/views/tools.ejs +448 -4
@@ -91,12 +91,60 @@ class Socket {
91
91
  });
92
92
  this.ws.addEventListener('close', () => {
93
93
  console.log('Disconnected from WebSocket endpoint', { error: this.error, result: this.result });
94
+ if (typeof window !== 'undefined' && window.parent && window.parent !== window) {
95
+ try {
96
+ window.parent.postMessage({ type: 'pinokio:socket-closed' }, '*')
97
+ } catch (err) {
98
+ console.debug('postMessage error', err)
99
+ }
100
+ }
94
101
  resolve()
95
102
  });
96
103
  }
97
104
 
98
105
  })
99
106
  }
107
+ sendBinary(buffer) {
108
+ return new Promise((resolve, reject) => {
109
+ if (!buffer) {
110
+ resolve()
111
+ return
112
+ }
113
+ if (!this.ws) {
114
+ reject(new Error("socket not connected"))
115
+ return
116
+ }
117
+ const send = () => {
118
+ try {
119
+ this.ws.send(buffer)
120
+ resolve()
121
+ } catch (error) {
122
+ reject(error)
123
+ }
124
+ }
125
+ if (this.ws.readyState === WebSocket.OPEN) {
126
+ send()
127
+ } else if (this.ws.readyState === WebSocket.CONNECTING) {
128
+ let cleanup
129
+ const handleOpen = () => {
130
+ cleanup()
131
+ send()
132
+ }
133
+ const handleError = () => {
134
+ cleanup()
135
+ reject(new Error("socket connection failed"))
136
+ }
137
+ cleanup = () => {
138
+ this.ws.removeEventListener('open', handleOpen)
139
+ this.ws.removeEventListener('error', handleError)
140
+ }
141
+ this.ws.addEventListener('open', handleOpen)
142
+ this.ws.addEventListener('error', handleError)
143
+ } else {
144
+ reject(new Error("socket not ready"))
145
+ }
146
+ })
147
+ }
100
148
  emit(e) {
101
149
  this.ws.send(JSON.stringify(e))
102
150
  }