@phpsandbox/sdk 0.0.38 → 0.0.39
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/browser/phpsandbox-sdk.esm.js +67 -47
- package/dist/browser/phpsandbox-sdk.esm.js.map +3 -3
- package/dist/browser/phpsandbox-sdk.esm.min.js +2 -2
- package/dist/browser/phpsandbox-sdk.esm.min.js.map +3 -3
- package/dist/browser/phpsandbox-sdk.iife.js +67 -47
- package/dist/browser/phpsandbox-sdk.iife.js.map +3 -3
- package/dist/browser/phpsandbox-sdk.iife.min.js +2 -2
- package/dist/browser/phpsandbox-sdk.iife.min.js.map +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/socket/index.d.ts +1 -18
- package/dist/socket/index.d.ts.map +1 -1
- package/dist/socket/index.js +22 -40
- package/dist/socket/index.js.map +1 -1
- package/dist/terminal.d.ts +1 -1
- package/dist/terminal.d.ts.map +1 -1
- package/dist/terminal.js +42 -9
- package/dist/terminal.js.map +1 -1
- package/package.json +1 -1
package/dist/terminal.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { nanoid } from 'nanoid';
|
|
2
2
|
import { once } from './utils/promise.js';
|
|
3
|
+
const TERMINAL_INPUT_FLUSH_DELAY_MS = 8;
|
|
4
|
+
const terminalInputFlushPattern = /[\x00-\x1f\x7f]/;
|
|
3
5
|
export default class Terminal {
|
|
4
6
|
constructor(okra) {
|
|
5
7
|
this.okra = okra;
|
|
@@ -23,7 +25,7 @@ export default class Terminal {
|
|
|
23
25
|
this.okra.listen(`terminal.output.${id}`, handler);
|
|
24
26
|
}
|
|
25
27
|
input(id, input) {
|
|
26
|
-
return this.okra.
|
|
28
|
+
return Promise.resolve(this.okra.send('terminal.input', { id, input }));
|
|
27
29
|
}
|
|
28
30
|
listen(event, handler) {
|
|
29
31
|
return this.okra.listen(event, handler);
|
|
@@ -67,11 +69,42 @@ export default class Terminal {
|
|
|
67
69
|
}
|
|
68
70
|
disposables.clear();
|
|
69
71
|
};
|
|
72
|
+
let pendingInput = '';
|
|
73
|
+
let inputFlushTimer;
|
|
74
|
+
const flushInput = () => {
|
|
75
|
+
if (inputFlushTimer) {
|
|
76
|
+
clearTimeout(inputFlushTimer);
|
|
77
|
+
inputFlushTimer = undefined;
|
|
78
|
+
}
|
|
79
|
+
if (pendingInput === '') {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const input = pendingInput;
|
|
83
|
+
pendingInput = '';
|
|
84
|
+
void this.input(id, input);
|
|
85
|
+
};
|
|
86
|
+
const scheduleInputFlush = () => {
|
|
87
|
+
if (inputFlushTimer) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
inputFlushTimer = setTimeout(flushInput, TERMINAL_INPUT_FLUSH_DELAY_MS);
|
|
91
|
+
};
|
|
92
|
+
const queueInput = (chunk) => {
|
|
93
|
+
pendingInput += chunk;
|
|
94
|
+
if (terminalInputFlushPattern.test(chunk)) {
|
|
95
|
+
flushInput();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
scheduleInputFlush();
|
|
99
|
+
};
|
|
100
|
+
const disposeInput = () => {
|
|
101
|
+
flushInput();
|
|
102
|
+
dispose();
|
|
103
|
+
};
|
|
70
104
|
const input = new WritableStream({
|
|
71
|
-
write:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
close: dispose,
|
|
105
|
+
write: queueInput,
|
|
106
|
+
close: disposeInput,
|
|
107
|
+
abort: disposeInput,
|
|
75
108
|
});
|
|
76
109
|
let controller = null;
|
|
77
110
|
const output = new ReadableStream({
|
|
@@ -83,7 +116,7 @@ export default class Terminal {
|
|
|
83
116
|
},
|
|
84
117
|
cancel: () => {
|
|
85
118
|
controller = null;
|
|
86
|
-
|
|
119
|
+
disposeInput();
|
|
87
120
|
},
|
|
88
121
|
});
|
|
89
122
|
const exit = new Promise((resolve) => {
|
|
@@ -96,12 +129,12 @@ export default class Terminal {
|
|
|
96
129
|
// Ignore close errors after cancellation.
|
|
97
130
|
}
|
|
98
131
|
}
|
|
99
|
-
|
|
132
|
+
disposeInput();
|
|
100
133
|
resolve(data.exitCode);
|
|
101
134
|
}));
|
|
102
135
|
});
|
|
103
136
|
const kill = once(() => {
|
|
104
|
-
|
|
137
|
+
disposeInput();
|
|
105
138
|
return this.okra.invoke('terminal.close', { id });
|
|
106
139
|
});
|
|
107
140
|
const resize = (dimensions) => {
|
|
@@ -118,7 +151,7 @@ export default class Terminal {
|
|
|
118
151
|
kill,
|
|
119
152
|
resize,
|
|
120
153
|
},
|
|
121
|
-
dispose,
|
|
154
|
+
dispose: disposeInput,
|
|
122
155
|
};
|
|
123
156
|
}
|
|
124
157
|
}
|
package/dist/terminal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED