@meshagent/meshagent 0.0.11 → 0.0.13

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 +35 -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,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
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseClient = void 0;
4
+ const response_1 = require("./response");
5
+ class DatabaseClient {
6
+ constructor({ room }) {
7
+ this.room = room;
8
+ }
9
+ async listTables() {
10
+ const response = await this.room.sendRequest("database.list_tables", {});
11
+ return response?.json?.tables ?? [];
12
+ }
13
+ async createTable({ name, data, schema, mode = "create" }) {
14
+ let schemaDict;
15
+ if (schema) {
16
+ schemaDict = {};
17
+ for (const [key, value] of Object.entries(schema)) {
18
+ schemaDict[key] = value.toJson();
19
+ }
20
+ }
21
+ const payload = {
22
+ name,
23
+ data,
24
+ schema: schemaDict,
25
+ mode,
26
+ };
27
+ await this.room.sendRequest("database.create_table", payload);
28
+ }
29
+ async createTableWithSchema({ name, schema, data, mode = "create" }) {
30
+ return this.createTable({ name, schema, data, mode });
31
+ }
32
+ async createTableFromData({ name, data, mode = "create" }) {
33
+ return this.createTable({ name, data, mode });
34
+ }
35
+ async dropTable({ name, ignoreMissing = false }) {
36
+ await this.room.sendRequest("database.drop_table", { name, ignoreMissing });
37
+ }
38
+ async addColumns({ table, newColumns }) {
39
+ await this.room.sendRequest("database.add_columns", {
40
+ table,
41
+ new_columns: newColumns
42
+ });
43
+ }
44
+ async dropColumns({ table, columns }) {
45
+ await this.room.sendRequest("database.drop_columns", { table, columns });
46
+ }
47
+ async insert({ table, records }) {
48
+ await this.room.sendRequest("database.insert", { table, records });
49
+ }
50
+ async update({ table, where, values, valuesSql }) {
51
+ const payload = {
52
+ table,
53
+ where,
54
+ values,
55
+ valuesSql,
56
+ };
57
+ await this.room.sendRequest("database.update", payload);
58
+ }
59
+ async delete({ table, where }) {
60
+ await this.room.sendRequest("database.delete", { table, where });
61
+ }
62
+ async merge({ table, on, records }) {
63
+ await this.room.sendRequest("database.merge", { table, on, records });
64
+ }
65
+ async search({ table, text, vector, where, limit, select }) {
66
+ let whereClause = where;
67
+ if (where && typeof where === "object" && !Array.isArray(where)) {
68
+ const parts = [];
69
+ for (const [key, value] of Object.entries(where)) {
70
+ parts.push(`${key} = ${JSON.stringify(value)}`);
71
+ }
72
+ whereClause = parts.join(" AND ");
73
+ }
74
+ const payload = {
75
+ table,
76
+ where: whereClause,
77
+ text,
78
+ };
79
+ if (limit !== undefined) {
80
+ payload.limit = limit;
81
+ }
82
+ if (select !== undefined) {
83
+ payload.select = select;
84
+ }
85
+ if (vector !== undefined) {
86
+ payload.vector = vector;
87
+ }
88
+ const response = await this.room.sendRequest("database.search", payload);
89
+ if (response instanceof response_1.JsonResponse) {
90
+ if (response?.json?.results) {
91
+ return response.json.results;
92
+ }
93
+ }
94
+ return [];
95
+ }
96
+ async optimize(table) {
97
+ await this.room.sendRequest("database.optimize", { table });
98
+ }
99
+ async createVectorIndex({ table, column }) {
100
+ await this.room.sendRequest("database.create_vector_index", { table, column });
101
+ }
102
+ async createScalarIndex({ table, column }) {
103
+ await this.room.sendRequest("database.create_scalar_index", { table, column });
104
+ }
105
+ async createFullTextSearchIndex({ table, column }) {
106
+ await this.room.sendRequest("database.create_full_text_search_index", { table, column });
107
+ }
108
+ async listIndexes({ table }) {
109
+ const response = await this.room.sendRequest("database.list_indexes", { table });
110
+ return response?.json ?? {};
111
+ }
112
+ }
113
+ exports.DatabaseClient = DatabaseClient;
@@ -0,0 +1,13 @@
1
+ import { EventEmitter } from "./event-emitter";
2
+ import { RoomClient } from "./room-client";
3
+ import { RoomLogEvent } from "./room-event";
4
+ export declare class DeveloperClient extends EventEmitter<RoomLogEvent> {
5
+ private client;
6
+ constructor({ room }: {
7
+ room: RoomClient;
8
+ });
9
+ private _handleDeveloperLog;
10
+ log(type: string, data: Record<string, any>): Promise<void>;
11
+ enable(): Promise<void>;
12
+ disable(): Promise<void>;
13
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeveloperClient = void 0;
4
+ const event_emitter_1 = require("./event-emitter");
5
+ const utils_1 = require("./utils");
6
+ const room_event_1 = require("./room-event");
7
+ class DeveloperClient extends event_emitter_1.EventEmitter {
8
+ constructor({ room }) {
9
+ super();
10
+ this.client = room;
11
+ this.client.protocol.addHandler("developer.log", this._handleDeveloperLog.bind(this));
12
+ }
13
+ async _handleDeveloperLog(protocol, messageId, type, bytes) {
14
+ const rawJson = JSON.parse(utils_1.decoder.decode(bytes || new Uint8Array()));
15
+ const event = new room_event_1.RoomLogEvent({
16
+ type: rawJson["type"],
17
+ data: rawJson["data"],
18
+ });
19
+ this.client.emit(event);
20
+ this.emit("log", event);
21
+ }
22
+ async log(type, data) {
23
+ const message = (0, utils_1.packMessage)({ type, data }, undefined);
24
+ await this.client.protocol.send("developer.log", message);
25
+ }
26
+ async enable() {
27
+ const message = (0, utils_1.packMessage)({}, undefined);
28
+ await this.client.protocol.send("developer.watch", message);
29
+ }
30
+ async disable() {
31
+ const message = (0, utils_1.packMessage)({}, undefined);
32
+ await this.client.protocol.send("developer.unwatch", message);
33
+ }
34
+ }
35
+ exports.DeveloperClient = DeveloperClient;
@@ -0,0 +1,84 @@
1
+ import { MeshSchema, ElementType } from "./schema";
2
+ import { EventEmitter } from "./event-emitter";
3
+ export interface RuntimeDocumentEvent {
4
+ type: string;
5
+ doc: RuntimeDocument;
6
+ }
7
+ export declare class RuntimeDocument extends EventEmitter<RuntimeDocumentEvent> {
8
+ readonly id: string;
9
+ readonly schema: MeshSchema;
10
+ readonly sendChanges: (changes: Record<string, any>) => void;
11
+ readonly sendChangesToBackend?: (msg: string) => void;
12
+ private _changeSubscribers;
13
+ constructor({ id, schema, sendChanges, sendChangesToBackend }: {
14
+ id: string;
15
+ schema: MeshSchema;
16
+ sendChanges: (changes: Record<string, any>) => void;
17
+ sendChangesToBackend?: (msg: string) => void;
18
+ });
19
+ listen(onData: (data: Record<string, any>) => void): {
20
+ unsubscribe: () => void;
21
+ };
22
+ private _root?;
23
+ get root(): Element;
24
+ private _createNode;
25
+ receiveChanges(message: Record<string, any>): void;
26
+ }
27
+ export interface NodeEvent {
28
+ type: string;
29
+ node: Node;
30
+ }
31
+ export declare class Node extends EventEmitter<NodeEvent> {
32
+ parent: Element | null;
33
+ doc: RuntimeDocument;
34
+ constructor({ parent, doc }: {
35
+ parent: Element | null;
36
+ doc: RuntimeDocument;
37
+ });
38
+ }
39
+ export declare class Element extends Node {
40
+ tagName: string;
41
+ attributes: Record<string, any>;
42
+ elementType: ElementType;
43
+ children: Node[];
44
+ constructor({ parent, tagName, attributes, doc, elementType }: {
45
+ parent: Element | null;
46
+ tagName: string;
47
+ attributes: Record<string, any>;
48
+ doc: RuntimeDocument;
49
+ elementType: ElementType;
50
+ });
51
+ getNodeByID(id: string): Element | null;
52
+ get id(): string | undefined;
53
+ getAttribute(name: string): any;
54
+ setAttribute(name: string, value: any): void;
55
+ removeAttribute(name: string): void;
56
+ private _ensureChildValid;
57
+ private _validateElementAttributes;
58
+ createChildElement(tagName: string, attributes: Record<string, any>, opts?: {
59
+ id?: string;
60
+ }): Element;
61
+ createChildElementAt(index: number, tagName: string, attributes: Record<string, any>, opts?: {
62
+ id?: string;
63
+ }): Element;
64
+ createChildElementAfter(element: Element, tagName: string, attributes: Record<string, any>, opts?: {
65
+ id?: string;
66
+ }): Element;
67
+ private _defaultChildren;
68
+ delete(): void;
69
+ getChildren(): Node[];
70
+ appendJson(json: Record<string, any>): Element;
71
+ }
72
+ export declare class TextElement extends Node {
73
+ delta: Array<Record<string, any>>;
74
+ constructor({ parent, delta, doc }: {
75
+ parent: Element;
76
+ delta: Array<Record<string, any>>;
77
+ doc: RuntimeDocument;
78
+ });
79
+ insert(index: number, text: string, attributes?: Record<string, any>): void;
80
+ format(from: number, length: number, attributes: Record<string, any>): void;
81
+ delete(index: number, length: number): void;
82
+ }
83
+ export declare function tagNameFromJson(json: Record<string, any>): string;
84
+ export declare function attributesFromJson(json: Record<string, any>): Record<string, any>;