green-screen-proxy 1.1.2 → 1.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 (79) hide show
  1. package/README.md +93 -8
  2. package/dist/cli.js +0 -6
  3. package/dist/cli.js.map +1 -1
  4. package/dist/controller.d.ts +3 -0
  5. package/dist/controller.d.ts.map +1 -1
  6. package/dist/controller.js +13 -2
  7. package/dist/controller.js.map +1 -1
  8. package/dist/index.d.ts +1 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +11 -16
  11. package/dist/index.js.map +1 -1
  12. package/dist/protocols/tn5250-handler.d.ts +3 -2
  13. package/dist/protocols/tn5250-handler.d.ts.map +1 -1
  14. package/dist/protocols/tn5250-handler.js +83 -25
  15. package/dist/protocols/tn5250-handler.js.map +1 -1
  16. package/dist/protocols/types.d.ts +28 -2
  17. package/dist/protocols/types.d.ts.map +1 -1
  18. package/dist/protocols/types.js +28 -0
  19. package/dist/protocols/types.js.map +1 -1
  20. package/dist/routes.d.ts.map +1 -1
  21. package/dist/routes.js +160 -34
  22. package/dist/routes.js.map +1 -1
  23. package/dist/server.js +1 -5
  24. package/dist/server.js.map +1 -1
  25. package/dist/session-store.d.ts +68 -0
  26. package/dist/session-store.d.ts.map +1 -0
  27. package/dist/session-store.js +40 -0
  28. package/dist/session-store.js.map +1 -0
  29. package/dist/session.d.ts +26 -3
  30. package/dist/session.d.ts.map +1 -1
  31. package/dist/session.js +83 -11
  32. package/dist/session.js.map +1 -1
  33. package/dist/standalone.d.ts +3 -0
  34. package/dist/standalone.d.ts.map +1 -0
  35. package/dist/standalone.js +6 -0
  36. package/dist/standalone.js.map +1 -0
  37. package/dist/tn5250/connection.d.ts +5 -0
  38. package/dist/tn5250/connection.d.ts.map +1 -1
  39. package/dist/tn5250/connection.js +25 -1
  40. package/dist/tn5250/connection.js.map +1 -1
  41. package/dist/tn5250/constants.d.ts +39 -3
  42. package/dist/tn5250/constants.d.ts.map +1 -1
  43. package/dist/tn5250/constants.js +51 -3
  44. package/dist/tn5250/constants.js.map +1 -1
  45. package/dist/tn5250/ebcdic-jp-builtin.d.ts +45 -0
  46. package/dist/tn5250/ebcdic-jp-builtin.d.ts.map +1 -0
  47. package/dist/tn5250/ebcdic-jp-builtin.js +124 -0
  48. package/dist/tn5250/ebcdic-jp-builtin.js.map +1 -0
  49. package/dist/tn5250/ebcdic-jp.d.ts +61 -0
  50. package/dist/tn5250/ebcdic-jp.d.ts.map +1 -0
  51. package/dist/tn5250/ebcdic-jp.js +188 -0
  52. package/dist/tn5250/ebcdic-jp.js.map +1 -0
  53. package/dist/tn5250/ebcdic.d.ts +13 -4
  54. package/dist/tn5250/ebcdic.d.ts.map +1 -1
  55. package/dist/tn5250/ebcdic.js +30 -8
  56. package/dist/tn5250/ebcdic.js.map +1 -1
  57. package/dist/tn5250/encoder.d.ts +41 -9
  58. package/dist/tn5250/encoder.d.ts.map +1 -1
  59. package/dist/tn5250/encoder.js +228 -41
  60. package/dist/tn5250/encoder.js.map +1 -1
  61. package/dist/tn5250/parser.d.ts +14 -0
  62. package/dist/tn5250/parser.d.ts.map +1 -1
  63. package/dist/tn5250/parser.js +428 -53
  64. package/dist/tn5250/parser.js.map +1 -1
  65. package/dist/tn5250/screen.d.ts +144 -24
  66. package/dist/tn5250/screen.d.ts.map +1 -1
  67. package/dist/tn5250/screen.js +244 -13
  68. package/dist/tn5250/screen.js.map +1 -1
  69. package/dist/ui/assets/index-B51sr7HL.js +56 -0
  70. package/dist/ui/assets/index-B9wpEWAh.css +1 -0
  71. package/dist/ui/assets/index-BrUnECmE.css +1 -0
  72. package/dist/ui/assets/index-CDBbEXbH.js +56 -0
  73. package/dist/ui/index.html +16 -0
  74. package/dist/websocket.d.ts +3 -0
  75. package/dist/websocket.d.ts.map +1 -1
  76. package/dist/websocket.js +90 -1
  77. package/dist/websocket.js.map +1 -1
  78. package/dist/worker/index.js +5573 -0
  79. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { TELNET, KEY_TO_AID, AID, FFW } from './constants.js';
