@duckdb/node-api 1.1.3-alpha.9 → 1.2.0-alpha.14

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 (54) hide show
  1. package/README.md +414 -13
  2. package/lib/DuckDBConnection.d.ts +10 -10
  3. package/lib/DuckDBDataChunk.d.ts +14 -2
  4. package/lib/DuckDBDataChunk.js +79 -18
  5. package/lib/DuckDBLogicalType.d.ts +1 -1
  6. package/lib/DuckDBLogicalType.js +1 -1
  7. package/lib/DuckDBPreparedStatement.d.ts +2 -1
  8. package/lib/DuckDBPreparedStatement.js +9 -1
  9. package/lib/DuckDBResult.d.ts +8 -0
  10. package/lib/DuckDBResult.js +52 -35
  11. package/lib/DuckDBResultReader.d.ts +8 -0
  12. package/lib/DuckDBResultReader.js +34 -36
  13. package/lib/DuckDBType.d.ts +10 -0
  14. package/lib/DuckDBType.js +33 -0
  15. package/lib/DuckDBValueConverter.d.ts +5 -0
  16. package/lib/DuckDBValueConverter.js +2 -0
  17. package/lib/DuckDBValueToJsonConverter.d.ts +10 -0
  18. package/lib/DuckDBValueToJsonConverter.js +101 -0
  19. package/lib/DuckDBVector.js +2 -2
  20. package/lib/conversion/dateTimeStringConversion.d.ts +10 -6
  21. package/lib/conversion/dateTimeStringConversion.js +64 -16
  22. package/lib/convertColumnsFromChunks.d.ts +3 -0
  23. package/lib/convertColumnsFromChunks.js +16 -0
  24. package/lib/convertColumnsObjectFromChunks.d.ts +3 -0
  25. package/lib/convertColumnsObjectFromChunks.js +19 -0
  26. package/lib/convertRowObjectsFromChunks.d.ts +3 -0
  27. package/lib/convertRowObjectsFromChunks.js +17 -0
  28. package/lib/convertRowsFromChunks.d.ts +3 -0
  29. package/lib/convertRowsFromChunks.js +13 -0
  30. package/lib/createValue.js +10 -1
  31. package/lib/getColumnsFromChunks.d.ts +3 -0
  32. package/lib/getColumnsFromChunks.js +16 -0
  33. package/lib/getColumnsObjectFromChunks.d.ts +3 -0
  34. package/lib/getColumnsObjectFromChunks.js +19 -0
  35. package/lib/getRowObjectsFromChunks.d.ts +3 -0
  36. package/lib/getRowObjectsFromChunks.js +17 -0
  37. package/lib/getRowsFromChunks.d.ts +3 -0
  38. package/lib/getRowsFromChunks.js +10 -0
  39. package/lib/index.d.ts +2 -0
  40. package/lib/index.js +2 -0
  41. package/lib/typeForValue.js +6 -1
  42. package/lib/values/DuckDBTimeTZValue.d.ts +10 -10
  43. package/lib/values/DuckDBTimeTZValue.js +16 -15
  44. package/lib/values/DuckDBTimestampMillisecondsValue.d.ts +8 -4
  45. package/lib/values/DuckDBTimestampMillisecondsValue.js +15 -6
  46. package/lib/values/DuckDBTimestampNanosecondsValue.d.ts +8 -4
  47. package/lib/values/DuckDBTimestampNanosecondsValue.js +15 -6
  48. package/lib/values/DuckDBTimestampSecondsValue.d.ts +5 -1
  49. package/lib/values/DuckDBTimestampSecondsValue.js +9 -0
  50. package/lib/values/DuckDBTimestampTZValue.d.ts +2 -0
  51. package/lib/values/DuckDBTimestampTZValue.js +5 -2
  52. package/lib/values/DuckDBTimestampValue.d.ts +1 -0
  53. package/lib/values/DuckDBTimestampValue.js +4 -1
  54. package/package.json +3 -2
@@ -1,22 +1,31 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.DuckDBTimestampMillisecondsValue = void 0;
4
7
  exports.timestampMillisValue = timestampMillisValue;
8
+ const node_bindings_1 = __importDefault(require("@duckdb/node-bindings"));
5
9
  const dateTimeStringConversion_1 = require("../conversion/dateTimeStringConversion");
6
10
  const DuckDBTimestampSecondsValue_1 = require("./DuckDBTimestampSecondsValue");
7
11
  class DuckDBTimestampMillisecondsValue {
8
- milliseconds;
9
- constructor(milliseconds) {
10
- this.milliseconds = milliseconds;
12
+ millis;
13
+ constructor(millis) {
14
+ this.millis = millis;
15
+ }
16
+ get isFinite() {
17
+ return node_bindings_1.default.is_finite_timestamp_ms(this);
11
18
  }
12
19
  toString() {
13
- return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromMilliseconds)(this.milliseconds);
20
+ return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromMilliseconds)(this.millis);
14
21
  }
15
22
  static Epoch = new DuckDBTimestampMillisecondsValue(0n);
