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