@nesgarbo/node-jt400 6.0.3 → 6.0.4

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 (152) hide show
  1. package/README.md +330 -369
  2. package/dist-cjs/index.d.cts +12 -5
  3. package/dist-cjs/index.js.map +1 -1
  4. package/dist-cjs/java/JT400.d.cts +3 -3
  5. package/dist-cjs/java/JT400.js.map +1 -1
  6. package/dist-cjs/java/index.js +4 -3
  7. package/dist-cjs/java/index.js.map +1 -1
  8. package/dist-cjs/lib/baseConnection.js +124 -166
  9. package/dist-cjs/lib/baseConnection.js.map +1 -1
  10. package/dist-cjs/lib/baseConnection.types.d.cts +11 -7
  11. package/dist-cjs/lib/baseConnection.types.js.map +1 -1
  12. package/dist-cjs/lib/connection.js +12 -25
  13. package/dist-cjs/lib/connection.js.map +1 -1
  14. package/dist-cjs/lib/connection.types.d.cts +39 -12
  15. package/dist-cjs/lib/connection.types.js.map +1 -1
  16. package/dist-cjs/lib/handleError.d.cts +1 -3
  17. package/dist-cjs/lib/handleError.js +3 -2
  18. package/dist-cjs/lib/handleError.js.map +1 -1
  19. package/dist-cjs/lib/ifs/read_stream.d.cts +6 -1
  20. package/dist-cjs/lib/ifs/read_stream.js +23 -32
  21. package/dist-cjs/lib/ifs/read_stream.js.map +1 -1
  22. package/dist-cjs/lib/ifs/write_stream.d.cts +7 -1
  23. package/dist-cjs/lib/ifs/write_stream.js +13 -24
  24. package/dist-cjs/lib/ifs/write_stream.js.map +1 -1
  25. package/dist-cjs/lib/inMemoryConnection.d.cts +1 -1
  26. package/dist-cjs/lib/inMemoryConnection.js +4 -4
  27. package/dist-cjs/lib/inMemoryConnection.js.map +1 -1
  28. package/dist-cjs/lib/insertList.js +12 -13
  29. package/dist-cjs/lib/insertList.js.map +1 -1
  30. package/dist-cjs/lib/jdbcstream.d.cts +16 -1
  31. package/dist-cjs/lib/jdbcstream.js +31 -36
  32. package/dist-cjs/lib/jdbcstream.js.map +1 -1
  33. package/dist-cjs/lib/jdbcwritestream.d.cts +4 -1
  34. package/dist-cjs/lib/jdbcwritestream.js +7 -20
  35. package/dist-cjs/lib/jdbcwritestream.js.map +1 -1
  36. package/dist-cjs/lib/logger.d.cts +4 -4
  37. package/dist-cjs/lib/logger.js.map +1 -1
  38. package/dist-cjs/lib/sqlutil.d.cts +4 -1
  39. package/dist-cjs/lib/sqlutil.js +1 -0
  40. package/dist-cjs/lib/sqlutil.js.map +1 -1
  41. package/dist-cjs/lib/streamTransformers.d.cts +2 -1
  42. package/dist-cjs/lib/streamTransformers.js +1 -1
  43. package/dist-cjs/lib/streamTransformers.js.map +1 -1
  44. package/dist-cjs/typings/jsonstream.d.js +1 -0
  45. package/dist-cjs/typings/jsonstream.d.js.map +1 -0
  46. package/dist-esm/index.d.ts +12 -5
  47. package/dist-esm/index.js.map +1 -1
  48. package/dist-esm/java/JT400.d.ts +3 -3
  49. package/dist-esm/java/index.js +3 -10
  50. package/dist-esm/java/index.js.map +1 -1
  51. package/dist-esm/lib/baseConnection.js +124 -166
  52. package/dist-esm/lib/baseConnection.js.map +1 -1
  53. package/dist-esm/lib/baseConnection.types.d.ts +11 -7
  54. package/dist-esm/lib/baseConnection.types.js.map +1 -1
  55. package/dist-esm/lib/connection.js +12 -25
  56. package/dist-esm/lib/connection.js.map +1 -1
  57. package/dist-esm/lib/connection.types.d.ts +39 -12
  58. package/dist-esm/lib/handleError.d.ts +1 -3
  59. package/dist-esm/lib/handleError.js +3 -2
  60. package/dist-esm/lib/handleError.js.map +1 -1
  61. package/dist-esm/lib/ifs/read_stream.d.ts +6 -1
  62. package/dist-esm/lib/ifs/read_stream.js +23 -22
  63. package/dist-esm/lib/ifs/read_stream.js.map +1 -1
  64. package/dist-esm/lib/ifs/write_stream.d.ts +7 -1
  65. package/dist-esm/lib/ifs/write_stream.js +13 -14
  66. package/dist-esm/lib/ifs/write_stream.js.map +1 -1
  67. package/dist-esm/lib/inMemoryConnection.d.ts +1 -1
  68. package/dist-esm/lib/inMemoryConnection.js +4 -4
  69. package/dist-esm/lib/inMemoryConnection.js.map +1 -1
  70. package/dist-esm/lib/insertList.js +12 -13
  71. package/dist-esm/lib/insertList.js.map +1 -1
  72. package/dist-esm/lib/jdbcstream.d.ts +16 -1
  73. package/dist-esm/lib/jdbcstream.js +31 -36
  74. package/dist-esm/lib/jdbcstream.js.map +1 -1
  75. package/dist-esm/lib/jdbcwritestream.d.ts +4 -1
  76. package/dist-esm/lib/jdbcwritestream.js +7 -10
  77. package/dist-esm/lib/jdbcwritestream.js.map +1 -1
  78. package/dist-esm/lib/logger.d.ts +4 -4
  79. package/dist-esm/lib/logger.js.map +1 -1
  80. package/dist-esm/lib/sqlutil.d.ts +4 -1
  81. package/dist-esm/lib/sqlutil.js +1 -0
  82. package/dist-esm/lib/sqlutil.js.map +1 -1
  83. package/dist-esm/lib/streamTransformers.d.ts +2 -1
  84. package/dist-esm/lib/streamTransformers.js +1 -1
  85. package/dist-esm/lib/streamTransformers.js.map +1 -1
  86. package/package.json +16 -21
  87. package/dist-cjs/integration-test/call-rpg-spec.d.cts +0 -2
  88. package/dist-cjs/integration-test/call-rpg-spec.js +0 -101
  89. package/dist-cjs/integration-test/call-rpg-spec.js.map +0 -1
  90. package/dist-cjs/integration-test/dataq-spec.d.cts +0 -2
  91. package/dist-cjs/integration-test/dataq-spec.js +0 -57
  92. package/dist-cjs/integration-test/dataq-spec.js.map +0 -1
  93. package/dist-cjs/integration-test/db.d.cts +0 -8
  94. package/dist-cjs/integration-test/db.js +0 -31
  95. package/dist-cjs/integration-test/db.js.map +0 -1
  96. package/dist-cjs/integration-test/db2-connect-spec.d.cts +0 -2
  97. package/dist-cjs/integration-test/db2-connect-spec.js +0 -42
  98. package/dist-cjs/integration-test/db2-connect-spec.js.map +0 -1
  99. package/dist-cjs/integration-test/db2-pool-spec.d.cts +0 -2
  100. package/dist-cjs/integration-test/db2-pool-spec.js +0 -213
  101. package/dist-cjs/integration-test/db2-pool-spec.js.map +0 -1
  102. package/dist-cjs/integration-test/ifs-spec.d.cts +0 -2
  103. package/dist-cjs/integration-test/ifs-spec.js +0 -140
  104. package/dist-cjs/integration-test/ifs-spec.js.map +0 -1
  105. package/dist-cjs/integration-test/msgf-spec.d.cts +0 -2
  106. package/dist-cjs/integration-test/msgf-spec.js +0 -34
  107. package/dist-cjs/integration-test/msgf-spec.js.map +0 -1
  108. package/dist-cjs/integration-test/msgq-spec.d.cts +0 -2
  109. package/dist-cjs/integration-test/msgq-spec.js +0 -45
  110. package/dist-cjs/integration-test/msgq-spec.js.map +0 -1
  111. package/dist-cjs/unit-test/hsql-spec.d.cts +0 -2
  112. package/dist-cjs/unit-test/hsql-spec.js +0 -488
  113. package/dist-cjs/unit-test/hsql-spec.js.map +0 -1
  114. package/dist-cjs/unit-test/sqlutil-spec.d.cts +0 -2
  115. package/dist-cjs/unit-test/sqlutil-spec.js +0 -43
  116. package/dist-cjs/unit-test/sqlutil-spec.js.map +0 -1
  117. package/dist-cjs/unit-test/streamTransformers-spec.d.cts +0 -2
  118. package/dist-cjs/unit-test/streamTransformers-spec.js +0 -121
  119. package/dist-cjs/unit-test/streamTransformers-spec.js.map +0 -1
  120. package/dist-esm/integration-test/call-rpg-spec.d.ts +0 -2
  121. package/dist-esm/integration-test/call-rpg-spec.js +0 -79
  122. package/dist-esm/integration-test/call-rpg-spec.js.map +0 -1
  123. package/dist-esm/integration-test/dataq-spec.d.ts +0 -2
  124. package/dist-esm/integration-test/dataq-spec.js +0 -35
  125. package/dist-esm/integration-test/dataq-spec.js.map +0 -1
  126. package/dist-esm/integration-test/db.d.ts +0 -8
  127. package/dist-esm/integration-test/db.js +0 -8
  128. package/dist-esm/integration-test/db.js.map +0 -1
  129. package/dist-esm/integration-test/db2-connect-spec.d.ts +0 -2
  130. package/dist-esm/integration-test/db2-connect-spec.js +0 -20
  131. package/dist-esm/integration-test/db2-connect-spec.js.map +0 -1
  132. package/dist-esm/integration-test/db2-pool-spec.d.ts +0 -2
  133. package/dist-esm/integration-test/db2-pool-spec.js +0 -197
  134. package/dist-esm/integration-test/db2-pool-spec.js.map +0 -1
  135. package/dist-esm/integration-test/ifs-spec.d.ts +0 -2
  136. package/dist-esm/integration-test/ifs-spec.js +0 -118
  137. package/dist-esm/integration-test/ifs-spec.js.map +0 -1
  138. package/dist-esm/integration-test/msgf-spec.d.ts +0 -2
  139. package/dist-esm/integration-test/msgf-spec.js +0 -12
  140. package/dist-esm/integration-test/msgf-spec.js.map +0 -1
  141. package/dist-esm/integration-test/msgq-spec.d.ts +0 -2
  142. package/dist-esm/integration-test/msgq-spec.js +0 -23
  143. package/dist-esm/integration-test/msgq-spec.js.map +0 -1
  144. package/dist-esm/unit-test/hsql-spec.d.ts +0 -2
  145. package/dist-esm/unit-test/hsql-spec.js +0 -466
  146. package/dist-esm/unit-test/hsql-spec.js.map +0 -1
  147. package/dist-esm/unit-test/sqlutil-spec.d.ts +0 -2
  148. package/dist-esm/unit-test/sqlutil-spec.js +0 -21
  149. package/dist-esm/unit-test/sqlutil-spec.js.map +0 -1
  150. package/dist-esm/unit-test/streamTransformers-spec.d.ts +0 -2
  151. package/dist-esm/unit-test/streamTransformers-spec.js +0 -99
  152. package/dist-esm/unit-test/streamTransformers-spec.js.map +0 -1
