@reifydb/core 0.1.5 → 0.1.7

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 (138) hide show
  1. package/package.json +1 -1
  2. package/dist/constant.d.ts +0 -7
  3. package/dist/constant.d.ts.map +0 -1
  4. package/dist/constant.js +0 -7
  5. package/dist/constant.js.map +0 -1
  6. package/dist/decoder.d.ts +0 -8
  7. package/dist/decoder.d.ts.map +0 -1
  8. package/dist/decoder.js +0 -59
  9. package/dist/decoder.js.map +0 -1
  10. package/dist/index.d.ts.map +0 -1
  11. package/dist/schema/builder.d.ts +0 -45
  12. package/dist/schema/builder.d.ts.map +0 -1
  13. package/dist/schema/builder.js +0 -114
  14. package/dist/schema/builder.js.map +0 -1
  15. package/dist/schema/index.d.ts +0 -11
  16. package/dist/schema/index.d.ts.map +0 -1
  17. package/dist/schema/index.js +0 -12
  18. package/dist/schema/index.js.map +0 -1
  19. package/dist/schema/inference.d.ts +0 -16
  20. package/dist/schema/inference.d.ts.map +0 -1
  21. package/dist/schema/inference.js +0 -7
  22. package/dist/schema/inference.js.map +0 -1
  23. package/dist/schema/parser.d.ts +0 -8
  24. package/dist/schema/parser.d.ts.map +0 -1
  25. package/dist/schema/parser.js +0 -96
  26. package/dist/schema/parser.js.map +0 -1
  27. package/dist/schema/simple-test.d.ts +0 -7
  28. package/dist/schema/simple-test.d.ts.map +0 -1
  29. package/dist/schema/simple-test.js +0 -26
  30. package/dist/schema/simple-test.js.map +0 -1
  31. package/dist/schema/test-refactor.d.ts +0 -7
  32. package/dist/schema/test-refactor.d.ts.map +0 -1
  33. package/dist/schema/test-refactor.js +0 -97
  34. package/dist/schema/test-refactor.js.map +0 -1
  35. package/dist/schema/types.d.ts +0 -27
  36. package/dist/schema/types.d.ts.map +0 -1
  37. package/dist/schema/types.js +0 -7
  38. package/dist/schema/types.js.map +0 -1
  39. package/dist/schema/validator.d.ts +0 -8
  40. package/dist/schema/validator.d.ts.map +0 -1
  41. package/dist/schema/validator.js +0 -79
  42. package/dist/schema/validator.js.map +0 -1
  43. package/dist/value/blob.d.ts +0 -85
  44. package/dist/value/blob.d.ts.map +0 -1
  45. package/dist/value/blob.js +0 -255
  46. package/dist/value/blob.js.map +0 -1
  47. package/dist/value/bool.d.ts +0 -16
  48. package/dist/value/bool.d.ts.map +0 -1
  49. package/dist/value/bool.js +0 -46
  50. package/dist/value/bool.js.map +0 -1
  51. package/dist/value/date.d.ts +0 -71
  52. package/dist/value/date.d.ts.map +0 -1
  53. package/dist/value/date.js +0 -261
  54. package/dist/value/date.js.map +0 -1
  55. package/dist/value/datetime.d.ts +0 -99
  56. package/dist/value/datetime.d.ts.map +0 -1
  57. package/dist/value/datetime.js +0 -401
  58. package/dist/value/datetime.js.map +0 -1
  59. package/dist/value/float4.d.ts +0 -19
  60. package/dist/value/float4.d.ts.map +0 -1
  61. package/dist/value/float4.js +0 -68
  62. package/dist/value/float4.js.map +0 -1
  63. package/dist/value/float8.d.ts +0 -16
  64. package/dist/value/float8.d.ts.map +0 -1
  65. package/dist/value/float8.js +0 -44
  66. package/dist/value/float8.js.map +0 -1
  67. package/dist/value/index.d.ts +0 -38
  68. package/dist/value/index.d.ts.map +0 -1
  69. package/dist/value/index.js +0 -31
  70. package/dist/value/index.js.map +0 -1
  71. package/dist/value/int1.d.ts +0 -18
  72. package/dist/value/int1.d.ts.map +0 -1
  73. package/dist/value/int1.js +0 -46
  74. package/dist/value/int1.js.map +0 -1
  75. package/dist/value/int16.d.ts +0 -18
  76. package/dist/value/int16.d.ts.map +0 -1
  77. package/dist/value/int16.js +0 -67
  78. package/dist/value/int16.js.map +0 -1
  79. package/dist/value/int2.d.ts +0 -18
  80. package/dist/value/int2.d.ts.map +0 -1
  81. package/dist/value/int2.js +0 -46
  82. package/dist/value/int2.js.map +0 -1
  83. package/dist/value/int4.d.ts +0 -18
  84. package/dist/value/int4.d.ts.map +0 -1
  85. package/dist/value/int4.js +0 -46
  86. package/dist/value/int4.js.map +0 -1
  87. package/dist/value/int8.d.ts +0 -18
  88. package/dist/value/int8.d.ts.map +0 -1
  89. package/dist/value/int8.js +0 -53
  90. package/dist/value/int8.js.map +0 -1
  91. package/dist/value/interval.d.ts +0 -144
  92. package/dist/value/interval.d.ts.map +0 -1
  93. package/dist/value/interval.js +0 -357
  94. package/dist/value/interval.js.map +0 -1
  95. package/dist/value/rowid.d.ts +0 -18
  96. package/dist/value/rowid.d.ts.map +0 -1
  97. package/dist/value/rowid.js +0 -53
  98. package/dist/value/rowid.js.map +0 -1
  99. package/dist/value/time.d.ts +0 -74
  100. package/dist/value/time.d.ts.map +0 -1
  101. package/dist/value/time.js +0 -214
  102. package/dist/value/time.js.map +0 -1
  103. package/dist/value/uint1.d.ts +0 -18
  104. package/dist/value/uint1.d.ts.map +0 -1
  105. package/dist/value/uint1.js +0 -46
  106. package/dist/value/uint1.js.map +0 -1
  107. package/dist/value/uint16.d.ts +0 -18
  108. package/dist/value/uint16.d.ts.map +0 -1
  109. package/dist/value/uint16.js +0 -67
  110. package/dist/value/uint16.js.map +0 -1
  111. package/dist/value/uint2.d.ts +0 -18
  112. package/dist/value/uint2.d.ts.map +0 -1
  113. package/dist/value/uint2.js +0 -46
  114. package/dist/value/uint2.js.map +0 -1
  115. package/dist/value/uint4.d.ts +0 -18
  116. package/dist/value/uint4.d.ts.map +0 -1
  117. package/dist/value/uint4.js +0 -46
  118. package/dist/value/uint4.js.map +0 -1
  119. package/dist/value/uint8.d.ts +0 -19
  120. package/dist/value/uint8.d.ts.map +0 -1
  121. package/dist/value/uint8.js +0 -58
  122. package/dist/value/uint8.js.map +0 -1
  123. package/dist/value/undefined.d.ts +0 -48
  124. package/dist/value/undefined.d.ts.map +0 -1
  125. package/dist/value/undefined.js +0 -77
  126. package/dist/value/undefined.js.map +0 -1
  127. package/dist/value/utf8.d.ts +0 -16
  128. package/dist/value/utf8.d.ts.map +0 -1
  129. package/dist/value/utf8.js +0 -39
  130. package/dist/value/utf8.js.map +0 -1
  131. package/dist/value/uuid4.d.ts +0 -69
  132. package/dist/value/uuid4.d.ts.map +0 -1
  133. package/dist/value/uuid4.js +0 -162
  134. package/dist/value/uuid4.js.map +0 -1
  135. package/dist/value/uuid7.d.ts +0 -74
  136. package/dist/value/uuid7.d.ts.map +0 -1
  137. package/dist/value/uuid7.js +0 -175
  138. package/dist/value/uuid7.js.map +0 -1
