@meshagent/meshagent 0.36.3 → 0.37.1

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 (59) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/browser/agent-client.d.ts +2 -10
  3. package/dist/browser/agent-client.js +2 -30
  4. package/dist/browser/agent.d.ts +22 -22
  5. package/dist/browser/agent.js +36 -16
  6. package/dist/browser/containers-client.d.ts +7 -19
  7. package/dist/browser/containers-client.js +27 -21
  8. package/dist/browser/data-types.d.ts +12 -0
  9. package/dist/browser/data-types.js +39 -1
  10. package/dist/browser/database-client.d.ts +134 -47
  11. package/dist/browser/database-client.js +359 -133
  12. package/dist/browser/index.d.ts +1 -0
  13. package/dist/browser/index.js +1 -0
  14. package/dist/browser/meshagent-client.js +12 -1
  15. package/dist/browser/participant-token.d.ts +189 -22
  16. package/dist/browser/participant-token.js +1001 -189
  17. package/dist/browser/room-client.d.ts +1 -1
  18. package/dist/browser/services-client.d.ts +1 -1
  19. package/dist/browser/version.d.ts +1 -0
  20. package/dist/browser/version.js +4 -0
  21. package/dist/esm/agent-client.d.ts +2 -10
  22. package/dist/esm/agent-client.js +1 -28
  23. package/dist/esm/agent.d.ts +22 -22
  24. package/dist/esm/agent.js +33 -14
  25. package/dist/esm/containers-client.d.ts +7 -19
  26. package/dist/esm/containers-client.js +27 -21
  27. package/dist/esm/data-types.d.ts +12 -0
  28. package/dist/esm/data-types.js +36 -0
  29. package/dist/esm/database-client.d.ts +134 -47
  30. package/dist/esm/database-client.js +352 -132
  31. package/dist/esm/index.d.ts +1 -0
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/meshagent-client.js +12 -1
  34. package/dist/esm/participant-token.d.ts +189 -22
  35. package/dist/esm/participant-token.js +992 -188
  36. package/dist/esm/room-client.d.ts +1 -1
  37. package/dist/esm/services-client.d.ts +1 -1
  38. package/dist/esm/version.d.ts +1 -0
  39. package/dist/esm/version.js +1 -0
  40. package/dist/node/agent-client.d.ts +2 -10
  41. package/dist/node/agent-client.js +2 -30
  42. package/dist/node/agent.d.ts +22 -22
  43. package/dist/node/agent.js +36 -16
  44. package/dist/node/containers-client.d.ts +7 -19
  45. package/dist/node/containers-client.js +27 -21
  46. package/dist/node/data-types.d.ts +12 -0
  47. package/dist/node/data-types.js +39 -1
  48. package/dist/node/database-client.d.ts +134 -47
  49. package/dist/node/database-client.js +359 -133
  50. package/dist/node/index.d.ts +1 -0
  51. package/dist/node/index.js +1 -0
  52. package/dist/node/meshagent-client.js +12 -1
  53. package/dist/node/participant-token.d.ts +189 -22
  54. package/dist/node/participant-token.js +1001 -189
  55. package/dist/node/room-client.d.ts +1 -1
  56. package/dist/node/services-client.d.ts +1 -1
  57. package/dist/node/version.d.ts +1 -0
  58. package/dist/node/version.js +4 -0
  59. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [0.37.1]
