@monotykamary/localterm-server 2.72.12 → 2.72.13

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.
@@ -1,16 +1,29 @@
1
- const SYNCHRONIZED_OUTPUT_END_SEQUENCE = "\x1b[?2026l";
2
- const TRAILING_PREFIX_LENGTH = SYNCHRONIZED_OUTPUT_END_SEQUENCE.length - 1;
1
+ const SYNCHRONIZED_OUTPUT_CONTROL_PREFIX = "\x1b[?2026";
2
+ const SYNCHRONIZED_OUTPUT_START_FINAL = "h";
3
+ const SYNCHRONIZED_OUTPUT_END_FINAL = "l";
4
+ const SYNCHRONIZED_OUTPUT_SEQUENCE_LENGTH = SYNCHRONIZED_OUTPUT_CONTROL_PREFIX.length + 1;
5
+ const TRAILING_PREFIX_LENGTH = SYNCHRONIZED_OUTPUT_SEQUENCE_LENGTH - 1;
3
6
  export const createSynchronizedOutputEndDetector = () => {
7
+ let synchronizedOutputActive = false;
4
8
  let trailingPrefix = "";
5
9
  return {
10
+ isActive: () => synchronizedOutputActive,
6
11
  push: (data) => {
7
- const boundaryCandidate = trailingPrefix + data.slice(0, TRAILING_PREFIX_LENGTH);
8
- const didEndSynchronizedOutput = data.includes(SYNCHRONIZED_OUTPUT_END_SEQUENCE) ||
9
- boundaryCandidate.includes(SYNCHRONIZED_OUTPUT_END_SEQUENCE);
10
- trailingPrefix =
11
- data.length >= TRAILING_PREFIX_LENGTH
12
- ? data.slice(-TRAILING_PREFIX_LENGTH)
13
- : (trailingPrefix + data).slice(-TRAILING_PREFIX_LENGTH);
12
+ const candidate = trailingPrefix + data;
13
+ let didEndSynchronizedOutput = false;
14
+ let controlIndex = candidate.indexOf(SYNCHRONIZED_OUTPUT_CONTROL_PREFIX);
15
+ while (controlIndex !== -1) {
16
+ const finalCharacter = candidate[controlIndex + SYNCHRONIZED_OUTPUT_CONTROL_PREFIX.length];
17
+ if (finalCharacter === SYNCHRONIZED_OUTPUT_START_FINAL) {
18
+ synchronizedOutputActive = true;
19
+ }
20
+ else if (finalCharacter === SYNCHRONIZED_OUTPUT_END_FINAL) {
21
+ synchronizedOutputActive = false;
22
+ didEndSynchronizedOutput = true;
23
+ }
24
+ controlIndex = candidate.indexOf(SYNCHRONIZED_OUTPUT_CONTROL_PREFIX, controlIndex + 1);
25
+ }
26
+ trailingPrefix = candidate.slice(-TRAILING_PREFIX_LENGTH);
14
27
  return didEndSynchronizedOutput;
15
28
  },
16
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-synchronized-output-end-detector.js","sourceRoot":"","sources":["../../src/utils/create-synchronized-output-end-detector.ts"],"names":[],"mappings":"AAAA,MAAM,gCAAgC,GAAG,aAAa,CAAC;AACvD,MAAM,sBAAsB,GAAG,gCAAgC,CAAC,MAAM,GAAG,CAAC,CAAC;AAM3E,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAkC,EAAE;IACrF,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,OAAO;QACL,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,iBAAiB,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;YACjF,MAAM,wBAAwB,GAC5B,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC;gBAC/C,iBAAiB,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;YAE/D,cAAc;gBACZ,IAAI,CAAC,MAAM,IAAI,sBAAsB;oBACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC;oBACrC,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAE7D,OAAO,wBAAwB,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"create-synchronized-output-end-detector.js","sourceRoot":"","sources":["../../src/utils/create-synchronized-output-end-detector.ts"],"names":[],"mappings":"AAAA,MAAM,kCAAkC,GAAG,YAAY,CAAC;AACxD,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAC5C,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAC1C,MAAM,mCAAmC,GAAG,kCAAkC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1F,MAAM,sBAAsB,GAAG,mCAAmC,GAAG,CAAC,CAAC;AAOvE,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAkC,EAAE;IACrF,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,wBAAwB;QACxC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;YACxC,IAAI,wBAAwB,GAAG,KAAK,CAAC;YACrC,IAAI,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YAEzE,OAAO,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC3B,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAC;gBAC3F,IAAI,cAAc,KAAK,+BAA+B,EAAE,CAAC;oBACvD,wBAAwB,GAAG,IAAI,CAAC;gBAClC,CAAC;qBAAM,IAAI,cAAc,KAAK,6BAA6B,EAAE,CAAC;oBAC5D,wBAAwB,GAAG,KAAK,CAAC;oBACjC,wBAAwB,GAAG,IAAI,CAAC;gBAClC,CAAC;gBACD,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,kCAAkC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YACzF,CAAC;YAED,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,wBAAwB,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monotykamary/localterm-server",
3
- "version": "2.72.12",
3
+ "version": "2.72.13",
4
4
  "description": "PTY-backed HTTP/WebSocket server that powers localterm, built on Hono + node-pty.",
5
5
  "keywords": [
6
6
  "hono",