1
+ import { TELNET, KEY_TO_AID, AID, FFW, CMD, RECORD_H, RECORD_OPCODE } 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
@@ -11,62 +11,249 @@ export class TN5250Encoder {
11
11
  }
12
12
  /**
13
13
  * Build a 5250 input response for an aid key press.
14
- * Collects modified field data and builds the response record.
14
+ * Dispatches based on the current read_opcode set by the most recent
15
+ * Read command from the host, and handles special-AID cases (SysReq,
16
+ * Attn, TestReq, Print) with the correct record header flags.
15
17
  * Returns a Buffer ready to send over the TCP socket (with Telnet EOR framing).
16
18
  */
17
19
  buildAidResponse(keyName) {
18
20
  const aidByte = KEY_TO_AID[keyName];
19
21
  if (aidByte === undefined)
20
22
  return null;
23
+ // --- Special AID keys (lib5250 session.c:1241-1326) ---
24
+ // These use distinct record-header flags/opcodes and send NO field data.
25
+ if (aidByte === AID.SYS_REQUEST) {
26
+ // Per session.c:1264-1281: send an empty record with flags=SRQ, opcode=NO_OP.
27
+ this.screen.keyboardLocked = true;
28
+ return this.buildEmptyRecord(RECORD_H.SRQ, RECORD_OPCODE.NO_OP);
29
+ }
30
+ if (aidByte === AID.ATTN) {
31
+ // Per session.c:1290-1306: flags=ATN, opcode=NO_OP, no data.
32
+ this.screen.keyboardLocked = true;
33
+ return this.buildEmptyRecord(RECORD_H.ATN, RECORD_OPCODE.NO_OP);
34
+ }
35
+ if (aidByte === AID.TEST_REQUEST) {
36
+ // Per session.c:1283-1288: flags=TRQ, opcode=NO_OP, no data.
37
+ return this.buildEmptyRecord(RECORD_H.TRQ, RECORD_OPCODE.NO_OP);
38
+ }
39
+ if (aidByte === AID.PRINT || aidByte === AID.RECORD_BACKSPACE) {
40
+ // Per session.c:1246-1262: send cursor + AID only, opcode=NO_OP.
41
+ const cursorRow = this.screen.cursorRow;
42
+ const cursorCol = this.screen.cursorCol;
43
+ return this.buildPacket(RECORD_H.NONE, RECORD_OPCODE.NO_OP, Buffer.from([cursorRow + 1, cursorCol + 1, aidByte]));
44
+ }
45
+ // --- Normal AID keys — dispatch on read_opcode ---
46
+ // Per session.c:381-446 (tn5250_session_send_fields).
21
47
  const parts = [];
22
48
  const cursorRow = this.screen.cursorRow;
23
49
  const cursorCol = this.screen.cursorCol;
24
- // GDS header: length(2) + record_type(2) + var(1) + reserved(1) + opcode(1)
25
- parts.push(this.buildGDSHeader());
26
- // Cursor position (1-based, per 5250 spec) + AID byte
50
+ // Cursor position (1-based per 5250 spec) + AID byte
27
51
  parts.push(Buffer.from([cursorRow + 1, cursorCol + 1, aidByte]));
28
- // For certain aid keys (like SysReq), no field data is sent
29
- if (aidByte === AID.SYS_REQUEST || aidByte === AID.CLEAR) {
30
- return this.wrapWithEOR(Buffer.concat(parts));
31
- }
32
- // Collect modified fields and append their data
33
- for (const field of this.screen.fields) {
34
- if (!field.modified)
35
- continue;
36
- if (!this.screen.isInputField(field))
37
- continue;
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
- // Field data in EBCDIC
41
- const value = this.screen.getFieldValue(field);
42
- const ebcdicData = Buffer.alloc(value.length);
43
- for (let i = 0; i < value.length; i++) {
44
- ebcdicData[i] = charToEbcdic(value[i]);
52
+ // CLEAR is special sends cursor + AID only, no field data
53
+ // (per lib5250 it exits the read but produces no field data; hosts
54
+ // check the AID code to react).
55
+ if (aidByte === AID.CLEAR) {
56
+ this.screen.readOpcode = 0;
57
+ this.screen.keyboardLocked = true;
58
+ return this.buildPacket(RECORD_H.NONE, RECORD_OPCODE.PUT_GET, Buffer.concat(parts));
59
+ }
60
+ // Dispatch by read_opcode — each mode has different encoding rules for
61
+ // modified flag selection, NUL handling, and sign-nibble handling.
62
+ // If no read_opcode is set (host never issued a Read), fall back to
63
+ // MDT-fields semantics this keeps behavior sane for hosts that
64
+ // simply issue a WTD with INVITE and expect any AID to return data.
65
+ const readOp = this.screen.readOpcode || CMD.READ_MDT_FIELDS;
66
+ switch (readOp) {
67
+ case CMD.READ_INPUT_FIELDS:
68
+ case CMD.READ_IMMEDIATE: {
69
+ // Per session.c:382-406: if ANY field is modified, send data for ALL
70
+ // input fields (inline, no SBA markers). Format: signed-num fields
71
+ // have sign-nibble zone-shifted into the last digit; other fields
72
+ // have embedded NULs translated to SPACE (0x40).
73
+ const anyModified = this.screen.fields.some(f => f.modified);
74
+ if (anyModified) {
75
+ for (const field of this.screen.fields) {
76
+ if (!this.screen.isInputField(field))
77
+ continue;
78
+ // Continued subfields: only the "first" emits data; the rest are
79
+ // skipped (their content is merged into the first's output).
80
+ if (field.continuous && !field.continuedFirst)
81
+ continue;
82
+ parts.push(this.encodeFieldInline(field));
83
+ }
84
+ }
85
+ break;
45
86
  }
46
- // Trim trailing spaces and nulls
47
- let trimLen = ebcdicData.length;
48
- while (trimLen > 0 && (ebcdicData[trimLen - 1] === EBCDIC_SPACE || ebcdicData[trimLen - 1] === 0x00)) {
49
- trimLen--;
87
+ case CMD.READ_MDT_FIELDS:
88
+ case CMD.READ_MDT_FIELDS_ALT:
89
+ case CMD.READ_IMMEDIATE_ALT:
90
+ default: {
91
+ // Per session.c:408-424: send ONLY modified fields, each prefixed
92
+ // with SBA (0x11 row col). Signed-num: sign position stripped, sign
93
+ // nibble merged into last digit. READ_MDT_FIELDS: trailing AND
94
+ // embedded NULs → SPACE (0x40). Alt commands: leave NULs as-is.
95
+ const translateNuls = readOp === CMD.READ_MDT_FIELDS;
96
+ for (const field of this.screen.fields) {
97
+ if (!field.modified)
98
+ continue;
99
+ if (!this.screen.isInputField(field))
100
+ continue;
101
+ // Continued subfields: only the "first" emits data. Per session.c
102
+ // the modified flag propagates up the chain via set_mdt, so the
103
+ // "first" will be marked modified if any subfield is modified.
104
+ if (field.continuous && !field.continuedFirst)
105
+ continue;
106
+ parts.push(Buffer.from([0x11, field.row + 1, field.col + 1]));
107
+ parts.push(this.encodeFieldMdt(field, translateNuls));
108
+ }
109
+ break;
50
110
  }
51
- if (trimLen > 0) {
52
- parts.push(ebcdicData.subarray(0, trimLen));
111
+ }
112
+ // Clear the read state — the host must issue a new Read command to
113
+ // request more input.
114
+ this.screen.readOpcode = 0;
115
+ this.screen.keyboardLocked = true;
116
+ return this.buildPacket(RECORD_H.NONE, RECORD_OPCODE.PUT_GET, Buffer.concat(parts));
117
+ }
118
+ /**
119
+ * Encode a field for Read Input Fields / Read Immediate (inline, no SBA).
120
+ * Per lib5250 session.c:522-542.
121
+ * - Embedded NULs → 0x40 (SPACE).
122
+ * - Signed-num fields: trailing '-' is merged into the last digit's zone
123
+ * nibble (0xD0 | digit_low), and the sign position itself is omitted.
124
+ */
125
+ encodeFieldInline(field) {
126
+ const raw = this.getFieldEbcdicData(field);
127
+ const size = raw.length;
128
+ if (size === 0)
129
+ return Buffer.alloc(0);
130
+ const isSigned = (field.ffw1 & FFW.SHIFT_MASK) === FFW.SHIFT_SIGNED_NUM;
131
+ if (isSigned && size >= 2) {
132
+ // Send size-1 bytes (sign position dropped), NULs → SPACE.
133
+ // The second-last byte gets zone-shifted if the sign byte is '-'.
134
+ const out = Buffer.alloc(size - 1);
135
+ for (let n = 0; n < size - 1; n++) {
136
+ out[n] = raw[n] === 0x00 ? EBCDIC_SPACE : raw[n];
53
137
  }
138
+ // If last byte is EBCDIC '-' (0x60), merge sign nibble into last digit
139
+ if (raw[size - 1] === 0x60 && size >= 2) {
140
+ out[size - 2] = 0xD0 | (raw[size - 2] & 0x0F);
141
+ }
142
+ return out;
143
+ }
144
+ // Non-signed: NULs → SPACE, send full length.
145
+ const out = Buffer.alloc(size);
146
+ for (let n = 0; n < size; n++) {
147
+ out[n] = raw[n] === 0x00 ? EBCDIC_SPACE : raw[n];
54
148
  }
55
- return this.wrapWithEOR(Buffer.concat(parts));
149
+ return out;
150
+ }
151
+ /**
152
+ * Encode a field for Read MDT Fields / Read MDT Fields Alt / Read Immediate Alt.
153
+ * Per lib5250 session.c:544-596.
154
+ * - Strips trailing NULs.
155
+ * - Signed-num: drops sign position; merges zone nibble into last digit.
156
+ * - Read MDT Fields (not Alt): embedded NULs → 0x40.
157
+ * - Alt variants: embedded NULs preserved as-is.
158
+ */
159
+ encodeFieldMdt(field, translateNuls) {
160
+ const raw = this.getFieldEbcdicData(field);
161
+ let size = raw.length;
162
+ if (size === 0)
163
+ return Buffer.alloc(0);
164
+ const isSigned = (field.ffw1 & FFW.SHIFT_MASK) === FFW.SHIFT_SIGNED_NUM;
165
+ // Last byte (with possible sign transformation)
166
+ let lastByte = raw[size - 1];
167
+ if (isSigned) {
168
+ // Drop the sign position
169
+ size--;
170
+ lastByte = size > 0 ? raw[size - 1] : 0;
171
+ if (size >= 1 && raw[size] === 0x60) {
172
+ // Sign byte was '-': merge into the new last digit's zone nibble
173
+ lastByte = 0xD0 | (lastByte & 0x0F);
174
+ }
175
+ }
176
+ // Strip trailing NULs
177
+ while (size > 0 && raw[size - 1] === 0x00) {
178
+ size--;
179
+ lastByte = size > 0 ? raw[size - 1] : 0;
180
+ }
181
+ if (size === 0)
182
+ return Buffer.alloc(0);
183
+ const out = Buffer.alloc(size);
184
+ for (let n = 0; n < size - 1; n++) {
185
+ if (translateNuls && raw[n] === 0x00) {
186
+ out[n] = EBCDIC_SPACE;
187
+ }
188
+ else {
189
+ out[n] = raw[n];
190
+ }
191
+ }
192
+ // Last byte: apply NUL translation if requested
193
+ out[size - 1] = (translateNuls && lastByte === 0x00) ? EBCDIC_SPACE : lastByte;
194
+ return out;
195
+ }
196
+ /**
197
+ * Extract a field's content as raw EBCDIC bytes (before any translation).
198
+ * For continued-first fields, reconstructs the full concatenated content
199
+ * by walking subsequent continued subfields in the fields list
200
+ * (per lib5250 session.c:487-520).
201
+ */
202
+ getFieldEbcdicData(field) {
203
+ const pieces = [this.encodeSingleField(field)];
204
+ if (field.continuous && field.continuedFirst) {
205
+ // Walk the fields list from this field forward, collecting all
206
+ // subsequent continuous subfields until we hit the "last" one.
207
+ // Per C: "Assumes for now that all the continued field are one after
208
+ // the other and not distributed among other fields."
209
+ const fields = this.screen.fields;
210
+ const idx = fields.indexOf(field);
211
+ if (idx >= 0) {
212
+ for (let i = idx + 1; i < fields.length; i++) {
213
+ const next = fields[i];
214
+ if (!next.continuous)
215
+ break;
216
+ pieces.push(this.encodeSingleField(next));
217
+ if (next.continuedLast)
218
+ break;
219
+ }
220
+ }
221
+ }
222
+ return Buffer.concat(pieces);
223
+ }
224
+ /** Encode one single field's content to EBCDIC (no continuation walk). */
225
+ encodeSingleField(field) {
226
+ const value = this.screen.getFieldValue(field);
227
+ const buf = Buffer.alloc(value.length);
228
+ for (let i = 0; i < value.length; i++) {
229
+ // Preserve NUL characters (stored in the buffer as char code 0).
230
+ const code = value.charCodeAt(i);
231
+ buf[i] = code === 0 ? 0x00 : charToEbcdic(value[i]);
232
+ }
233
+ return buf;
234
+ }
235
+ /** Build an empty 10-byte record (no data) with the given flags/opcode. */
236
+ buildEmptyRecord(flags, opcode) {
237
+ return this.buildPacket(flags, opcode, Buffer.alloc(0));
238
+ }
239
+ /** Build a full 5250 packet: 10-byte GDS header + data, then Telnet EOR. */
240
+ buildPacket(flags, opcode, data) {
241
+ const header = this.buildGDSHeader(flags, opcode);
242
+ return this.wrapWithEOR(Buffer.concat([header, data]));
56
243
  }
57
244
  /**
58
- * Build a GDS header for a client response (matching tn5250j format).
59
- * 10-byte header:
245
+ * Build a GDS header for a client response.
246
+ * Per lib5250 telnetstr.c:860-895:
60
247
  * Bytes 0-1: record length (filled by wrapWithEOR)
61
- * Bytes 2-3: record type 0x12A0 (SNA GDS Variable)
62
- * Bytes 4-5: reserved 0x0000
63
- * Byte 6: sub-header length 0x04
64
- * Byte 7: flags 0x00
65
- * Byte 8: reserved 0x00
66
- * Byte 9: opcode 0x03 (PUT/GET response)
248
+ * Bytes 2-3: record type 0x12A0
249
+ * Bytes 4-5: flowtype (0x0000 = DISPLAY)
250
+ * Byte 6: sub-header length 0x04
251
+ * Byte 7: flags
252
+ * Byte 8: reserved 0x00
253
+ * Byte 9: opcode
67
254
  */
68
- buildGDSHeader() {
69
- return Buffer.from([0x00, 0x00, 0x12, 0xA0, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03]);
255
+ buildGDSHeader(flags = RECORD_H.NONE, opcode = RECORD_OPCODE.PUT_GET) {
256
+ return Buffer.from([0x00, 0x00, 0x12, 0xA0, 0x00, 0x00, 0x04, flags, 0x00, opcode]);
70
257
  }
71
258
  /**
72
259
  * Wrap data with Telnet IAC EOR framing.
@@ -192,7 +379,7 @@ export class TN5250Encoder {
192
379
  const newPos = this.screen.toRowCol(Math.min(cursorOffset, fieldEnd - 1));
193
380
  this.screen.cursorRow = newPos.row;
194
381
  this.screen.cursorCol = newPos.col;
195
- field.modified = true;
382
+ this.screen.setFieldMdt(field);
196
383
  return true;
197
384
  }
198
385
  /**
@@ -214,7 +401,7 @@ export class TN5250Encoder {
214
401
  const adjusted = padChar.repeat(field.length - trimmed.length) + trimmed;
215
402
  this.screen.setFieldValue(field, adjusted);
216
403
  }
217
- field.modified = true;
404
+ this.screen.setFieldMdt(field);
218
405
  return true;
219
406
  }
220
407
  }
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/tn5250/encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/tn5250/encoder.ts"],"names":[],"mappings":"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"}
@@ -86,6 +86,20 @@ export declare class TN5250Parser {
86
86
  * Followed by minor structures (type 0x10 = choice text, etc.)
87
87
  */
88
88
  private parseDefineSelectionField;
89
+ /**
90
+ * Parse DEFINE_SCROLL_BAR structured field data.
91
+ * Per lib5250 session.c:3362-3451.
92
+ *
93
+ * Payload format (after WDSF class/type):
94
+ * [flagbyte1] 0x80 = horizontal, else vertical
95
+ * [reserved]
96
+ * [totalrowscols1..4] BCD digits (1000s, 100s, 10s, 1s)
97
+ * [sliderpos1..4] BCD digits (1000s, 100s, 10s, 1s)
98
+ * [size]
99
+ *
100
+ * Position is the current cursor (1-based per lib5250 convention).
101
+ */
102
+ private parseDefineScrollbar;
89
103
  /**
90
104
  * Roll (scroll) screen buffer rows within [top, bot] by `lines` rows.
91
105
  * Negative = scroll up, positive = scroll down.
@@ -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;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"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/tn5250/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAK9D;;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;IAOvB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAiB/B,yDAAyD;IACzD,OAAO,CAAC,aAAa;IA2PrB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkZnB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAgJvB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAqEzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,yBAAyB;IAuEjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IA8C5B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAmDlB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,SAAS;IAkBjB,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B;;;OAGG;IACH,qBAAqB,IAAI,IAAI;CA4E9B"}