@gent-js/gent 0.1.4 → 0.1.5

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 (44) hide show
  1. package/README.md +9 -4
  2. package/dist/generated/packageEnv.d.ts +4 -3
  3. package/dist/generated/packageEnv.js +4 -3
  4. package/dist/generated/packageEnv.js.map +1 -1
  5. package/dist/src/consts.d.ts +6 -5
  6. package/dist/src/consts.js +5 -4
  7. package/dist/src/consts.js.map +1 -1
  8. package/dist/src/createGeneratingDocumentStream.d.ts +2 -2
  9. package/dist/src/createGeneratingDocumentStream.js +5 -19
  10. package/dist/src/createGeneratingDocumentStream.js.map +1 -1
  11. package/dist/src/documentTransformStream.d.ts +19 -0
  12. package/dist/src/documentTransformStream.js +118 -0
  13. package/dist/src/documentTransformStream.js.map +1 -0
  14. package/dist/src/documentTransformTypes.d.ts +25 -0
  15. package/dist/src/documentTransformTypes.js +2 -0
  16. package/dist/src/documentTransformTypes.js.map +1 -0
  17. package/dist/src/output/initializeOutput.js +2 -2
  18. package/dist/src/output/initializeOutput.js.map +1 -1
  19. package/dist/src/output/tcpDocumentStream.js.map +1 -1
  20. package/dist/src/output/udpDocumentStream.d.ts +4 -6
  21. package/dist/src/output/udpDocumentStream.js +14 -9
  22. package/dist/src/output/udpDocumentStream.js.map +1 -1
  23. package/dist/src/run.js +51 -2
  24. package/dist/src/run.js.map +1 -1
  25. package/dist/src/template/documentTransformStream.d.ts +19 -0
  26. package/dist/src/template/documentTransformStream.js +118 -0
  27. package/dist/src/template/documentTransformStream.js.map +1 -0
  28. package/dist/src/template/documentTransformTypes.d.ts +25 -0
  29. package/dist/src/template/documentTransformTypes.js +2 -0
  30. package/dist/src/template/documentTransformTypes.js.map +1 -0
  31. package/dist/src/types.d.ts +5 -5
  32. package/dist/src/utils.d.ts +2 -2
  33. package/dist/src/utils.js +4 -3
  34. package/dist/src/utils.js.map +1 -1
  35. package/package.json +3 -3
  36. package/dist/src/createGeneratingLogStream.d.ts +0 -4
  37. package/dist/src/createGeneratingLogStream.js +0 -21
  38. package/dist/src/createGeneratingLogStream.js.map +0 -1
  39. package/dist/src/output/createUdpOutput.d.ts +0 -3
  40. package/dist/src/output/createUdpOutput.js +0 -5
  41. package/dist/src/output/createUdpOutput.js.map +0 -1
  42. package/dist/src/output/updStream.d.ts +0 -17
  43. package/dist/src/output/updStream.js +0 -78
  44. package/dist/src/output/updStream.js.map +0 -1
package/README.md CHANGED
@@ -1,8 +1,13 @@
1
1
  # GenT
2
2
 