@@ -20,45 +20,40 @@ __export(jdbcstream_exports, {
20
20
  JdbcStream: () => JdbcStream
21
21
  });
22
22
  module.exports = __toCommonJS(jdbcstream_exports);
23
- var import_util = require("util");
24
23
  var import_stream = require("stream");
25
- function JdbcStream(opt) {
26
- import_stream.Readable.call(this, { objectMode: false });
27
- this._jdbcStream = opt.jdbcStream;
28
- this._jdbcStreamPromise = opt.jdbcStreamPromise;
29
- }
30
- (0, import_util.inherits)(JdbcStream, import_stream.Readable);
31
- function read(context) {
32
- if (context._closed) {
33
- context._jdbcStream.close().catch((err) => {
34
- if (err) {
35
- context.emit("error", err);
36
- }
37
- });
38
- context.push(null);
39
- } else {
40
- context._jdbcStream.read().then((res) => {
41
- context.push(res);
42
- }).catch((err) => {
43
- context.emit("error", err);
44
- });
24
+ class JdbcStream extends import_stream.Readable {
25
+ _jdbcStream;
26
+ _jdbcStreamPromise;
27
+ _closed = false;
28
+ constructor(opt) {
29
+ super({ objectMode: false });
30
+ this._jdbcStream = opt.jdbcStream;
31
+ this._jdbcStreamPromise = opt.jdbcStreamPromise;
45
32
  }
46
- }
47
- JdbcStream.prototype.close = function() {
48
- this._closed = true;
49
- };
50
- JdbcStream.prototype._read = function() {
51
- if (!this._jdbcStream) {
52
- this._jdbcStreamPromise.then((stream) => {
53
- this._jdbcStream = stream;
54
- read(this);
55
- }).catch((err) => {
56
- this.emit("error", err);
57
- });
58
- } else {
59
- read(this);
33
+ close() {
34
+ this._closed = true;
60
35
  }
61
- };
36
+ _readFromStream(stream) {
37
+ if (this._closed) {
38
+ stream.close().catch((err) => {
39
+ if (err) this.emit("error", err);
40
+ });
41
+ this.push(null);
42
+ } else {
43
+ stream.read().then((res) => this.push(res)).catch((err) => this.emit("error", err));
44
+ }
45
+ }
46
+ _read() {
47
+ if (!this._jdbcStream) {
48
+ this._jdbcStreamPromise.then((stream) => {
49
+ this._jdbcStream = stream;
50
+ this._readFromStream(stream);
51
+ }).catch((err) => this.emit("error", err));
52
+ } else {
53
+ this._readFromStream(this._jdbcStream);
54
+ }
55
+ }
56
+ }
62
57
  // Annotate the CommonJS export names for ESM import in node:
63
58
  0 && (module.exports = {
64
59
  JdbcStream
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ts-src/lib/jdbcstream.ts"],"sourcesContent":["import { inherits } from 'util'\nimport { Readable } from 'stream'\n\nexport function JdbcStream(opt) {\n Readable.call(this, { objectMode: false })\n this._jdbcStream = opt.jdbcStream\n this._jdbcStreamPromise = opt.jdbcStreamPromise\n}\n\ninherits(JdbcStream, Readable)\n\nfunction read(context) {\n if (context._closed) {\n context._jdbcStream.close().catch((err) => {\n if (err) {\n context.emit('error', err)\n }\n })\n context.push(null)\n } else {\n context._jdbcStream\n .read()\n .then((res) => {\n context.push(res)\n })\n .catch((err) => {\n context.emit('error', err)\n })\n }\n}\n\nJdbcStream.prototype.close = function () {\n this._closed = true\n}\n\nJdbcStream.prototype._read = function () {\n if (!this._jdbcStream) {\n this._jdbcStreamPromise\n .then((stream) => {\n this._jdbcStream = stream\n read(this)\n })\n .catch((err) => {\n this.emit('error', err)\n })\n } else {\n read(this)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,oBAAyB;AAElB,SAAS,WAAW,KAAK;AAC9B,yBAAS,KAAK,MAAM,EAAE,YAAY,MAAM,CAAC;AACzC,OAAK,cAAc,IAAI;AACvB,OAAK,qBAAqB,IAAI;AAChC;AAAA,IAEA,sBAAS,YAAY,sBAAQ;AAE7B,SAAS,KAAK,SAAS;AACrB,MAAI,QAAQ,SAAS;AACnB,YAAQ,YAAY,MAAM,EAAE,MAAM,CAAC,QAAQ;AACzC,UAAI,KAAK;AACP,gBAAQ,KAAK,SAAS,GAAG;AAAA,MAC3B;AAAA,IACF,CAAC;AACD,YAAQ,KAAK,IAAI;AAAA,EACnB,OAAO;AACL,YAAQ,YACL,KAAK,EACL,KAAK,CAAC,QAAQ;AACb,cAAQ,KAAK,GAAG;AAAA,IAClB,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,cAAQ,KAAK,SAAS,GAAG;AAAA,IAC3B,CAAC;AAAA,EACL;AACF;AAEA,WAAW,UAAU,QAAQ,WAAY;AACvC,OAAK,UAAU;AACjB;AAEA,WAAW,UAAU,QAAQ,WAAY;AACvC,MAAI,CAAC,KAAK,aAAa;AACrB,SAAK,mBACF,KAAK,CAAC,WAAW;AAChB,WAAK,cAAc;AACnB,WAAK,IAAI;AAAA,IACX,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,WAAK,KAAK,SAAS,GAAG;AAAA,IACxB,CAAC;AAAA,EACL,OAAO;AACL,SAAK,IAAI;AAAA,EACX;AACF;","names":[]}
1
+ {"version":3,"sources":["../../ts-src/lib/jdbcstream.ts"],"sourcesContent":["import { Readable } from 'stream'\nimport { ResultStream } from '../java/JT400.js'\n\ntype Opt = {\n jdbcStream?: ResultStream\n jdbcStreamPromise?: Promise<ResultStream>\n}\n\nexport class JdbcStream extends Readable {\n private _jdbcStream?: ResultStream\n private _jdbcStreamPromise?: Promise<ResultStream>\n private _closed = false\n\n constructor(opt: Opt) {\n super({ objectMode: false })\n this._jdbcStream = opt.jdbcStream\n this._jdbcStreamPromise = opt.jdbcStreamPromise\n }\n\n close() {\n this._closed = true\n }\n\n private _readFromStream(stream: ResultStream) {\n if (this._closed) {\n stream.close().catch((err) => {\n if (err) this.emit('error', err)\n })\n this.push(null)\n } else {\n stream\n .read()\n .then((res) => this.push(res))\n .catch((err) => this.emit('error', err))\n }\n }\n\n _read() {\n if (!this._jdbcStream) {\n this._jdbcStreamPromise!\n .then((stream) => {\n this._jdbcStream = stream\n this._readFromStream(stream)\n })\n .catch((err) => this.emit('error', err))\n } else {\n this._readFromStream(this._jdbcStream)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AAQlB,MAAM,mBAAmB,uBAAS;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EAElB,YAAY,KAAU;AACpB,UAAM,EAAE,YAAY,MAAM,CAAC;AAC3B,SAAK,cAAc,IAAI;AACvB,SAAK,qBAAqB,IAAI;AAAA,EAChC;AAAA,EAEA,QAAQ;AACN,SAAK,UAAU;AAAA,EACjB;AAAA,EAEQ,gBAAgB,QAAsB;AAC5C,QAAI,KAAK,SAAS;AAChB,aAAO,MAAM,EAAE,MAAM,CAAC,QAAQ;AAC5B,YAAI,IAAK,MAAK,KAAK,SAAS,GAAG;AAAA,MACjC,CAAC;AACD,WAAK,KAAK,IAAI;AAAA,IAChB,OAAO;AACL,aACG,KAAK,EACL,KAAK,CAAC,QAAQ,KAAK,KAAK,GAAG,CAAC,EAC5B,MAAM,CAAC,QAAQ,KAAK,KAAK,SAAS,GAAG,CAAC;AAAA,IAC3C;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,QAAI,CAAC,KAAK,aAAa;AACrB,WAAK,mBACF,KAAK,CAAC,WAAW;AAChB,aAAK,cAAc;AACnB,aAAK,gBAAgB,MAAM;AAAA,MAC7B,CAAC,EACA,MAAM,CAAC,QAAQ,KAAK,KAAK,SAAS,GAAG,CAAC;AAAA,IAC3C,OAAO;AACL,WAAK,gBAAgB,KAAK,WAAW;AAAA,IACvC;AAAA,EACF;AACF;","names":[]}
@@ -1,3 +1,6 @@
1
- declare function createJdbcWriteStream(batchUpdate: any, statement: any, bufferSize: any): any;
1
+ import { Writable } from 'stream';
2
+ import { BatchUpdate } from './baseConnection.types.cjs';
3
+
4
+ declare function createJdbcWriteStream(batchUpdate: BatchUpdate, statement: string, bufferSize?: number): Writable;
2
5
 
3
6
  export { createJdbcWriteStream };
@@ -1,8 +1,6 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all)
@@ -16,41 +14,30 @@ var __copyProps = (to, from, except, desc) => {
16
14
  }
17
15
  return to;
18
16
  };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
18
  var jdbcwritestream_exports = {};
29
19
  __export(jdbcwritestream_exports, {
30
20
  createJdbcWriteStream: () => createJdbcWriteStream
31
21
  });
32
22
  module.exports = __toCommonJS(jdbcwritestream_exports);
33
- var import_flushwritable = __toESM(require("flushwritable"), 1);
34
- function createJdbcWriteStream(batchUpdate, statement, bufferSize) {
35
- bufferSize = bufferSize || 100;
36
- const ws = new import_flushwritable.default({ objectMode: true });
23
+ var import_stream = require("stream");
24
+ function createJdbcWriteStream(batchUpdate, statement, bufferSize = 100) {
37
25
  let dataBuffer = [];
38
26
  function flush(done) {
39
27
  const d = dataBuffer;
40
28
  dataBuffer = [];
41
- batchUpdate(statement, d).then(() => {
42
- done();
43
- }).catch(done);
29
+ batchUpdate(statement, d).then(() => done()).catch(done);
44
30
  }
45
- ws._write = function(chunck, _, next) {
46
- dataBuffer.push(chunck);
31
+ const ws = new import_stream.Writable({ objectMode: true });
32
+ ws._write = function(chunk, _, next) {
33
+ dataBuffer.push(chunk);
47
34
  if (dataBuffer.length >= bufferSize) {
48
35
  flush(next);
49
36
  } else {
50
37
  next();
51
38
  }
52
39
  };
53
- ws._flush = function(done) {
40
+ ws._final = function(done) {
54
41
  if (dataBuffer.length) {
55
42
  flush(done);
56
43
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ts-src/lib/jdbcwritestream.ts"],"sourcesContent":["import FlushWritable from 'flushwritable'\n\nexport function createJdbcWriteStream(batchUpdate, statement, bufferSize) {\n bufferSize = bufferSize || 100\n const ws = new FlushWritable({ objectMode: true })\n let dataBuffer: any[] = []\n\n function flush(done) {\n const d = dataBuffer\n dataBuffer = []\n batchUpdate(statement, d)\n .then(() => {\n done()\n })\n .catch(done)\n }\n\n ws._write = function (chunck, _, next) {\n dataBuffer.push(chunck)\n if (dataBuffer.length >= bufferSize) {\n flush(next)\n } else {\n next()\n }\n }\n\n ws._flush = function (done) {\n if (dataBuffer.length) {\n flush(done)\n } else {\n done()\n }\n }\n\n return ws\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA0B;AAEnB,SAAS,sBAAsB,aAAa,WAAW,YAAY;AACxE,eAAa,cAAc;AAC3B,QAAM,KAAK,IAAI,qBAAAA,QAAc,EAAE,YAAY,KAAK,CAAC;AACjD,MAAI,aAAoB,CAAC;AAEzB,WAAS,MAAM,MAAM;AACnB,UAAM,IAAI;AACV,iBAAa,CAAC;AACd,gBAAY,WAAW,CAAC,EACrB,KAAK,MAAM;AACV,WAAK;AAAA,IACP,CAAC,EACA,MAAM,IAAI;AAAA,EACf;AAEA,KAAG,SAAS,SAAU,QAAQ,GAAG,MAAM;AACrC,eAAW,KAAK,MAAM;AACtB,QAAI,WAAW,UAAU,YAAY;AACnC,YAAM,IAAI;AAAA,IACZ,OAAO;AACL,WAAK;AAAA,IACP;AAAA,EACF;AAEA,KAAG,SAAS,SAAU,MAAM;AAC1B,QAAI,WAAW,QAAQ;AACrB,YAAM,IAAI;AAAA,IACZ,OAAO;AACL,WAAK;AAAA,IACP;AAAA,EACF;AAEA,SAAO;AACT;","names":["FlushWritable"]}
1
+ {"version":3,"sources":["../../ts-src/lib/jdbcwritestream.ts"],"sourcesContent":["import { Writable } from 'stream'\nimport { BatchUpdate, Param } from './baseConnection.types.js'\n\nexport function createJdbcWriteStream(\n batchUpdate: BatchUpdate,\n statement: string,\n bufferSize: number = 100,\n): Writable {\n let dataBuffer: Param[][] = []\n\n function flush(done: (err?: Error | null) => void) {\n const d = dataBuffer\n dataBuffer = []\n batchUpdate(statement, d)\n .then(() => done())\n .catch(done)\n }\n\n const ws = new Writable({ objectMode: true })\n\n ws._write = function (chunk: Param[], _: string, next: (err?: Error | null) => void) {\n dataBuffer.push(chunk)\n if (dataBuffer.length >= bufferSize) {\n flush(next)\n } else {\n next()\n }\n }\n\n ws._final = function (done: (err?: Error | null) => void) {\n if (dataBuffer.length) {\n flush(done)\n } else {\n done()\n }\n }\n\n return ws\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AAGlB,SAAS,sBACd,aACA,WACA,aAAqB,KACX;AACV,MAAI,aAAwB,CAAC;AAE7B,WAAS,MAAM,MAAoC;AACjD,UAAM,IAAI;AACV,iBAAa,CAAC;AACd,gBAAY,WAAW,CAAC,EACrB,KAAK,MAAM,KAAK,CAAC,EACjB,MAAM,IAAI;AAAA,EACf;AAEA,QAAM,KAAK,IAAI,uBAAS,EAAE,YAAY,KAAK,CAAC;AAE5C,KAAG,SAAS,SAAU,OAAgB,GAAW,MAAoC;AACnF,eAAW,KAAK,KAAK;AACrB,QAAI,WAAW,UAAU,YAAY;AACnC,YAAM,IAAI;AAAA,IACZ,OAAO;AACL,WAAK;AAAA,IACP;AAAA,EACF;AAEA,KAAG,SAAS,SAAU,MAAoC;AACxD,QAAI,WAAW,QAAQ;AACrB,YAAM,IAAI;AAAA,IACZ,OAAO;AACL,WAAK;AAAA,IACP;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -1,8 +1,8 @@
1
1
  interface Logger {
2
- debug: (message: any, ...args: any[]) => void;
3
- info: (message: any, ...args: any[]) => void;
4
- warn: (message: any, ...args: any[]) => void;
5
- error: (message: any, ...args: any[]) => void;
2
+ debug: (message: unknown, ...args: unknown[]) => void;
3
+ info: (message: unknown, ...args: unknown[]) => void;
4
+ warn: (message: unknown, ...args: unknown[]) => void;
5
+ error: (message: unknown, ...args: unknown[]) => void;
6
6
  }
7
7
  declare const createDefaultLogger: () => Logger;
8
8
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ts-src/lib/logger.ts"],"sourcesContent":["export interface Logger {\n debug: (message: any, ...args: any[]) => void\n info: (message: any, ...args: any[]) => void\n warn: (message: any, ...args: any[]) => void\n error: (message: any, ...args: any[]) => void\n}\n\nexport const createDefaultLogger = (): Logger => {\n // Default logger that does nothing\n return {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,sBAAsB,MAAc;AAE/C,SAAO;AAAA,IACL,OAAO,MAAM;AAAA,IAAC;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,OAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../ts-src/lib/logger.ts"],"sourcesContent":["export interface Logger {\n debug: (message: unknown, ...args: unknown[]) => void\n info: (message: unknown, ...args: unknown[]) => void\n warn: (message: unknown, ...args: unknown[]) => void\n error: (message: unknown, ...args: unknown[]) => void\n}\n\nexport const createDefaultLogger = (): Logger => {\n // Default logger that does nothing\n return {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,sBAAsB,MAAc;AAE/C,SAAO;AAAA,IACL,OAAO,MAAM;AAAA,IAAC;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,OAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
@@ -1,3 +1,6 @@
1
- declare function toInsertSql(tableName: string, records: any[]): string;
1
+ import { Param } from './baseConnection.types.cjs';
2
+ import 'stream';
3
+
4
+ declare function toInsertSql(tableName: string, records: Record<string, Param>[]): string;
2
5
 
3
6
  export { toInsertSql };
@@ -25,6 +25,7 @@ function recordToValues(record) {
25
25
  return "(" + str + ")";
26
26
  }
27
27
  function toInsertSql(tableName, records) {
28
+ if (!records.length) throw new Error("toInsertSql requires at least one record");
28
29
  const first = records[0];
29
30
  const keys = Object.keys(first);
30
31
  const sql = `INSERT INTO ${tableName} (${keys.join(", ")}) VALUES${records.map(recordToValues).join(", ")}`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ts-src/lib/sqlutil.ts"],"sourcesContent":["function recordToValues(record) {\n const str = Object.keys(record)\n .map(() => '?')\n .join(', ')\n return '(' + str + ')'\n}\n\n/**\n * Returns insert statement for records\n */\nexport function toInsertSql(tableName: string, records: any[]): string {\n const first = records[0]\n const keys = Object.keys(first)\n const sql = `INSERT INTO ${tableName} (${keys.join(', ')}) VALUES${records\n .map(recordToValues)\n .join(', ')}`\n return sql\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,eAAe,QAAQ;AAC9B,QAAM,MAAM,OAAO,KAAK,MAAM,EAC3B,IAAI,MAAM,GAAG,EACb,KAAK,IAAI;AACZ,SAAO,MAAM,MAAM;AACrB;AAKO,SAAS,YAAY,WAAmB,SAAwB;AACrE,QAAM,QAAQ,QAAQ,CAAC;AACvB,QAAM,OAAO,OAAO,KAAK,KAAK;AAC9B,QAAM,MAAM,eAAe,SAAS,KAAK,KAAK,KAAK,IAAI,CAAC,WAAW,QAChE,IAAI,cAAc,EAClB,KAAK,IAAI,CAAC;AACb,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../ts-src/lib/sqlutil.ts"],"sourcesContent":["import { Param } from './baseConnection.types.js'\n\nfunction recordToValues(record: Record<string, Param>): string {\n const str = Object.keys(record)\n .map(() => '?')\n .join(', ')\n return '(' + str + ')'\n}\n\nexport function toInsertSql(tableName: string, records: Record<string, Param>[]): string {\n if (!records.length) throw new Error('toInsertSql requires at least one record')\n const first = records[0]\n const keys = Object.keys(first)\n const sql = `INSERT INTO ${tableName} (${keys.join(', ')}) VALUES${records\n .map(recordToValues)\n .join(', ')}`\n return sql\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAS,eAAe,QAAuC;AAC7D,QAAM,MAAM,OAAO,KAAK,MAAM,EAC3B,IAAI,MAAM,GAAG,EACb,KAAK,IAAI;AACZ,SAAO,MAAM,MAAM;AACrB;AAEO,SAAS,YAAY,WAAmB,SAA0C;AACvF,MAAI,CAAC,QAAQ,OAAQ,OAAM,IAAI,MAAM,0CAA0C;AAC/E,QAAM,QAAQ,QAAQ,CAAC;AACvB,QAAM,OAAO,OAAO,KAAK,KAAK;AAC9B,QAAM,MAAM,eAAe,SAAS,KAAK,KAAK,KAAK,IAAI,CAAC,WAAW,QAChE,IAAI,cAAc,EAClB,KAAK,IAAI,CAAC;AACb,SAAO;AACT;","names":[]}
@@ -1,5 +1,6 @@
1
1
  import { Transform } from 'stream';
2
+ import { Metadata } from './baseConnection.types.cjs';
2
3
 
3
- declare function arrayToObject(metadata: any): Transform;
4
+ declare function arrayToObject(metadata: Metadata[]): Transform;
4
5
 
5
6
  export { arrayToObject };
@@ -43,7 +43,7 @@ function arrayToObject(metadata) {
43
43
  }
44
44
  callback(null, obj);
45
45
  } catch (err) {
46
- callback(err);
46
+ callback(err instanceof Error ? err : new Error(String(err)));
47
47
  }
48
48
  }
49
49
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ts-src/lib/streamTransformers.ts"],"sourcesContent":["import { Transform } from 'stream'\n\nexport function arrayToObject(metadata) {\n const columnNames = metadata.map((md) => md.name)\n\n const transformer = new Transform({\n objectMode: true,\n transform(chunk, _, callback) {\n try {\n if (!Array.isArray(chunk)) {\n return callback(new Error('Expected an array chunk as input'))\n }\n\n if (chunk.length !== columnNames.length) {\n return callback(\n new Error(\n `Array chunk length ${chunk.length} does not match columns length ${columnNames.length}`,\n ),\n )\n }\n\n const obj = {}\n for (let i = 0; i < columnNames.length; i++) {\n obj[columnNames[i]] = chunk[i]\n }\n\n callback(null, obj)\n } catch (err) {\n callback(err)\n }\n },\n })\n\n return transformer\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0B;AAEnB,SAAS,cAAc,UAAU;AACtC,QAAM,cAAc,SAAS,IAAI,CAAC,OAAO,GAAG,IAAI;AAEhD,QAAM,cAAc,IAAI,wBAAU;AAAA,IAChC,YAAY;AAAA,IACZ,UAAU,OAAO,GAAG,UAAU;AAC5B,UAAI;AACF,YAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,iBAAO,SAAS,IAAI,MAAM,kCAAkC,CAAC;AAAA,QAC/D;AAEA,YAAI,MAAM,WAAW,YAAY,QAAQ;AACvC,iBAAO;AAAA,YACL,IAAI;AAAA,cACF,sBAAsB,MAAM,MAAM,kCAAkC,YAAY,MAAM;AAAA,YACxF;AAAA,UACF;AAAA,QACF;AAEA,cAAM,MAAM,CAAC;AACb,iBAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,cAAI,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC;AAAA,QAC/B;AAEA,iBAAS,MAAM,GAAG;AAAA,MACpB,SAAS,KAAK;AACZ,iBAAS,GAAG;AAAA,MACd;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../ts-src/lib/streamTransformers.ts"],"sourcesContent":["import { Transform } from 'stream'\nimport { Metadata } from './baseConnection.types.js'\n\nexport function arrayToObject(metadata: Metadata[]) {\n const columnNames = metadata.map((md) => md.name)\n\n const transformer = new Transform({\n objectMode: true,\n transform(chunk, _, callback) {\n try {\n if (!Array.isArray(chunk)) {\n return callback(new Error('Expected an array chunk as input'))\n }\n\n if (chunk.length !== columnNames.length) {\n return callback(\n new Error(\n `Array chunk length ${chunk.length} does not match columns length ${columnNames.length}`,\n ),\n )\n }\n\n const obj = {}\n for (let i = 0; i < columnNames.length; i++) {\n obj[columnNames[i]] = chunk[i]\n }\n\n callback(null, obj)\n } catch (err) {\n callback(err instanceof Error ? err : new Error(String(err)))\n }\n },\n })\n\n return transformer\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0B;AAGnB,SAAS,cAAc,UAAsB;AAClD,QAAM,cAAc,SAAS,IAAI,CAAC,OAAO,GAAG,IAAI;AAEhD,QAAM,cAAc,IAAI,wBAAU;AAAA,IAChC,YAAY;AAAA,IACZ,UAAU,OAAO,GAAG,UAAU;AAC5B,UAAI;AACF,YAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,iBAAO,SAAS,IAAI,MAAM,kCAAkC,CAAC;AAAA,QAC/D;AAEA,YAAI,MAAM,WAAW,YAAY,QAAQ;AACvC,iBAAO;AAAA,YACL,IAAI;AAAA,cACF,sBAAsB,MAAM,MAAM,kCAAkC,YAAY,MAAM;AAAA,YACxF;AAAA,UACF;AAAA,QACF;AAEA,cAAM,MAAM,CAAC;AACb,iBAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,cAAI,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC;AAAA,QAC/B;AAEA,iBAAS,MAAM,GAAG;AAAA,MACpB,SAAS,KAAK;AACZ,iBAAS,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC;AAAA,MAC9D;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=jsonstream.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,18 +1,25 @@
1
1
  import { Connection } from './lib/connection.types.js';
2
- export { AS400Message, DataQOptions, DataQReadOptions, JustNameMessageQ, JustPathMessageQ, KeyedDataQ, MessageFileHandler, MessageFileHandlerOptions, MessageFileReadOptions, MessageQ, MessageQOptions, MessageQReadOptions, PgmParamStructType, PgmParamType, PgmParamType1, PgmParamType2, ProgramDefinitionOptions, TransactionFun } from './lib/connection.types.js';
2
+ export { AS400Message, ColumnInfo, DataQOptions, DataQReadOptions, DataQReadResult, GetTablesParams, JustNameMessageQ, JustPathMessageQ, KeyedDataQ, MessageFileHandler, MessageFileHandlerOptions, MessageFileReadOptions, MessageQ, MessageQMessage, MessageQOptions, MessageQReadOptions, PgmParamStructType, PgmParamType, PgmParamType1, PgmParamType2, PrimaryKeyInfo, ProgramDefinitionOptions, TransactionFun } from './lib/connection.types.js';
3
3
  import { InMemoryConnection } from './lib/inMemoryConnection.js';
4
4
  import { Logger } from './lib/logger.js';
5
- export { BLOB, BaseConnection, BatchUpdate, CLOB, Close, CreateReadStream, CreateWriteStream, Execute, InsertAndGetId, InsertList, Metadata, Param, Query, QueryOptions, Statement, Update, WriteStreamOptions } from './lib/baseConnection.types.js';
5
+ export { BLOB, BaseConnection, BatchUpdate, CLOB, Close, CreateReadStream, CreateWriteStream, CursorOptions, Execute, InsertAndGetId, InsertList, Metadata, Param, Query, QueryOptions, Statement, StreamOptions, Update, WriteStreamOptions } from './lib/baseConnection.types.js';
6
6
  export { Ifs, IfsFileMetadata } from './lib/ifs/types.js';
7
7
  export { Readable, Writable } from 'stream';
8
8
  import './java/index.js';
9
9
  import './java/JT400.js';
10
10
 
11
+ interface JT400Config {
12
+ host?: string;
13
+ user?: string;
14
+ password?: string;
15
+ naming?: string;
16
+ [key: string]: unknown;
17
+ }
11
18
  type JT400Options = {
12
19
  logger?: Logger;
13
20
  };
14
- declare function pool(config?: {}, options?: JT400Options): Connection;
15
- declare function connect(config?: {}, options?: JT400Options): Promise<Connection>;
21
+ declare function pool(config?: JT400Config, options?: JT400Options): Connection;
22
+ declare function connect(config?: JT400Config, options?: JT400Options): Promise<Connection>;
16
23
  declare function useInMemoryDb(options?: JT400Options): InMemoryConnection;
17
24
 
18
- export { Connection, InMemoryConnection, type JT400Options, Logger, connect, pool, useInMemoryDb };
25
+ export { Connection, InMemoryConnection, type JT400Config, type JT400Options, Logger, connect, pool, useInMemoryDb };
@@ -1 +1 @@
1
- {"version":3,"sources":["../ts-src/index.ts"],"sourcesContent":["import { initJavaBridge } from './java/index.js'\nimport { createConnection } from './lib/connection.js'\nimport { Connection } from './lib/connection.types.js'\nimport {\n createInMemoryConnection,\n type InMemoryConnection,\n} from './lib/inMemoryConnection.js'\nimport { createInsertListInOneStatment } from './lib/insertList.js'\nimport { createDefaultLogger, type Logger } from './lib/logger.js'\n\nexport * from './lib/baseConnection.types.js'\nexport * from './lib/connection.types.js'\nexport * from './lib/ifs/types.js'\nexport type { InMemoryConnection, Logger }\n\nconst defaultConfig = {\n host: process.env.AS400_HOST,\n user: process.env.AS400_USERNAME,\n password: process.env.AS400_PASSWORD,\n naming: 'system',\n}\n\nlet javaBridge: ReturnType<typeof initJavaBridge> | null = null\n\nfunction getJavaBridge() {\n if (!javaBridge) {\n javaBridge = initJavaBridge()\n }\n return javaBridge\n}\nexport type JT400Options = {\n logger?: Logger\n}\nexport function pool(config = {}, options: JT400Options = {}): Connection {\n const bridge = getJavaBridge()\n const javaCon = bridge.createPool(\n JSON.stringify({ ...defaultConfig, ...config }),\n )\n return createConnection({\n connection: javaCon,\n insertListFun: createInsertListInOneStatment,\n logger: options.logger || createDefaultLogger(),\n inMemory: false,\n })\n}\nexport async function connect(\n config = {},\n options: JT400Options = {},\n): Promise<Connection> {\n const bridge = getJavaBridge()\n const javaCon = await bridge.createConnection(\n JSON.stringify({ ...defaultConfig, ...config }),\n )\n return createConnection({\n connection: javaCon,\n insertListFun: createInsertListInOneStatment,\n logger: options.logger || createDefaultLogger(),\n inMemory: false,\n })\n}\n\nexport function useInMemoryDb(options: JT400Options = {}): InMemoryConnection {\n return createInMemoryConnection(\n getJavaBridge(),\n options.logger || createDefaultLogger(),\n )\n}\n"],"mappings":"AAAA,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AAEjC;AAAA,EACE;AAAA,OAEK;AACP,SAAS,qCAAqC;AAC9C,SAAS,2BAAwC;AAEjD,cAAc;AACd,cAAc;AACd,cAAc;AAGd,MAAM,gBAAgB;AAAA,EACpB,MAAM,QAAQ,IAAI;AAAA,EAClB,MAAM,QAAQ,IAAI;AAAA,EAClB,UAAU,QAAQ,IAAI;AAAA,EACtB,QAAQ;AACV;AAEA,IAAI,aAAuD;AAE3D,SAAS,gBAAgB;AACvB,MAAI,CAAC,YAAY;AACf,iBAAa,eAAe;AAAA,EAC9B;AACA,SAAO;AACT;AAIO,SAAS,KAAK,SAAS,CAAC,GAAG,UAAwB,CAAC,GAAe;AACxE,QAAM,SAAS,cAAc;AAC7B,QAAM,UAAU,OAAO;AAAA,IACrB,KAAK,UAAU,EAAE,GAAG,eAAe,GAAG,OAAO,CAAC;AAAA,EAChD;AACA,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,QAAQ,QAAQ,UAAU,oBAAoB;AAAA,IAC9C,UAAU;AAAA,EACZ,CAAC;AACH;AACA,eAAsB,QACpB,SAAS,CAAC,GACV,UAAwB,CAAC,GACJ;AACrB,QAAM,SAAS,cAAc;AAC7B,QAAM,UAAU,MAAM,OAAO;AAAA,IAC3B,KAAK,UAAU,EAAE,GAAG,eAAe,GAAG,OAAO,CAAC;AAAA,EAChD;AACA,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,QAAQ,QAAQ,UAAU,oBAAoB;AAAA,IAC9C,UAAU;AAAA,EACZ,CAAC;AACH;AAEO,SAAS,cAAc,UAAwB,CAAC,GAAuB;AAC5E,SAAO;AAAA,IACL,cAAc;AAAA,IACd,QAAQ,UAAU,oBAAoB;AAAA,EACxC;AACF;","names":[]}
1
+ {"version":3,"sources":["../ts-src/index.ts"],"sourcesContent":["import { initJavaBridge } from './java/index.js'\nimport { createConnection } from './lib/connection.js'\nimport { Connection } from './lib/connection.types.js'\nimport {\n createInMemoryConnection,\n type InMemoryConnection,\n} from './lib/inMemoryConnection.js'\nimport { createInsertListInOneStatment } from './lib/insertList.js'\nimport { createDefaultLogger, type Logger } from './lib/logger.js'\n\nexport * from './lib/baseConnection.types.js'\nexport * from './lib/connection.types.js'\nexport * from './lib/ifs/types.js'\nexport type { InMemoryConnection, Logger }\n\nconst defaultConfig = {\n host: process.env.AS400_HOST,\n user: process.env.AS400_USERNAME,\n password: process.env.AS400_PASSWORD,\n naming: 'system',\n}\n\nlet javaBridge: ReturnType<typeof initJavaBridge> | null = null\n\nfunction getJavaBridge() {\n if (!javaBridge) {\n javaBridge = initJavaBridge()\n }\n return javaBridge\n}\nexport interface JT400Config {\n host?: string\n user?: string\n password?: string\n naming?: string\n [key: string]: unknown\n}\n\nexport type JT400Options = {\n logger?: Logger\n}\nexport function pool(config: JT400Config = {}, options: JT400Options = {}): Connection {\n const bridge = getJavaBridge()\n const javaCon = bridge.createPool(\n JSON.stringify({ ...defaultConfig, ...config }),\n )\n return createConnection({\n connection: javaCon,\n insertListFun: createInsertListInOneStatment,\n logger: options.logger || createDefaultLogger(),\n inMemory: false,\n })\n}\nexport async function connect(\n config: JT400Config = {},\n options: JT400Options = {},\n): Promise<Connection> {\n const bridge = getJavaBridge()\n const javaCon = await bridge.createConnection(\n JSON.stringify({ ...defaultConfig, ...config }),\n )\n return createConnection({\n connection: javaCon,\n insertListFun: createInsertListInOneStatment,\n logger: options.logger || createDefaultLogger(),\n inMemory: false,\n })\n}\n\nexport function useInMemoryDb(options: JT400Options = {}): InMemoryConnection {\n return createInMemoryConnection(\n getJavaBridge(),\n options.logger || createDefaultLogger(),\n )\n}\n"],"mappings":"AAAA,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AAEjC;AAAA,EACE;AAAA,OAEK;AACP,SAAS,qCAAqC;AAC9C,SAAS,2BAAwC;AAEjD,cAAc;AACd,cAAc;AACd,cAAc;AAGd,MAAM,gBAAgB;AAAA,EACpB,MAAM,QAAQ,IAAI;AAAA,EAClB,MAAM,QAAQ,IAAI;AAAA,EAClB,UAAU,QAAQ,IAAI;AAAA,EACtB,QAAQ;AACV;AAEA,IAAI,aAAuD;AAE3D,SAAS,gBAAgB;AACvB,MAAI,CAAC,YAAY;AACf,iBAAa,eAAe;AAAA,EAC9B;AACA,SAAO;AACT;AAYO,SAAS,KAAK,SAAsB,CAAC,GAAG,UAAwB,CAAC,GAAe;AACrF,QAAM,SAAS,cAAc;AAC7B,QAAM,UAAU,OAAO;AAAA,IACrB,KAAK,UAAU,EAAE,GAAG,eAAe,GAAG,OAAO,CAAC;AAAA,EAChD;AACA,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,QAAQ,QAAQ,UAAU,oBAAoB;AAAA,IAC9C,UAAU;AAAA,EACZ,CAAC;AACH;AACA,eAAsB,QACpB,SAAsB,CAAC,GACvB,UAAwB,CAAC,GACJ;AACrB,QAAM,SAAS,cAAc;AAC7B,QAAM,UAAU,MAAM,OAAO;AAAA,IAC3B,KAAK,UAAU,EAAE,GAAG,eAAe,GAAG,OAAO,CAAC;AAAA,EAChD;AACA,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,QAAQ,QAAQ,UAAU,oBAAoB;AAAA,IAC9C,UAAU;AAAA,EACZ,CAAC;AACH;AAEO,SAAS,cAAc,UAAwB,CAAC,GAAuB;AAC5E,SAAO;AAAA,IACL,cAAc;AAAA,IACd,QAAQ,UAAU,oBAAoB;AAAA,EACxC;AACF;","names":[]}
@@ -21,8 +21,8 @@ interface JDBCConnection {
21
21
  query: (sql: string, jsonParams: string, trim: boolean) => Promise<string>;
22
22
  queryAsStream: (sql: string, jsonParams: string, bufferSize: number) => Promise<ResultStream>;
23
23
  execute: (sql: string, jsonParams: string) => Promise<StatementWrap>;
24
- getTablesAsStreamSync: (catalog: string, schema: string, tableName: string) => TablesReadStream;
25
- getColumns: (catalog: string, schema: string, tableNamePattern: string, columnNamePattern: string) => Promise<string>;
24
+ getTablesAsStreamSync: (catalog: string | undefined, schema: string, tableName: string) => TablesReadStream;
25
+ getColumns: (catalog: string | undefined, schema: string, tableNamePattern: string, columnNamePattern: string) => Promise<string>;
26
26
  update: (sql: string, jsonParams: string) => Promise<number>;
27
27
  batchUpdate: (sql: string, jsonParams: string) => Promise<number[]>;
28
28
  insertAndGetId: (sql: string, jsonParams: string) => Promise<number>;
@@ -71,7 +71,7 @@ interface IfsWriteStream {
71
71
  }
72
72
  interface JT400 extends JDBCConnection {
73
73
  createTransactionSync: () => Transaction;
74
- getPrimaryKeys: (catalog: string, schema: string, table: string) => Promise<string>;
74
+ getPrimaryKeys: (catalog: string | undefined, schema: string | undefined, table: string) => Promise<string>;
75
75
  pgmSync: (programName: string, paramsSchemaJsonStr: string, libraryName?: string, ccsid?: number) => Pgm;
76
76
  openMessageQ: (name: string, isPath: boolean) => Promise<MessageQ>;
77
77
  createKeyedDataQSync: (name: string) => KeyedDataQ;
@@ -1,13 +1,8 @@
1
- import path from "node:path";
2
- import { fileURLToPath } from "node:url";
3
- var getFilename = () => fileURLToPath(import.meta.url);
4
- var getDirname = () => path.dirname(getFilename());
5
- var __dirname = /* @__PURE__ */ getDirname();
6
- var __filename = /* @__PURE__ */ getFilename();
7
1
  import java from "java-bridge";
8
- import { join as joinPath } from "path";
2
+ import { dirname, join as joinPath } from "path";
3
+ import { fileURLToPath } from "url";
9
4
  const initJavaBridge = () => {
10
- const JAR_DIR = joinPath(__dirname, "/../../java/lib");
5
+ const JAR_DIR = joinPath(dirname(fileURLToPath(import.meta.url)), "/../../java/lib");
11
6
  java.appendClasspath([
12
7
  joinPath(JAR_DIR, "jt400.jar"),
13
8
  joinPath(JAR_DIR, "jt400wrap.jar"),
@@ -25,9 +20,7 @@ const initJavaBridge = () => {
25
20
  const HsqlClientClass = java.importClass("nodejt400.HsqlClient");
26
21
  return {
27
22
  createConnection: (config) => JT400Class.createConnection(config),
28
- // async
29
23
  createPool: (config) => JT400Class.createPoolSync(config),
30
- // sync si tu wrapper lo expone
31
24
  createInMemoryConnection: () => {
32
25
  const instance = new HsqlClientClass();
33
26
  return instance;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/tsup/assets/esm_shims.js","../../ts-src/java/index.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","// src/common/libs/jt400/javaBridge.ts\nimport java from 'java-bridge'\nimport { join as joinPath } from 'path'\nimport type { JT400 } from './JT400.js'\n\nexport interface JavaBridge {\n createConnection: (config: string) => Promise<JT400>\n createPool: (config: string) => JT400\n createInMemoryConnection: () => JT400\n}\n\nexport const initJavaBridge = (): JavaBridge => {\n const JAR_DIR = joinPath(__dirname, '/../../java/lib')\n\n java.appendClasspath([\n joinPath(JAR_DIR, 'jt400.jar'),\n joinPath(JAR_DIR, 'jt400wrap.jar'),\n joinPath(JAR_DIR, 'json-simple-1.1.1.jar'),\n joinPath(JAR_DIR, 'hsqldb.jar'),\n ])\n\n // Opciones JVM (esto te funcionó)\n java.ensureJvm({\n opts: [\n '-Xrs',\n '-Dcom.ibm.as400.access.AS400.guiAvailable=false',\n '--enable-native-access=ALL-UNNAMED',\n ],\n })\n\n // Clases del wrapper Java\n const JT400Class = java.importClass('nodejt400.JT400')\n const HsqlClientClass = java.importClass('nodejt400.HsqlClient')\n\n return {\n createConnection: (config: string) =>\n JT400Class.createConnection(config) as Promise<JT400>, // async\n createPool: (config: string) => JT400Class.createPoolSync(config) as JT400, // sync si tu wrapper lo expone\n createInMemoryConnection: () => {\n // En java-bridge se instancia con `new`\n const instance = new HsqlClientClass()\n return instance as unknown as JT400\n },\n }\n}\n\n// export const initNewJavaBridge = (): JavaBridge => {\n// ensureJvm({\n// // This option should not have any effect when not using electron or not having the application packaged.\n// // https://github.com/MarkusJx/node-java-bridge?tab=readme-ov-file#notes-on-electron\n// isPackagedElectron: true,\n\n// opts: [\n// '-Xrs',\n// '-Dcom.ibm.as400.access.AS400.guiAvailable=false', // Removes gui prompts\n// ],\n// })\n// appendClasspath(\n// ['jt400.jar', 'jt400wrap.jar', 'json-simple-1.1.1.jar', 'hsqldb.jar'].map(\n// (jar) => joinPath(currentDir, '/../../java/lib/', jar)\n// )\n// )\n\n// const JT400Class = importClass('nodejt400.JT400')\n// return {\n// createConnection: (config: string) => JT400Class.createConnection(config),\n// createInMemoryConnection: () => {\n// const HsqlClientClass = importClass('nodejt400.HsqlClient')\n// const instance: any = new HsqlClientClass()\n// return instance\n// },\n// createPool: (config: string) => JT400Class.createPoolSync(config),\n// bufferToJavaType: (buffer: Buffer) => buffer,\n// javaTypeToBuffer: (javaType: any) => javaType,\n// }\n// }\n"],"mappings":"AACA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAE9B,IAAM,cAAc,MAAM,cAAc,YAAY,GAAG;AACvD,IAAM,aAAa,MAAM,KAAK,QAAQ,YAAY,CAAC;AAE5C,IAAM,YAA4B,2BAAW;AAC7C,IAAM,aAA6B,4BAAY;ACPtD,OAAO,UAAU;AACjB,SAAS,QAAQ,gBAAgB;AAS1B,MAAM,iBAAiB,MAAkB;AAC9C,QAAM,UAAU,SAAS,WAAW,iBAAiB;AAErD,OAAK,gBAAgB;AAAA,IACnB,SAAS,SAAS,WAAW;AAAA,IAC7B,SAAS,SAAS,eAAe;AAAA,IACjC,SAAS,SAAS,uBAAuB;AAAA,IACzC,SAAS,SAAS,YAAY;AAAA,EAChC,CAAC;AAGD,OAAK,UAAU;AAAA,IACb,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAGD,QAAM,aAAa,KAAK,YAAY,iBAAiB;AACrD,QAAM,kBAAkB,KAAK,YAAY,sBAAsB;AAE/D,SAAO;AAAA,IACL,kBAAkB,CAAC,WACjB,WAAW,iBAAiB,MAAM;AAAA;AAAA,IACpC,YAAY,CAAC,WAAmB,WAAW,eAAe,MAAM;AAAA;AAAA,IAChE,0BAA0B,MAAM;AAE9B,YAAM,WAAW,IAAI,gBAAgB;AACrC,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../ts-src/java/index.ts"],"sourcesContent":["import java from 'java-bridge'\nimport { dirname, join as joinPath } from 'path'\nimport { fileURLToPath } from 'url'\nimport type { JT400 } from './JT400.js'\n\nexport interface JavaBridge {\n createConnection: (config: string) => Promise<JT400>\n createPool: (config: string) => JT400\n createInMemoryConnection: () => JT400\n}\n\nexport const initJavaBridge = (): JavaBridge => {\n const JAR_DIR = joinPath(dirname(fileURLToPath(import.meta.url)), '/../../java/lib')\n\n java.appendClasspath([\n joinPath(JAR_DIR, 'jt400.jar'),\n joinPath(JAR_DIR, 'jt400wrap.jar'),\n joinPath(JAR_DIR, 'json-simple-1.1.1.jar'),\n joinPath(JAR_DIR, 'hsqldb.jar'),\n ])\n\n java.ensureJvm({\n opts: [\n '-Xrs',\n '-Dcom.ibm.as400.access.AS400.guiAvailable=false',\n '--enable-native-access=ALL-UNNAMED',\n ],\n })\n\n const JT400Class = java.importClass('nodejt400.JT400')\n const HsqlClientClass = java.importClass('nodejt400.HsqlClient')\n\n return {\n createConnection: (config: string) =>\n JT400Class.createConnection(config) as Promise<JT400>,\n createPool: (config: string) => JT400Class.createPoolSync(config) as JT400,\n createInMemoryConnection: () => {\n const instance = new HsqlClientClass()\n return instance as unknown as JT400\n },\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAS,SAAS,QAAQ,gBAAgB;AAC1C,SAAS,qBAAqB;AASvB,MAAM,iBAAiB,MAAkB;AAC9C,QAAM,UAAU,SAAS,QAAQ,cAAc,YAAY,GAAG,CAAC,GAAG,iBAAiB;AAEnF,OAAK,gBAAgB;AAAA,IACnB,SAAS,SAAS,WAAW;AAAA,IAC7B,SAAS,SAAS,eAAe;AAAA,IACjC,SAAS,SAAS,uBAAuB;AAAA,IACzC,SAAS,SAAS,YAAY;AAAA,EAChC,CAAC;AAED,OAAK,UAAU;AAAA,IACb,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,aAAa,KAAK,YAAY,iBAAiB;AACrD,QAAM,kBAAkB,KAAK,YAAY,sBAAsB;AAE/D,SAAO;AAAA,IACL,kBAAkB,CAAC,WACjB,WAAW,iBAAiB,MAAM;AAAA,IACpC,YAAY,CAAC,WAAmB,WAAW,eAAe,MAAM;AAAA,IAChE,0BAA0B,MAAM;AAC9B,YAAM,WAAW,IAAI,gBAAgB;AACrC,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}