@meshagent/meshagent 0.3.1 → 0.4.0

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 (84) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/browser/entrypoint.js +7956 -5611
  3. package/dist/browser/helpers.d.ts +10 -4
  4. package/dist/browser/helpers.js +14 -39
  5. package/dist/browser/index.d.ts +1 -0
  6. package/dist/browser/index.js +1 -0
  7. package/dist/browser/participant-token.d.ts +4 -4
  8. package/dist/browser/participant-token.js +4 -9
  9. package/dist/browser/protocol.d.ts +5 -1
  10. package/dist/browser/protocol.js +7 -2
  11. package/dist/browser/room-client.d.ts +4 -1
  12. package/dist/browser/room-client.js +2 -2
  13. package/dist/browser/sync-client.d.ts +5 -1
  14. package/dist/browser/sync-client.js +13 -2
  15. package/dist/esm/agent-client.d.ts +88 -0
  16. package/dist/esm/agent-client.js +166 -0
  17. package/dist/esm/agent.d.ts +103 -0
  18. package/dist/esm/agent.js +218 -0
  19. package/dist/esm/client.d.ts +90 -0
  20. package/dist/esm/client.js +443 -0
  21. package/dist/esm/completer.d.ts +9 -0
  22. package/dist/esm/completer.js +21 -0
  23. package/dist/esm/data-types.d.ts +44 -0
  24. package/dist/esm/data-types.js +110 -0
  25. package/dist/esm/database-client.d.ts +77 -0
  26. package/dist/esm/database-client.js +109 -0
  27. package/dist/esm/developer-client.d.ts +13 -0
  28. package/dist/esm/developer-client.js +31 -0
  29. package/dist/esm/document.d.ts +84 -0
  30. package/dist/esm/document.js +522 -0
  31. package/dist/esm/entrypoint.d.ts +49722 -0
  32. package/dist/esm/entrypoint.js +6313 -0
  33. package/dist/esm/event-emitter.d.ts +13 -0
  34. package/dist/esm/event-emitter.js +34 -0
  35. package/dist/esm/helpers.d.ts +32 -0
  36. package/dist/esm/helpers.js +46 -0
  37. package/dist/esm/index.d.ts +25 -0
  38. package/dist/esm/index.js +25 -0
  39. package/dist/esm/messaging-client.d.ts +76 -0
  40. package/dist/esm/messaging-client.js +241 -0
  41. package/dist/esm/participant-token.d.ts +36 -0
  42. package/dist/esm/participant-token.js +91 -0
  43. package/dist/esm/participant.d.ts +18 -0
  44. package/dist/esm/participant.js +36 -0
  45. package/dist/esm/protocol.d.ts +91 -0
  46. package/dist/esm/protocol.js +287 -0
  47. package/dist/esm/queues-client.d.ts +26 -0
  48. package/dist/esm/queues-client.js +42 -0
  49. package/dist/esm/requirement.d.ts +25 -0
  50. package/dist/esm/requirement.js +42 -0
  51. package/dist/esm/response.d.ts +60 -0
  52. package/dist/esm/response.js +128 -0
  53. package/dist/esm/room-client.d.ts +46 -0
  54. package/dist/esm/room-client.js +106 -0
  55. package/dist/esm/room-event.d.ts +60 -0
  56. package/dist/esm/room-event.js +72 -0
  57. package/dist/esm/room-server-client.d.ts +19 -0
  58. package/dist/esm/room-server-client.js +45 -0
  59. package/dist/esm/runtime.d.ts +6 -0
  60. package/dist/esm/runtime.js +1 -0
  61. package/dist/esm/schema.d.ts +83 -0
  62. package/dist/esm/schema.js +312 -0
  63. package/dist/esm/storage-client.d.ts +38 -0
  64. package/dist/esm/storage-client.js +79 -0
  65. package/dist/esm/stream-controller.d.ts +8 -0
  66. package/dist/esm/stream-controller.js +51 -0
  67. package/dist/esm/sync-client.d.ts +37 -0
  68. package/dist/esm/sync-client.js +125 -0
  69. package/dist/esm/utils.d.ts +14 -0
  70. package/dist/esm/utils.js +44 -0
  71. package/dist/node/entrypoint.js +9 -4
  72. package/dist/node/helpers.d.ts +10 -4
  73. package/dist/node/helpers.js +14 -39
  74. package/dist/node/index.d.ts +1 -0
  75. package/dist/node/index.js +1 -0
  76. package/dist/node/participant-token.d.ts +4 -4
  77. package/dist/node/participant-token.js +4 -9
  78. package/dist/node/protocol.d.ts +5 -1
  79. package/dist/node/protocol.js +7 -2
  80. package/dist/node/room-client.d.ts +4 -1
  81. package/dist/node/room-client.js +2 -2
  82. package/dist/node/sync-client.d.ts +5 -1
  83. package/dist/node/sync-client.js +13 -2
  84. package/package.json +4 -3
