jspurefix 5.11.2 → 5.11.3

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.
@@ -131,9 +131,11 @@ WinstonLogger.ecsFormat = format((info) => {
131
131
  info['log.level'] = info.level;
132
132
  info['service.name'] = 'jspurefix';
133
133
  delete info.timestamp;
134
+ delete info.level;
134
135
  if (err) {
135
136
  info['error.message'] = err.message;
136
137
  info['error.stack_trace'] = err.stack;
138
+ info.message = err.message;
137
139
  }
138
140
  for (const key of Object.keys(context)) {
139
141
  info[`fix.${key}`] = context[key];
@@ -1 +1 @@
1
- {"version":3,"file":"winston-logger.js","sourceRoot":"","sources":["../../src/config/winston-logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { IJsFixLogger, JsFixLogFields } from './js-fix-logger'\nimport { Logger } from 'winston'\nconst { createLogger, format, transports } = require('winston')\nconst { combine, timestamp, printf } = format\n\nexport class WinstonLogger {\n /**\n * the format this engine has emitted since it shipped. it names exactly four fields, so\n * the context and fields bags added later are invisible to it and the rendered line is\n * unchanged - which is the whole reason they travel as separate keys. covered by a\n * golden output test; do not widen it.\n */\n public static readonly appFormat = printf((info: any) => {\n return `${info.timestamp} [${info.type}] ${info.level}: ${info.message}`\n })\n\n public static readonly plainFormat = printf((info: any) => {\n return `${info.message}`\n })\n\n /**\n * flattens the context and fields bags to ECS style names for Filebeat and friends.\n *\n * this MUST mutate info rather than return a fresh object - a new object loses\n * Symbol.for('level') and winston then discards the record with no output and no error.\n */\n public static readonly ecsFormat = format((info: any) => {\n const context = info.context ?? {}\n const fields = info.fields ?? {}\n const err = info.err\n delete info.context\n delete info.fields\n delete info.err\n // the legacy display name is redundant once component and app are real fields\n delete info.type\n info['@timestamp'] = info.timestamp\n info['log.level'] = info.level\n info['service.name'] = 'jspurefix'\n delete info.timestamp\n if (err) {\n info['error.message'] = err.message\n info['error.stack_trace'] = err.stack\n }\n for (const key of Object.keys(context)) {\n info[`fix.${key}`] = context[key]\n }\n for (const key of Object.keys(fields)) {\n info[`fix.${key}`] = fields[key]\n }\n return info\n })\n\n private readonly appLogger: Logger\n\n constructor (public readonly options: any = WinstonLogger.consoleOptions()) {\n this.appLogger = createLogger(options)\n }\n\n public static consoleOptions (level: string = 'debug'): any {\n return {\n format: combine(\n timestamp(),\n WinstonLogger.appFormat\n ),\n level,\n transports: [\n new transports.Console()\n ]\n }\n }\n\n /**\n * one JSON object per line, ECS style names, ready to be harvested. opt in - the\n * console default is deliberately left alone so an upgrade does not move anyone's logs.\n */\n public static ecsOptions (level: string = 'debug'): any {\n return {\n format: combine(\n timestamp(),\n WinstonLogger.ecsFormat(),\n format.json()\n ),\n level,\n transports: [\n new transports.Console()\n ]\n }\n }\n\n public static ecsFileOptions (fileName: string, level: string = 'debug', maxSize: number = 50 * 1024 * 1024): any {\n return WinstonLogger.fileOptions(fileName, level, maxSize, combine(\n timestamp(),\n WinstonLogger.ecsFormat(),\n format.json()\n ))\n }\n\n public static fileOptions (fileName: string, level: string = 'debug', maxSize: number = 50 * 1024 * 1024, format: any = combine(\n timestamp(),\n WinstonLogger.appFormat\n )): any {\n return {\n format,\n level,\n transports: [\n new transports.File({\n filename: fileName,\n maxsize: maxSize\n })\n ]\n }\n }\n\n public plain (fileName: string, maxSize: number = 10 * 1024 * 1024): IJsFixLogger {\n const txtLogger: Logger = createLogger({\n format: WinstonLogger.plainFormat,\n level: 'info',\n transports: [\n new transports.File({\n filename: fileName,\n maxsize: maxSize\n })\n ]\n })\n\n return {\n log: function (txt: string) {\n txtLogger.info({\n type: 'info',\n message: txt\n })\n },\n\n info: function (msg: string): void {\n (this as any).log(msg)\n },\n debug: function (msg: string): void {\n (this as any).log(msg)\n },\n warning: function (msg: string): void {\n (this as any).log(msg)\n },\n error: function (): void {\n // nothing\n }\n } as IJsFixLogger\n }\n\n public make (type: string, context?: JsFixLogFields): IJsFixLogger {\n const logger = this.appLogger\n return {\n info: function (msg: string, fields?: JsFixLogFields): void {\n logger.info({\n type,\n message: msg,\n context,\n fields\n })\n },\n debug: function (msg: string, fields?: JsFixLogFields): void {\n logger.debug({\n type,\n message: msg,\n context,\n fields\n })\n },\n warning: function (msg: string, fields?: JsFixLogFields): void {\n logger.warn({\n type,\n message: msg,\n context,\n fields\n })\n },\n error: function (e: Error, fields?: JsFixLogFields): void {\n logger.error({\n type,\n // composed exactly as it always has been, so the console line does not move.\n // the ecs format lifts error.message and error.stack_trace off err instead\n message: `${e.message} : ${e.stack}`,\n err: e,\n context,\n fields\n })\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"winston-logger.js","sourceRoot":"","sources":["../../src/config/winston-logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { IJsFixLogger, JsFixLogFields } from './js-fix-logger'\nimport { Logger } from 'winston'\nconst { createLogger, format, transports } = require('winston')\nconst { combine, timestamp, printf } = format\n\nexport class WinstonLogger {\n /**\n * the format this engine has emitted since it shipped. it names exactly four fields, so\n * the context and fields bags added later are invisible to it and the rendered line is\n * unchanged - which is the whole reason they travel as separate keys. covered by a\n * golden output test; do not widen it.\n */\n public static readonly appFormat = printf((info: any) => {\n return `${info.timestamp} [${info.type}] ${info.level}: ${info.message}`\n })\n\n public static readonly plainFormat = printf((info: any) => {\n return `${info.message}`\n })\n\n /**\n * flattens the context and fields bags to ECS style names for Filebeat and friends.\n *\n * this MUST mutate info rather than return a fresh object - a new object loses\n * Symbol.for('level') and winston then discards the record with no output and no error.\n */\n public static readonly ecsFormat = format((info: any) => {\n const context = info.context ?? {}\n const fields = info.fields ?? {}\n const err = info.err\n delete info.context\n delete info.fields\n delete info.err\n // the legacy display name is redundant once component and app are real fields\n delete info.type\n info['@timestamp'] = info.timestamp\n info['log.level'] = info.level\n info['service.name'] = 'jspurefix'\n delete info.timestamp\n // winston sets its own level, and emitting it beside the ECS name puts the same\n // value on every line twice. the transport filters on Symbol.for('level'), not\n // this property, so dropping it changes nothing about what gets logged\n delete info.level\n if (err) {\n info['error.message'] = err.message\n info['error.stack_trace'] = err.stack\n // the record composed for the console carries the stack inside the message,\n // because that is what has always been rendered there. here the stack has a\n // field of its own, so repeating it in the message only doubles the line\n info.message = err.message\n }\n for (const key of Object.keys(context)) {\n info[`fix.${key}`] = context[key]\n }\n for (const key of Object.keys(fields)) {\n info[`fix.${key}`] = fields[key]\n }\n return info\n })\n\n private readonly appLogger: Logger\n\n constructor (public readonly options: any = WinstonLogger.consoleOptions()) {\n this.appLogger = createLogger(options)\n }\n\n public static consoleOptions (level: string = 'debug'): any {\n return {\n format: combine(\n timestamp(),\n WinstonLogger.appFormat\n ),\n level,\n transports: [\n new transports.Console()\n ]\n }\n }\n\n /**\n * one JSON object per line, ECS style names, ready to be harvested. opt in - the\n * console default is deliberately left alone so an upgrade does not move anyone's logs.\n */\n public static ecsOptions (level: string = 'debug'): any {\n return {\n format: combine(\n timestamp(),\n WinstonLogger.ecsFormat(),\n format.json()\n ),\n level,\n transports: [\n new transports.Console()\n ]\n }\n }\n\n public static ecsFileOptions (fileName: string, level: string = 'debug', maxSize: number = 50 * 1024 * 1024): any {\n return WinstonLogger.fileOptions(fileName, level, maxSize, combine(\n timestamp(),\n WinstonLogger.ecsFormat(),\n format.json()\n ))\n }\n\n public static fileOptions (fileName: string, level: string = 'debug', maxSize: number = 50 * 1024 * 1024, format: any = combine(\n timestamp(),\n WinstonLogger.appFormat\n )): any {\n return {\n format,\n level,\n transports: [\n new transports.File({\n filename: fileName,\n maxsize: maxSize\n })\n ]\n }\n }\n\n public plain (fileName: string, maxSize: number = 10 * 1024 * 1024): IJsFixLogger {\n const txtLogger: Logger = createLogger({\n format: WinstonLogger.plainFormat,\n level: 'info',\n transports: [\n new transports.File({\n filename: fileName,\n maxsize: maxSize\n })\n ]\n })\n\n return {\n log: function (txt: string) {\n txtLogger.info({\n type: 'info',\n message: txt\n })\n },\n\n info: function (msg: string): void {\n (this as any).log(msg)\n },\n debug: function (msg: string): void {\n (this as any).log(msg)\n },\n warning: function (msg: string): void {\n (this as any).log(msg)\n },\n error: function (): void {\n // nothing\n }\n } as IJsFixLogger\n }\n\n public make (type: string, context?: JsFixLogFields): IJsFixLogger {\n const logger = this.appLogger\n return {\n info: function (msg: string, fields?: JsFixLogFields): void {\n logger.info({\n type,\n message: msg,\n context,\n fields\n })\n },\n debug: function (msg: string, fields?: JsFixLogFields): void {\n logger.debug({\n type,\n message: msg,\n context,\n fields\n })\n },\n warning: function (msg: string, fields?: JsFixLogFields): void {\n logger.warn({\n type,\n message: msg,\n context,\n fields\n })\n },\n error: function (e: Error, fields?: JsFixLogFields): void {\n logger.error({\n type,\n // composed exactly as it always has been, so the console line does not move.\n // the ecs format lifts error.message and error.stack_trace off err instead\n message: `${e.message} : ${e.stack}`,\n err: e,\n context,\n fields\n })\n }\n }\n }\n}\n"]}
@@ -260,6 +260,20 @@ ECS names where they exist — `service.name`, `log.level`, `error.message`,
260
260
  `error.stack_trace` — and everything engine-specific under `fix.*`. Context keys are plain
261
261
  words; the formatter applies the prefix.
262
262
 
263
+ Two things the ECS format does that the console one must not, both found by reading real
264
+ output rather than by design:
265
+
266
+ - **winston's own `level` is dropped.** It would otherwise sit beside `log.level` carrying
267
+ the same value on every line. Transports filter on `Symbol.for('level')`, not the
268
+ property, so removing it changes nothing about what gets logged.
269
+ - **an error's message is the bare `Error.message`.** The console record composes
270
+ `message : stack` because that is what has always been rendered there; in JSON the stack
271
+ has `error.stack_trace` of its own, and repeating it doubles the largest line a pipeline
272
+ carries.
273
+
274
+ Neither touches how the record is built, only how the ECS format reads it — so a caller who
275
+ supplied their own format via `fileOptions` still sees exactly what they saw before.
276
+
263
277
  | context key | rendered | meaning |
264
278
  | --- | --- | --- |
265
279
  | `component` | `fix.component` | the class, e.g. `FixSession`, `TcpAcceptor` |
@@ -1,62 +1,62 @@
1
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:27.902|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=104|
2
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:27.907|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=157|
3
- 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:27.908|7=1|16=1|10=245|
4
- 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:15:27.912|122=20260816-15:15:27.912|123=Y|36=2|10=111|
5
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:29.912|58=test_server confirming logout|10=089|
6
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:32.610|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=096|
7
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:32.612|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=146|
8
- 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:32.612|7=1|16=0|10=232|
9
- 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:15:32.615|122=20260816-15:15:32.614|123=Y|36=2|10=102|
10
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:34.613|58=test_server confirming logout|10=083|
11
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:37.013|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=098|
12
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:37.014|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=147|
13
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:37.014|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=100|
14
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:37.469|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
15
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:37.470|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=153|
16
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:38.472|58=test_server confirming logout|10=090|
17
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:15:39.016|58=test_client initiate logout|10=103|
18
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:41.185|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=103|
19
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:41.186|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=152|
20
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:42.188|58=test_server confirming logout|10=089|
21
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:44.802|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=102|
22
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:44.804|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=152|
23
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=0|57=fix|52=20260816-15:15:45.805|58=test_client initiate logout|10=103|
24
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:48.213|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=102|
25
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:15:48.214|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=155|
26
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:49.215|58=test_server confirming logout|10=087|
27
- 8=FIX.4.4|9=0000110|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:51.610|98=0|141=Y|553=js-client|554=pwd-client|10=165|
28
- 8=FIX.4.4|9=0000125|35=3|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:51.611|45=1|372=A|373=1|58=msgType A missing required tag 108|10=255|
29
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:56.099|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
30
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:56.100|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=144|
31
- 8=FIX.4.4|9=0000111|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:56.102|45=2|372=ZZ|373=11|58=msgType ZZ unknown|10=147|
32
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:15:58.102|58=test_server confirming logout|10=083|
33
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:00.723|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=097|
34
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:00.724|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=146|
35
- 8=FIX.4.4|9=0000146|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:00.725|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 143|10=069|
36
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:02.726|58=test_server confirming logout|10=085|
37
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:04.724|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=102|
38
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:09.141|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=100|
39
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:09.142|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=149|
40
- 8=FIX.4.4|9=0000145|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:09.143|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 59|10=029|
41
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:11.143|58=test_server confirming logout|10=078|
42
- 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:13.538|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=055|
43
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:13.539|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=154|
44
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:16:15.542|112=Sun, 16 Aug 2026 15:16:15 GMT|10=154|
45
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:16:17.546|112=Sun, 16 Aug 2026 15:16:17 GMT|10=163|
46
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:19.539|58=test_server confirming logout|10=094|
47
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:21.932|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=102|
48
- 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:21.933|98=0|108=2|141=Y|553=js-server|554=pwd-server|10=101|
49
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:23.938|112=Sun, 16 Aug 2026 15:16:23 GMT|10=161|
50
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:25.940|112=Sun, 16 Aug 2026 15:16:25 GMT|10=159|
51
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=4|57=fix|52=20260816-15:16:27.942|112=Sun, 16 Aug 2026 15:16:27 GMT|10=166|
52
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:16:29.935|58=test_server confirming logout|10=098|
53
- 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:32.535|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=053|
54
- 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:32.536|98=0|108=5|141=Y|553=js-server|554=pwd-server|10=105|
55
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:16:34.540|112=Sun, 16 Aug 2026 15:16:34 GMT|10=154|
56
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:16:36.543|112=Sun, 16 Aug 2026 15:16:36 GMT|10=162|
57
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:37.546|112=Sun, 16 Aug 2026 15:16:37 GMT|10=166|
58
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=4|57=fix|52=20260816-15:16:38.550|112=Sun, 16 Aug 2026 15:16:38 GMT|10=165|
59
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:40.538|58=test_server confirming logout|10=088|
60
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:18:33.776|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
61
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:18:33.784|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=160|
62
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:18:34.788|58=test_server confirming logout|10=099|
1
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:21.385|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=106|
2
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:21.389|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=158|
3
+ 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:21.390|7=1|16=1|10=237|
4
+ 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:45:21.393|122=20260816-15:45:21.393|123=Y|36=2|10=111|
5
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:23.393|58=test_server confirming logout|10=089|
6
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:25.852|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=109|
7
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:25.853|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=158|
8
+ 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:25.853|7=1|16=0|10=244|
9
+ 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:45:25.855|122=20260816-15:45:25.855|123=Y|36=2|10=125|
10
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:27.855|58=test_server confirming logout|10=096|
11
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:30.443|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=101|
12
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:30.445|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=151|
13
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:30.445|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=104|
14
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:30.879|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=114|
15
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:30.880|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=154|
16
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:31.883|58=test_server confirming logout|10=092|
17
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:45:32.446|58=test_client initiate logout|10=106|
18
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:34.248|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=108|
19
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:34.249|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=157|
20
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:35.251|58=test_server confirming logout|10=085|
21
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:37.616|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=110|
22
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:37.618|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=160|
23
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=0|57=fix|52=20260816-15:45:38.622|58=test_client initiate logout|10=105|
24
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:40.985|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
25
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:45:40.986|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=166|
26
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:41.988|58=test_server confirming logout|10=099|
27
+ 8=FIX.4.4|9=0000110|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:44.346|98=0|141=Y|553=js-client|554=pwd-client|10=176|
28
+ 8=FIX.4.4|9=0000125|35=3|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:44.347|45=1|372=A|373=1|58=msgType A missing required tag 108|10=010|
29
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:48.795|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=120|
30
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:48.797|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=170|
31
+ 8=FIX.4.4|9=0000111|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:48.798|45=2|372=ZZ|373=11|58=msgType ZZ unknown|10=172|
32
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:45:50.798|58=test_server confirming logout|10=099|
33
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:53.367|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=111|
34
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:53.369|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=161|
35
+ 8=FIX.4.4|9=0000146|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:53.371|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 143|10=076|
36
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:45:55.371|58=test_server confirming logout|10=091|
37
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:57.369|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=117|
38
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:01.748|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=108|
39
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:01.749|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=157|
40
+ 8=FIX.4.4|9=0000145|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:01.750|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 59|10=028|
41
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:46:03.751|58=test_server confirming logout|10=087|
42
+ 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:06.108|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=053|
43
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:06.109|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=152|
44
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:46:08.113|112=Sun, 16 Aug 2026 15:46:08 GMT|10=158|
45
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:46:10.116|112=Sun, 16 Aug 2026 15:46:10 GMT|10=148|
46
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:12.109|58=test_server confirming logout|10=083|
47
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:14.465|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=108|
48
+ 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:14.466|98=0|108=2|141=Y|553=js-server|554=pwd-server|10=107|
49
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:16.471|112=Sun, 16 Aug 2026 15:46:16 GMT|10=163|
50
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:46:18.473|112=Sun, 16 Aug 2026 15:46:18 GMT|10=170|
51
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=4|57=fix|52=20260816-15:46:20.478|112=Sun, 16 Aug 2026 15:46:20 GMT|10=162|
52
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:46:22.468|58=test_server confirming logout|10=095|
53
+ 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:25.026|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=053|
54
+ 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:25.027|98=0|108=5|141=Y|553=js-server|554=pwd-server|10=105|
55
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:46:27.031|112=Sun, 16 Aug 2026 15:46:27 GMT|10=159|
56
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:46:29.035|112=Sun, 16 Aug 2026 15:46:29 GMT|10=168|
57
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:30.037|112=Sun, 16 Aug 2026 15:46:30 GMT|10=153|
58
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=4|57=fix|52=20260816-15:46:31.039|112=Sun, 16 Aug 2026 15:46:31 GMT|10=159|
59
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:46:33.029|58=test_server confirming logout|10=088|
60
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:48:24.476|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
61
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:48:24.482|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=158|
62
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:48:25.486|58=test_server confirming logout|10=097|
@@ -1,75 +1,75 @@
1
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:27.902|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=104|
2
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:27.907|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=157|
3
- 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:27.908|7=1|16=1|10=245|
4
- 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:15:27.912|122=20260816-15:15:27.912|123=Y|36=2|10=111|
5
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:15:29.910|58=test_client initiate logout|10=105|
6
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:29.912|58=test_server confirming logout|10=089|
7
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:32.610|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=096|
8
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:32.612|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=146|
9
- 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:32.612|7=1|16=0|10=232|
10
- 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:15:32.615|122=20260816-15:15:32.614|123=Y|36=2|10=102|
11
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:15:34.612|58=test_client initiate logout|10=100|
12
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:34.613|58=test_server confirming logout|10=083|
13
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:37.013|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=098|
14
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:37.014|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=147|
15
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:37.014|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=100|
16
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:37.469|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
17
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:37.470|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=153|
18
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:38.471|58=test_client initiate logout|10=106|
19
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:38.472|58=test_server confirming logout|10=090|
20
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:41.185|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=103|
21
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:41.186|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=152|
22
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:42.187|58=test_client initiate logout|10=105|
23
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:42.188|58=test_server confirming logout|10=089|
24
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:44.802|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=102|
25
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:44.804|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=152|
26
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=0|57=fix|52=20260816-15:15:45.805|58=test_client initiate logout|10=103|
27
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:48.213|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=102|
28
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:15:48.214|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=155|
29
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:15:49.214|58=test_client initiate logout|10=103|
30
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:49.215|58=test_server confirming logout|10=087|
31
- 8=FIX.4.4|9=0000110|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:51.610|98=0|141=Y|553=js-client|554=pwd-client|10=165|
32
- 8=FIX.4.4|9=0000125|35=3|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:51.611|45=1|372=A|373=1|58=msgType A missing required tag 108|10=255|
33
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:15:56.099|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
34
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:15:56.100|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=144|
1
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:21.385|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=106|
2
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:21.389|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=158|
3
+ 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:21.390|7=1|16=1|10=237|
4
+ 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:45:21.393|122=20260816-15:45:21.393|123=Y|36=2|10=111|
5
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:45:23.392|58=test_client initiate logout|10=106|
6
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:23.393|58=test_server confirming logout|10=089|
7
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:25.852|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=109|
8
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:25.853|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=158|
9
+ 8=FIX.4.4|9=0000079|35=2|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:25.853|7=1|16=0|10=244|
10
+ 8=FIX.4.4|9=0000112|35=4|49=accept-comp|56=init-comp|34=1|57=fix|43=Y|52=20260816-15:45:25.855|122=20260816-15:45:25.855|123=Y|36=2|10=125|
11
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:45:27.854|58=test_client initiate logout|10=113|
12
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:27.855|58=test_server confirming logout|10=096|
13
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:30.443|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=101|
14
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:30.445|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=151|
15
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:30.445|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=104|
16
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:30.879|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=114|
17
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:30.880|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=154|
18
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:31.882|58=test_client initiate logout|10=108|
19
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:31.883|58=test_server confirming logout|10=092|
20
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:34.248|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=108|
21
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:34.249|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=157|
22
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:35.250|58=test_client initiate logout|10=101|
23
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:35.251|58=test_server confirming logout|10=085|
24
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:37.616|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=110|
25
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:37.618|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=160|
26
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=0|57=fix|52=20260816-15:45:38.622|58=test_client initiate logout|10=105|
27
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:40.985|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
28
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:45:40.986|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=166|
29
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:45:41.987|58=test_client initiate logout|10=115|
30
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:41.988|58=test_server confirming logout|10=099|
31
+ 8=FIX.4.4|9=0000110|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:44.346|98=0|141=Y|553=js-client|554=pwd-client|10=176|
32
+ 8=FIX.4.4|9=0000125|35=3|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:44.347|45=1|372=A|373=1|58=msgType A missing required tag 108|10=010|
33
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:48.795|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=120|
34
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:48.797|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=170|
35
35
  8=FIX4.4|9=0000136|35=ZZ|49=init-comp|56=accept-comp|34=2|57=fix|52=20180902-12:25:28.980|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=177|
36
- 8=FIX.4.4|9=0000111|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:15:56.102|45=2|372=ZZ|373=11|58=msgType ZZ unknown|10=147|
37
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:15:58.101|58=test_client initiate logout|10=099|
38
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:15:58.102|58=test_server confirming logout|10=083|
39
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:00.723|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=097|
40
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:00.724|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=146|
36
+ 8=FIX.4.4|9=0000111|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:48.798|45=2|372=ZZ|373=11|58=msgType ZZ unknown|10=172|
37
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:45:50.797|58=test_client initiate logout|10=115|
38
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:45:50.798|58=test_server confirming logout|10=099|
39
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:45:53.367|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=111|
40
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:45:53.369|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=161|
41
41
  8=FIX4.4|9=0000123|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20180902-12:25:59.161|999=Sun, 02 Sep 2018 12:25:59 GMT|10=95|
42
- 8=FIX.4.4|9=0000146|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:00.725|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 143|10=069|
43
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:16:02.725|58=test_client initiate logout|10=101|
44
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:02.726|58=test_server confirming logout|10=085|
45
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:09.141|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=100|
46
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:09.142|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=149|
42
+ 8=FIX.4.4|9=0000146|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:45:53.371|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 143|10=076|
43
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:45:55.370|58=test_client initiate logout|10=107|
44
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:45:55.371|58=test_server confirming logout|10=091|
45
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:01.748|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=108|
46
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:01.749|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=157|
47
47
  8=FIX4.4|9=0000123|35=0|49=init-not!|56=accept-comp|34=2|57=fix|52=20180902-12:25:59.161|112=Sun, 02 Sep 2018 12:25:59 GMT|10=95|
48
- 8=FIX.4.4|9=0000145|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:09.143|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 59|10=029|
49
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:16:11.142|58=test_client initiate logout|10=094|
50
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:11.143|58=test_server confirming logout|10=078|
51
- 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:13.538|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=055|
52
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:13.539|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=154|
53
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:16:15.542|112=Sun, 16 Aug 2026 15:16:15 GMT|10=154|
54
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:16:17.546|112=Sun, 16 Aug 2026 15:16:17 GMT|10=163|
55
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=4|57=fix|52=20260816-15:16:19.538|58=test_client initiate logout|10=112|
56
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:19.539|58=test_server confirming logout|10=094|
57
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:21.932|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=102|
58
- 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:21.933|98=0|108=2|141=Y|553=js-server|554=pwd-server|10=101|
59
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:23.938|112=Sun, 16 Aug 2026 15:16:23 GMT|10=161|
60
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:25.940|112=Sun, 16 Aug 2026 15:16:25 GMT|10=159|
61
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=4|57=fix|52=20260816-15:16:27.942|112=Sun, 16 Aug 2026 15:16:27 GMT|10=166|
62
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:16:29.934|58=test_client initiate logout|10=111|
63
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:16:29.935|58=test_server confirming logout|10=098|
64
- 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:16:32.535|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=053|
65
- 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:16:32.536|98=0|108=5|141=Y|553=js-server|554=pwd-server|10=105|
66
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:16:34.540|112=Sun, 16 Aug 2026 15:16:34 GMT|10=154|
67
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:16:36.543|112=Sun, 16 Aug 2026 15:16:36 GMT|10=162|
68
- 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:16:37.546|112=Sun, 16 Aug 2026 15:16:37 GMT|10=166|
69
- 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=4|57=fix|52=20260816-15:16:38.550|112=Sun, 16 Aug 2026 15:16:38 GMT|10=165|
70
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=5|57=fix|52=20260816-15:16:40.537|58=test_client initiate logout|10=106|
71
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:16:40.538|58=test_server confirming logout|10=088|
72
- 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:18:33.776|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
73
- 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:18:33.784|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=160|
74
- 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:18:34.787|58=test_client initiate logout|10=115|
75
- 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:18:34.788|58=test_server confirming logout|10=099|
48
+ 8=FIX.4.4|9=0000145|35=3|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:01.750|45=2|372=0|373=5|58=msgType 0 checksum failed. received = 95 computed = 59|10=028|
49
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:46:03.750|58=test_client initiate logout|10=103|
50
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:46:03.751|58=test_server confirming logout|10=087|
51
+ 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:06.108|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=053|
52
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:06.109|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=152|
53
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:46:08.113|112=Sun, 16 Aug 2026 15:46:08 GMT|10=158|
54
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:46:10.116|112=Sun, 16 Aug 2026 15:46:10 GMT|10=148|
55
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=4|57=fix|52=20260816-15:46:12.109|58=test_client initiate logout|10=102|
56
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:12.109|58=test_server confirming logout|10=083|
57
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:14.465|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=108|
58
+ 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:14.466|98=0|108=2|141=Y|553=js-server|554=pwd-server|10=107|
59
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:16.471|112=Sun, 16 Aug 2026 15:46:16 GMT|10=163|
60
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:46:18.473|112=Sun, 16 Aug 2026 15:46:18 GMT|10=170|
61
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=4|57=fix|52=20260816-15:46:20.478|112=Sun, 16 Aug 2026 15:46:20 GMT|10=162|
62
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:46:22.467|58=test_client initiate logout|10=108|
63
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=5|57=fix|52=20260816-15:46:22.468|58=test_server confirming logout|10=095|
64
+ 8=FIX.4.4|9=0000116|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:46:25.026|98=0|108=2|141=Y|553=js-client|554=pwd-client|10=053|
65
+ 8=FIX.4.4|9=0000116|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:46:25.027|98=0|108=5|141=Y|553=js-server|554=pwd-server|10=105|
66
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:46:27.031|112=Sun, 16 Aug 2026 15:46:27 GMT|10=159|
67
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=3|57=fix|52=20260816-15:46:29.035|112=Sun, 16 Aug 2026 15:46:29 GMT|10=168|
68
+ 8=FIX.4.4|9=0000104|35=0|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:46:30.037|112=Sun, 16 Aug 2026 15:46:30 GMT|10=153|
69
+ 8=FIX.4.4|9=0000104|35=0|49=init-comp|56=accept-comp|34=4|57=fix|52=20260816-15:46:31.039|112=Sun, 16 Aug 2026 15:46:31 GMT|10=159|
70
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=5|57=fix|52=20260816-15:46:33.028|58=test_client initiate logout|10=106|
71
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=3|57=fix|52=20260816-15:46:33.029|58=test_server confirming logout|10=088|
72
+ 8=FIX.4.4|9=0000117|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20260816-15:48:24.476|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=113|
73
+ 8=FIX.4.4|9=0000117|35=A|49=accept-comp|56=init-comp|34=1|57=fix|52=20260816-15:48:24.482|98=0|108=30|141=Y|553=js-server|554=pwd-server|10=158|
74
+ 8=FIX.4.4|9=0000101|35=5|49=init-comp|56=accept-comp|34=2|57=fix|52=20260816-15:48:25.484|58=test_client initiate logout|10=112|
75
+ 8=FIX.4.4|9=0000103|35=5|49=accept-comp|56=init-comp|34=2|57=fix|52=20260816-15:48:25.486|58=test_server confirming logout|10=097|
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jspurefix",
3
- "version": "5.11.2",
3
+ "version": "5.11.3",
4
4
  "description": "pure node js fix engine",
5
5
  "keywords": [
6
6
  "typescript",
@@ -37,9 +37,17 @@ export class WinstonLogger {
37
37
  info['log.level'] = info.level
38
38
  info['service.name'] = 'jspurefix'
39
39
  delete info.timestamp
40
+ // winston sets its own level, and emitting it beside the ECS name puts the same
41
+ // value on every line twice. the transport filters on Symbol.for('level'), not
42
+ // this property, so dropping it changes nothing about what gets logged
43
+ delete info.level
40
44
  if (err) {
41
45
  info['error.message'] = err.message
42
46
  info['error.stack_trace'] = err.stack
47
+ // the record composed for the console carries the stack inside the message,
48
+ // because that is what has always been rendered there. here the stack has a
49
+ // field of its own, so repeating it in the message only doubles the line
50
+ info.message = err.message
43
51
  }
44
52
  for (const key of Object.keys(context)) {
45
53
  info[`fix.${key}`] = context[key]