3
+ ![GenT logo](https://github.com/tomo-waka/gent/raw/main/media/gent_logo.png)
4
+
5
+ ![NPM Version](https://img.shields.io/npm/v/%40gent-js%2Fgent)
6
+ ![NPM License](https://img.shields.io/npm/l/%40gent-js%2Fgent)
7
+
3
8
  ## Introduction
4
9
 
5
- GenT is a template-based dummy text data generator. The generated data is used as test data for software that process such data. You can define data format with a simple text file (referred to as a "template") and obtain the output as text file. It means that both input and output are non-programing interfaces. These features are particularly useful as test data in end-to-end testing situations, rather than in Unit testing.
10
+ GenT is a template-based data generator. The generated data is used as test data for software that process such data. You can define data format with a simple text file (referred to as a "template") and obtain the output as text file. It means that both input and output are non-programing interfaces. These features are particularly useful as test data in end-to-end testing situations, rather than in Unit testing.
6
11
 
7
12
  ## Features
8
13
 
@@ -20,15 +25,15 @@ GenT is a template-based dummy text data generator. The generated data is used a
20
25
 
21
26
  ## Quick Start
22
27
 
28
+ > [!NOTE]
29
+ > This quick start explains the steps how to use GenT as shell cli application. If you are looking for how to use as a dependency or how to develop, see other sections.
30
+
23
31
  install with npm globally.
24
32
 
25
33
  ```shell
26
34
  npm install -g gent
27
35
  ```
28
36
 
29
- > [!NOTE]
30
- > This quick start explains the steps how to use GenT as shell cli application. If you are looking for how to use as a dependency or how to develop, see other sections.
31
-
32
37
  Then, create a template. Save the following content as a text file in any directory, for instance `{dir path}/template.log`.
33
38
 
34
39
  ```text
@@ -1,5 +1,6 @@
1
1
  export declare const packageEnv: {
2
- readonly name: "@gent-js/gent";
3
- readonly version: "0.1.4";
4
- readonly description: "template base dummy text data generator.";
2
+ readonly fullName: "@gent-js/gent";
3
+ readonly name: "gent";
4
+ readonly version: "0.1.5";
5
+ readonly description: "template-based data generator.";
5
6
  };
@@ -1,7 +1,8 @@
1
1
  // generated codes about package environmental information.
2
2
  export const packageEnv = {
3
- name: "@gent-js/gent",
4
- version: "0.1.4",
5
- description: "template base dummy text data generator."
3
+ fullName: "@gent-js/gent",
4
+ name: "gent",
5
+ version: "0.1.5",
6
+ description: "template-based data generator."
6
7
  };
7
8
  //# sourceMappingURL=packageEnv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageEnv.js","sourceRoot":"","sources":["../../generated/packageEnv.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,0CAA0C;CAC/C,CAAC"}
1
+ {"version":3,"file":"packageEnv.js","sourceRoot":"","sources":["../../generated/packageEnv.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,gCAAgC;CACvC,CAAC"}
@@ -1,14 +1,15 @@
1
- import type { NonTransparentFramingType, TcpFramingType } from "./types.js";
1
+ import type { NonTransparentFramingMethod, TcpFramingMethod } from "./types.js";
2
2
  export declare const DEFAULT_TEMPLATE_WEIGHT = 1;
3
3
  export declare const TemplateModes: readonly ["text", "json"];
4
4
  export declare const NetworkOutputTypes: readonly ["udp", "tcp"];
5
5
  export declare const OutputTypes: readonly ["file", "udp", "tcp"];
6
6
  export declare const DefaultEps = 3000;
7
+ export declare const MaxEps: number;
7
8
  export declare const OctetCounting: "octet-counting";
8
- export declare const NonTransparentFramingTypes: readonly ["lf"];
9
- export declare const TcpFramingTypes: readonly ["octet-counting", "lf"];
10
- export declare const DefaultTcpFraming: TcpFramingType;
9
+ export declare const NonTransparentFramingMethods: readonly ["lf"];
10
+ export declare const TcpFramingMethods: readonly ["octet-counting", "lf"];
11
+ export declare const DefaultTcpFramingMethod: TcpFramingMethod;
11
12
  export declare const DefaultTrailerReplacer: " ";
12
13
  export declare const TrailerMap: {
13
- [Key in NonTransparentFramingType]: string;
14
+ [Key in NonTransparentFramingMethod]: string;
14
15
  };
@@ -3,13 +3,14 @@ export const TemplateModes = ["text", "json"];
3
3
  export const NetworkOutputTypes = ["udp", "tcp"];
4
4
  export const OutputTypes = ["file", ...NetworkOutputTypes];
5
5
  export const DefaultEps = 3000;
6
+ export const MaxEps = Number.MAX_SAFE_INTEGER;
6
7
  export const OctetCounting = "octet-counting";
7
- export const NonTransparentFramingTypes = ["lf"];
8
- export const TcpFramingTypes = [
8
+ export const NonTransparentFramingMethods = ["lf"];
9
+ export const TcpFramingMethods = [
9
10
  OctetCounting,
10
- ...NonTransparentFramingTypes,
11
+ ...NonTransparentFramingMethods,
11
12
  ];
12
- export const DefaultTcpFraming = "lf";
13
+ export const DefaultTcpFramingMethod = "lf";
13
14
  export const DefaultTrailerReplacer = " ";
14
15
  export const TrailerMap = {
15
16
  lf: "\n",
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAU,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAE/B,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAyB,CAAC;AACvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAI,CAAU,CAAC;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa;IACb,GAAG,0BAA0B;CACrB,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAmB,IAAI,CAAC;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAY,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAmD;IACxE,EAAE,EAAE,IAAI;CACA,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAU,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAC/B,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAyB,CAAC;AACvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAI,CAAU,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa;IACb,GAAG,4BAA4B;CACvB,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAqB,IAAI,CAAC;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAY,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAqD;IAC1E,EAAE,EAAE,IAAI;CACA,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Readable } from "node:stream";
1
+ import * as stream from "node:stream";
2
2
  import { WeightedItemFeeder } from "./common/weightedItemFeeder.js";
3
3
  import { type DocumentContent } from "./document/index.js";
4
- export declare function createGeneratingDocumentStream(documentFeeder: WeightedItemFeeder<DocumentContent>, count: number, objectMode?: boolean): Readable;
4
+ export declare function createGeneratingDocumentStream(documentFeeder: WeightedItemFeeder<DocumentContent>, count: number): stream.Readable;
@@ -1,16 +1,9 @@
1
- import { Readable } from "node:stream";
1
+ import * as stream from "node:stream";
2
2
  import { createDocumentContextIterator, GeneratingDocument, } from "./document/index.js";
3
- export function createGeneratingDocumentStream(documentFeeder, count, objectMode = false) {
4
- if (objectMode) {
5
- return Readable.from(generateGeneratingDocument(documentFeeder, count), {
6
- objectMode: true,
7
- });
8
- }
9
- else {
10
- return Readable.from(generate(documentFeeder, count), {
11
- objectMode: false,
12
- });
13
- }
3
+ export function createGeneratingDocumentStream(documentFeeder, count) {
4
+ return stream.Readable.from(generateGeneratingDocument(documentFeeder, count), {
5
+ objectMode: true,
6
+ });
14
7
  }
15
8
  function* generateGeneratingDocument(documentFeeder, count) {
16
9
  const documentContextIterator = createDocumentContextIterator(count);
@@ -23,11 +16,4 @@ function* generateGeneratingDocument(documentFeeder, count) {
23
16
  yield new GeneratingDocument(document, context);
24
17
  }
25
18
  }
26
- function* generate(documentFeeder, count) {
27
- const generatingDocumentIterator = generateGeneratingDocument(documentFeeder, count);
28
- for (let generatingDocument of generatingDocumentIterator) {
29
- const output = generatingDocument.stamp();
30
- yield output + "\n";
31
- }
32
- }
33
19
  //# sourceMappingURL=createGeneratingDocumentStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createGeneratingDocumentStream.js","sourceRoot":"","sources":["../../src/createGeneratingDocumentStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EACL,6BAA6B,EAE7B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,8BAA8B,CAC5C,cAAmD,EACnD,KAAa,EACb,aAAsB,KAAK;IAE3B,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;YACtE,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;YACpD,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,CAAC,0BAA0B,CAClC,cAAmD,EACnD,KAAa;IAEb,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACrE,KAAK,IAAI,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC5C,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,CAAC,QAAQ,CAChB,cAAmD,EACnD,KAAa;IAEb,MAAM,0BAA0B,GAAG,0BAA0B,CAC3D,cAAc,EACd,KAAK,CACN,CAAC;IACF,KAAK,IAAI,kBAAkB,IAAI,0BAA0B,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"createGeneratingDocumentStream.js","sourceRoot":"","sources":["../../src/createGeneratingDocumentStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EACL,6BAA6B,EAE7B,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,8BAA8B,CAC5C,cAAmD,EACnD,KAAa;IAEb,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CACzB,0BAA0B,CAAC,cAAc,EAAE,KAAK,CAAC,EACjD;QACE,UAAU,EAAE,IAAI;KACjB,CACF,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,CAAC,0BAA0B,CAClC,cAAmD,EACnD,KAAa;IAEb,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACrE,KAAK,IAAI,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC5C,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import * as stream from "node:stream";
2
+ import type { DocumentTransformOptions } from "./documentTransformTypes.js";
3
+ export declare class DocumentTransformStream extends stream.Transform {
4
+ private readonly documentTransformer;
5
+ private readonly timeWindow;
6
+ private readonly numOfEventPerTimeWindow;
7
+ private readonly timeWindowIntervalTimeout;
8
+ private numOfEventInCurrentTimeWindow;
9
+ private pendingTransformTasks;
10
+ private nThTimeWindow;
11
+ private totalNumOfEvent;
12
+ constructor(options: DocumentTransformOptions, debug?: boolean);
13
+ private debugReport;
14
+ _transform(chunk: any, encoding: BufferEncoding, callback: stream.TransformCallback): void;
15
+ _flush(callback: stream.TransformCallback): void;
16
+ private __transformDocument;
17
+ private __flushPendingTransformTasks;
18
+ private __clearWindowInternal;
19
+ }
@@ -0,0 +1,118 @@
1
+ import { Buffer } from "node:buffer";
2
+ import * as stream from "node:stream";
3
+ import { GeneratingDocument } from "./document/index.js";
4
+ const Per1000Window = 1000;
5
+ const Per100Window = 100;
6
+ export class DocumentTransformStream extends stream.Transform {
7
+ documentTransformer;
8
+ timeWindow;
9
+ numOfEventPerTimeWindow;
10
+ timeWindowIntervalTimeout;
11
+ numOfEventInCurrentTimeWindow;
12
+ pendingTransformTasks = [];
13
+ nThTimeWindow = 0;
14
+ totalNumOfEvent = 0;
15
+ constructor(options, debug = false) {
16
+ super({
17
+ highWaterMark: 0,
18
+ objectMode: true,
19
+ });
20
+ const transformMode = options.transformMode;
21
+ if (transformMode === "object") {
22
+ this.documentTransformer = undefined;
23
+ }
24
+ else if (transformMode === "buffer") {
25
+ const framing = options.framing;
26
+ if (framing === "octet-counting") {
27
+ this.documentTransformer = transformDocumentIntoOctetCountingBuffer;
28
+ }
29
+ else if (framing === "non-transparent") {
30
+ this.documentTransformer = createNonTransparentDocumentTransformer(options.trailer, options.trailerReplacer);
31
+ }
32
+ else {
33
+ throw new Error(`Unexpected framingMethod: ${framing}`);
34
+ }
35
+ }
36
+ else {
37
+ throw new Error(`Unexpected transferMode: ${transformMode}`);
38
+ }
39
+ if (options.eps < Per100Window) {
40
+ this.timeWindow = Per1000Window;
41
+ }
42
+ else {
43
+ this.timeWindow = Per100Window;
44
+ }
45
+ this.numOfEventPerTimeWindow = Math.ceil(options.eps * (this.timeWindow / 1000));
46
+ this.numOfEventInCurrentTimeWindow = 0;
47
+ this.timeWindowIntervalTimeout = setInterval(() => {
48
+ this.__flushPendingTransformTasks();
49
+ if (debug) {
50
+ this.debugReport();
51
+ }
52
+ this.numOfEventInCurrentTimeWindow = 0;
53
+ }, this.timeWindow);
54
+ }
55
+ debugReport() {
56
+ this.totalNumOfEvent =
57
+ this.totalNumOfEvent + this.numOfEventInCurrentTimeWindow;
58
+ this.nThTimeWindow = this.nThTimeWindow + 1;
59
+ console.log(`[${this.nThTimeWindow}] => ${this.numOfEventInCurrentTimeWindow}/${this.totalNumOfEvent}`);
60
+ }
61
+ _transform(chunk, encoding, callback) {
62
+ if (!(chunk instanceof GeneratingDocument)) {
63
+ callback(new Error(`Unexpected chunk type(${typeof chunk}). Cannot process any chunk type except Document.`));
64
+ return;
65
+ }
66
+ if (this.numOfEventInCurrentTimeWindow < this.numOfEventPerTimeWindow) {
67
+ this.numOfEventInCurrentTimeWindow =
68
+ this.numOfEventInCurrentTimeWindow + 1;
69
+ this.__transformDocument(chunk, encoding, callback);
70
+ return;
71
+ }
72
+ this.pendingTransformTasks.push([chunk, encoding, callback]);
73
+ }
74
+ _flush(callback) {
75
+ this.__flushPendingTransformTasks();
76
+ this.__clearWindowInternal();
77
+ callback();
78
+ }
79
+ __transformDocument(document, encoding, callback) {
80
+ const documentTransformer = this.documentTransformer;
81
+ if (documentTransformer === undefined) {
82
+ callback(null, document);
83
+ return;
84
+ }
85
+ const bufferArray = documentTransformer(document, encoding);
86
+ bufferArray.forEach((buffer) => this.push(buffer, encoding));
87
+ callback();
88
+ }
89
+ __flushPendingTransformTasks() {
90
+ const tasks = this.pendingTransformTasks;
91
+ this.pendingTransformTasks = [];
92
+ tasks.forEach(([document, encoding, callback]) => this.__transformDocument(document, encoding, callback));
93
+ }
94
+ __clearWindowInternal() {
95
+ clearInterval(this.timeWindowIntervalTimeout);
96
+ }
97
+ }
98
+ const SP = " ";
99
+ function transformDocumentIntoOctetCountingBuffer(document, encoding) {
100
+ const outputString = document.stamp();
101
+ const messageBuf8 = Buffer.from(outputString, encoding);
102
+ const lengthCount = messageBuf8.length.toString();
103
+ const lengthBuf8 = Buffer.from(lengthCount + SP, encoding);
104
+ return [lengthBuf8, messageBuf8];
105
+ }
106
+ function createNonTransparentDocumentTransformer(trailer, trailerReplacer) {
107
+ return (document, encoding) => {
108
+ let outputString = document.stamp();
109
+ if (trailerReplacer !== undefined) {
110
+ outputString = outputString.replaceAll(trailer, trailerReplacer);
111
+ }
112
+ return [
113
+ Buffer.from(outputString, encoding),
114
+ Buffer.from(trailer, encoding),
115
+ ];
116
+ };
117
+ }
118
+ //# sourceMappingURL=documentTransformStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentTransformStream.js","sourceRoot":"","sources":["../../src/documentTransformStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export type TransformMode = "object" | "buffer";
2
+ interface PrimitiveDocumentTransformOptions {
3
+ readonly transformMode: TransformMode;
4
+ readonly eps: number;
5
+ }
6
+ export interface DocumentObjectTransformOptions extends PrimitiveDocumentTransformOptions {
7
+ readonly transformMode: "object";
8
+ }
9
+ export type FramingMethod = "octet-counting" | "non-transparent";
10
+ interface DocumentBufferTransformOptions extends PrimitiveDocumentTransformOptions {
11
+ readonly transformMode: "buffer";
12
+ readonly framing: FramingMethod;
13
+ }
14
+ export interface DocumentOctetCountingTransformOptions extends DocumentBufferTransformOptions {
15
+ readonly transformMode: "buffer";
16
+ readonly framing: "octet-counting";
17
+ }
18
+ export interface DocumentNonTransparentTransformOptions extends DocumentBufferTransformOptions {
19
+ readonly transformMode: "buffer";
20
+ readonly framing: "non-transparent";
21
+ readonly trailer: string;
22
+ readonly trailerReplacer: string | undefined;
23
+ }
24
+ export type DocumentTransformOptions = DocumentObjectTransformOptions | DocumentOctetCountingTransformOptions | DocumentNonTransparentTransformOptions;
25
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=documentTransformTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentTransformTypes.js","sourceRoot":"","sources":["../../src/documentTransformTypes.ts"],"names":[],"mappings":""}
@@ -3,7 +3,7 @@ import * as fsPromises from "node:fs/promises";
3
3
  import * as nodePath from "node:path";
4
4
  import { assertNever } from "../utils.js";
5
5
  import { createFileOutput } from "./createFileOutput.js";
6
- import { TcpDocumentStream } from "./tcpDocumentStream.js";
6
+ import { createTcpOutput } from "./createTcpOutput.js";
7
7
  import { UdpDocumentStream } from "./udpDocumentStream.js";
8
8
  export async function initializeOutput(outputOptions) {
9
9
  // region clean dir
@@ -24,7 +24,7 @@ export async function initializeOutput(outputOptions) {
24
24
  return new UdpDocumentStream(outputOptions);
25
25
  }
26
26
  else if (outputOptions.type === "tcp") {
27
- return new TcpDocumentStream(outputOptions);
27
+ return createTcpOutput(outputOptions);
28
28
  }
29
29
  else {
30
30
  return assertNever(outputOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"initializeOutput.js","sourceRoot":"","sources":["../../../src/output/initializeOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAA4B;IAE5B,mBAAmB;IAEnB,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAElD,MAAM,yBAAyB,GAAG,CAAC,gBAAwB,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACnE,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,UAAU,CACpE,IAAI,EACJ,GAAG,CACJ,CAAC;IAEF,MAAM,cAAc,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;IAEpE,YAAY;IAEZ,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,gBAAgB,CACrB,mBAAmB,EACnB,aAAa,CAAC,IAAI,EAClB,yBAAyB,CAC1B,CAAC;IACJ,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAG,SAAmB;IAClD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"initializeOutput.js","sourceRoot":"","sources":["../../../src/output/initializeOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAA4B;IAE5B,mBAAmB;IAEnB,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAElD,MAAM,yBAAyB,GAAG,CAAC,gBAAwB,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACnE,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,UAAU,CACpE,IAAI,EACJ,GAAG,CACJ,CAAC;IAEF,MAAM,cAAc,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;IAEpE,YAAY;IAEZ,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,gBAAgB,CACrB,mBAAmB,EACnB,aAAa,CAAC,IAAI,EAClB,yBAAyB,CAC1B,CAAC;IACJ,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAG,SAAmB;IAClD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tcpDocumentStream.js","sourceRoot":"","sources":["../../../src/output/tcpDocumentStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tcpDocumentStream.js","sourceRoot":"","sources":["../../../src/output/tcpDocumentStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,EAAE,GAAG,GAAY,CAAC;AAExB,MAAM,OAAO,iBAAkB,SAAQ,wBAAwB;IAC5C,OAAO,CAAS;IAChB,IAAI,CAAS;IACb,OAAO,CAAmB;IAC1B,eAAe,CAAqB;IAE7C,MAAM,CAAqB;IAC3B,MAAM,CAAyB;IAEvC,YAAY,OAAyB;QACnC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,OAAO,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QACjD,CAAC;IACH,CAAC;IAEe,UAAU,CAAC,QAAwC;QACjE,WAAW;aACR,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,IAAI;SACf,CAAC;aACD,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAEe,eAAe,CAC7B,KAAyB,EACzB,QAAwB,EACxB,QAAwC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,CACN,IAAI,KAAK,CAAC,qDAAqD,CAAC,CACjE,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,UAAU,GAA0B;gBACxC,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YACF,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,MAAuB,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;YAClC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CAAC,QAAwC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAES,iBAAiB,CACzB,KAAmB,EACnB,QAAwC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;CACF"}
@@ -1,13 +1,11 @@
1
- import { GeneratingDocument } from "../document/index.js";
1
+ import * as stream from "node:stream";
2
2
  import type { UdpOutputOptions } from "../types.js";
3
- import { ThrottlingDocumentStream } from "./throttlingDocumentStream.js";
4
- export declare class UdpDocumentStream extends ThrottlingDocumentStream {
3
+ export declare class UdpDocumentStream extends stream.Writable {
5
4
  private readonly address;
6
5
  private readonly port;
7
6
  private socketType;
8
7
  constructor(options: UdpOutputOptions);
9
8
  _construct(callback: (error?: Error | null) => void): void;
10
- _throttledWrite(chunk: GeneratingDocument, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
11
- protected _throttledFinal(callback: (error?: Error | null) => void): void;
12
- protected _throttledDestroy(error: Error | null, callback: (error?: Error | null) => void): void;
9
+ _write(chunk: unknown, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
10
+ _final(callback: (error?: Error | null) => void): void;
13
11
  }
@@ -1,12 +1,16 @@
1
1
  import * as dgram from "node:dgram";
2
2
  import * as dnsPromises from "node:dns/promises";
3
- import { ThrottlingDocumentStream } from "./throttlingDocumentStream.js";
4
- export class UdpDocumentStream extends ThrottlingDocumentStream {
3
+ import * as stream from "node:stream";
4
+ import { GeneratingDocument } from "../document/index.js";
5
+ export class UdpDocumentStream extends stream.Writable {
5
6
  address;
6
7
  port;
7
8
  socketType;
8
9
  constructor(options) {
9
- super(options.eps);
10
+ super({
11
+ highWaterMark: 0,
12
+ objectMode: true,
13
+ });
10
14
  this.address = options.address;
11
15
  this.port = options.port;
12
16
  }
@@ -21,14 +25,18 @@ export class UdpDocumentStream extends ThrottlingDocumentStream {
21
25
  })
22
26
  .catch((reason) => callback(reason));
23
27
  }
24
- _throttledWrite(chunk, encoding, callback) {
28
+ _write(chunk, encoding, callback) {
29
+ if (!(chunk instanceof GeneratingDocument)) {
30
+ callback(new Error(`Unexpected chunk type(${typeof chunk}). Cannot process any chunk type except Document.`));
31
+ return;
32
+ }
25
33
  const socketType = this.socketType;
26
34
  if (socketType === undefined) {
27
35
  callback(new Error("called write before socketType has not been determined."));
28
36
  return;
29
37
  }
30
38
  const client = dgram.createSocket(socketType);
31
- client.send(chunk.stamp(), this.port, this.address, (error) => {
39
+ client.send(chunk.stamp(), this.port, this.address, (error, bytes) => {
32
40
  client.close();
33
41
  if (error !== null) {
34
42
  callback(error);
@@ -37,11 +45,8 @@ export class UdpDocumentStream extends ThrottlingDocumentStream {
37
45
  callback();
38
46
  });
39
47
  }
40
- _throttledFinal(callback) {
48
+ _final(callback) {
41
49
  callback();
42
50
  }
43
- _throttledDestroy(error, callback) {
44
- callback(error);
45
- }
46
51
  }
47
52
  //# sourceMappingURL=udpDocumentStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"udpDocumentStream.js","sourceRoot":"","sources":["../../../src/output/udpDocumentStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,OAAO,iBAAkB,SAAQ,wBAAwB;IAC5C,OAAO,CAAS;IAChB,IAAI,CAAS;IAEtB,UAAU,CAA+B;IAEjD,YAAY,OAAyB;QACnC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEe,UAAU,CAAC,QAAwC;QACjE,WAAW;aACR,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,IAAI;SACf,CAAC;aACD,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAEe,eAAe,CAC7B,KAAyB,EACzB,QAAwB,EACxB,QAAwC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,QAAQ,CACN,IAAI,KAAK,CAAC,yDAAyD,CAAC,CACrE,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5D,MAAM,CAAC,KAAK,EAAE,CAAC;YAEf,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CAAC,QAAwC;QAChE,QAAQ,EAAE,CAAC;IACb,CAAC;IAES,iBAAiB,CACzB,KAAmB,EACnB,QAAwC;QAExC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"udpDocumentStream.js","sourceRoot":"","sources":["../../../src/output/udpDocumentStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,QAAQ;IACnC,OAAO,CAAS;IAChB,IAAI,CAAS;IAEtB,UAAU,CAA+B;IAEjD,YAAY,OAAyB;QACnC,KAAK,CAAC;YACJ,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEe,UAAU,CAAC,QAAwC;QACjE,WAAW;aACR,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,IAAI;SACf,CAAC;aACD,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAEe,MAAM,CACpB,KAAc,EACd,QAAwB,EACxB,QAAwC;QAExC,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC,EAAE,CAAC;YAC3C,QAAQ,CACN,IAAI,KAAK,CACP,yBAAyB,OAAO,KAAK,mDAAmD,CACzF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,QAAQ,CACN,IAAI,KAAK,CAAC,yDAAyD,CAAC,CACrE,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,KAAK,EAAE,EACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,CAAC,KAAmB,EAAE,KAAa,EAAQ,EAAE;YAC3C,MAAM,CAAC,KAAK,EAAE,CAAC;YAEf,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC,CACF,CAAC;IACJ,CAAC;IAEe,MAAM,CAAC,QAAwC;QAC7D,QAAQ,EAAE,CAAC;IACb,CAAC;CACF"}
package/dist/src/run.js CHANGED
@@ -1,12 +1,15 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as fsPromises from "node:fs/promises";
3
3
  import * as nodePath from "node:path";
4
+ import * as stream from "node:stream";
4
5
  import { FAILED, SUCCEEDED } from "./cliConsts.js";
5
6
  import { commandManager } from "./command/index.js";
7
+ import { MaxEps, TrailerMap } from "./consts.js";
6
8
  import { createDocumentFeeder } from "./createDocumentFeeder.js";
7
9
  import { createGeneratingDocumentStream } from "./createGeneratingDocumentStream.js";
8
10
  import { debugFileWriter } from "./debugFileWriter.js";
9
11
  import { initializeOutput } from "./output/initializeOutput.js";
12
+ import { DocumentTransformStream } from "./documentTransformStream.js";
10
13
  import "./command/commands/index.js";
11
14
  export async function run(programOptions) {
12
15
  const { debug, count, out, templates } = programOptions;
@@ -47,9 +50,55 @@ export async function run(programOptions) {
47
50
  }
48
51
  // endregion
49
52
  const documentFeeder = await createDocumentFeeder(templates, programOptions, commandManager);
50
- const documentStream = createGeneratingDocumentStream(documentFeeder, count, out.type !== "file");
51
53
  const writeStream = await initializeOutput(out);
52
- documentStream.pipe(writeStream);
54
+ let documentTransformOptions;
55
+ if (out.type === "file") {
56
+ documentTransformOptions = {
57
+ transformMode: "buffer",
58
+ eps: MaxEps,
59
+ framing: "non-transparent",
60
+ trailer: "\n",
61
+ trailerReplacer: undefined,
62
+ };
63
+ }
64
+ else if (out.type === "udp") {
65
+ documentTransformOptions = {
66
+ transformMode: "object",
67
+ eps: out.eps,
68
+ };
69
+ }
70
+ else if (out.type === "tcp") {
71
+ if (out.framing === "octet-counting") {
72
+ documentTransformOptions = {
73
+ transformMode: "buffer",
74
+ eps: out.eps,
75
+ framing: "octet-counting",
76
+ };
77
+ }
78
+ else if (out.framing === "lf") {
79
+ const trailer = TrailerMap[out.framing];
80
+ documentTransformOptions = {
81
+ transformMode: "buffer",
82
+ eps: out.eps,
83
+ framing: "non-transparent",
84
+ trailer: trailer,
85
+ trailerReplacer: out.trailerReplacer,
86
+ };
87
+ }
88
+ else {
89
+ throw new Error(`Unexpected out options: ${out}`);
90
+ }
91
+ }
92
+ else {
93
+ throw new Error(`Unexpected out options: ${out}`);
94
+ }
95
+ const documentTransformStream = new DocumentTransformStream(documentTransformOptions, true);
96
+ const documentStream = createGeneratingDocumentStream(documentFeeder, count);
97
+ stream.pipeline(documentStream, documentTransformStream, writeStream, (error) => {
98
+ if (error !== null) {
99
+ console.error(error);
100
+ }
101
+ });
53
102
  return SUCCEEDED;
54
103
  }
55
104
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,6BAA6B,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,cAA8B;IACtD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;IAExD,kBAAkB;IAElB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,YAAY,GAAY,KAAK,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,eAAe,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY;IAEZ,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,SAAS,EACT,cAAc,EACd,cAAc,CACf,CAAC;IAEF,MAAM,cAAc,GAAG,8BAA8B,CACnD,cAAc,EACd,KAAK,EACL,GAAG,CAAC,IAAI,KAAK,MAAM,CACpB,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAChD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjC,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import * as stream from "node:stream";
2
+ import type { DocumentTransformOptions } from "./documentTransformTypes.js";
3
+ export declare class DocumentTransformStream extends stream.Transform {
4
+ private readonly documentTransformer;
5
+ private readonly timeWindow;
6
+ private readonly numOfEventPerTimeWindow;
7
+ private readonly timeWindowIntervalTimeout;
8
+ private numOfEventInCurrentTimeWindow;
9
+ private pendingTransformTasks;
10
+ private nThTimeWindow;
11
+ private totalNumOfEvent;
12
+ constructor(options: DocumentTransformOptions, debug?: boolean);
13
+ private debugReport;
14
+ _transform(chunk: any, encoding: BufferEncoding, callback: stream.TransformCallback): void;
15
+ _flush(callback: stream.TransformCallback): void;
16
+ private __transformDocument;
17
+ private __flushPendingTransformTasks;
18
+ private __clearWindowInternal;
19
+ }
@@ -0,0 +1,118 @@
1
+ import { Buffer } from "node:buffer";
2
+ import * as stream from "node:stream";
3
+ import { GeneratingDocument } from "../document/index.js";
4
+ const Per1000Window = 1000;
5
+ const Per100Window = 100;
6
+ export class DocumentTransformStream extends stream.Transform {
7
+ documentTransformer;
8
+ timeWindow;
9
+ numOfEventPerTimeWindow;
10
+ timeWindowIntervalTimeout;
11
+ numOfEventInCurrentTimeWindow;
12
+ pendingTransformTasks = [];
13
+ nThTimeWindow = 0;
14
+ totalNumOfEvent = 0;
15
+ constructor(options, debug = false) {
16
+ super({
17
+ highWaterMark: 0,
18
+ objectMode: true,
19
+ });
20
+ const transformMode = options.transformMode;
21
+ if (transformMode === "object") {
22
+ this.documentTransformer = undefined;
23
+ }
24
+ else if (transformMode === "buffer") {
25
+ const framing = options.framing;
26
+ if (framing === "octet-counting") {
27
+ this.documentTransformer = transformDocumentIntoOctetCountingBuffer;
28
+ }
29
+ else if (framing === "non-transparent") {
30
+ this.documentTransformer = createNonTransparentDocumentTransformer(options.trailer, options.trailerReplacer);
31
+ }
32
+ else {
33
+ throw new Error(`Unexpected framingMethod: ${framing}`);
34
+ }
35
+ }
36
+ else {
37
+ throw new Error(`Unexpected transferMode: ${transformMode}`);
38
+ }
39
+ if (options.eps < Per100Window) {
40
+ this.timeWindow = Per1000Window;
41
+ }
42
+ else {
43
+ this.timeWindow = Per100Window;
44
+ }
45
+ this.numOfEventPerTimeWindow = Math.ceil(options.eps * (this.timeWindow / 1000));
46
+ this.numOfEventInCurrentTimeWindow = 0;
47
+ this.timeWindowIntervalTimeout = setInterval(() => {
48
+ this.__flushPendingTransformTasks();
49
+ if (debug) {
50
+ this.debugReport();
51
+ }
52
+ this.numOfEventInCurrentTimeWindow = 0;
53
+ }, this.timeWindow);
54
+ }
55
+ debugReport() {
56
+ this.totalNumOfEvent =
57
+ this.totalNumOfEvent + this.numOfEventInCurrentTimeWindow;
58
+ this.nThTimeWindow = this.nThTimeWindow + 1;
59
+ console.log(`[${this.nThTimeWindow}] => ${this.numOfEventInCurrentTimeWindow}/${this.totalNumOfEvent}`);
60
+ }
61
+ _transform(chunk, encoding, callback) {
62
+ if (!(chunk instanceof GeneratingDocument)) {
63
+ callback(new Error(`Unexpected chunk type(${typeof chunk}). Cannot process any chunk type except Document.`));
64
+ return;
65
+ }
66
+ if (this.numOfEventInCurrentTimeWindow < this.numOfEventPerTimeWindow) {
67
+ this.numOfEventInCurrentTimeWindow =
68
+ this.numOfEventInCurrentTimeWindow + 1;
69
+ this.__transformDocument(chunk, encoding, callback);
70
+ return;
71
+ }
72
+ this.pendingTransformTasks.push([chunk, encoding, callback]);
73
+ }
74
+ _flush(callback) {
75
+ this.__flushPendingTransformTasks();
76
+ this.__clearWindowInternal();
77
+ callback();
78
+ }
79
+ __transformDocument(document, encoding, callback) {
80
+ const documentTransformer = this.documentTransformer;
81
+ if (documentTransformer === undefined) {
82
+ callback(null, document);
83
+ return;
84
+ }
85
+ const bufferArray = documentTransformer(document, encoding);
86
+ bufferArray.forEach((buffer) => this.push(buffer, encoding));
87
+ callback();
88
+ }
89
+ __flushPendingTransformTasks() {
90
+ const tasks = this.pendingTransformTasks;
91
+ this.pendingTransformTasks = [];
92
+ tasks.forEach(([document, encoding, callback]) => this.__transformDocument(document, encoding, callback));
93
+ }
94
+ __clearWindowInternal() {
95
+ clearInterval(this.timeWindowIntervalTimeout);
96
+ }
97
+ }
98
+ const SP = " ";
99
+ function transformDocumentIntoOctetCountingBuffer(document, encoding) {
100
+ const outputString = document.stamp();
101
+ const messageBuf8 = Buffer.from(outputString, encoding);
102
+ const lengthCount = messageBuf8.length.toString();
103
+ const lengthBuf8 = Buffer.from(lengthCount + SP, encoding);
104
+ return [lengthBuf8, messageBuf8];
105
+ }
106
+ function createNonTransparentDocumentTransformer(trailer, trailerReplacer) {
107
+ return (document, encoding) => {
108
+ let outputString = document.stamp();
109
+ if (trailerReplacer !== undefined) {
110
+ outputString = outputString.replaceAll(trailer, trailerReplacer);
111
+ }
112
+ return [
113
+ Buffer.from(outputString, encoding),
114
+ Buffer.from(trailer, encoding),
115
+ ];
116
+ };
117
+ }
118
+ //# sourceMappingURL=documentTransformStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentTransformStream.js","sourceRoot":"","sources":["../../../src/template/documentTransformStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export type TransformMode = "object" | "buffer";
2
+ interface PrimitiveDocumentTransformOptions {
3
+ readonly transformMode: TransformMode;
4
+ readonly eps: number;
5
+ }
6
+ export interface DocumentObjectTransformOptions extends PrimitiveDocumentTransformOptions {
7
+ readonly transformMode: "object";
8
+ }
9
+ export type FramingMethod = "octet-counting" | "non-transparent";
10
+ interface DocumentBufferTransformOptions extends PrimitiveDocumentTransformOptions {
11
+ readonly transformMode: "buffer";
12
+ readonly framing: FramingMethod;
13
+ }
14
+ export interface DocumentOctetCountingTransformOptions extends DocumentBufferTransformOptions {
15
+ readonly transformMode: "buffer";
16
+ readonly framing: "octet-counting";
17
+ }
18
+ export interface DocumentNonTransparentTransformOptions extends DocumentBufferTransformOptions {
19
+ readonly transformMode: "buffer";
20
+ readonly framing: "non-transparent";
21
+ readonly trailer: string;
22
+ readonly trailerReplacer: string | undefined;
23
+ }
24
+ export type DocumentTransformOptions = DocumentObjectTransformOptions | DocumentOctetCountingTransformOptions | DocumentNonTransparentTransformOptions;
25
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=documentTransformTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentTransformTypes.js","sourceRoot":"","sources":["../../../src/template/documentTransformTypes.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import type { NetworkOutputTypes, NonTransparentFramingTypes, OutputTypes, TcpFramingTypes, TemplateModes } from "./consts.js";
1
+ import type { NetworkOutputTypes, NonTransparentFramingMethods, OutputTypes, TcpFramingMethods, TemplateModes } from "./consts.js";
2
2
  export interface TypeTaggedStructure {
3
3
  readonly type: string;
4
4
  }
@@ -49,11 +49,11 @@ interface NetworkOutputOptions extends PrimitiveOutputOptions {
49
49
  export interface UdpOutputOptions extends NetworkOutputOptions {
50
50
  readonly type: "udp";
51
51
  }
52
- export type NonTransparentFramingType = (typeof NonTransparentFramingTypes)[number];
53
- export type TcpFramingType = (typeof TcpFramingTypes)[number];
52
+ export type NonTransparentFramingMethod = (typeof NonTransparentFramingMethods)[number];
53
+ export type TcpFramingMethod = (typeof TcpFramingMethods)[number];
54
54
  interface PrimitiveTcpOutputOptions extends NetworkOutputOptions {
55
55
  readonly type: "tcp";
56
- readonly framing: TcpFramingType;
56
+ readonly framing: TcpFramingMethod;
57
57
  }
58
58
  interface TcpOctetCountingOutputOptions extends PrimitiveTcpOutputOptions {
59
59
  readonly type: "tcp";
@@ -61,7 +61,7 @@ interface TcpOctetCountingOutputOptions extends PrimitiveTcpOutputOptions {
61
61
  }
62
62
  interface TcpNonFramingOutputOptions extends PrimitiveTcpOutputOptions {
63
63
  readonly type: "tcp";
64
- readonly framing: NonTransparentFramingType;
64
+ readonly framing: NonTransparentFramingMethod;
65
65
  readonly trailerReplacer: string;
66
66
  }
67
67
  export type TcpOutputOptions = TcpOctetCountingOutputOptions | TcpNonFramingOutputOptions;
@@ -1,10 +1,10 @@
1
- import type { NetworkOutputType, OutputType, ProgramOptions, TcpFramingType, TemplateMode } from "./types.js";
1
+ import type { NetworkOutputType, OutputType, ProgramOptions, TcpFramingMethod, TemplateMode } from "./types.js";
2
2
  export declare function isString(value: unknown): value is string;
3
3
  export declare function isNonNullObject(value: unknown): value is Record<string, unknown>;
4
4
  export declare function isTemplateMode(value: unknown): value is TemplateMode;
5
5
  export declare function isOutputType(value: unknown): value is OutputType;
6
6
  export declare function isNetworkOutputType(value: unknown): value is NetworkOutputType;
7
- export declare function isTcpFramingType(value: unknown): value is TcpFramingType;
7
+ export declare function isTcpFramingType(value: unknown): value is TcpFramingMethod;
8
8
  export declare function parseString(value: unknown): string | undefined;
9
9
  export declare function parseNonNaNInteger(value: unknown): number | undefined;
10
10
  export declare function parseNonNaNFloat(value: unknown): number | undefined;
package/dist/src/utils.js CHANGED
@@ -2,7 +2,7 @@ import * as fs from "node:fs";
2
2
  import * as fsPromises from "node:fs/promises";
3
3
  import * as nodePath from "node:path";
4
4
  import { normalizeWeight } from "./common/weightedItemFeeder.js";
5
- import { DEFAULT_TEMPLATE_WEIGHT, DefaultEps, DefaultTcpFraming, DefaultTrailerReplacer, NetworkOutputTypes, OutputTypes, TcpFramingTypes, TemplateModes, } from "./consts.js";
5
+ import { DEFAULT_TEMPLATE_WEIGHT, DefaultEps, DefaultTcpFramingMethod, DefaultTrailerReplacer, NetworkOutputTypes, OutputTypes, TcpFramingMethods, TemplateModes, } from "./consts.js";
6
6
  // region type guards
7
7
  export function isString(value) {
8
8
  return typeof value === "string";
@@ -38,7 +38,7 @@ export function isTcpFramingType(value) {
38
38
  if (typeof value !== "string") {
39
39
  return false;
40
40
  }
41
- const candidates = TcpFramingTypes;
41
+ const candidates = TcpFramingMethods;
42
42
  return candidates.includes(value);
43
43
  }
44
44
  // endregion
@@ -245,7 +245,8 @@ function normalizeOutputOptions(possibleOutputOptions, basePath) {
245
245
  };
246
246
  }
247
247
  else if (possibleType === "tcp") {
248
- const possibleFraming = parseString(possibleOutputOptions["framing"]) ?? DefaultTcpFraming;
248
+ const possibleFraming = parseString(possibleOutputOptions["framing"]) ??
249
+ DefaultTcpFramingMethod;
249
250
  if (!isTcpFramingType(possibleFraming)) {
250
251
  console.error(`invalid framing type.(${possibleFraming})`);
251
252
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gent-js/gent",
3
- "version": "0.1.4",
4
- "description": "template base dummy text data generator.",
3
+ "version": "0.1.5",
4
+ "description": "template-based data generator.",
5
5
  "homepage": "https://github.com/tomo-waka/gent",
6
6
  "license": "MIT",
7
7
  "author": "Tomokazu Wakabayashi",
@@ -25,7 +25,7 @@
25
25
  "prepare": "npm run build",
26
26
  "start": "tsx src/cli.ts --template sample/syslog_RFC3164(ISO_Date).template.log --count 5 --out out/out.log --debug",
27
27
  "start-json": "tsx src/cli.ts --template sample/aws_CloudWatch.json --count 5 --out out/out.log --debug",
28
- "start-meta": "tsx src/cli.ts --meta sample/meta.json",
28
+ "start-meta": "tsx src/cli.ts --meta sample/tcp_meta.json",
29
29
  "test": "echo \"Error: no test specified\" && exit 1",
30
30
  "version": "npm run generate:package-env"
31
31
  },
@@ -1,4 +0,0 @@
1
- import { Readable } from "node:stream";
2
- import { WeightedItemFeeder } from "./common/weightedItemFeeder.js";
3
- import type { DocumentContent } from "./document/index.js";
4
- export declare function createGeneratingLogStream(documentFeeder: WeightedItemFeeder<DocumentContent>, count: number): Readable;
@@ -1,21 +0,0 @@
1
- import { Readable } from "node:stream";
2
- import { createDocumentContextIterator, stampDocumentContent, } from "./document/index.js";
3
- export function createGeneratingLogStream(documentFeeder, count) {
4
- return Readable.from(generate(documentFeeder, count));
5
- }
6
- function* generate(documentFeeder, count) {
7
- const documentContextIterator = createDocumentContextIterator(count);
8
- for (let documentContext of documentContextIterator) {
9
- const document = documentFeeder.getItem();
10
- let output;
11
- if (document === undefined) {
12
- console.error("no document found.");
13
- output = "";
14
- }
15
- else {
16
- output = stampDocumentContent(document, documentContext);
17
- }
18
- yield output + "\n";
19
- }
20
- }
21
- //# sourceMappingURL=createGeneratingLogStream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createGeneratingLogStream.js","sourceRoot":"","sources":["../../src/createGeneratingLogStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,yBAAyB,CACvC,cAAmD,EACnD,KAAa;IAEb,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,QAAQ,CAAC,CAAC,QAAQ,CAChB,cAAmD,EACnD,KAAa;IAEb,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACrE,KAAK,IAAI,eAAe,IAAI,uBAAuB,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,MAAc,CAAC;QACnB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,oBAAoB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import * as stream from "node:stream";
2
- import type { UdpOutputOptions } from "../types.js";
3
- export declare function createUdpOutput(outputOptions: UdpOutputOptions): Promise<stream.Writable>;
@@ -1,5 +0,0 @@
1
- import { UpdStream } from "./updStream.js";
2
- export async function createUdpOutput(outputOptions) {
3
- return new UpdStream(outputOptions);
4
- }
5
- //# sourceMappingURL=createUdpOutput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createUdpOutput.js","sourceRoot":"","sources":["../../../src/output/createUdpOutput.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAA+B;IAE/B,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC"}
@@ -1,17 +0,0 @@
1
- import * as stream from "node:stream";
2
- export interface UdpStreamOptions extends stream.WritableOptions {
3
- readonly address: string;
4
- readonly port: number;
5
- }
6
- export declare class UpdStream extends stream.Writable {
7
- private readonly address;
8
- private readonly port;
9
- private chunks;
10
- private chunkSize;
11
- private client;
12
- constructor(options: UdpStreamOptions);
13
- _construct(callback: (error?: Error | null) => void): void;
14
- _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
15
- _final(callback: (error?: Error | null) => void): void;
16
- _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
17
- }
@@ -1,78 +0,0 @@
1
- import * as dgram from "node:dgram";
2
- import * as dnsPromises from "node:dns/promises";
3
- import * as stream from "node:stream";
4
- export class UpdStream extends stream.Writable {
5
- address;
6
- port;
7
- chunks;
8
- chunkSize;
9
- client;
10
- constructor(options) {
11
- super(options);
12
- this.address = options.address;
13
- this.port = options.port;
14
- this.chunks = [];
15
- this.chunkSize = 0;
16
- }
17
- _construct(callback) {
18
- dnsPromises
19
- .lookup(this.address, {
20
- verbatim: true,
21
- })
22
- .then((lookupAddress) => {
23
- const socketType = lookupAddress.family === 4 ? "udp4" : "udp6";
24
- this.client = dgram.createSocket(socketType);
25
- callback();
26
- })
27
- .catch((reason) => callback(reason));
28
- }
29
- _write(chunk, encoding, callback) {
30
- const client = this.client;
31
- if (client === undefined) {
32
- callback(new Error("called write while client has not been initialized."));
33
- return;
34
- }
35
- this.chunks.push(chunk);
36
- this.chunkSize = this.chunkSize + chunk.length;
37
- if (this.chunkSize > this.writableHighWaterMark) {
38
- client.send(Buffer.concat(this.chunks), this.port, this.address, (error) => {
39
- if (error !== null) {
40
- callback(error);
41
- return;
42
- }
43
- this.chunks = [];
44
- this.chunkSize = 0;
45
- callback();
46
- });
47
- }
48
- else {
49
- callback();
50
- }
51
- }
52
- _final(callback) {
53
- const client = this.client;
54
- if (client === undefined) {
55
- callback(new Error("called write while client has not been initialized."));
56
- return;
57
- }
58
- client.send(Buffer.concat(this.chunks), this.port, this.address, (error) => {
59
- if (error !== null) {
60
- callback(error);
61
- return;
62
- }
63
- this.chunks = [];
64
- this.chunkSize = 0;
65
- callback();
66
- });
67
- }
68
- _destroy(error, callback) {
69
- console.log("closing udp stream.");
70
- if (this.client !== undefined) {
71
- this.client.close(callback);
72
- }
73
- else {
74
- callback(error);
75
- }
76
- }
77
- }
78
- //# sourceMappingURL=updStream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updStream.js","sourceRoot":"","sources":["../../../src/output/updStream.ts"],"names":[],"mappings":"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"}