@@ -0,0 +1,443 @@
1
+ import { v4 as uuid } from "uuid";
2
+ export class XmlElement {
3
+ constructor(parent, { tagName, attributes }, doc) {
4
+ this._data = {
5
+ tagName,
6
+ attributes,
7
+ children: [],
8
+ };
9
+ this._parent = parent;
10
+ this._doc = doc;
11
+ }
12
+ getNodeByID(id) {
13
+ if (id === this.id) {
14
+ return this;
15
+ }
16
+ for (const child of this.getChildren()) {
17
+ if (child instanceof XmlElement) {
18
+ const found = child.getNodeByID(id);
19
+ if (found) {
20
+ return found;
21
+ }
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ get id() {
27
+ return this.getAttribute("$id");
28
+ }
29
+ get doc() {
30
+ return this._doc;
31
+ }
32
+ get data() {
33
+ return this._data;
34
+ }
35
+ get tagName() {
36
+ return this._data.tagName;
37
+ }
38
+ get parent() {
39
+ return this._parent;
40
+ }
41
+ getAttribute(name) {
42
+ return this._data.attributes[name];
43
+ }
44
+ setAttribute(name, value) {
45
+ this.doc.sendChanges({
46
+ documentID: this.doc.id,
47
+ changes: [
48
+ {
49
+ nodeID: this.id,
50
+ setAttributes: {
51
+ [name]: value,
52
+ },
53
+ },
54
+ ],
55
+ });
56
+ }
57
+ removeAttribute(name) {
58
+ this.doc.sendChanges({
59
+ documentID: this.doc.id,
60
+ changes: [
61
+ {
62
+ nodeID: this.id,
63
+ removeAttributes: [name],
64
+ },
65
+ ],
66
+ });
67
+ }
68
+ createChildElement(tagName, attributes) {
69
+ const newId = uuid();
70
+ const elementData = {
71
+ name: tagName,
72
+ attributes: {
73
+ $id: newId,
74
+ ...attributes,
75
+ },
76
+ children: this._defaultChildren(tagName),
77
+ };
78
+ this.doc.sendChanges({
79
+ documentID: this.doc.id,
80
+ changes: [
81
+ {
82
+ nodeID: this.id,
83
+ insertChildren: {
84
+ children: [
85
+ {
86
+ element: elementData,
87
+ },
88
+ ],
89
+ },
90
+ },
91
+ ],
92
+ });
93
+ return this.getNodeByID(newId);
94
+ }
95
+ createChildElementAt(index, tagName, attributes) {
96
+ const newId = uuid();
97
+ const elementData = {
98
+ name: tagName,
99
+ attributes: {
100
+ $id: newId,
101
+ ...attributes,
102
+ },
103
+ children: this._defaultChildren(tagName),
104
+ };
105
+ this.doc.sendChanges({
106
+ documentID: this.doc.id,
107
+ changes: [
108
+ {
109
+ nodeID: this.id,
110
+ insertChildren: {
111
+ index: index,
112
+ children: [
113
+ {
114
+ element: elementData,
115
+ },
116
+ ],
117
+ },
118
+ },
119
+ ],
120
+ });
121
+ return this.getNodeByID(newId);
122
+ }
123
+ createChildElementAfter(element, tagName, attributes) {
124
+ if (element instanceof XmlElement) {
125
+ if (element.parent?.id !== this.id) {
126
+ throw new Error("Element does not belong to this node");
127
+ }
128
+ }
129
+ else {
130
+ if (element.parent?.id !== this.id) {
131
+ throw new Error("Text does not belong to this node");
132
+ }
133
+ }
134
+ const newId = uuid();
135
+ const elementData = {
136
+ name: tagName,
137
+ attributes: {
138
+ $id: newId,
139
+ ...attributes,
140
+ },
141
+ children: this._defaultChildren(tagName),
142
+ };
143
+ this.doc.sendChanges({
144
+ documentID: this.doc.id,
145
+ changes: [
146
+ {
147
+ nodeID: this.id,
148
+ insertChildren: {
149
+ after: element.id,
150
+ children: [
151
+ {
152
+ element: elementData,
153
+ },
154
+ ],
155
+ },
156
+ },
157
+ ],
158
+ });
159
+ return this.getNodeByID(newId);
160
+ }
161
+ _defaultChildren(tagName) {
162
+ if (tagName === "text") {
163
+ return [
164
+ {
165
+ text: {
166
+ delta: [],
167
+ },
168
+ },
169
+ ];
170
+ }
171
+ return [];
172
+ }
173
+ delete() {
174
+ this.doc.sendChanges({
175
+ documentID: this.doc.id,
176
+ changes: [
177
+ {
178
+ nodeID: this.id,
179
+ delete: {},
180
+ },
181
+ ],
182
+ });
183
+ }
184
+ getChildren() {
185
+ return this._data.children;
186
+ }
187
+ }
188
+ export class XmlText {
189
+ constructor(parent, data, doc) {
190
+ this._data = data;
191
+ this.parent = parent;
192
+ this.doc = doc;
193
+ }
194
+ get delta() {
195
+ return this._data.delta;
196
+ }
197
+ insert(index, text, attributes) {
198
+ this.doc.sendChanges({
199
+ documentID: this.doc.id,
200
+ changes: [
201
+ {
202
+ nodeID: this.parent.id,
203
+ insertText: {
204
+ index: index,
205
+ text: text,
206
+ attributes: attributes,
207
+ },
208
+ },
209
+ ],
210
+ });
211
+ }
212
+ format(from, length, attributes) {
213
+ this.doc.sendChanges({
214
+ documentID: this.doc.id,
215
+ changes: [
216
+ {
217
+ nodeID: this.parent.id,
218
+ formatText: {
219
+ from: from,
220
+ length: length,
221
+ attributes: attributes,
222
+ },
223
+ },
224
+ ],
225
+ });
226
+ }
227
+ delete(index, length) {
228
+ this.doc.sendChanges({
229
+ documentID: this.doc.id,
230
+ changes: [
231
+ {
232
+ nodeID: this.parent.id,
233
+ deleteText: {
234
+ index: index,
235
+ length: length,
236
+ },
237
+ },
238
+ ],
239
+ });
240
+ }
241
+ get id() {
242
+ return this.parent?.id;
243
+ }
244
+ }
245
+ export class ClientXmlDocument {
246
+ constructor({ id, sendChanges, }) {
247
+ this._root = new XmlElement(null, { tagName: "root", attributes: {} }, this);
248
+ this.sendChanges = sendChanges;
249
+ this._id = id;
250
+ }
251
+ get id() {
252
+ return this._id;
253
+ }
254
+ get root() {
255
+ return this._root;
256
+ }
257
+ _createNode(parent, data) {
258
+ if (data.element) {
259
+ const element = new XmlElement(parent, {
260
+ tagName: data.element.name,
261
+ attributes: data.element.attributes,
262
+ }, this);
263
+ if (data.element.children) {
264
+ for (const child of data.element.children) {
265
+ element.data.children.push(this._createNode(element, child));
266
+ }
267
+ }
268
+ return element;
269
+ }
270
+ else if (data.text) {
271
+ return new XmlText(parent, data.text, this);
272
+ }
273
+ else {
274
+ throw new Error("Unsupported " + JSON.stringify(data));
275
+ }
276
+ }
277
+ receiveChanges(message) {
278
+ const nodeID = message.target;
279
+ const target = message.root ? this.root : this.root.getNodeByID(nodeID);
280
+ if (!target) {
281
+ throw new Error(`Target node ${nodeID} not found in document`);
282
+ }
283
+ let retain = 0;
284
+ for (const delta of message.elements) {
285
+ if (delta.retain) {
286
+ retain += delta.retain;
287
+ }
288
+ if (delta.insert) {
289
+ for (const insertItem of delta.insert) {
290
+ const newNode = this._createNode(target, insertItem);
291
+ target.data.children.splice(retain, 0, newNode);
292
+ retain++;
293
+ }
294
+ }
295
+ else if (typeof delta.delete === "number") {
296
+ target.data.children.splice(retain, delta.delete);
297
+ retain -= delta.delete;
298
+ }
299
+ }
300
+ if (message.text.length !== 0) {
301
+ if (target.tagName !== "text") {
302
+ throw new Error(`Node is not a text node: ${target.tagName}`);
303
+ }
304
+ const textNode = target.data.children[0];
305
+ let i = 0;
306
+ let offset = 0;
307
+ const targetDelta = textNode.delta;
308
+ if (!targetDelta) {
309
+ throw new Error("Text node is missing delta");
310
+ }
311
+ for (const delta of message.text) {
312
+ if (delta.insert) {
313
+ if (i === targetDelta.length) {
314
+ targetDelta.push({
315
+ insert: delta.insert,
316
+ attributes: delta.attributes ?? {},
317
+ });
318
+ i++;
319
+ offset += delta.insert.length;
320
+ retain += delta.insert.length;
321
+ }
322
+ else {
323
+ const str = targetDelta[i].insert;
324
+ targetDelta[i].insert =
325
+ str.slice(0, retain - offset) +
326
+ delta.insert +
327
+ str.slice(retain - offset);
328
+ retain += delta.insert.length;
329
+ }
330
+ }
331
+ else if (typeof delta.delete === "number") {
332
+ let deleted = 0;
333
+ while (delta.delete > deleted) {
334
+ const remaining = delta.delete - deleted;
335
+ if (retain > offset) {
336
+ const str = targetDelta[i].insert;
337
+ const start = str.slice(0, retain - offset);
338
+ const end = str.slice(retain - offset);
339
+ if (remaining >= end.length) {
340
+ targetDelta[i].insert = start;
341
+ deleted += end.length;
342
+ i++;
343
+ offset += str.length;
344
+ }
345
+ else {
346
+ targetDelta[i].insert = start + end.slice(remaining);
347
+ deleted += remaining;
348
+ }
349
+ }
350
+ else if (remaining >= targetDelta[i].insert.length) {
351
+ deleted += targetDelta[i].insert.length;
352
+ offset += targetDelta[i].insert.length;
353
+ targetDelta.splice(i, 1);
354
+ }
355
+ else {
356
+ const str = targetDelta[i].insert;
357
+ const start = str.substr(0, remaining);
358
+ const end = str.slice(remaining);
359
+ targetDelta[i].insert = end;
360
+ deleted += start.length;
361
+ }
362
+ }
363
+ }
364
+ else if (delta.attributes) {
365
+ let formatted = 0;
366
+ while (delta.retain && delta.retain > formatted) {
367
+ const remaining = delta.retain - formatted;
368
+ if (retain > offset) {
369
+ const str = targetDelta[i].insert;
370
+ const start = str.slice(0, retain - offset);
371
+ const end = str.slice(retain - offset);
372
+ if (remaining >= end.length) {
373
+ targetDelta[i].insert = start;
374
+ targetDelta.splice(i + 1, 0, {
375
+ insert: end,
376
+ attributes: {
377
+ ...targetDelta[i].attributes,
378
+ ...delta.attributes,
379
+ },
380
+ });
381
+ formatted += end.length;
382
+ i += 2;
383
+ offset += str.length;
384
+ }
385
+ else {
386
+ targetDelta[i].insert = start;
387
+ targetDelta.splice(i + 1, 0, {
388
+ insert: end.slice(0, remaining),
389
+ attributes: {
390
+ ...targetDelta[i].attributes,
391
+ ...delta.attributes,
392
+ },
393
+ });
394
+ targetDelta.splice(i + 2, 0, {
395
+ insert: end.slice(remaining),
396
+ attributes: { ...targetDelta[i].attributes },
397
+ });
398
+ formatted += remaining;
399
+ i += 3;
400
+ offset += start.length + remaining;
401
+ }
402
+ }
403
+ else if (delta.retain - formatted >= targetDelta[i].insert.length) {
404
+ formatted += targetDelta[i].insert.length;
405
+ Object.assign(targetDelta[i].attributes, delta.attributes);
406
+ offset += targetDelta[i].insert.length;
407
+ i++;
408
+ }
409
+ else {
410
+ const str = targetDelta[i].insert;
411
+ const start = str.substr(0, remaining);
412
+ const end = str.slice(remaining);
413
+ targetDelta[i].insert = start;
414
+ targetDelta.push({
415
+ insert: end,
416
+ attributes: { ...targetDelta[i].attributes },
417
+ });
418
+ Object.assign(targetDelta[i].attributes, delta.attributes);
419
+ formatted += remaining;
420
+ }
421
+ }
422
+ if (delta.retain) {
423
+ retain += delta.retain;
424
+ }
425
+ }
426
+ else if (typeof delta.retain === "number") {
427
+ retain += delta.retain;
428
+ while (i < targetDelta.length &&
429
+ retain > offset + targetDelta[i]?.insert.length) {
430
+ offset += targetDelta[i].insert.length;
431
+ i++;
432
+ }
433
+ }
434
+ }
435
+ }
436
+ for (const change of message.attributes.set) {
437
+ target.data.attributes[change.name] = change.value;
438
+ }
439
+ for (const name of message.attributes.delete) {
440
+ delete target.data.attributes[name];
441
+ }
442
+ }
443
+ }
@@ -0,0 +1,9 @@
1
+ export declare class Completer<T = any> {
2
+ completed: boolean;
3
+ fut: Promise<T>;
4
+ resolve: (value?: T | PromiseLike<T>) => void;
5
+ reject: (reason?: any) => void;
6
+ constructor();
7
+ complete(value?: T | PromiseLike<T>): void;
8
+ completeError(reason?: any): void;
9
+ }
@@ -0,0 +1,21 @@
1
+ export class Completer {
2
+ constructor() {
3
+ this.completed = false;
4
+ this.fut = new Promise((resolve, reject) => {
5
+ this.resolve = (value) => {
6
+ this.completed = true;
7
+ resolve(value);
8
+ };
9
+ this.reject = (reason) => {
10
+ this.completed = true;
11
+ reject(reason);
12
+ };
13
+ });
14
+ }
15
+ complete(value) {
16
+ this.resolve(value);
17
+ }
18
+ completeError(reason) {
19
+ this.reject(reason);
20
+ }
21
+ }
@@ -0,0 +1,44 @@
1
+ export declare const _dataTypes: Record<string, typeof DataType>;
2
+ export declare abstract class DataType {
3
+ constructor(_?: any);
4
+ abstract toJson(): Record<string, unknown>;
5
+ static fromJson(data: any): DataType;
6
+ static int(): IntDataType;
7
+ static date(): DateDataType;
8
+ static float(): FloatDataType;
9
+ static vector({ size, elementType }: {
10
+ size: number;
11
+ elementType: DataType;
12
+ }): VectorDataType;
13
+ static text(): TextDataType;
14
+ }
15
+ export declare class IntDataType extends DataType {
16
+ constructor();
17
+ static fromJson(data: any): IntDataType;
18
+ toJson(): Record<string, unknown>;
19
+ }
20
+ export declare class DateDataType extends DataType {
21
+ constructor();
22
+ static fromJson(data: any): DateDataType;
23
+ toJson(): Record<string, unknown>;
24
+ }
25
+ export declare class FloatDataType extends DataType {
26
+ constructor();
27
+ static fromJson(data: any): FloatDataType;
28
+ toJson(): Record<string, unknown>;
29
+ }
30
+ export declare class VectorDataType extends DataType {
31
+ size: number;
32
+ elementType: DataType;
33
+ constructor({ size, elementType }: {
34
+ size: number;
35
+ elementType: DataType;
36
+ });
37
+ static fromJson(data: any): VectorDataType;
38
+ toJson(): Record<string, unknown>;
39
+ }
40
+ export declare class TextDataType extends DataType {
41
+ constructor();
42
+ static fromJson(data: any): TextDataType;
43
+ toJson(): Record<string, unknown>;
44
+ }
@@ -0,0 +1,110 @@
1
+ export const _dataTypes = {};
2
+ export class DataType {
3
+ constructor(_) { }
4
+ static fromJson(data) {
5
+ const ctor = _dataTypes[data.type];
6
+ if (!ctor) {
7
+ throw new Error(`Unknown data type: ${data.type}`);
8
+ }
9
+ return ctor.fromJson(data);
10
+ }
11
+ static int() {
12
+ return new IntDataType();
13
+ }
14
+ static date() {
15
+ return new DateDataType();
16
+ }
17
+ static float() {
18
+ return new FloatDataType();
19
+ }
20
+ static vector({ size, elementType }) {
21
+ return new VectorDataType({ size, elementType });
22
+ }
23
+ static text() {
24
+ return new TextDataType();
25
+ }
26
+ }
27
+ export class IntDataType extends DataType {
28
+ constructor() {
29
+ super();
30
+ }
31
+ static fromJson(data) {
32
+ if (data.type !== "int") {
33
+ throw new Error(`Expected type 'int', got '${data.type}'`);
34
+ }
35
+ return new IntDataType();
36
+ }
37
+ toJson() {
38
+ return { type: "int" };
39
+ }
40
+ }
41
+ _dataTypes["int"] = IntDataType;
42
+ export class DateDataType extends DataType {
43
+ constructor() {
44
+ super();
45
+ }
46
+ static fromJson(data) {
47
+ if (data.type !== "date") {
48
+ throw new Error(`Expected type 'date', got '${data.type}'`);
49
+ }
50
+ return new DateDataType();
51
+ }
52
+ toJson() {
53
+ return { type: "date" };
54
+ }
55
+ }
56
+ _dataTypes["date"] = DateDataType;
57
+ export class FloatDataType extends DataType {
58
+ constructor() {
59
+ super();
60
+ }
61
+ static fromJson(data) {
62
+ if (data.type !== "float") {
63
+ throw new Error(`Expected type 'float', got '${data.type}'`);
64
+ }
65
+ return new FloatDataType();
66
+ }
67
+ toJson() {
68
+ return { type: "float" };
69
+ }
70
+ }
71
+ _dataTypes["float"] = FloatDataType;
72
+ export class VectorDataType extends DataType {
73
+ constructor({ size, elementType }) {
74
+ super();
75
+ this.size = size;
76
+ this.elementType = elementType;
77
+ }
78
+ static fromJson(data) {
79
+ if (data.type !== "vector") {
80
+ throw new Error(`Expected type 'vector', got '${data.type}'`);
81
+ }
82
+ return new VectorDataType({
83
+ size: data.size,
84
+ elementType: DataType.fromJson(data.element_type),
85
+ });
86
+ }
87
+ toJson() {
88
+ return {
89
+ type: "vector",
90
+ size: this.size,
91
+ element_type: this.elementType.toJson(),
92
+ };
93
+ }
94
+ }
95
+ _dataTypes["vector"] = VectorDataType;
96
+ export class TextDataType extends DataType {
97
+ constructor() {
98
+ super();
99
+ }
100
+ static fromJson(data) {
101
+ if (data.type !== "text") {
102
+ throw new Error(`Expected type 'text', got '${data.type}'`);
103
+ }
104
+ return new TextDataType();
105
+ }
106
+ toJson() {
107
+ return { type: "text" };
108
+ }
109
+ }
110
+ _dataTypes["text"] = TextDataType;
@@ -0,0 +1,77 @@
1
+ import { RoomClient } from "./room-client";
2
+ import { DataType } from "./data-types";
3
+ export type CreateMode = "create" | "overwrite" | "create_if_not_exists";
4
+ export declare class DatabaseClient {
5
+ private room;
6
+ constructor({ room }: {
7
+ room: RoomClient;
8
+ });
9
+ listTables(): Promise<string[]>;
10
+ private createTable;
11
+ createTableWithSchema({ name, schema, data, mode }: {
12
+ name: string;
13
+ schema?: Record<string, DataType>;
14
+ data?: Array<Record<string, any>>;
15
+ mode?: CreateMode;
16
+ }): Promise<void>;
17
+ createTableFromData({ name, data, mode }: {
18
+ name: string;
19
+ data?: Array<Record<string, any>>;
20
+ mode?: CreateMode;
21
+ }): Promise<void>;
22
+ dropTable({ name, ignoreMissing }: {
23
+ name: string;
24
+ ignoreMissing?: boolean;
25
+ }): Promise<void>;
26
+ addColumns({ table, newColumns }: {
27
+ table: string;
28
+ newColumns: Record<string, string>;
29
+ }): Promise<void>;
30
+ dropColumns({ table, columns }: {
31
+ table: string;
32
+ columns: string[];
33
+ }): Promise<void>;
34
+ insert({ table, records }: {
35
+ table: string;
36
+ records: Array<Record<string, any>>;
37
+ }): Promise<void>;
38
+ update({ table, where, values, valuesSql }: {
39
+ table: string;
40
+ where: string;
41
+ values?: Record<string, any>;
42
+ valuesSql?: Record<string, string>;
43
+ }): Promise<void>;
44
+ delete({ table, where }: {
45
+ table: string;
46
+ where: string;
47
+ }): Promise<void>;
48
+ merge({ table, on, records }: {
49
+ table: string;
50
+ on: string;
51
+ records: any;
52
+ }): Promise<void>;
53
+ search({ table, text, vector, where, limit, select }: {
54
+ table: string;
55
+ text?: string;
56
+ vector?: number[];
57
+ where?: string | Record<string, any>;
58
+ limit?: number;
59
+ select?: string[];
60
+ }): Promise<Array<Record<string, any>>>;
61
+ optimize(table: string): Promise<void>;
62
+ createVectorIndex({ table, column }: {
63
+ table: string;
64
+ column: string;
65
+ }): Promise<void>;
66
+ createScalarIndex({ table, column }: {
67
+ table: string;
68
+ column: string;
69
+ }): Promise<void>;
70
+ createFullTextSearchIndex({ table, column }: {
71
+ table: string;
72
+ column: string;
73
+ }): Promise<void>;
74
+ listIndexes({ table }: {
75
+ table: string;
76
+ }): Promise<Record<string, any>>;
77
+ }