2
+ - Added `useAuth` to the React auth package to handle OAuth redirect/callback, token refresh, and profile loading without React Query, plus a `useEnsureLogin` compatibility wrapper.
3
+ - React auth `useMAuthResponse` now deduplicates token exchanges per callback parameters to avoid repeated exchanges on re-renders.
4
+ - Breaking: React auth no longer exports React Query `QueryClient` or `QueryClientProvider`.
5
+ - Breaking: `useLoginScope` now delegates to `useAuth` and defaults the OAuth scope to `email`.
6
+ - Breaking: the `staticAuthorization` helper was removed from the React room connection utilities.
7
+ - React dev terminal hooks now return `RefObject`-typed `containerRef` values for stronger typing.
8
+ - Meshagent TS client now normalizes binary request bodies for fetch and includes TypeScript declarations for runtime entrypoint functions.
9
+
10
+ ## [0.37.0]
11
+ - Breaking: Database client now supports `json`, `uuid`, `list`, and `struct` types with typed wrappers (DatabaseJson/DatabaseStruct/DatabaseExpression/DatabaseDate/DatabaseUuid); list/struct values must be wrapped and update now takes `values` only.
12
+ - Breaking: Containers build now streams build contexts (start/data chunks) with `mountPath`/`chunks` and removes `start_build`.
13
+ - Breaking: Toolkit/hosting refactor replaces RemoteToolkit with startHostedToolkit/HostedToolkit, removes ToolkitConfiguration and `supports_context`, and updates React/Tailwind helpers to start hosted toolkits.
14
+ - Participant tokens now include LLM grants and richer grant serialization (including allowed toolkits and extra payload preservation), and schema helpers add `json`/`uuid` data types.
15
+ - The JS SDK now exports its version constant for client-side visibility.
16
+
1
17
  ## [0.36.3]
2
18
  - Storage client now supports move operations and emits file moved events.
3
19
  - Secrets client now supports existence checks.
@@ -1,5 +1,5 @@
1
1
  import { RoomClient } from "./room-client";
2
- import { Content } from "./response";
2
+ import type { Content } from "./response";
3
3
  import { ToolContentSpec } from "./tool-content-type";
4
4
  export declare class ToolDescription {
5
5
  title: string;
@@ -10,8 +10,7 @@ export declare class ToolDescription {
10
10
  defs?: Record<string, any>;
11
11
  thumbnailUrl?: string;
12
12
  pricing?: string;
13
- supportsContext?: boolean;
14
- constructor({ title, name, description, inputSchema, inputSpec, outputSpec, outputSchema, thumbnailUrl, defs, pricing, supportsContext }: {
13
+ constructor({ title, name, description, inputSchema, inputSpec, outputSpec, outputSchema, thumbnailUrl, defs, pricing }: {
15
14
  title: string;
16
15
  name: string;
17
16
  description: string;
@@ -22,7 +21,6 @@ export declare class ToolDescription {
22
21
  thumbnailUrl?: string;
23
22
  defs?: Record<string, any>;
24
23
  pricing?: string;
25
- supportsContext?: boolean;
26
24
  });
27
25
  get inputSchema(): Record<string, any> | undefined;
28
26
  get outputSchema(): Record<string, any> | undefined;
@@ -49,12 +47,6 @@ export declare class ToolkitDescription {
49
47
  name?: string;
50
48
  }): ToolkitDescription;
51
49
  }
52
- export declare class ToolkitConfiguration {
53
- name: string;
54
- use?: string[] | undefined;
55
- constructor(name: string, use?: string[] | undefined);
56
- toJson(): Record<string, any>;
57
- }
58
50
  export declare class AgentsClient {
59
51
  private client;
60
52
  constructor({ room }: {
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentsClient = exports.ToolkitConfiguration = exports.ToolkitDescription = exports.ToolDescription = void 0;
3
+ exports.AgentsClient = exports.ToolkitDescription = exports.ToolDescription = void 0;
4
4
  const tool_content_type_1 = require("./tool-content-type");
5
5
  class ToolDescription {
6
- constructor({ title, name, description, inputSchema, inputSpec, outputSpec, outputSchema, thumbnailUrl, defs, pricing, supportsContext }) {
6
+ constructor({ title, name, description, inputSchema, inputSpec, outputSpec, outputSchema, thumbnailUrl, defs, pricing }) {
7
7
  this.title = title;
8
8
  this.name = name;
9
9
  this.description = description;
@@ -44,7 +44,6 @@ class ToolDescription {
44
44
  this.thumbnailUrl = thumbnailUrl;
45
45
  this.defs = defs;
46
46
  this.pricing = pricing;
47
- this.supportsContext = supportsContext ?? false;
48
47
  }
49
48
  get inputSchema() {
50
49
  return this.inputSpec?.schema;
@@ -85,7 +84,6 @@ class ToolkitDescription {
85
84
  thumbnail_url: tool.thumbnailUrl,
86
85
  defs: tool.defs,
87
86
  pricing: tool.pricing,
88
- supports_context: tool.supportsContext,
89
87
  })),
90
88
  };
91
89
  }
@@ -110,7 +108,6 @@ class ToolkitDescription {
110
108
  thumbnailUrl: tool["thumbnail_url"],
111
109
  defs: tool["defs"],
112
110
  pricing: tool["pricing"],
113
- supportsContext: tool["supports_context"] ?? tool["supportsContext"],
114
111
  }));
115
112
  }
116
113
  }
@@ -129,7 +126,6 @@ class ToolkitDescription {
129
126
  thumbnailUrl: tool["thumbnail_url"],
130
127
  defs: tool["defs"],
131
128
  pricing: tool["pricing"],
132
- supportsContext: tool["supports_context"] ?? tool["supportsContext"],
133
129
  }));