16
23
  static Max = new DuckDBTimestampMillisecondsValue((2n ** 63n - 2n) / 1000n);
17
24
  static Min = new DuckDBTimestampMillisecondsValue(DuckDBTimestampSecondsValue_1.DuckDBTimestampSecondsValue.Min.seconds * 1000n);
25
+ static PosInf = new DuckDBTimestampMillisecondsValue(2n ** 63n - 1n);
26
+ static NegInf = new DuckDBTimestampMillisecondsValue(-(2n ** 63n - 1n));
18
27
  }
19
28
  exports.DuckDBTimestampMillisecondsValue = DuckDBTimestampMillisecondsValue;
20
- function timestampMillisValue(milliseconds) {
21
- return new DuckDBTimestampMillisecondsValue(milliseconds);
29
+ function timestampMillisValue(millis) {
30
+ return new DuckDBTimestampMillisecondsValue(millis);
22
31
  }
@@ -1,9 +1,13 @@
1
- export declare class DuckDBTimestampNanosecondsValue {
2
- readonly nanoseconds: bigint;
3
- constructor(nanoseconds: bigint);
1
+ import { TimestampNanoseconds } from '@duckdb/node-bindings';
2
+ export declare class DuckDBTimestampNanosecondsValue implements TimestampNanoseconds {
3
+ readonly nanos: bigint;
4
+ constructor(nanos: bigint);
5
+ get isFinite(): boolean;
4
6
  toString(): string;
5
7
  static readonly Epoch: DuckDBTimestampNanosecondsValue;
6
8
  static readonly Max: DuckDBTimestampNanosecondsValue;
7
9
  static readonly Min: DuckDBTimestampNanosecondsValue;
10
+ static readonly PosInf: DuckDBTimestampNanosecondsValue;
11
+ static readonly NegInf: DuckDBTimestampNanosecondsValue;
8
12
  }
9
- export declare function timestampNanosValue(nanoseconds: bigint): DuckDBTimestampNanosecondsValue;
13
+ export declare function timestampNanosValue(nanos: bigint): DuckDBTimestampNanosecondsValue;
@@ -1,21 +1,30 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.DuckDBTimestampNanosecondsValue = void 0;
4
7
  exports.timestampNanosValue = timestampNanosValue;
8
+ const node_bindings_1 = __importDefault(require("@duckdb/node-bindings"));
5
9
  const dateTimeStringConversion_1 = require("../conversion/dateTimeStringConversion");
6
10
  class DuckDBTimestampNanosecondsValue {
7
- nanoseconds;
8
- constructor(nanoseconds) {
9
- this.nanoseconds = nanoseconds;
11
+ nanos;
12
+ constructor(nanos) {
13
+ this.nanos = nanos;
14
+ }
15
+ get isFinite() {
16
+ return node_bindings_1.default.is_finite_timestamp_ns(this);
10
17
  }
11
18
  toString() {
12
- return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromNanoseconds)(this.nanoseconds);
19
+ return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromNanoseconds)(this.nanos);
13
20
  }
14
21
  static Epoch = new DuckDBTimestampNanosecondsValue(0n);
15
22
  static Max = new DuckDBTimestampNanosecondsValue(2n ** 63n - 2n);
16
23
  static Min = new DuckDBTimestampNanosecondsValue(-9223286400000000000n);
24
+ static PosInf = new DuckDBTimestampNanosecondsValue(2n ** 63n - 1n);
25
+ static NegInf = new DuckDBTimestampNanosecondsValue(-(2n ** 63n - 1n));
17
26
  }
18
27
  exports.DuckDBTimestampNanosecondsValue = DuckDBTimestampNanosecondsValue;
19
- function timestampNanosValue(nanoseconds) {
20
- return new DuckDBTimestampNanosecondsValue(nanoseconds);
28
+ function timestampNanosValue(nanos) {
29
+ return new DuckDBTimestampNanosecondsValue(nanos);
21
30
  }
@@ -1,9 +1,13 @@
1
- export declare class DuckDBTimestampSecondsValue {
1
+ import { TimestampSeconds } from '@duckdb/node-bindings';
2
+ export declare class DuckDBTimestampSecondsValue implements TimestampSeconds {
2
3
  readonly seconds: bigint;
3
4
  constructor(seconds: bigint);
5
+ get isFinite(): boolean;
4
6
  toString(): string;
5
7
  static readonly Epoch: DuckDBTimestampSecondsValue;
6
8
  static readonly Max: DuckDBTimestampSecondsValue;
7
9
  static readonly Min: DuckDBTimestampSecondsValue;
10
+ static readonly PosInf: DuckDBTimestampSecondsValue;
11
+ static readonly NegInf: DuckDBTimestampSecondsValue;
8
12
  }
9
13
  export declare function timestampSecondsValue(seconds: bigint): DuckDBTimestampSecondsValue;
@@ -1,19 +1,28 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.DuckDBTimestampSecondsValue = void 0;
4
7
  exports.timestampSecondsValue = timestampSecondsValue;
8
+ const node_bindings_1 = __importDefault(require("@duckdb/node-bindings"));
5
9
  const dateTimeStringConversion_1 = require("../conversion/dateTimeStringConversion");
6
10
  class DuckDBTimestampSecondsValue {
7
11
  seconds;
8
12
  constructor(seconds) {
9
13
  this.seconds = seconds;
10
14
  }
15
+ get isFinite() {
16
+ return node_bindings_1.default.is_finite_timestamp_s(this);
17
+ }
11
18
  toString() {
12
19
  return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromSeconds)(this.seconds);
13
20
  }
14
21
  static Epoch = new DuckDBTimestampSecondsValue(0n);
15
22
  static Max = new DuckDBTimestampSecondsValue(9223372036854n);
16
23
  static Min = new DuckDBTimestampSecondsValue(-9223372022400n); // from test_all_types() select epoch(timestamp_s)::bigint;
24
+ static PosInf = new DuckDBTimestampSecondsValue(2n ** 63n - 1n);
25
+ static NegInf = new DuckDBTimestampSecondsValue(-(2n ** 63n - 1n));
17
26
  }
18
27
  exports.DuckDBTimestampSecondsValue = DuckDBTimestampSecondsValue;
19
28
  function timestampSecondsValue(seconds) {
@@ -1,7 +1,9 @@
1
1
  import { Timestamp, TimestampParts } from '@duckdb/node-bindings';
2
2
  export declare class DuckDBTimestampTZValue implements Timestamp {
3
+ static timezoneOffsetInMinutes: number;
3
4
  readonly micros: bigint;
4
5
  constructor(micros: bigint);
6
+ get isFinite(): boolean;
5
7
  toString(): string;
6
8
  toParts(): TimestampParts;
7
9
  static fromParts(parts: TimestampParts): DuckDBTimestampTZValue;
@@ -9,13 +9,16 @@ const node_bindings_1 = __importDefault(require("@duckdb/node-bindings"));
9
9
  const dateTimeStringConversion_1 = require("../conversion/dateTimeStringConversion");
10
10
  const DuckDBTimestampValue_1 = require("./DuckDBTimestampValue");
11
11
  class DuckDBTimestampTZValue {
12
+ static timezoneOffsetInMinutes = -new Date().getTimezoneOffset();
12
13
  micros;
13
14
  constructor(micros) {
14
15
  this.micros = micros;
15
16
  }
17
+ get isFinite() {
18
+ return node_bindings_1.default.is_finite_timestamp(this);
19
+ }
16
20
  toString() {
17
- // TODO: adjust micros for local timezone offset, and pass in timezone string
18
- return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromMicroseconds)(this.micros);
21
+ return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromMicroseconds)(this.micros, DuckDBTimestampTZValue.timezoneOffsetInMinutes);
19
22
  }
20
23
  toParts() {
21
24
  return node_bindings_1.default.from_timestamp(this);
@@ -3,6 +3,7 @@ export type { TimestampParts };
3
3
  export declare class DuckDBTimestampValue implements Timestamp {
4
4
  readonly micros: bigint;
5
5
  constructor(micros: bigint);
6
+ get isFinite(): boolean;
6
7
  toString(): string;
7
8
  toParts(): TimestampParts;
8
9
  static fromParts(parts: TimestampParts): DuckDBTimestampValue;
@@ -13,6 +13,9 @@ class DuckDBTimestampValue {
13
13
  constructor(micros) {
14
14
  this.micros = micros;
15
15
  }
16
+ get isFinite() {
17
+ return node_bindings_1.default.is_finite_timestamp(this);
18
+ }
16
19
  toString() {
17
20
  return (0, dateTimeStringConversion_1.getDuckDBTimestampStringFromMicroseconds)(this.micros);
18
21
  }
@@ -24,7 +27,7 @@ class DuckDBTimestampValue {
24
27
  }
25
28
  static Epoch = new DuckDBTimestampValue(0n);
26
29
  static Max = new DuckDBTimestampValue(2n ** 63n - 2n);
27
- static Min = new DuckDBTimestampValue(DuckDBTimestampMillisecondsValue_1.DuckDBTimestampMillisecondsValue.Min.milliseconds * 1000n);
30
+ static Min = new DuckDBTimestampValue(DuckDBTimestampMillisecondsValue_1.DuckDBTimestampMillisecondsValue.Min.millis * 1000n);
28
31
  static PosInf = new DuckDBTimestampValue(2n ** 63n - 1n);
29
32
  static NegInf = new DuckDBTimestampValue(-(2n ** 63n - 1n));
30
33
  }
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@duckdb/node-api",
3
- "version": "1.1.3-alpha.9",
3
+ "version": "1.2.0-alpha.14",
4
+ "license": "MIT",
4
5
  "main": "./lib/index.js",
5
6
  "types": "./lib/index.d.ts",
6
7
  "dependencies": {
7
- "@duckdb/node-bindings": "1.1.3-alpha.9"
8
+ "@duckdb/node-bindings": "1.2.0-alpha.14"
8
9
  },
9
10
  "repository": {
10
11
  "type": "git",