@zilliz/milvus2-sdk-node 2.6.11 → 2.6.12

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 (92) hide show
  1. package/README.md +815 -41
  2. package/dist/milvus/HttpClient.d.ts +10 -10
  3. package/dist/milvus/MilvusClient.js +6 -3
  4. package/dist/milvus/MilvusClient.js.map +1 -1
  5. package/dist/milvus/bulkwriter/BulkWriter.d.ts +35 -0
  6. package/dist/milvus/bulkwriter/BulkWriter.js +315 -0
  7. package/dist/milvus/bulkwriter/BulkWriter.js.map +1 -0
  8. package/dist/milvus/bulkwriter/ColumnBuffer.d.ts +18 -0
  9. package/dist/milvus/bulkwriter/ColumnBuffer.js +131 -0
  10. package/dist/milvus/bulkwriter/ColumnBuffer.js.map +1 -0
  11. package/dist/milvus/bulkwriter/JsonFormatter.d.ts +5 -0
  12. package/dist/milvus/bulkwriter/JsonFormatter.js +213 -0
  13. package/dist/milvus/bulkwriter/JsonFormatter.js.map +1 -0
  14. package/dist/milvus/bulkwriter/LocalStorage.d.ts +4 -0
  15. package/dist/milvus/bulkwriter/LocalStorage.js +21 -0
  16. package/dist/milvus/bulkwriter/LocalStorage.js.map +1 -0
  17. package/dist/milvus/bulkwriter/ParquetFormatter.d.ts +5 -0
  18. package/dist/milvus/bulkwriter/ParquetFormatter.js +326 -0
  19. package/dist/milvus/bulkwriter/ParquetFormatter.js.map +1 -0
  20. package/dist/milvus/bulkwriter/Types.d.ts +27 -0
  21. package/dist/milvus/bulkwriter/Types.js +3 -0
  22. package/dist/milvus/bulkwriter/Types.js.map +1 -0
  23. package/dist/milvus/bulkwriter/index.d.ts +6 -0
  24. package/dist/milvus/bulkwriter/index.js +14 -0
  25. package/dist/milvus/bulkwriter/index.js.map +1 -0
  26. package/dist/milvus/const/error.d.ts +1 -0
  27. package/dist/milvus/const/error.js +2 -1
  28. package/dist/milvus/const/error.js.map +1 -1
  29. package/dist/milvus/const/milvus.d.ts +3 -1
  30. package/dist/milvus/const/milvus.js +2 -0
  31. package/dist/milvus/const/milvus.js.map +1 -1
  32. package/dist/milvus/grpc/BaseClient.d.ts +7 -1
  33. package/dist/milvus/grpc/BaseClient.js +17 -2
  34. package/dist/milvus/grpc/BaseClient.js.map +1 -1
  35. package/dist/milvus/grpc/Collection.d.ts +52 -3
  36. package/dist/milvus/grpc/Collection.js +70 -2
  37. package/dist/milvus/grpc/Collection.js.map +1 -1
  38. package/dist/milvus/grpc/Data.d.ts +96 -4
  39. package/dist/milvus/grpc/Data.js +139 -13
  40. package/dist/milvus/grpc/Data.js.map +1 -1
  41. package/dist/milvus/grpc/GrpcClient.d.ts +19 -3
  42. package/dist/milvus/grpc/GrpcClient.js +168 -10
  43. package/dist/milvus/grpc/GrpcClient.js.map +1 -1
  44. package/dist/milvus/grpc/MilvusIndex.d.ts +22 -0
  45. package/dist/milvus/grpc/MilvusIndex.js +28 -0
  46. package/dist/milvus/grpc/MilvusIndex.js.map +1 -1
  47. package/dist/milvus/http/Alias.d.ts +1 -1
  48. package/dist/milvus/http/Collection.d.ts +1 -1
  49. package/dist/milvus/http/Database.d.ts +1 -1
  50. package/dist/milvus/http/Import.d.ts +1 -1
  51. package/dist/milvus/http/MilvusIndex.d.ts +1 -1
  52. package/dist/milvus/http/Partition.d.ts +1 -1
  53. package/dist/milvus/http/Role.d.ts +1 -1
  54. package/dist/milvus/http/User.d.ts +1 -1
  55. package/dist/milvus/http/Vector.d.ts +1 -1
  56. package/dist/milvus/index.d.ts +1 -0
  57. package/dist/milvus/index.js +2 -0
  58. package/dist/milvus/index.js.map +1 -1
  59. package/dist/milvus/types/Client.d.ts +8 -3
  60. package/dist/milvus/types/Collection.d.ts +21 -1
  61. package/dist/milvus/types/GlobalCluster.d.ts +23 -0
  62. package/dist/milvus/types/GlobalCluster.js +12 -0
  63. package/dist/milvus/types/GlobalCluster.js.map +1 -0
  64. package/dist/milvus/types/Resource.d.ts +8 -2
  65. package/dist/milvus/types/Search.d.ts +42 -0
  66. package/dist/milvus/types/Search.js +7 -0
  67. package/dist/milvus/types/Search.js.map +1 -1
  68. package/dist/milvus/types/Segments.d.ts +33 -1
  69. package/dist/milvus/types/index.d.ts +1 -0
  70. package/dist/milvus/types/index.js +1 -0
  71. package/dist/milvus/types/index.js.map +1 -1
  72. package/dist/milvus/utils/Format.js +47 -39
  73. package/dist/milvus/utils/Format.js.map +1 -1
  74. package/dist/milvus/utils/Function.d.ts +14 -1
  75. package/dist/milvus/utils/Function.js +51 -22
  76. package/dist/milvus/utils/Function.js.map +1 -1
  77. package/dist/milvus/utils/GlobalTopology.d.ts +56 -0
  78. package/dist/milvus/utils/GlobalTopology.js +215 -0
  79. package/dist/milvus/utils/GlobalTopology.js.map +1 -0
  80. package/dist/milvus/utils/Grpc.js +3 -2
  81. package/dist/milvus/utils/Grpc.js.map +1 -1
  82. package/dist/milvus/utils/Schema.d.ts +1 -1
  83. package/dist/milvus/utils/Schema.js +4 -4
  84. package/dist/milvus/utils/Schema.js.map +1 -1
  85. package/dist/milvus/utils/Search.d.ts +54 -1
  86. package/dist/milvus/utils/Search.js +50 -4
  87. package/dist/milvus/utils/Search.js.map +1 -1
  88. package/dist/milvus/utils/index.d.ts +1 -0
  89. package/dist/milvus/utils/index.js +1 -0
  90. package/dist/milvus/utils/index.js.map +1 -1
  91. package/dist/sdk.json +1 -1
  92. package/package.json +5 -2
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnBuffer = void 0;
4
+ const __1 = require("../");
5
+ const DYNAMIC_FIELD = '$meta';
6
+ const TYPE_SIZE = {
7
+ [__1.DataType.Bool]: 1,
8
+ [__1.DataType.Int8]: 1,
9
+ [__1.DataType.Int16]: 2,
10
+ [__1.DataType.Int32]: 4,
11
+ [__1.DataType.Int64]: 8,
12
+ [__1.DataType.Float]: 4,
13
+ [__1.DataType.Double]: 8,
14
+ };
15
+ class ColumnBuffer {
16
+ constructor(schema) {
17
+ this.schema = schema;
18
+ this.columns = new Map();
19
+ this._dynamicRows = [];
20
+ this._rowCount = 0;
21
+ this.activeFields = schema.fields.filter(f => !f.autoID && !f.is_function_output);
22
+ this.fieldNames = new Set(schema.fields.map(f => f.name));
23
+ this.fieldDataTypes = new Map(this.activeFields.map(f => [f.name, (0, __1.convertToDataType)(f.data_type)]));
24
+ for (const field of this.activeFields) {
25
+ this.columns.set(field.name, []);
26
+ }
27
+ }
28
+ get rowCount() {
29
+ return this._rowCount;
30
+ }
31
+ get dynamicRows() {
32
+ return this._dynamicRows;
33
+ }
34
+ getColumn(name) {
35
+ var _a;
36
+ return (_a = this.columns.get(name)) !== null && _a !== void 0 ? _a : [];
37
+ }
38
+ getColumns() {
39
+ return this.columns;
40
+ }
41
+ getRow(index) {
42
+ const row = {};
43
+ for (const field of this.activeFields) {
44
+ const col = this.columns.get(field.name);
45
+ if (col && index < col.length) {
46
+ row[field.name] = col[index];
47
+ }
48
+ }
49
+ if (this.schema.enable_dynamic_field && this._dynamicRows[index]) {
50
+ Object.assign(row, this._dynamicRows[index]);
51
+ }
52
+ return row;
53
+ }
54
+ append(row) {
55
+ var _a;
56
+ let size = 0;
57
+ for (const field of this.activeFields) {
58
+ const val = (_a = row[field.name]) !== null && _a !== void 0 ? _a : null;
59
+ this.columns.get(field.name).push(val);
60
+ size += this.estimateFieldSize(field, val);
61
+ }
62
+ if (this.schema.enable_dynamic_field) {
63
+ let extra = null;
64
+ for (const key of Object.keys(row)) {
65
+ if (key === DYNAMIC_FIELD) {
66
+ // User passed explicit $meta dict — merge it
67
+ if (typeof row[key] === 'object' && row[key] !== null) {
68
+ if (!extra)
69
+ extra = {};
70
+ Object.assign(extra, row[key]);
71
+ }
72
+ }
73
+ else if (!this.fieldNames.has(key)) {
74
+ if (!extra)
75
+ extra = {};
76
+ extra[key] = row[key];
77
+ }
78
+ }
79
+ this._dynamicRows.push(extra !== null && extra !== void 0 ? extra : {});
80
+ if (extra) {
81
+ size += Buffer.byteLength(JSON.stringify(extra), 'utf8');
82
+ }
83
+ }
84
+ this._rowCount++;
85
+ return size;
86
+ }
87
+ estimateFieldSize(field, val) {
88
+ if (val === null || val === undefined)
89
+ return 0;
90
+ const dt = this.fieldDataTypes.get(field.name);
91
+ const fixed = TYPE_SIZE[dt];
92
+ if (fixed)
93
+ return fixed;
94
+ if (dt === __1.DataType.VarChar ||
95
+ dt === __1.DataType.Geometry ||
96
+ dt === __1.DataType.Timestamptz) {
97
+ return typeof val === 'string' ? Buffer.byteLength(val, 'utf8') : 0;
98
+ }
99
+ if (dt === __1.DataType.JSON) {
100
+ return Buffer.byteLength(JSON.stringify(val), 'utf8');
101
+ }
102
+ if (dt === __1.DataType.FloatVector) {
103
+ return val.length * 4;
104
+ }
105
+ if (dt === __1.DataType.BinaryVector) {
106
+ return val.length;
107
+ }
108
+ if (dt === __1.DataType.Float16Vector || dt === __1.DataType.BFloat16Vector) {
109
+ if (val instanceof Uint8Array)
110
+ return val.byteLength;
111
+ return val.length * 2;
112
+ }
113
+ if (dt === __1.DataType.Int8Vector) {
114
+ if (val instanceof Int8Array)
115
+ return val.byteLength;
116
+ return val.length;
117
+ }
118
+ if (dt === __1.DataType.SparseFloatVector) {
119
+ return Buffer.byteLength(JSON.stringify(val), 'utf8');
120
+ }
121
+ if (dt === __1.DataType.Array) {
122
+ return Buffer.byteLength(JSON.stringify(val), 'utf8');
123
+ }
124
+ if (dt === __1.DataType.Struct) {
125
+ return Buffer.byteLength(JSON.stringify(val), 'utf8');
126
+ }
127
+ return 64;
128
+ }
129
+ }
130
+ exports.ColumnBuffer = ColumnBuffer;
131
+ //# sourceMappingURL=ColumnBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnBuffer.js","sourceRoot":"","sources":["../../../milvus/bulkwriter/ColumnBuffer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Formatter, BulkWriterSchema } from './Types';
2
+ export declare class JsonFormatter implements Formatter {
3
+ readonly extension = ".json";
4
+ persist(columns: Map<string, any[]>, dynamicRows: Record<string, any>[], rowCount: number, dir: string, schema: BulkWriterSchema): Promise<string[]>;
5
+ }
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.JsonFormatter = void 0;
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ const events_1 = require("events");
39
+ const promises_1 = require("stream/promises");
40
+ const __1 = require("../");
41
+ // Marker for Int64 values to bypass JSON.stringify precision loss.
42
+ // JSON.stringify cannot output integers > Number.MAX_SAFE_INTEGER without
43
+ // losing precision. We wrap Int64 values in markers, stringify normally,
44
+ // then strip the quotes+markers to produce bare integer literals.
45
+ const INT64_PREFIX = '___INT64_';
46
+ const INT64_SUFFIX = '_INT64___';
47
+ const INT64_REGEX = new RegExp(`"${INT64_PREFIX}(-?\\d+)${INT64_SUFFIX}"`, 'g');
48
+ /**
49
+ * Normalize a sparse vector (any SDK format) to dict format { "index": value }
50
+ * which is what Milvus bulkInsert expects.
51
+ */
52
+ function normalizeSparseVector(val) {
53
+ if (val === null || val === undefined)
54
+ return val;
55
+ // Already dict format: { "2": 0.5, "5": 0.3 }
56
+ if (!Array.isArray(val) &&
57
+ typeof val === 'object' &&
58
+ !('indices' in val && 'values' in val)) {
59
+ return val;
60
+ }
61
+ // CSR format: { indices: [2, 5], values: [0.5, 0.3] }
62
+ if (typeof val === 'object' &&
63
+ !Array.isArray(val) &&
64
+ 'indices' in val &&
65
+ 'values' in val) {
66
+ const dict = {};
67
+ for (let i = 0; i < val.indices.length; i++) {
68
+ dict[String(val.indices[i])] = val.values[i];
69
+ }
70
+ return dict;
71
+ }
72
+ // COO format: [{ index: 2, value: 0.5 }, ...]
73
+ if (Array.isArray(val) &&
74
+ val.length > 0 &&
75
+ typeof val[0] === 'object' &&
76
+ 'index' in val[0]) {
77
+ const dict = {};
78
+ for (const item of val) {
79
+ dict[String(item.index)] = item.value;
80
+ }
81
+ return dict;
82
+ }
83
+ // Array format: [undefined, 0.0, 0.5, 0.3, undefined, 0.2]
84
+ if (Array.isArray(val)) {
85
+ const dict = {};
86
+ for (let i = 0; i < val.length; i++) {
87
+ if (val[i] !== undefined && val[i] !== null) {
88
+ dict[String(i)] = val[i];
89
+ }
90
+ }
91
+ return dict;
92
+ }
93
+ return val;
94
+ }
95
+ /**
96
+ * Normalize a field value for JSON serialization.
97
+ * Handles typed arrays, sparse vector format conversion, and Int64 precision.
98
+ */
99
+ function normalizeValue(val, field) {
100
+ if (val === null || val === undefined)
101
+ return val;
102
+ const dt = (0, __1.convertToDataType)(field.data_type);
103
+ switch (dt) {
104
+ // Typed arrays → regular arrays
105
+ case __1.DataType.Float16Vector:
106
+ case __1.DataType.BFloat16Vector:
107
+ if (val instanceof Uint8Array) {
108
+ return Array.from(val);
109
+ }
110
+ return val;
111
+ case __1.DataType.Int8Vector:
112
+ if (val instanceof Int8Array) {
113
+ return Array.from(val);
114
+ }
115
+ return val;
116
+ // Sparse vector → dict format
117
+ case __1.DataType.SparseFloatVector:
118
+ return normalizeSparseVector(val);
119
+ // Date object → ISO string
120
+ case __1.DataType.Timestamptz:
121
+ if (val instanceof Date) {
122
+ return val.toISOString();
123
+ }
124
+ return val;
125
+ // Int64: wrap in marker to preserve precision through JSON.stringify
126
+ // Handles: number, string (from gRPC query), BigInt, Long objects
127
+ case __1.DataType.Int64:
128
+ return `${INT64_PREFIX}${String(val)}${INT64_SUFFIX}`;
129
+ // Array: normalize elements based on element_type
130
+ case __1.DataType.Array: {
131
+ if (!Array.isArray(val))
132
+ return val;
133
+ const et = field.element_type
134
+ ? (0, __1.convertToDataType)(field.element_type)
135
+ : null;
136
+ if (et === __1.DataType.Int64) {
137
+ return val.map((v) => `${INT64_PREFIX}${String(v)}${INT64_SUFFIX}`);
138
+ }
139
+ // Array<Struct>: recursively normalize sub-fields (Int64 inside structs)
140
+ if (et === __1.DataType.Struct && field.fields) {
141
+ const subFields = new Map(field.fields.map(sf => [sf.name, sf]));
142
+ return val.map((item) => {
143
+ const normalized = {};
144
+ for (const [k, v] of Object.entries(item)) {
145
+ const sf = subFields.get(k);
146
+ if (sf) {
147
+ normalized[k] = normalizeValue(v, sf);
148
+ }
149
+ else {
150
+ normalized[k] = v;
151
+ }
152
+ }
153
+ return normalized;
154
+ });
155
+ }
156
+ return val;
157
+ }
158
+ default:
159
+ return val;
160
+ }
161
+ }
162
+ /**
163
+ * Serialize a row to JSON, then fix Int64 markers to bare integer literals.
164
+ * "___INT64_1234567890123456789_INT64___" → 1234567890123456789
165
+ */
166
+ function stringifyRow(row) {
167
+ const json = JSON.stringify(row);
168
+ return json.replace(INT64_REGEX, '$1');
169
+ }
170
+ class JsonFormatter {
171
+ constructor() {
172
+ this.extension = '.json';
173
+ }
174
+ persist(columns, dynamicRows, rowCount, dir, schema) {
175
+ return __awaiter(this, void 0, void 0, function* () {
176
+ fs.mkdirSync(dir, { recursive: true });
177
+ const filePath = path.join(dir, `data${this.extension}`);
178
+ const ws = fs.createWriteStream(filePath, { encoding: 'utf8' });
179
+ // Build field lookup for normalization (only active fields)
180
+ const activeFields = schema.fields.filter(f => !f.autoID && !f.is_function_output);
181
+ const fieldMap = new Map(activeFields.map(f => [f.name, f]));
182
+ const fieldNames = [...columns.keys()];
183
+ const hasDynamic = schema.enable_dynamic_field && dynamicRows.length > 0;
184
+ ws.write('{"rows":[\n');
185
+ for (let i = 0; i < rowCount; i++) {
186
+ if (i > 0)
187
+ ws.write(',\n');
188
+ const row = {};
189
+ for (const name of fieldNames) {
190
+ const val = columns.get(name)[i];
191
+ const field = fieldMap.get(name);
192
+ row[name] = field ? normalizeValue(val, field) : val;
193
+ }
194
+ if (hasDynamic && dynamicRows[i]) {
195
+ const dyn = dynamicRows[i];
196
+ if (Object.keys(dyn).length > 0) {
197
+ row['$meta'] = dyn;
198
+ }
199
+ }
200
+ const ok = ws.write(stringifyRow(row));
201
+ if (!ok) {
202
+ yield (0, events_1.once)(ws, 'drain');
203
+ }
204
+ }
205
+ ws.write('\n]}');
206
+ ws.end();
207
+ yield (0, promises_1.finished)(ws);
208
+ return [filePath];
209
+ });
210
+ }
211
+ }
212
+ exports.JsonFormatter = JsonFormatter;
213
+ //# sourceMappingURL=JsonFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonFormatter.js","sourceRoot":"","sources":["../../../milvus/bulkwriter/JsonFormatter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,mCAA8B;AAC9B,8CAA2C;AAC3C,2BAA6D;AAG7D,mEAAmE;AACnE,0EAA0E;AAC1E,yEAAyE;AACzE,kEAAkE;AAClE,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,WAAW,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;AAEhF;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAQ;IACrC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAElD,8CAA8C;IAC9C,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACnB,OAAO,GAAG,KAAK,QAAQ;QACvB,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,EACtC;QACA,OAAO,GAAG,CAAC;KACZ;IAED,sDAAsD;IACtD,IACE,OAAO,GAAG,KAAK,QAAQ;QACvB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACnB,SAAS,IAAI,GAAG;QAChB,QAAQ,IAAI,GAAG,EACf;QACA,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC9C;QACD,OAAO,IAAI,CAAC;KACb;IAED,8CAA8C;IAC9C,IACE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAClB,GAAG,CAAC,MAAM,GAAG,CAAC;QACd,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC1B,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EACjB;QACA,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;SACvC;QACD,OAAO,IAAI,CAAC;KACb;IAED,2DAA2D;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;gBAC3C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aAC1B;SACF;QACD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,GAAQ,EAAE,KAAgB;IAChD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAElD,MAAM,EAAE,GAAG,IAAA,qBAAiB,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9C,QAAQ,EAAE,EAAE;QACV,gCAAgC;QAChC,KAAK,YAAQ,CAAC,aAAa,CAAC;QAC5B,KAAK,YAAQ,CAAC,cAAc;YAC1B,IAAI,GAAG,YAAY,UAAU,EAAE;gBAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACxB;YACD,OAAO,GAAG,CAAC;QAEb,KAAK,YAAQ,CAAC,UAAU;YACtB,IAAI,GAAG,YAAY,SAAS,EAAE;gBAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACxB;YACD,OAAO,GAAG,CAAC;QAEb,8BAA8B;QAC9B,KAAK,YAAQ,CAAC,iBAAiB;YAC7B,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAEpC,2BAA2B;QAC3B,KAAK,YAAQ,CAAC,WAAW;YACvB,IAAI,GAAG,YAAY,IAAI,EAAE;gBACvB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;aAC1B;YACD,OAAO,GAAG,CAAC;QAEb,qEAAqE;QACrE,kEAAkE;QAClE,KAAK,YAAQ,CAAC,KAAK;YACjB,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,CAAC;QAExD,kDAAkD;QAClD,KAAK,YAAQ,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;YACpC,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY;gBAC3B,CAAC,CAAC,IAAA,qBAAiB,EAAC,KAAK,CAAC,YAAY,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,KAAK,YAAQ,CAAC,KAAK,EAAE;gBACzB,OAAO,GAAG,CAAC,GAAG,CACZ,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,CACzD,CAAC;aACH;YACD,yEAAyE;YACzE,IAAI,EAAE,KAAK,YAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;oBAC3B,MAAM,UAAU,GAAwB,EAAE,CAAC;oBAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACzC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC5B,IAAI,EAAE,EAAE;4BACN,UAAU,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;yBACvC;6BAAM;4BACL,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;yBACnB;qBACF;oBACD,OAAO,UAAU,CAAC;gBACpB,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,GAAG,CAAC;SACZ;QAED;YACE,OAAO,GAAG,CAAC;KACd;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAwB;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAa,aAAa;IAA1B;QACW,cAAS,GAAG,OAAO,CAAC;IAsD/B,CAAC;IApDO,OAAO,CACX,OAA2B,EAC3B,WAAkC,EAClC,QAAgB,EAChB,GAAW,EACX,MAAwB;;YAExB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAEhE,4DAA4D;YAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,kBAAkB,CACxC,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACnC,CAAC;YAEF,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAEzE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACjC,IAAI,CAAC,GAAG,CAAC;oBAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAE3B,MAAM,GAAG,GAAwB,EAAE,CAAC;gBACpC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;oBAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,CAAC;oBAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;iBACtD;gBACD,IAAI,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;oBAChC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/B,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;qBACpB;iBACF;gBAED,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE,EAAE;oBACP,MAAM,IAAA,aAAI,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBACzB;aACF;YAED,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjB,EAAE,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAA,mBAAQ,EAAC,EAAE,CAAC,CAAC;YAEnB,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;KAAA;CACF;AAvDD,sCAuDC"}
@@ -0,0 +1,4 @@
1
+ import { Storage } from './Types';
2
+ export declare class LocalStorage implements Storage {
3
+ write(localPath: string, _remotePath: string): Promise<string>;
4
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LocalStorage = void 0;
13
+ class LocalStorage {
14
+ write(localPath, _remotePath) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ return localPath;
17
+ });
18
+ }
19
+ }
20
+ exports.LocalStorage = LocalStorage;
21
+ //# sourceMappingURL=LocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../../milvus/bulkwriter/LocalStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAa,YAAY;IACjB,KAAK,CAAC,SAAiB,EAAE,WAAmB;;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;CACF;AAJD,oCAIC"}
@@ -0,0 +1,5 @@
1
+ import { Formatter, BulkWriterSchema } from './Types';
2
+ export declare class ParquetFormatter implements Formatter {
3
+ readonly extension = ".parquet";
4
+ persist(columns: Map<string, any[]>, dynamicRows: Record<string, any>[], rowCount: number, dir: string, schema: BulkWriterSchema): Promise<string[]>;
5
+ }