134
130
  }
135
131
  }
@@ -144,30 +140,6 @@ class ToolkitDescription {
144
140
  }
145
141
  }
146
142
  exports.ToolkitDescription = ToolkitDescription;
147
- class ToolkitConfiguration {
148
- constructor(name, use) {
149
- this.name = name;
150
- this.use = use;
151
- }
152
- toJson() {
153
- if (!this.use) {
154
- return {
155
- [this.name]: {},
156
- };
157
- }
158
- else {
159
- return {
160
- [this.name]: {
161
- use: this.use.reduce((acc, tool) => {
162
- acc[tool] = {};
163
- return acc;
164
- }, {}),
165
- },
166
- };
167
- }
168
- }
169
- }
170
- exports.ToolkitConfiguration = ToolkitConfiguration;
171
143
  class AgentsClient {
172
144
  constructor({ room }) {
173
145
  this.client = room;
@@ -1,6 +1,6 @@
1
1
  import { RoomClient } from "./room-client";
2
2
  import { RequiredToolkit } from "./requirement";
3
- import { Content } from "./response";
3
+ import { type Content } from "./response";
4
4
  import { ToolContentSpec } from "./tool-content-type";
5
5
  export declare abstract class Tool {
6
6
  readonly name: string;
@@ -23,10 +23,18 @@ export declare abstract class Tool {
23
23
  get outputSchema(): Record<string, any> | undefined;
24
24
  abstract execute(arguments_: Record<string, any>): Promise<Content>;
25
25
  }
26
- export declare abstract class Toolkit {
26
+ export declare class Toolkit {
27
+ readonly name: string;
28
+ readonly title: string;
29
+ readonly description: string;
30
+ readonly thumbnailUrl?: string;
27
31
  readonly tools: Tool[];
28
32
  readonly rules: string[];
29
- constructor({ tools, rules }: {
33
+ constructor({ name, title, description, thumbnailUrl, tools, rules }: {
34
+ name: string;
35
+ title?: string;
36
+ description?: string;
37
+ thumbnailUrl?: string;
30
38
  tools: Tool[];
31
39
  rules?: string[];
32
40
  });
@@ -34,28 +42,20 @@ export declare abstract class Toolkit {
34
42
  getTools(): Record<string, any>;
35
43
  execute(name: string, args: Record<string, any>): Promise<Content>;
36
44
  }
37
- export declare abstract class RemoteToolkit extends Toolkit {
38
- protected readonly client: RoomClient;
39
- protected readonly name: string;
40
- protected readonly title: string;
41
- protected readonly description: string;
42
- private _registrationId?;
43
- constructor({ name, title, description, room, tools, rules }: {
44
- name: string;
45
- title: string;
46
- description: string;
47
- room: RoomClient;
48
- tools: Tool[];
49
- rules?: string[];
45
+ export declare class HostedToolkit {
46
+ readonly toolkit: Toolkit;
47
+ private readonly _stopHostedToolkit;
48
+ constructor({ toolkit, stopHostedToolkit }: {
49
+ toolkit: Toolkit;
50
+ stopHostedToolkit: () => Promise<void>;
50
51
  });
51
- start({ public_: isPublic }?: {
52
- public_?: boolean;
53
- }): Promise<void>;
54
52
  stop(): Promise<void>;
55
- private _register;
56
- private _unregister;
57
- private _toolCall;
58
53
  }
54
+ export declare function startHostedToolkit({ room, toolkit, public_: isPublic }: {
55
+ room: RoomClient;
56
+ toolkit: Toolkit;
57
+ public_?: boolean;
58
+ }): Promise<HostedToolkit>;
59
59
  export declare abstract class RemoteTaskRunner {
60
60
  protected readonly client: RoomClient;
61
61
  protected readonly name: string;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteTaskRunner = exports.RemoteToolkit = exports.Toolkit = exports.Tool = void 0;
3
+ exports.RemoteTaskRunner = exports.HostedToolkit = exports.Toolkit = exports.Tool = void 0;
4
+ exports.startHostedToolkit = startHostedToolkit;
4
5
  const response_1 = require("./response");
5
6
  const tool_content_type_1 = require("./tool-content-type");
6
7
  const utils_1 = require("./utils");
@@ -54,7 +55,11 @@ class Tool {
54
55
  }
55
56
  exports.Tool = Tool;
56
57
  class Toolkit {
57
- constructor({ tools, rules = [] }) {
58
+ constructor({ name, title = name, description = "", thumbnailUrl, tools, rules = [] }) {
59
+ this.name = name;
60
+ this.title = title;
61
+ this.description = description;
62
+ this.thumbnailUrl = thumbnailUrl;
58
63
  this.tools = tools;
59
64
  this.rules = rules;
60
65
  }
@@ -83,30 +88,38 @@ class Toolkit {
83
88
  }
84
89
  }
85
90
  exports.Toolkit = Toolkit;
86
- class RemoteToolkit extends Toolkit {
87
- constructor({ name, title, description, room, tools, rules = [] }) {
88
- super({ tools, rules });
91
+ class HostedToolkit {
92
+ constructor({ toolkit, stopHostedToolkit }) {
93
+ this.toolkit = toolkit;
94
+ this._stopHostedToolkit = stopHostedToolkit;
95
+ }
96
+ async stop() {
97
+ await this._stopHostedToolkit();
98
+ }
99
+ }
100
+ exports.HostedToolkit = HostedToolkit;
101
+ class _RemoteToolkitWrapper {
102
+ constructor({ toolkit, room }) {
103
+ this.toolkit = toolkit;
89
104
  this.client = room;
90
- this.name = name;
91
- this.title = title;
92
- this.description = description;
93
105
  }
94
106
  async start({ public_: isPublic = false } = {}) {
95
107
  const handler = this._toolCall.bind(this);
96
- this.client.protocol.addHandler(`room.tool_call.${this.name}`, handler);
108
+ this.client.protocol.addHandler(`room.tool_call.${this.toolkit.name}`, handler);
97
109
  await this._register(isPublic);
98
110
  }
99
111
  async stop() {
100
112
  await this._unregister();
101
- this.client.protocol.removeHandler(`room.tool_call.${this.name}`);
113
+ this.client.protocol.removeHandler(`room.tool_call.${this.toolkit.name}`);
102
114
  }
103
115
  async _register(public_) {
104
116
  const response = await this.client.sendRequest("room.register_toolkit", {
105
- name: this.name,
106
- title: this.title,
107
- description: this.description,
108
- tools: this.getTools(),
117
+ name: this.toolkit.name,
118
+ title: this.toolkit.title,
119
+ description: this.toolkit.description,
120
+ tools: this.toolkit.getTools(),
109
121
  public: public_,
122
+ thumbnail_url: this.toolkit.thumbnailUrl,
110
123
  });
111
124
  const json = response.json;
112
125
  this._registrationId = json["id"];
@@ -143,7 +156,7 @@ class RemoteToolkit extends Toolkit {
143
156
  else {
144
157
  args = rawArguments ?? {};
145
158
  }
146
- const response = await this.execute(toolName, args);
159
+ const response = await this.toolkit.execute(toolName, args);
147
160
  await this.client.protocol.send("room.tool_call_response", response.pack(), messageId);
148
161
  }
149
162
  catch (e) {
@@ -152,7 +165,14 @@ class RemoteToolkit extends Toolkit {
152
165
  }
153
166
  }
154
167
  }
155
- exports.RemoteToolkit = RemoteToolkit;
168
+ async function startHostedToolkit({ room, toolkit, public_: isPublic = false }) {
169
+ const wrapper = new _RemoteToolkitWrapper({ toolkit, room });
170
+ await wrapper.start({ public_: isPublic });
171
+ return new HostedToolkit({
172
+ toolkit,
173
+ stopHostedToolkit: () => wrapper.stop(),
174
+ });
175
+ }
156
176
  class RemoteTaskRunner {
157
177
  constructor({ name, description, client, inputSchema, outputSchema, supportsTools = false, required = [], }) {
158
178
  this.client = client;
@@ -1,5 +1,5 @@
1
- import { ContainerMountSpec } from "./meshagent-client";
2
- import { Content } from "./response";
1
+ import type { ContainerMountSpec } from "./meshagent-client";
2
+ import { type Content } from "./response";
3
3
  import { RoomClient } from "./room-client";
4
4
  export interface DockerSecret {
5
5
  username: string;
@@ -138,29 +138,17 @@ export declare class ContainersClient {
138
138
  writableRootFs?: boolean;
139
139
  private?: boolean;
140
140
  }): Promise<string>;
141
- startBuild(params: {
142
- tag: string;
143
- mounts: ContainerMountSpec[];
144
- contextPath: string;
145
- dockerfilePath?: string;
146
- private?: boolean;
147
- credentials?: DockerSecret[];
148
- contextArchivePath?: string;
149
- contextArchiveRef?: string;
150
- contextArchiveMountPath?: string;
151
- contextArchiveArch?: string;
152
- }): Promise<string>;
153
141
  build(params: {
154
142
  tag: string;
155
- mounts: ContainerMountSpec[];
143
+ mountPath: string;
156
144
  contextPath: string;
145
+ chunks: AsyncIterable<Uint8Array>;
157
146
  dockerfilePath?: string;
147
+ optimizeImage?: boolean;
158
148
  private?: boolean;
159
149
  credentials?: DockerSecret[];
160
- contextArchivePath?: string;
161
- contextArchiveRef?: string;
162
- contextArchiveMountPath?: string;
163
- contextArchiveArch?: string;
150
+ builderName?: string;
151
+ size?: number;
164
152
  }): Promise<string>;
165
153
  listBuilds(): Promise<BuildJob[]>;
166
154
  cancelBuild(params: {
@@ -134,19 +134,28 @@ function parseBuildJob(data, operation) {
134
134
  exitCode: readOptionalIntegerField(data, "exit_code", operation),
135
135
  };
136
136
  }
137
- function buildRequestPayload(params) {
138
- return {
139
- tag: params.tag,
140
- mounts: toMountList(params.mounts),
141
- context_path: params.contextPath,
142
- dockerfile_path: params.dockerfilePath ?? null,
143
- private: params.private ?? false,
144
- credentials: toCredentials(params.credentials ?? []),
145
- context_archive_path: params.contextArchivePath ?? null,
146
- context_archive_ref: params.contextArchiveRef ?? null,
147
- context_archive_mount_path: params.contextArchiveMountPath ?? null,
148
- context_archive_arch: params.contextArchiveArch ?? null,
149
- };
137
+ async function* buildInputStream(params) {
138
+ yield new response_1.BinaryContent({
139
+ data: new Uint8Array(0),
140
+ headers: {
141
+ kind: "start",
142
+ tag: params.tag,
143
+ mount_path: params.mountPath,
144
+ context_path: params.contextPath,
145
+ dockerfile_path: params.dockerfilePath ?? null,
146
+ optimize_image: params.optimizeImage ?? true,
147
+ private: params.private ?? false,
148
+ credentials: toCredentials(params.credentials ?? []),
149
+ builder_name: params.builderName ?? null,
150
+ size: params.size ?? null,
151
+ },
152
+ });
153
+ for await (const chunk of params.chunks) {
154
+ yield new response_1.BinaryContent({
155
+ data: new Uint8Array(chunk),
156
+ headers: { kind: "data" },
157
+ });
158
+ }
150
159
  }
151
160
  class ExecSession {
152
161
  constructor(params) {
@@ -387,15 +396,12 @@ class ContainersClient {
387
396
  }
388
397
  return readStringField(output.json, "container_id", "run");
389
398
  }
390
- async startBuild(params) {
391
- const output = await this.invoke("start_build", buildRequestPayload(params));
392
- if (!(output instanceof response_1.JsonContent) || !isRecord(output.json)) {
393
- throw this.unexpectedResponseError("start_build");
394
- }
395
- return readStringField(output.json, "build_id", "start_build");
396
- }
397
399
  async build(params) {
398
- const output = await this.invoke("build", buildRequestPayload(params));
400
+ const output = await this.room.invokeWithStreamInput({
401
+ toolkit: "containers",
402
+ tool: "build",
403
+ input: buildInputStream(params),
404
+ });
399
405
  if (!(output instanceof response_1.JsonContent) || !isRecord(output.json)) {
400
406
  throw this.unexpectedResponseError("build");
401
407
  }
@@ -11,6 +11,8 @@ export declare abstract class DataType {
11
11
  elementType: DataType;
12
12
  }): VectorDataType;
13
13
  static text(): TextDataType;
14
+ static json(): JsonDataType;
15
+ static uuid(): UuidDataType;
14
16
  static binary(): BinaryDataType;
15
17
  }
16
18
  export declare class BoolDataType extends DataType {
@@ -48,6 +50,16 @@ export declare class TextDataType extends DataType {
48
50
  static fromJson(data: any): TextDataType;
49
51
  toJson(): Record<string, unknown>;
50
52
  }
53
+ export declare class JsonDataType extends DataType {
54
+ constructor();
55
+ static fromJson(data: any): JsonDataType;
56
+ toJson(): Record<string, unknown>;
57
+ }
58
+ export declare class UuidDataType extends DataType {
59
+ constructor();
60
+ static fromJson(data: any): UuidDataType;
61
+ toJson(): Record<string, unknown>;
62
+ }
51
63
  export declare class BinaryDataType extends DataType {
52
64
  constructor();
53
65
  static fromJson(data: any): BinaryDataType;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BinaryDataType = exports.TextDataType = exports.VectorDataType = exports.FloatDataType = exports.DateDataType = exports.IntDataType = exports.BoolDataType = exports.DataType = exports._dataTypes = void 0;
3
+ exports.BinaryDataType = exports.UuidDataType = exports.JsonDataType = exports.TextDataType = exports.VectorDataType = exports.FloatDataType = exports.DateDataType = exports.IntDataType = exports.BoolDataType = exports.DataType = exports._dataTypes = void 0;
4
4
  exports._dataTypes = {};
5
5
  class DataType {
6
6
  constructor(_) { }
@@ -26,6 +26,12 @@ class DataType {
26
26
  static text() {
27
27
  return new TextDataType();
28
28
  }
29
+ static json() {
30
+ return new JsonDataType();
31
+ }
32
+ static uuid() {
33
+ return new UuidDataType();
34
+ }
29
35
  static binary() {
30
36
  return new BinaryDataType();
31
37
  }
@@ -136,6 +142,38 @@ class TextDataType extends DataType {
136
142
  }
137
143
  exports.TextDataType = TextDataType;
138
144
  exports._dataTypes["text"] = TextDataType;
145
+ class JsonDataType extends DataType {
146
+ constructor() {
147
+ super();
148
+ }
149
+ static fromJson(data) {
150
+ if (data.type !== "json") {
151
+ throw new Error(`Expected type 'json', got '${data.type}'`);
152
+ }
153
+ return new JsonDataType();
154
+ }
155
+ toJson() {
156
+ return { type: "json" };
157
+ }
158
+ }
159
+ exports.JsonDataType = JsonDataType;
160
+ exports._dataTypes["json"] = JsonDataType;
161
+ class UuidDataType extends DataType {
162
+ constructor() {
163
+ super();
164
+ }
165
+ static fromJson(data) {
166
+ if (data.type !== "uuid") {
167
+ throw new Error(`Expected type 'uuid', got '${data.type}'`);
168
+ }
169
+ return new UuidDataType();
170
+ }
171
+ toJson() {
172
+ return { type: "uuid" };
173
+ }
174
+ }
175
+ exports.UuidDataType = UuidDataType;
176
+ exports._dataTypes["uuid"] = UuidDataType;
139
177
  class BinaryDataType extends DataType {
140
178
  constructor() {
141
179
  super();