@@ -1,401 +0,0 @@
1
- /**
2
- * MIT License
3
- * Copyright (c) 2025 ReifyDB
4
- * See license.md file for full license text
5
- */
6
- import { UNDEFINED_VALUE } from "../constant";
7
- import { DateValue } from "./date";
8
- import { TimeValue } from "./time";
9
- /**
10
- * A date and time value with nanosecond precision.
11
- * Always in UTC timezone.
12
- * Internally stored as months, days, and nanoseconds.
13
- */
14
- export class DateTimeValue {
15
- constructor(value) {
16
- this.type = "DateTime";
17
- if (value !== undefined) {
18
- if (value instanceof Date) {
19
- // Store as UTC with millisecond precision from Date
20
- const year = value.getUTCFullYear();
21
- const month = value.getUTCMonth() + 1;
22
- const day = value.getUTCDate();
23
- const hour = value.getUTCHours();
24
- const minute = value.getUTCMinutes();
25
- const second = value.getUTCSeconds();
26
- const millis = value.getUTCMilliseconds();
27
- this.months = year * 12 + (month - 1);
28
- this.days = day;
29
- this.nanos = BigInt(hour) * 3600000000000n +
30
- BigInt(minute) * 60000000000n +
31
- BigInt(second) * 1000000000n +
32
- BigInt(millis) * 1000000n;
33
- }
34
- else if (typeof value === 'string') {
35
- // Parse ISO 8601 format
36
- const parsed = DateTimeValue.parseDateTime(value);
37
- if (!parsed) {
38
- throw new Error(`Invalid datetime string: ${value}`);
39
- }
40
- this.months = parsed.months;
41
- this.days = parsed.days;
42
- this.nanos = parsed.nanos;
43
- }
44
- else if (typeof value === 'number') {
45
- // Interpret as milliseconds since epoch
46
- const date = new Date(value);
47
- const year = date.getUTCFullYear();
48
- const month = date.getUTCMonth() + 1;
49
- const day = date.getUTCDate();
50
- const hour = date.getUTCHours();
51
- const minute = date.getUTCMinutes();
52
- const second = date.getUTCSeconds();
53
- const millis = date.getUTCMilliseconds();
54
- this.months = year * 12 + (month - 1);
55
- this.days = day;
56
- this.nanos = BigInt(hour) * 3600000000000n +
57
- BigInt(minute) * 60000000000n +
58
- BigInt(second) * 1000000000n +
59
- BigInt(millis) * 1000000n;
60
- }
61
- else if (typeof value === 'bigint') {
62
- // Interpret as nanoseconds since epoch
63
- const millis = Number(value / 1000000n);
64
- const extraNanos = value % 1000000n;
65
- const date = new Date(millis);
66
- const year = date.getUTCFullYear();
67
- const month = date.getUTCMonth() + 1;
68
- const day = date.getUTCDate();
69
- const hour = date.getUTCHours();
70
- const minute = date.getUTCMinutes();
71
- const second = date.getUTCSeconds();
72
- const dateMillis = date.getUTCMilliseconds();
73
- this.months = year * 12 + (month - 1);
74
- this.days = day;
75
- this.nanos = BigInt(hour) * 3600000000000n +
76
- BigInt(minute) * 60000000000n +
77
- BigInt(second) * 1000000000n +
78
- BigInt(dateMillis) * 1000000n +
79
- extraNanos;
80
- }
81
- else {
82
- throw new Error(`DateTime value must be a Date, string, number, or bigint, got ${typeof value}`);
83
- }
84
- }
85
- else {
86
- this.months = undefined;
87
- this.days = undefined;
88
- this.nanos = undefined;
89
- }
90
- }
91
- /**
92
- * Create a DateTimeValue from year, month, day, hour, minute, second, nanosecond
93
- */
94
- static fromYMDHMSN(year, month, day, hour, minute, second, nano = 0) {
95
- // Validate inputs
96
- if (hour < 0 || hour > 23) {
97
- throw new Error(`Invalid hour: ${hour}`);
98
- }
99
- if (minute < 0 || minute > 59) {
100
- throw new Error(`Invalid minute: ${minute}`);
101
- }
102
- if (second < 0 || second > 59) {
103
- throw new Error(`Invalid second: ${second}`);
104
- }
105
- if (nano < 0 || nano > 999999999) {
106
- throw new Error(`Invalid nanosecond: ${nano}`);
107
- }
108
- // Validate the date
109
- if (!DateTimeValue.isValidDate(year, month, day)) {
110
- throw new Error(`Invalid datetime: ${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')} ${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}:${String(second).padStart(2, '0')}`);
111
- }
112
- const result = new DateTimeValue(undefined);
113
- result.months = year * 12 + (month - 1);
114
- result.days = day;
115
- result.nanos = BigInt(hour) * 3600000000000n +
116
- BigInt(minute) * 60000000000n +
117
- BigInt(second) * 1000000000n +
118
- BigInt(nano);
119
- return result;
120
- }
121
- /**
122
- * Create a DateTimeValue from year, month, day, hour, minute, second (no fractional)
123
- */
124
- static fromYMDHMS(year, month, day, hour, minute, second) {
125
- return DateTimeValue.fromYMDHMSN(year, month, day, hour, minute, second, 0);
126
- }
127
- /**
128
- * Create from Unix timestamp in seconds
129
- */
130
- static fromTimestamp(seconds) {
131
- return new DateTimeValue(seconds * 1000);
132
- }
133
- /**
134
- * Create from Unix timestamp in milliseconds
135
- */
136
- static fromTimestampMillis(millis) {
137
- return new DateTimeValue(millis);
138
- }
139
- /**
140
- * Create from nanoseconds since Unix epoch
141
- */
142
- static fromNanosSinceEpoch(nanos) {
143
- return new DateTimeValue(nanos);
144
- }
145
- /**
146
- * Create from separate seconds and nanoseconds
147
- */
148
- static fromParts(seconds, nanos) {
149
- if (nanos < 0 || nanos > 999999999) {
150
- throw new Error(`Invalid nanoseconds: ${nanos}`);
151
- }
152
- const millis = seconds * 1000 + Math.floor(nanos / 1000000);
153
- const extraNanos = nanos % 1000000;
154
- const result = new DateTimeValue(millis);
155
- // Add the extra nanoseconds
156
- if (result.nanos !== undefined) {
157
- result.nanos = result.nanos + BigInt(extraNanos);
158
- }
159
- return result;
160
- }
161
- /**
162
- * Get current datetime
163
- */
164
- static now() {
165
- return new DateTimeValue(new Date());
166
- }
167
- /**
168
- * Get default datetime (Unix epoch)
169
- */
170
- static default() {
171
- return DateTimeValue.fromYMDHMS(1970, 1, 1, 0, 0, 0);
172
- }
173
- /**
174
- * Parse a datetime string in ISO 8601 format
175
- */
176
- static parse(str) {
177
- const trimmed = str.trim();
178
- if (trimmed === '' || trimmed === UNDEFINED_VALUE) {
179
- return new DateTimeValue(undefined);
180
- }
181
- const parsed = DateTimeValue.parseDateTime(trimmed);
182
- if (!parsed) {
183
- throw new Error(`Cannot parse "${str}" as DateTime`);
184
- }
185
- const result = new DateTimeValue(undefined);
186
- result.months = parsed.months;
187
- result.days = parsed.days;
188
- result.nanos = parsed.nanos;
189
- return result;
190
- }
191
- /**
192
- * Get Unix timestamp in seconds
193
- */
194
- timestamp() {
195
- const date = this.valueOf();
196
- if (date === undefined)
197
- return undefined;
198
- return Math.floor(date.getTime() / 1000);
199
- }
200
- /**
201
- * Get Unix timestamp in nanoseconds
202
- */
203
- timestampNanos() {
204
- const date = this.valueOf();
205
- if (date === undefined || this.nanos === undefined)
206
- return undefined;
207
- // Convert date to epoch nanoseconds
208
- const epochNanos = BigInt(date.getTime()) * 1000000n;
209
- // The nanos field stores time-of-day, but we already included millis in epochNanos
210
- // So we need to add only the sub-millisecond portion
211
- const subMillisNanos = this.nanos % 1000000n;
212
- return epochNanos + subMillisNanos;
213
- }
214
- /**
215
- * Convert to nanoseconds since Unix epoch for storage
216
- */
217
- toNanosSinceEpoch() {
218
- return this.timestampNanos();
219
- }
220
- /**
221
- * Get separate seconds and nanoseconds for storage
222
- */
223
- toParts() {
224
- const date = this.valueOf();
225
- if (date === undefined || this.nanos === undefined)
226
- return undefined;
227
- const seconds = Math.floor(date.getTime() / 1000);
228
- const millis = date.getTime() % 1000;
229
- const subMillisNanos = Number(this.nanos % 1000000n);
230
- const nanos = millis * 1000000 + subMillisNanos;
231
- return [seconds, nanos];
232
- }
233
- /**
234
- * Get the date component
235
- */
236
- date() {
237
- if (this.months === undefined || this.days === undefined)
238
- return undefined;
239
- const year = Math.floor(this.months / 12);
240
- // Handle negative months correctly
241
- let m = this.months % 12;
242
- if (m < 0)
243
- m += 12;
244
- const month = m + 1;
245
- return DateValue.fromYMD(year, month, this.days);
246
- }
247
- /**
248
- * Get the time component
249
- */
250
- time() {
251
- if (this.nanos === undefined)
252
- return undefined;
253
- return new TimeValue(this.nanos);
254
- }
255
- /**
256
- * Format as ISO 8601 string with nanosecond precision and Z suffix
257
- */
258
- toString() {
259
- if (this.months === undefined || this.days === undefined || this.nanos === undefined) {
260
- return 'undefined';
261
- }
262
- const year = Math.floor(this.months / 12);
263
- // Handle negative months correctly
264
- let m = this.months % 12;
265
- if (m < 0)
266
- m += 12;
267
- const month = String(m + 1).padStart(2, '0');
268
- const day = String(this.days).padStart(2, '0');
269
- // Extract time components from nanos
270
- const totalNanos = this.nanos;
271
- const hours = totalNanos / 3600000000000n;
272
- const remainingAfterHours = totalNanos % 3600000000000n;
273
- const minutes = remainingAfterHours / 60000000000n;
274
- const remainingAfterMinutes = remainingAfterHours % 60000000000n;
275
- const seconds = remainingAfterMinutes / 1000000000n;
276
- const nanosFraction = remainingAfterMinutes % 1000000000n;
277
- const hour = String(Number(hours)).padStart(2, '0');
278
- const minute = String(Number(minutes)).padStart(2, '0');
279
- const second = String(Number(seconds)).padStart(2, '0');
280
- const nanoStr = String(Number(nanosFraction)).padStart(9, '0');
281
- // Handle negative years (BC dates)
282
- let yearStr;
283
- if (year < 0) {
284
- const absYear = Math.abs(year);
285
- yearStr = `-${String(absYear).padStart(4, '0')}`;
286
- }
287
- else {
288
- yearStr = String(year).padStart(4, '0');
289
- }
290
- return `${yearStr}-${month}-${day}T${hour}:${minute}:${second}.${nanoStr}Z`;
291
- }
292
- valueOf() {
293
- if (this.months === undefined || this.days === undefined || this.nanos === undefined) {
294
- return undefined;
295
- }
296
- const year = Math.floor(this.months / 12);
297
- // Handle negative months correctly
298
- let m = this.months % 12;
299
- if (m < 0)
300
- m += 12;
301
- const month = m + 1;
302
- // Extract time components
303
- const totalNanos = this.nanos;
304
- const hours = Number(totalNanos / 3600000000000n);
305
- const remainingAfterHours = totalNanos % 3600000000000n;
306
- const minutes = Number(remainingAfterHours / 60000000000n);
307
- const remainingAfterMinutes = remainingAfterHours % 60000000000n;
308
- const seconds = Number(remainingAfterMinutes / 1000000000n);
309
- const nanosFraction = remainingAfterMinutes % 1000000000n;
310
- const millis = Number(nanosFraction / 1000000n);
311
- // Handle years < 100 specially
312
- let date;
313
- if (year >= 0 && year < 100) {
314
- date = new Date(Date.UTC(2000, month - 1, this.days, hours, minutes, seconds, millis));
315
- date.setUTCFullYear(year);
316
- }
317
- else {
318
- date = new Date(Date.UTC(year, month - 1, this.days, hours, minutes, seconds, millis));
319
- }
320
- return date;
321
- }
322
- /**
323
- * Get the internal representation as a Date
324
- */
325
- get value() {
326
- return this.valueOf();
327
- }
328
- /**
329
- * Helper to parse ISO 8601 datetime format
330
- */
331
- static parseDateTime(str) {
332
- // Match ISO 8601 format: YYYY-MM-DDTHH:MM:SS[.nnnnnnnnn]Z
333
- const match = str.match(/^(-?\d{1,4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,9}))?Z$/);
334
- if (!match) {
335
- return null;
336
- }
337
- const year = parseInt(match[1], 10);
338
- const month = parseInt(match[2], 10);
339
- const day = parseInt(match[3], 10);
340
- const hour = parseInt(match[4], 10);
341
- const minute = parseInt(match[5], 10);
342
- const second = parseInt(match[6], 10);
343
- // Parse fractional seconds if present
344
- let nanosFraction = 0n;
345
- if (match[7]) {
346
- // Pad or truncate to 9 digits
347
- const fracStr = match[7].padEnd(9, '0').substring(0, 9);
348
- nanosFraction = BigInt(fracStr);
349
- }
350
- // Validate ranges
351
- if (month < 1 || month > 12) {
352
- return null;
353
- }
354
- if (day < 1 || day > 31) {
355
- return null;
356
- }
357
- if (hour < 0 || hour > 23) {
358
- return null;
359
- }
360
- if (minute < 0 || minute > 59) {
361
- return null;
362
- }
363
- if (second < 0 || second > 59) {
364
- return null;
365
- }
366
- // Validate the date is valid
367
- if (!DateTimeValue.isValidDate(year, month, day)) {
368
- return null;
369
- }
370
- const months = year * 12 + (month - 1);
371
- const nanos = BigInt(hour) * 3600000000000n +
372
- BigInt(minute) * 60000000000n +
373
- BigInt(second) * 1000000000n +
374
- nanosFraction;
375
- return { months, days: day, nanos };
376
- }
377
- /**
378
- * Helper to validate a date
379
- */
380
- static isValidDate(year, month, day) {
381
- // Create a date and check if components match
382
- let date;
383
- if (year >= 0 && year < 100) {
384
- date = new Date(Date.UTC(2000, month - 1, day));
385
- date.setUTCFullYear(year);
386
- }
387
- else {
388
- date = new Date(Date.UTC(year, month - 1, day));
389
- }
390
- return date.getUTCFullYear() === year &&
391
- date.getUTCMonth() === month - 1 &&
392
- date.getUTCDate() === day;
393
- }
394
- encode() {
395
- return {
396
- type: this.type,
397
- value: this.value === undefined ? UNDEFINED_VALUE : this.toString()
398
- };
399
- }
400
- }
401
- //# sourceMappingURL=datetime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/value/datetime.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * MIT License
3
- * Copyright (c) 2025 ReifyDB
4
- * See license.md file for full license text
5
- */
6
- import { Type, Value, TypeValuePair } from ".";
7
- export declare class Float4Value implements Value {
8
- private static readonly MAX_VALUE;
9
- private static readonly MIN_VALUE;
10
- private static readonly MIN_POSITIVE;
11
- readonly type: Type;
12
- readonly value?: number;
13
- constructor(value?: number);
14
- static parse(str: string): Float4Value;
15
- valueOf(): number | undefined;
16
- toString(): string;
17
- encode(): TypeValuePair;
18
- }
19
- //# sourceMappingURL=float4.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"float4.d.ts","sourceRoot":"","sources":["../../src/value/float4.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,GAAG,CAAC;AAG7C,qBAAa,WAAY,YAAW,KAAK;IAErC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAkB;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAEpD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAqB;IACxC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEnB,KAAK,CAAC,EAAE,MAAM;IA6B1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAetC,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,aAAa;CAO1B"}
@@ -1,68 +0,0 @@
1
- /**
2
- * MIT License
3
- * Copyright (c) 2025 ReifyDB
4
- * See license.md file for full license text
5
- */
6
- import { UNDEFINED_VALUE } from "../constant";
7
- export class Float4Value {
8
- constructor(value) {
9
- this.type = "Float4";
10
- if (value !== undefined) {
11
- if (typeof value !== 'number') {
12
- throw new Error(`Float4 value must be a number, got ${typeof value}`);
13
- }
14
- if (Number.isNaN(value) || !Number.isFinite(value)) {
15
- this.value = undefined;
16
- }
17
- else {
18
- // Clamp to Float32 range
19
- if (value !== 0 && Math.abs(value) < Float4Value.MIN_POSITIVE) {
20
- // Underflow to zero
21
- this.value = 0;
22
- }
23
- else if (value > Float4Value.MAX_VALUE) {
24
- throw new Error(`Float4 overflow: value ${value} exceeds maximum ${Float4Value.MAX_VALUE}`);
25
- }
26
- else if (value < Float4Value.MIN_VALUE) {
27
- throw new Error(`Float4 underflow: value ${value} exceeds minimum ${Float4Value.MIN_VALUE}`);
28
- }
29
- else {
30
- // Convert to Float32 precision
31
- const float32Array = new Float32Array(1);
32
- float32Array[0] = value;
33
- this.value = float32Array[0];
34
- }
35
- }
36
- }
37
- else {
38
- this.value = undefined;
39
- }
40
- }
41
- static parse(str) {
42
- const trimmed = str.trim();
43
- if (trimmed === '' || trimmed === UNDEFINED_VALUE) {
44
- return new Float4Value(undefined);
45
- }
46
- const num = Number(trimmed);
47
- if (Number.isNaN(num) && trimmed.toLowerCase() !== 'nan') {
48
- throw new Error(`Cannot parse "${str}" as Float4`);
49
- }
50
- return new Float4Value(num);
51
- }
52
- valueOf() {
53
- return this.value;
54
- }
55
- toString() {
56
- return this.value === undefined ? 'undefined' : this.value.toString();
57
- }
58
- encode() {
59
- return {
60
- type: this.type,
61
- value: this.value === undefined ? UNDEFINED_VALUE : this.toString()
62
- };
63
- }
64
- }
65
- Float4Value.MAX_VALUE = 3.4028235e+38;
66
- Float4Value.MIN_VALUE = -3.4028235e+38;
67
- Float4Value.MIN_POSITIVE = 1.175494e-38;
68
- //# sourceMappingURL=float4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"float4.js","sourceRoot":"","sources":["../../src/value/float4.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,WAAW;IASpB,YAAY,KAAc;QAHjB,SAAI,GAAS,QAAiB,CAAC;QAIpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,yBAAyB;gBACzB,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;oBAC5D,oBAAoB;oBACpB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACnB,CAAC;qBAAM,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,oBAAoB,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChG,CAAC;qBAAM,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,oBAAoB,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;gBACjG,CAAC;qBAAM,CAAC;oBACJ,+BAA+B;oBAC/B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;oBACzC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW;QACpB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAChD,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;SACtE,CAAC;IACN,CAAC;;AAhEuB,qBAAS,GAAG,aAAa,AAAhB,CAAiB;AAC1B,qBAAS,GAAG,CAAC,aAAa,AAAjB,CAAkB;AAC3B,wBAAY,GAAG,YAAY,AAAf,CAAgB"}
@@ -1,16 +0,0 @@
1
- /**
2
- * MIT License
3
- * Copyright (c) 2025 ReifyDB
4
- * See license.md file for full license text
5
- */
6
- import { Type, Value, TypeValuePair } from ".";
7
- export declare class Float8Value implements Value {
8
- readonly type: Type;
9
- readonly value?: number;
10
- constructor(value?: number);
11
- static parse(str: string): Float8Value;
12
- valueOf(): number | undefined;
13
- toString(): string;
14
- encode(): TypeValuePair;
15
- }
16
- //# sourceMappingURL=float8.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"float8.d.ts","sourceRoot":"","sources":["../../src/value/float8.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,GAAG,CAAC;AAG7C,qBAAa,WAAY,YAAW,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAqB;IACxC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEnB,KAAK,CAAC,EAAE,MAAM;IAW1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAetC,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,aAAa;CAM1B"}
@@ -1,44 +0,0 @@
1
- /**
2
- * MIT License
3
- * Copyright (c) 2025 ReifyDB
4
- * See license.md file for full license text
5
- */
6
- import { UNDEFINED_VALUE } from "../constant";
7
- export class Float8Value {
8
- constructor(value) {
9
- this.type = "Float8";
10
- if (value !== undefined) {
11
- if (typeof value !== 'number') {
12
- throw new Error(`Float8 value must be a number, got ${typeof value}`);
13
- }
14
- this.value = value;
15
- }
16
- else {
17
- this.value = undefined;
18
- }
19
- }
20
- static parse(str) {
21
- const trimmed = str.trim();
22
- if (trimmed === '' || trimmed === UNDEFINED_VALUE) {
23
- return new Float8Value(undefined);
24
- }
25
- const num = Number(trimmed);
26
- if (Number.isNaN(num) && trimmed.toLowerCase() !== 'nan') {
27
- throw new Error(`Cannot parse "${str}" as Float8`);
28
- }
29
- return new Float8Value(num);
30
- }
31
- valueOf() {
32
- return this.value;
33
- }
34
- toString() {
35
- return this.value === undefined ? 'undefined' : this.value.toString();
36
- }
37
- encode() {
38
- return {
39
- type: this.type,
40
- value: this.value === undefined ? UNDEFINED_VALUE : this.toString()
41
- };
42
- }
43
- }
44
- //# sourceMappingURL=float8.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"float8.js","sourceRoot":"","sources":["../../src/value/float8.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,WAAW;IAIpB,YAAY,KAAc;QAHjB,SAAI,GAAS,QAAiB,CAAC;QAIpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW;QACpB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAChD,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;SACtE,CAAC;IACN,CAAC;CACJ"}
@@ -1,38 +0,0 @@
1
- /**
2
- * MIT License
3
- * Copyright (c) 2025 ReifyDB
4
- * See license.md file for full license text
5
- */
6
- export { BlobValue } from './blob';
7
- export { BoolValue } from './bool';
8
- export { DateValue } from './date';
9
- export { DateTimeValue } from './datetime';
10
- export { Float4Value } from './float4';
11
- export { Float8Value } from './float8';
12
- export { Int1Value } from './int1';
13
- export { Int2Value } from './int2';
14
- export { Int4Value } from './int4';
15
- export { Int8Value } from './int8';
16
- export { Int16Value } from './int16';
17
- export { IntervalValue } from './interval';
18
- export { TimeValue } from './time';
19
- export { Uint1Value } from './uint1';
20
- export { Uint2Value } from './uint2';
21
- export { Uint4Value } from './uint4';
22
- export { Uint8Value } from './uint8';
23
- export { Uint16Value } from './uint16';
24
- export { RowIdValue } from './rowid';
25
- export { UndefinedValue } from './undefined';
26
- export { Utf8Value } from './utf8';
27
- export { Uuid4Value } from './uuid4';
28
- export { Uuid7Value } from './uuid7';
29
- export type Type = "Blob" | "Bool" | "Float4" | "Float8" | "Int1" | "Int2" | "Int4" | "Int8" | "Int16" | "Uint1" | "Uint2" | "Uint4" | "Uint8" | "Uint16" | "Utf8" | "Date" | "DateTime" | "Time" | "Interval" | "Uuid4" | "Uuid7" | "Undefined" | "RowId";
30
- export interface TypeValuePair {
31
- type: Type;
32
- value: string;
33
- }
34
- export declare abstract class Value {
35
- abstract readonly type: Type;
36
- abstract encode(): TypeValuePair;
37
- }
38
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/value/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAKnC,MAAM,MAAM,IAAI,GACV,MAAM,GACN,MAAM,GACN,QAAQ,GAAG,QAAQ,GACnB,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAC3C,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAChD,MAAM,GACN,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GACzC,OAAO,GAAG,OAAO,GACjB,WAAW,GACX,OAAO,CAAC;AAEd,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,8BAAsB,KAAK;IACvB,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAE7B,QAAQ,CAAC,MAAM,IAAI,aAAa;CACnC"}