green-screen-proxy 1.0.3 → 1.1.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.
- package/dist/controller.d.ts +2 -0
- package/dist/controller.d.ts.map +1 -1
- package/dist/controller.js +37 -5
- package/dist/controller.js.map +1 -1
- package/dist/protocols/tn5250-handler.d.ts +14 -1
- package/dist/protocols/tn5250-handler.d.ts.map +1 -1
- package/dist/protocols/tn5250-handler.js +204 -16
- package/dist/protocols/tn5250-handler.js.map +1 -1
- package/dist/routes.js +2 -2
- package/dist/routes.js.map +1 -1
- package/dist/session.d.ts +2 -2
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +2 -2
- package/dist/session.js.map +1 -1
- package/dist/tn5250/connection.d.ts +2 -1
- package/dist/tn5250/connection.d.ts.map +1 -1
- package/dist/tn5250/connection.js +5 -3
- package/dist/tn5250/connection.js.map +1 -1
- package/dist/tn5250/constants.d.ts +15 -0
- package/dist/tn5250/constants.d.ts.map +1 -1
- package/dist/tn5250/constants.js +18 -0
- package/dist/tn5250/constants.js.map +1 -1
- package/dist/tn5250/encoder.d.ts +11 -0
- package/dist/tn5250/encoder.d.ts.map +1 -1
- package/dist/tn5250/encoder.js +107 -5
- package/dist/tn5250/encoder.js.map +1 -1
- package/dist/tn5250/parser.d.ts +64 -6
- package/dist/tn5250/parser.d.ts.map +1 -1
- package/dist/tn5250/parser.js +579 -134
- package/dist/tn5250/parser.js.map +1 -1
- package/dist/tn5250/screen.d.ts +93 -0
- package/dist/tn5250/screen.d.ts.map +1 -1
- package/dist/tn5250/screen.js +283 -12
- package/dist/tn5250/screen.js.map +1 -1
- package/dist/websocket.d.ts.map +1 -1
- package/dist/websocket.js +90 -19
- package/dist/websocket.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,10 +16,11 @@ export declare class TN5250Connection extends EventEmitter {
|
|
|
16
16
|
private connected;
|
|
17
17
|
private recvBuffer;
|
|
18
18
|
private negotiationDone;
|
|
19
|
+
private terminalType;
|
|
19
20
|
get isConnected(): boolean;
|
|
20
21
|
get remoteHost(): string;
|
|
21
22
|
get remotePort(): number;
|
|
22
|
-
connect(host: string, port: number): Promise<void>;
|
|
23
|
+
connect(host: string, port: number, terminalType?: string): Promise<void>;
|
|
23
24
|
disconnect(): void;
|
|
24
25
|
/** Send raw bytes over the socket */
|
|
25
26
|
sendRaw(data: Buffer): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/tn5250/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAkB;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/tn5250/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAiC;IAErD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDzE,UAAU,IAAI,IAAI;IAOlB,qCAAqC;IACrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,aAAa;IA6DrB,kDAAkD;IAClD,OAAO,CAAC,aAAa;IASrB,wCAAwC;IACxC,OAAO,CAAC,aAAa;IASrB,wCAAwC;IACxC,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as net from 'net';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
-
import { TELNET, TERMINAL_TYPE } from './constants.js';
|
|
3
|
+
import { TELNET, TERMINAL_TYPE as DEFAULT_TERMINAL_TYPE } from './constants.js';
|
|
4
4
|
/**
|
|
5
5
|
* Manages raw TCP socket to IBM i, handles Telnet negotiation,
|
|
6
6
|
* and extracts 5250 data records (delimited by IAC EOR).
|
|
@@ -12,6 +12,7 @@ export class TN5250Connection extends EventEmitter {
|
|
|
12
12
|
connected = false;
|
|
13
13
|
recvBuffer = Buffer.alloc(0);
|
|
14
14
|
negotiationDone = false;
|
|
15
|
+
terminalType = DEFAULT_TERMINAL_TYPE;
|
|
15
16
|
get isConnected() {
|
|
16
17
|
return this.connected;
|
|
17
18
|
}
|
|
@@ -21,7 +22,7 @@ export class TN5250Connection extends EventEmitter {
|
|
|
21
22
|
get remotePort() {
|
|
22
23
|
return this.port;
|
|
23
24
|
}
|
|
24
|
-
connect(host, port) {
|
|
25
|
+
connect(host, port, terminalType) {
|
|
25
26
|
return new Promise((resolve, reject) => {
|
|
26
27
|
if (this.socket) {
|
|
27
28
|
this.disconnect();
|
|
@@ -30,6 +31,7 @@ export class TN5250Connection extends EventEmitter {
|
|
|
30
31
|
this.port = port;
|
|
31
32
|
this.recvBuffer = Buffer.alloc(0);
|
|
32
33
|
this.negotiationDone = false;
|
|
34
|
+
this.terminalType = terminalType || DEFAULT_TERMINAL_TYPE;
|
|
33
35
|
this.socket = new net.Socket();
|
|
34
36
|
this.socket.setTimeout(30000);
|
|
35
37
|
const onError = (err) => {
|
|
@@ -219,7 +221,7 @@ export class TN5250Connection extends EventEmitter {
|
|
|
219
221
|
}
|
|
220
222
|
}
|
|
221
223
|
sendTerminalType() {
|
|
222
|
-
const typeStr =
|
|
224
|
+
const typeStr = this.terminalType;
|
|
223
225
|
const buf = Buffer.alloc(4 + typeStr.length + 2);
|
|
224
226
|
let i = 0;
|
|
225
227
|
buf[i++] = TELNET.IAC;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/tn5250/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/tn5250/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,7 @@ export declare const ORDER: {
|
|
|
61
61
|
readonly TD: 16;
|
|
62
62
|
readonly WEA: 4;
|
|
63
63
|
readonly SF: 29;
|
|
64
|
+
readonly WDSF: 21;
|
|
64
65
|
readonly SA: 40;
|
|
65
66
|
};
|
|
66
67
|
export declare const AID: {
|
|
@@ -118,6 +119,16 @@ export declare const ATTR: {
|
|
|
118
119
|
readonly NON_DISPLAY: 39;
|
|
119
120
|
readonly COLUMN_SEPARATOR: 35;
|
|
120
121
|
};
|
|
122
|
+
export declare const WDSF_TYPE: {
|
|
123
|
+
readonly DEFINE_SELECTION_FIELD: 80;
|
|
124
|
+
readonly CREATE_WINDOW: 81;
|
|
125
|
+
readonly UNRESTRICT_CURSOR: 82;
|
|
126
|
+
readonly DEFINE_SCROLL_BAR: 83;
|
|
127
|
+
readonly WRITE_DATA: 84;
|
|
128
|
+
readonly REM_GUI_WINDOW: 89;
|
|
129
|
+
readonly REM_ALL_GUI_CONSTRUCTS: 95;
|
|
130
|
+
};
|
|
131
|
+
export declare const WDSF_CLASS = 217;
|
|
121
132
|
export declare const SCREEN: {
|
|
122
133
|
readonly ROWS_24: 24;
|
|
123
134
|
readonly COLS_80: 80;
|
|
@@ -126,4 +137,8 @@ export declare const SCREEN: {
|
|
|
126
137
|
};
|
|
127
138
|
export declare const TERMINAL_TYPE = "IBM-3179-2";
|
|
128
139
|
export declare const TERMINAL_TYPE_WIDE = "IBM-3477-FC";
|
|
140
|
+
export declare const TERMINAL_DIMENSIONS: Record<string, {
|
|
141
|
+
rows: number;
|
|
142
|
+
cols: number;
|
|
143
|
+
}>;
|
|
129
144
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/tn5250/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;CAwBT,CAAC;AAKX,eAAO,MAAM,WAAW;;CAEd,CAAC;AAGX,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAC;AAGX,eAAO,MAAM,GAAG;;;;;;;;;;;;;;CAcN,CAAC;AAGX,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/tn5250/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;CAwBT,CAAC;AAKX,eAAO,MAAM,WAAW;;CAEd,CAAC;AAGX,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAC;AAGX,eAAO,MAAM,GAAG;;;;;;;;;;;;;;CAcN,CAAC;AAGX,eAAO,MAAM,KAAK;;;;;;;;;;;;CAYR,CAAC;AAGX,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCN,CAAC;AAGX,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAa7C,CAAC;AAGF,eAAO,MAAM,GAAG;;;;;;;;;;CAYN,CAAC;AAGX,eAAO,MAAM,IAAI;;;;;;;;CAQP,CAAC;AAGX,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAGX,eAAO,MAAM,UAAU,MAAO,CAAC;AAG/B,eAAO,MAAM,MAAM;;;;;CAKT,CAAC;AAGX,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAGhD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAG9E,CAAC"}
|
package/dist/tn5250/constants.js
CHANGED
|
@@ -69,6 +69,7 @@ export const ORDER = {
|
|
|
69
69
|
TD: 0x10, // Transparent Data
|
|
70
70
|
WEA: 0x04, // Write Extended Attribute
|
|
71
71
|
SF: 0x1D, // Start Field (used in field attribute)
|
|
72
|
+
WDSF: 0x15, // Write Display Structured Field (within WTD)
|
|
72
73
|
SA: 0x28, // Set Attribute
|
|
73
74
|
};
|
|
74
75
|
// 5250 Aid key bytes (sent from client to host)
|
|
@@ -144,6 +145,18 @@ export const ATTR = {
|
|
|
144
145
|
NON_DISPLAY: 0x27,
|
|
145
146
|
COLUMN_SEPARATOR: 0x23,
|
|
146
147
|
};
|
|
148
|
+
// Write Display Structured Field (WDSF) types — within WTD (ORDER.WDSF = 0x15)
|
|
149
|
+
export const WDSF_TYPE = {
|
|
150
|
+
DEFINE_SELECTION_FIELD: 0x50,
|
|
151
|
+
CREATE_WINDOW: 0x51,
|
|
152
|
+
UNRESTRICT_CURSOR: 0x52,
|
|
153
|
+
DEFINE_SCROLL_BAR: 0x53,
|
|
154
|
+
WRITE_DATA: 0x54,
|
|
155
|
+
REM_GUI_WINDOW: 0x59,
|
|
156
|
+
REM_ALL_GUI_CONSTRUCTS: 0x5F,
|
|
157
|
+
};
|
|
158
|
+
// Structured field class byte (IBM Display class)
|
|
159
|
+
export const WDSF_CLASS = 0xD9;
|
|
147
160
|
// Screen dimensions
|
|
148
161
|
export const SCREEN = {
|
|
149
162
|
ROWS_24: 24,
|
|
@@ -154,4 +167,9 @@ export const SCREEN = {
|
|
|
154
167
|
// Terminal type strings for negotiation
|
|
155
168
|
export const TERMINAL_TYPE = 'IBM-3179-2';
|
|
156
169
|
export const TERMINAL_TYPE_WIDE = 'IBM-3477-FC';
|
|
170
|
+
// Terminal type → screen dimensions lookup
|
|
171
|
+
export const TERMINAL_DIMENSIONS = {
|
|
172
|
+
[TERMINAL_TYPE]: { rows: SCREEN.ROWS_24, cols: SCREEN.COLS_80 },
|
|
173
|
+
[TERMINAL_TYPE_WIDE]: { rows: SCREEN.ROWS_27, cols: SCREEN.COLS_132 },
|
|
174
|
+
};
|
|
157
175
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tn5250/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tn5250/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/tn5250/encoder.d.ts
CHANGED
|
@@ -29,11 +29,22 @@ export declare class TN5250Encoder {
|
|
|
29
29
|
* Also escapes any 0xFF bytes in the data as IAC IAC.
|
|
30
30
|
*/
|
|
31
31
|
private wrapWithEOR;
|
|
32
|
+
/**
|
|
33
|
+
* Build a 5250 Query Reply response.
|
|
34
|
+
* Per lib5250 session.c:2367-2580. Tells the host our terminal capabilities,
|
|
35
|
+
* including enhanced 5250 WDSF support (windows, selection fields, etc.).
|
|
36
|
+
*/
|
|
37
|
+
buildQueryReply(terminalType?: string): Buffer;
|
|
32
38
|
/**
|
|
33
39
|
* Insert text at the current cursor position in the current field.
|
|
34
40
|
* Updates the screen buffer and marks the field as modified.
|
|
35
41
|
* Returns true if text was successfully inserted.
|
|
36
42
|
*/
|
|
37
43
|
insertText(text: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Field Exit: right-adjust field value per FFW2 bits and mark modified.
|
|
46
|
+
* Does NOT advance cursor — caller should handle that (e.g., Tab).
|
|
47
|
+
*/
|
|
48
|
+
fieldExit(): boolean;
|
|
38
49
|
}
|
|
39
50
|
//# sourceMappingURL=encoder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/tn5250/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAIhC;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiDhD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAoBnB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/tn5250/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAIhC;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiDhD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAoBnB;;;;OAIG;IACH,eAAe,CAAC,YAAY,SAAe,GAAG,MAAM;IAuFpD;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA+BjC;;;OAGG;IACH,SAAS,IAAI,OAAO;CAoBrB"}
|
package/dist/tn5250/encoder.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TELNET, KEY_TO_AID, AID } from './constants.js';
|
|
1
|
+
import { TELNET, KEY_TO_AID, AID, FFW } from './constants.js';
|
|
2
2
|
import { charToEbcdic, EBCDIC_SPACE } from './ebcdic.js';
|
|
3
3
|
/**
|
|
4
4
|
* Encodes client responses (aid keys + field data) into 5250 data stream
|
|
@@ -23,8 +23,8 @@ export class TN5250Encoder {
|
|
|
23
23
|
const cursorCol = this.screen.cursorCol;
|
|
24
24
|
// GDS header: length(2) + record_type(2) + var(1) + reserved(1) + opcode(1)
|
|
25
25
|
parts.push(this.buildGDSHeader());
|
|
26
|
-
// Cursor position + AID byte
|
|
27
|
-
parts.push(Buffer.from([cursorRow, cursorCol, aidByte]));
|
|
26
|
+
// Cursor position (1-based, per 5250 spec) + AID byte
|
|
27
|
+
parts.push(Buffer.from([cursorRow + 1, cursorCol + 1, aidByte]));
|
|
28
28
|
// For certain aid keys (like SysReq), no field data is sent
|
|
29
29
|
if (aidByte === AID.SYS_REQUEST || aidByte === AID.CLEAR) {
|
|
30
30
|
return this.wrapWithEOR(Buffer.concat(parts));
|
|
@@ -35,8 +35,8 @@ export class TN5250Encoder {
|
|
|
35
35
|
continue;
|
|
36
36
|
if (!this.screen.isInputField(field))
|
|
37
37
|
continue;
|
|
38
|
-
// SBA order to indicate field position
|
|
39
|
-
parts.push(Buffer.from([0x11, field.row, field.col]));
|
|
38
|
+
// SBA order to indicate field position (1-based, per 5250 spec)
|
|
39
|
+
parts.push(Buffer.from([0x11, field.row + 1, field.col + 1]));
|
|
40
40
|
// Field data in EBCDIC
|
|
41
41
|
const value = this.screen.getFieldValue(field);
|
|
42
42
|
const ebcdicData = Buffer.alloc(value.length);
|
|
@@ -90,6 +90,79 @@ export class TN5250Encoder {
|
|
|
90
90
|
escaped.push(TELNET.IAC, TELNET.EOR);
|
|
91
91
|
return Buffer.from(escaped);
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Build a 5250 Query Reply response.
|
|
95
|
+
* Per lib5250 session.c:2367-2580. Tells the host our terminal capabilities,
|
|
96
|
+
* including enhanced 5250 WDSF support (windows, selection fields, etc.).
|
|
97
|
+
*/
|
|
98
|
+
buildQueryReply(terminalType = 'IBM-3179-2') {
|
|
99
|
+
const temp = Buffer.alloc(67, 0x00);
|
|
100
|
+
temp[0] = 0x00; // Cursor Row (zero)
|
|
101
|
+
temp[1] = 0x00; // Cursor Column (zero)
|
|
102
|
+
temp[2] = 0x88; // Inbound Write Structured Field Aid
|
|
103
|
+
// Length of query reply data (including these 2 bytes)
|
|
104
|
+
temp[3] = 0x00;
|
|
105
|
+
temp[4] = 0x40; // 64 bytes (enhanced mode)
|
|
106
|
+
temp[5] = 0xD9; // Command class
|
|
107
|
+
temp[6] = 0x70; // Command type — Query
|
|
108
|
+
temp[7] = 0x80; // Flag byte
|
|
109
|
+
temp[8] = 0x06; // Controller hardware class
|
|
110
|
+
temp[9] = 0x00; // Other WSF / 5250 emulator
|
|
111
|
+
temp[10] = 0x01; // Controller code level: Version 1 Release 1.0
|
|
112
|
+
temp[11] = 0x01;
|
|
113
|
+
temp[12] = 0x00;
|
|
114
|
+
// Bytes 13-28: Reserved (already zero)
|
|
115
|
+
temp[29] = 0x01; // Display emulation
|
|
116
|
+
// Device type and model from terminal type string (e.g., "IBM-3179-2")
|
|
117
|
+
const dashIdx = terminalType.indexOf('-');
|
|
118
|
+
const suffix = dashIdx >= 0 ? terminalType.substring(dashIdx + 1) : '3179-2';
|
|
119
|
+
const parts = suffix.split('-');
|
|
120
|
+
const devType = (parts[0] || '3179').padStart(4, '0');
|
|
121
|
+
const devModel = (parts[1] || '2').padStart(2, '0');
|
|
122
|
+
// Convert device type/model to EBCDIC
|
|
123
|
+
for (let i = 0; i < 4 && i < devType.length; i++) {
|
|
124
|
+
temp[30 + i] = charToEbcdic(devType[i]);
|
|
125
|
+
}
|
|
126
|
+
temp[34] = charToEbcdic(' '); // separator
|
|
127
|
+
for (let i = 0; i < 2 && i < devModel.length; i++) {
|
|
128
|
+
temp[35 + i] = charToEbcdic(devModel[i]);
|
|
129
|
+
}
|
|
130
|
+
temp[37] = 0x02; // Standard keyboard
|
|
131
|
+
temp[38] = 0x00; // Extended keyboard ID
|
|
132
|
+
temp[39] = 0x00; // Reserved
|
|
133
|
+
// Serial number (bytes 40-43)
|
|
134
|
+
temp[40] = 0x00;
|
|
135
|
+
temp[41] = 0x61;
|
|
136
|
+
temp[42] = 0x50;
|
|
137
|
+
temp[43] = 0x00;
|
|
138
|
+
temp[44] = 0xFF; // Max input fields (high byte)
|
|
139
|
+
temp[45] = 0xFF; // Max input fields (low byte)
|
|
140
|
+
temp[46] = 0x00; // Control unit customization
|
|
141
|
+
temp[47] = 0x00; // Reserved
|
|
142
|
+
temp[48] = 0x00;
|
|
143
|
+
temp[49] = 0x23; // Controller/Display capability
|
|
144
|
+
temp[50] = 0x31;
|
|
145
|
+
temp[51] = 0x00;
|
|
146
|
+
temp[52] = 0x00;
|
|
147
|
+
// Byte 53 bit 6: Enhanced 5250 FCW & WDSFs
|
|
148
|
+
// Byte 53 bit 7: WRITE ERROR CODE TO WINDOW support
|
|
149
|
+
temp[53] = 0x02;
|
|
150
|
+
// Byte 54 bit 0: Enhanced UI level 2
|
|
151
|
+
temp[54] = 0x80;
|
|
152
|
+
// Bytes 55-66: Reserved (already zero)
|
|
153
|
+
// Wrap in GDS header and Telnet EOR framing
|
|
154
|
+
const gdsHeader = Buffer.from([
|
|
155
|
+
0x00, 0x00, // length placeholder
|
|
156
|
+
0x12, 0xA0, // record type GDS
|
|
157
|
+
0x00, 0x00, // reserved
|
|
158
|
+
0x04, // sub-header length
|
|
159
|
+
0x00, // flags
|
|
160
|
+
0x00, // reserved
|
|
161
|
+
0x00, // opcode NO_OP
|
|
162
|
+
]);
|
|
163
|
+
const packet = Buffer.concat([gdsHeader, temp]);
|
|
164
|
+
return this.wrapWithEOR(packet);
|
|
165
|
+
}
|
|
93
166
|
/**
|
|
94
167
|
* Insert text at the current cursor position in the current field.
|
|
95
168
|
* Updates the screen buffer and marks the field as modified.
|
|
@@ -105,6 +178,13 @@ export class TN5250Encoder {
|
|
|
105
178
|
for (const ch of text) {
|
|
106
179
|
if (cursorOffset >= fieldEnd)
|
|
107
180
|
break; // Field is full
|
|
181
|
+
// In insert mode, shift existing content right to make room
|
|
182
|
+
// (per lib5250 dbuffer.c:790-835 dbuffer_ins)
|
|
183
|
+
if (this.screen.insertMode && this.screen.buffer[cursorOffset] !== ' ') {
|
|
184
|
+
for (let i = fieldEnd - 1; i > cursorOffset; i--) {
|
|
185
|
+
this.screen.buffer[i] = this.screen.buffer[i - 1];
|
|
186
|
+
}
|
|
187
|
+
}
|
|
108
188
|
this.screen.buffer[cursorOffset] = ch;
|
|
109
189
|
cursorOffset++;
|
|
110
190
|
}
|
|
@@ -115,5 +195,27 @@ export class TN5250Encoder {
|
|
|
115
195
|
field.modified = true;
|
|
116
196
|
return true;
|
|
117
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Field Exit: right-adjust field value per FFW2 bits and mark modified.
|
|
200
|
+
* Does NOT advance cursor — caller should handle that (e.g., Tab).
|
|
201
|
+
*/
|
|
202
|
+
fieldExit() {
|
|
203
|
+
const field = this.screen.getFieldAtCursor();
|
|
204
|
+
if (!field || !this.screen.isInputField(field))
|
|
205
|
+
return false;
|
|
206
|
+
const value = this.screen.getFieldValue(field);
|
|
207
|
+
const trimmed = value.replace(/\s+$/, '');
|
|
208
|
+
const adjustType = field.ffw2 & FFW.RIGHT_ADJUST_MASK;
|
|
209
|
+
if (adjustType !== 0 && trimmed.length > 0 && trimmed.length < field.length) {
|
|
210
|
+
let padChar = ' ';
|
|
211
|
+
if (adjustType === 1 || adjustType === 3)
|
|
212
|
+
padChar = '0'; // zero fill
|
|
213
|
+
// adjustType 2, 5 = blank fill (padChar stays ' ')
|
|
214
|
+
const adjusted = padChar.repeat(field.length - trimmed.length) + trimmed;
|
|
215
|
+
this.screen.setFieldValue(field, adjusted);
|
|
216
|
+
}
|
|
217
|
+
field.modified = true;
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
118
220
|
}
|
|
119
221
|
//# sourceMappingURL=encoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/tn5250/encoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/tn5250/encoder.ts"],"names":[],"mappings":"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"}
|
package/dist/tn5250/parser.d.ts
CHANGED
|
@@ -6,6 +6,15 @@ export declare class TN5250Parser {
|
|
|
6
6
|
private screen;
|
|
7
7
|
/** When true, the next SF order should clear stale fields first */
|
|
8
8
|
private pendingFieldsClear;
|
|
9
|
+
/** Set when a WSF 5250 Query is received; handler should send query reply */
|
|
10
|
+
pendingQueryReply: boolean;
|
|
11
|
+
/** Set when an IC order was applied during the last parseOrders call.
|
|
12
|
+
* When true, calculateFieldLengths should NOT override the cursor. */
|
|
13
|
+
private icApplied;
|
|
14
|
+
/** Active window offset — after CREATE_WINDOW, SBA/RA/EA addresses are
|
|
15
|
+
* relative to the window content area, not the full screen. */
|
|
16
|
+
winRowOff: number;
|
|
17
|
+
winColOff: number;
|
|
9
18
|
constructor(screen: ScreenBuffer);
|
|
10
19
|
/**
|
|
11
20
|
* Parse a complete 5250 record (after Telnet framing is removed).
|
|
@@ -36,18 +45,67 @@ export declare class TN5250Parser {
|
|
|
36
45
|
*/
|
|
37
46
|
private parseFieldAttribute;
|
|
38
47
|
/**
|
|
39
|
-
* Parse SF (Start Field) order
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
48
|
+
* Parse SF (Start Field) order.
|
|
49
|
+
* Per lib5250 session.c:1499-1797:
|
|
50
|
+
* First byte: if (byte & 0xE0) != 0x20 → input field with FFW
|
|
51
|
+
* if (byte & 0xE0) == 0x20 → output field, byte IS the attribute
|
|
52
|
+
* Input field: FFW1, FFW2, then loop reading FCW pairs while (byte & 0xE0) != 0x20,
|
|
53
|
+
* then attribute byte (0x20-0x3F), then 2-byte field length.
|
|
54
|
+
* Output field: attribute byte, then 2-byte field length.
|
|
43
55
|
*/
|
|
44
56
|
private parseStartField;
|
|
45
57
|
/**
|
|
46
58
|
* Decode a display attribute byte (0x20–0x3F) into an ATTR constant.
|
|
47
|
-
*
|
|
48
|
-
*
|
|
59
|
+
*
|
|
60
|
+
* 5250 field attribute byte layout (bits of lower nibble):
|
|
61
|
+
* Lower 3 bits (0x07) determine display type:
|
|
62
|
+
* 0 = normal, 1 = column separator, 2 = high intensity,
|
|
63
|
+
* 3 = column separator + HI, 4 = underscore, 5 = underscore + reverse,
|
|
64
|
+
* 6 = underscore + HI, 7 = non-display
|
|
65
|
+
* Bit 3 (0x08): when set, indicates color field (RED, TURQ, etc.)
|
|
66
|
+
* Color is determined by the full byte value (0x28=RED, 0x30=TURQ, etc.)
|
|
67
|
+
* For color fields, the lower 3 bits still encode the display type.
|
|
49
68
|
*/
|
|
50
69
|
private decodeDisplayAttr;
|
|
70
|
+
/**
|
|
71
|
+
* Parse CREATE_WINDOW structured field data.
|
|
72
|
+
* Per lib5250 session.c:3129-3349.
|
|
73
|
+
* Window position = current cursor position. Renders border and erases content area.
|
|
74
|
+
*/
|
|
75
|
+
private parseCreateWindow;
|
|
76
|
+
/**
|
|
77
|
+
* Parse DEFINE_SELECTION_FIELD structured field data.
|
|
78
|
+
* Per lib5250 session.c:2930-3128 (tn5250_session_handle_define_selection).
|
|
79
|
+
*
|
|
80
|
+
* 16-byte fixed header:
|
|
81
|
+
* [0] flagbyte1 [1] flagbyte2 [2] flagbyte3 [3] fieldtype
|
|
82
|
+
* [4-8] reserved (5 bytes)
|
|
83
|
+
* [9] itemsize [10] height [11] items [12] padding
|
|
84
|
+
* [13] separator [14] selectionchar [15] cancelaid
|
|
85
|
+
*
|
|
86
|
+
* Followed by minor structures (type 0x10 = choice text, etc.)
|
|
87
|
+
*/
|
|
88
|
+
private parseDefineSelectionField;
|
|
89
|
+
/**
|
|
90
|
+
* Roll (scroll) screen buffer rows within [top, bot] by `lines` rows.
|
|
91
|
+
* Negative = scroll up, positive = scroll down.
|
|
92
|
+
* Per lib5250 dbuffer.c:869-899.
|
|
93
|
+
*/
|
|
94
|
+
private rollBuffer;
|
|
95
|
+
/**
|
|
96
|
+
* Handle CC2 (Control Character 2) from WTD.
|
|
97
|
+
* Per lib5250 session.c:1033-1066.
|
|
98
|
+
*
|
|
99
|
+
* CC2 bit flags:
|
|
100
|
+
* 0x40 IC_ULOCK — suppress IC cursor positioning when unlocking
|
|
101
|
+
* 0x20 CLR_BLINK — clear blink
|
|
102
|
+
* 0x10 SET_BLINK — set blink
|
|
103
|
+
* 0x08 UNLOCK — unlock keyboard
|
|
104
|
+
* 0x04 ALARM — sound audible alarm
|
|
105
|
+
* 0x02 MESSAGE_OFF — clear message waiting indicator
|
|
106
|
+
* 0x01 MESSAGE_ON — set message waiting indicator
|
|
107
|
+
*/
|
|
108
|
+
private handleCC2;
|
|
51
109
|
/** Clear stale fields when the first SF order arrives after a Reset MDT WTD */
|
|
52
110
|
private clearStaleFieldsOnce;
|
|
53
111
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/tn5250/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,aAAa,CAAC;AAIrD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,mEAAmE;IACnE,OAAO,CAAC,kBAAkB,CAAS;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/tn5250/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,aAAa,CAAC;AAIrD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,mEAAmE;IACnE,OAAO,CAAC,kBAAkB,CAAS;IACnC,6EAA6E;IAC7E,iBAAiB,UAAS;IAC1B;2EACuE;IACvE,OAAO,CAAC,SAAS,CAAS;IAC1B;oEACgE;IAChE,SAAS,SAAK;IACd,SAAS,SAAK;gBAEF,MAAM,EAAE,YAAY;IAIhC;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAyFpC,8DAA8D;IAC9D,OAAO,CAAC,eAAe;IAKvB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAiB/B,yDAAyD;IACzD,OAAO,CAAC,aAAa;IA8LrB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAwQnB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IA8DvB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA8DzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,yBAAyB;IAuEjC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA6ClB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,SAAS;IAkBjB,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B;;;OAGG;IACH,qBAAqB,IAAI,IAAI;CA4E9B"}
|