@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.
- package/dist/browser/agent-client.d.ts +88 -0
- package/dist/browser/agent-client.js +174 -0
- package/dist/browser/agent.d.ts +103 -0
- package/dist/browser/agent.js +229 -0
- package/dist/browser/client.d.ts +90 -0
- package/dist/browser/client.js +449 -0
- package/dist/browser/completer.d.ts +9 -0
- package/dist/browser/completer.js +25 -0
- package/dist/browser/data-types.d.ts +44 -0
- package/dist/browser/data-types.js +119 -0
- package/dist/browser/database-client.d.ts +77 -0
- package/dist/browser/database-client.js +113 -0
- package/dist/browser/developer-client.d.ts +13 -0
- package/dist/browser/developer-client.js +35 -0
- package/dist/browser/document.d.ts +84 -0
- package/dist/browser/document.js +531 -0
- package/dist/browser/entrypoint.d.ts +49722 -0
- package/dist/browser/entrypoint.js +8659 -0
- package/dist/browser/event-emitter.d.ts +13 -0
- package/dist/browser/event-emitter.js +38 -0
- package/dist/browser/helpers.d.ts +26 -0
- package/dist/browser/helpers.js +79 -0
- package/dist/browser/index.d.ts +24 -0
- package/dist/browser/index.js +40 -0
- package/dist/browser/messaging-client.d.ts +76 -0
- package/dist/browser/messaging-client.js +248 -0
- package/dist/browser/participant-token.d.ts +36 -0
- package/dist/browser/participant-token.js +104 -0
- package/dist/browser/participant.d.ts +18 -0
- package/dist/browser/participant.js +42 -0
- package/dist/browser/protocol.d.ts +87 -0
- package/dist/browser/protocol.js +305 -0
- package/dist/browser/queues-client.d.ts +26 -0
- package/dist/browser/queues-client.js +47 -0
- package/dist/browser/requirement.d.ts +25 -0
- package/dist/browser/requirement.js +49 -0
- package/dist/browser/response.d.ts +60 -0
- package/dist/browser/response.js +138 -0
- package/dist/browser/room-client.d.ts +43 -0
- package/dist/browser/room-client.js +109 -0
- package/dist/browser/room-event.d.ts +60 -0
- package/dist/browser/room-event.js +82 -0
- package/dist/browser/room-server-client.d.ts +19 -0
- package/dist/browser/room-server-client.js +50 -0
- package/dist/browser/runtime.d.ts +6 -0
- package/dist/browser/runtime.js +8 -0
- package/dist/browser/schema.d.ts +83 -0
- package/dist/browser/schema.js +321 -0
- package/dist/browser/storage-client.d.ts +38 -0
- package/dist/browser/storage-client.js +86 -0
- package/dist/browser/stream-controller.d.ts +8 -0
- package/dist/browser/stream-controller.js +55 -0
- package/dist/browser/sync-client.d.ts +33 -0
- package/dist/browser/sync-client.js +123 -0
- package/dist/browser/utils.d.ts +14 -0
- package/dist/browser/utils.js +59 -0
- package/dist/node/agent-client.d.ts +88 -0
- package/dist/node/agent-client.js +174 -0
- package/dist/node/agent.d.ts +103 -0
- package/dist/node/agent.js +229 -0
- package/dist/node/client.d.ts +90 -0
- package/dist/node/client.js +449 -0
- package/dist/node/completer.d.ts +9 -0
- package/dist/node/completer.js +25 -0
- package/dist/node/data-types.d.ts +44 -0
- package/dist/node/data-types.js +119 -0
- package/dist/node/database-client.d.ts +77 -0
- package/dist/node/database-client.js +113 -0
- package/dist/node/developer-client.d.ts +13 -0
- package/dist/node/developer-client.js +35 -0
- package/dist/node/document.d.ts +84 -0
- package/dist/node/document.js +531 -0
- package/dist/node/entrypoint.d.ts +49722 -0
- package/dist/node/entrypoint.js +6321 -0
- package/dist/node/event-emitter.d.ts +13 -0
- package/dist/node/event-emitter.js +38 -0
- package/dist/node/helpers.d.ts +26 -0
- package/dist/node/helpers.js +79 -0
- package/dist/node/index.d.ts +24 -0
- package/dist/node/index.js +40 -0
- package/dist/node/messaging-client.d.ts +76 -0
- package/dist/node/messaging-client.js +248 -0
- package/dist/node/participant-token.d.ts +36 -0
- package/dist/node/participant-token.js +104 -0
- package/dist/node/participant.d.ts +18 -0
- package/dist/node/participant.js +42 -0
- package/dist/node/protocol.d.ts +87 -0
- package/dist/node/protocol.js +305 -0
- package/dist/node/queues-client.d.ts +26 -0
- package/dist/node/queues-client.js +47 -0
- package/dist/node/requirement.d.ts +25 -0
- package/dist/node/requirement.js +49 -0
- package/dist/node/response.d.ts +60 -0
- package/dist/node/response.js +138 -0
- package/dist/node/room-client.d.ts +43 -0
- package/dist/node/room-client.js +109 -0
- package/dist/node/room-event.d.ts +60 -0
- package/dist/node/room-event.js +82 -0
- package/dist/node/room-server-client.d.ts +19 -0
- package/dist/node/room-server-client.js +50 -0
- package/dist/node/runtime.d.ts +6 -0
- package/dist/node/runtime.js +8 -0
- package/dist/node/schema.d.ts +83 -0
- package/dist/node/schema.js +321 -0
- package/dist/node/storage-client.d.ts +38 -0
- package/dist/node/storage-client.js +86 -0
- package/dist/node/stream-controller.d.ts +8 -0
- package/dist/node/stream-controller.js +55 -0
- package/dist/node/sync-client.d.ts +33 -0
- package/dist/node/sync-client.js +123 -0
- package/dist/node/utils.d.ts +14 -0
- package/dist/node/utils.js +59 -0
- package/package.json +36 -22
- package/README.md +0 -0
- package/babel.config.cjs +0 -3
- package/client.js +0 -422
- package/dist/entrypoint.js +0 -11262
- package/dist/entrypoint.js.map +0 -7
- package/document-server-client.js +0 -246
- package/entrypoint.js +0 -11568
- package/index.js +0 -2
- package/protocol.js +0 -459
- package/server.js +0 -310
- package/test/assert.js +0 -19
- package/test/document-server-client.test.js +0 -33
- package/test/document.test.js +0 -313
- package/test/protocol.test.js +0 -64
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TextDataType = exports.VectorDataType = exports.FloatDataType = exports.DateDataType = exports.IntDataType = exports.DataType = exports._dataTypes = void 0;
|
|
4
|
+
exports._dataTypes = {};
|
|
5
|
+
class DataType {
|
|
6
|
+
constructor(_) { }
|
|
7
|
+
static fromJson(data) {
|
|
8
|
+
const ctor = exports._dataTypes[data.type];
|
|
9
|
+
if (!ctor) {
|
|
10
|
+
throw new Error(`Unknown data type: ${data.type}`);
|
|
11
|
+
}
|
|
12
|
+
return ctor.fromJson(data);
|
|
13
|
+
}
|
|
14
|
+
static int() {
|
|
15
|
+
return new IntDataType();
|
|
16
|
+
}
|
|
17
|
+
static date() {
|
|
18
|
+
return new DateDataType();
|
|
19
|
+
}
|
|
20
|
+
static float() {
|
|
21
|
+
return new FloatDataType();
|
|
22
|
+
}
|
|
23
|
+
static vector({ size, elementType }) {
|
|
24
|
+
return new VectorDataType({ size, elementType });
|
|
25
|
+
}
|
|
26
|
+
static text() {
|
|
27
|
+
return new TextDataType();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.DataType = DataType;
|
|
31
|
+
class IntDataType extends DataType {
|
|
32
|
+
constructor() {
|
|
33
|
+
super();
|
|
34
|
+
}
|
|
35
|
+
static fromJson(data) {
|
|
36
|
+
if (data.type !== "int") {
|
|
37
|
+
throw new Error(`Expected type 'int', got '${data.type}'`);
|
|
38
|
+
}
|
|
39
|
+
return new IntDataType();
|
|
40
|
+
}
|
|
41
|
+
toJson() {
|
|
42
|
+
return { type: "int" };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.IntDataType = IntDataType;
|
|
46
|
+
exports._dataTypes["int"] = IntDataType;
|
|
47
|
+
class DateDataType extends DataType {
|
|
48
|
+
constructor() {
|
|
49
|
+
super();
|
|
50
|
+
}
|
|
51
|
+
static fromJson(data) {
|
|
52
|
+
if (data.type !== "date") {
|
|
53
|
+
throw new Error(`Expected type 'date', got '${data.type}'`);
|
|
54
|
+
}
|
|
55
|
+
return new DateDataType();
|
|
56
|
+
}
|
|
57
|
+
toJson() {
|
|
58
|
+
return { type: "date" };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.DateDataType = DateDataType;
|
|
62
|
+
exports._dataTypes["date"] = DateDataType;
|
|
63
|
+
class FloatDataType extends DataType {
|
|
64
|
+
constructor() {
|
|
65
|
+
super();
|
|
66
|
+
}
|
|
67
|
+
static fromJson(data) {
|
|
68
|
+
if (data.type !== "float") {
|
|
69
|
+
throw new Error(`Expected type 'float', got '${data.type}'`);
|
|
70
|
+
}
|
|
71
|
+
return new FloatDataType();
|
|
72
|
+
}
|
|
73
|
+
toJson() {
|
|
74
|
+
return { type: "float" };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.FloatDataType = FloatDataType;
|
|
78
|
+
exports._dataTypes["float"] = FloatDataType;
|
|
79
|
+
class VectorDataType extends DataType {
|
|
80
|
+
constructor({ size, elementType }) {
|
|
81
|
+
super();
|
|
82
|
+
this.size = size;
|
|
83
|
+
this.elementType = elementType;
|
|
84
|
+
}
|
|
85
|
+
static fromJson(data) {
|
|
86
|
+
if (data.type !== "vector") {
|
|
87
|
+
throw new Error(`Expected type 'vector', got '${data.type}'`);
|
|
88
|
+
}
|
|
89
|
+
return new VectorDataType({
|
|
90
|
+
size: data.size,
|
|
91
|
+
elementType: DataType.fromJson(data.element_type),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
toJson() {
|
|
95
|
+
return {
|
|
96
|
+
type: "vector",
|
|
97
|
+
size: this.size,
|
|
98
|
+
element_type: this.elementType.toJson(),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.VectorDataType = VectorDataType;
|
|
103
|
+
exports._dataTypes["vector"] = VectorDataType;
|
|
104
|
+
class TextDataType extends DataType {
|
|
105
|
+
constructor() {
|
|
106
|
+
super();
|
|
107
|
+
}
|
|
108
|
+
static fromJson(data) {
|
|
109
|
+
if (data.type !== "text") {
|
|
110
|
+
throw new Error(`Expected type 'text', got '${data.type}'`);
|
|
111
|
+
}
|
|
112
|
+
return new TextDataType();
|
|
113
|
+
}
|
|
114
|
+
toJson() {
|
|
115
|
+
return { type: "text" };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.TextDataType = TextDataType;
|
|
119
|
+
exports._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
|
+
}
|
|
@@ -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>;
|