@dxos/plugin-space 0.8.1-main.ba2dec9 → 0.8.1-staging.391c573
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/lib/browser/{chunk-PCEP3KQY.mjs → chunk-OWVFWTX4.mjs} +6 -4
- package/dist/lib/browser/chunk-OWVFWTX4.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +8 -2
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-GPNAQ2SG.mjs → intent-resolver-7PY5WDYC.mjs} +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-4CCSD7TZ.mjs → react-root-EP4XP4IK.mjs} +2 -2
- package/dist/lib/browser/{react-surface-FKMRI3WV.mjs → react-surface-VNNI5POA.mjs} +2 -2
- package/dist/lib/browser/schema-tools-6J5ZEDBC.mjs +123 -0
- package/dist/lib/browser/schema-tools-6J5ZEDBC.mjs.map +7 -0
- package/dist/lib/node/{chunk-QE4GVR6C.cjs → chunk-53J7HLYX.cjs} +12 -9
- package/dist/lib/node/chunk-53J7HLYX.cjs.map +7 -0
- package/dist/lib/node/index.cjs +49 -44
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-ICHHI6I6.cjs → intent-resolver-QEIKJ5FR.cjs} +13 -13
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-TCBTUOOJ.cjs → react-root-OW5NTN2U.cjs} +6 -6
- package/dist/lib/node/{react-surface-JSCCIZS5.cjs → react-surface-JTIQUBHB.cjs} +38 -38
- package/dist/lib/node/schema-tools-OZS4OC6X.cjs +146 -0
- package/dist/lib/node/schema-tools-OZS4OC6X.cjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HJCEJNW3.mjs → chunk-FDVNOFE3.mjs} +6 -4
- package/dist/lib/node-esm/chunk-FDVNOFE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +8 -2
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-VR42K5GE.mjs → intent-resolver-7EYVRN3R.mjs} +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-THJBSTQS.mjs → react-root-RCKGZSZB.mjs} +2 -2
- package/dist/lib/node-esm/{react-surface-Z3BBQ5HX.mjs → react-surface-WKKBE5V4.mjs} +2 -2
- package/dist/lib/node-esm/schema-tools-KJVXGDBO.mjs +125 -0
- package/dist/lib/node-esm/schema-tools-KJVXGDBO.mjs.map +7 -0
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-tool.test.d.ts +2 -0
- package/dist/types/src/capabilities/schema-tool.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/schema-tools.d.ts +13 -0
- package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -0
- package/package.json +42 -39
- package/src/SpacePlugin.tsx +6 -0
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/schema-tool.test.ts +45 -0
- package/src/capabilities/schema-tools.ts +124 -0
- package/dist/lib/browser/chunk-PCEP3KQY.mjs.map +0 -7
- package/dist/lib/node/chunk-QE4GVR6C.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-HJCEJNW3.mjs.map +0 -7
- /package/dist/lib/browser/{intent-resolver-GPNAQ2SG.mjs.map → intent-resolver-7PY5WDYC.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-4CCSD7TZ.mjs.map → react-root-EP4XP4IK.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-FKMRI3WV.mjs.map → react-surface-VNNI5POA.mjs.map} +0 -0
- /package/dist/lib/node/{intent-resolver-ICHHI6I6.cjs.map → intent-resolver-QEIKJ5FR.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-TCBTUOOJ.cjs.map → react-root-OW5NTN2U.cjs.map} +0 -0
- /package/dist/lib/node/{react-surface-JSCCIZS5.cjs.map → react-surface-JTIQUBHB.cjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-VR42K5GE.mjs.map → intent-resolver-7EYVRN3R.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-THJBSTQS.mjs.map → react-root-RCKGZSZB.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-Z3BBQ5HX.mjs.map → react-surface-WKKBE5V4.mjs.map} +0 -0
|
@@ -26,12 +26,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var react_surface_JTIQUBHB_exports = {};
|
|
30
|
+
__export(react_surface_JTIQUBHB_exports, {
|
|
31
31
|
default: () => react_surface_default
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
34
|
-
var
|
|
33
|
+
module.exports = __toCommonJS(react_surface_JTIQUBHB_exports);
|
|
34
|
+
var import_chunk_53J7HLYX = require("./chunk-53J7HLYX.cjs");
|
|
35
35
|
var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
|
|
36
36
|
var import_chunk_OVGKWJOC = require("./chunk-OVGKWJOC.cjs");
|
|
37
37
|
var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
|
|
@@ -62,7 +62,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
62
62
|
role: "article",
|
|
63
63
|
position: "fallback",
|
|
64
64
|
filter: (data) => data.subject instanceof import_chunk_WAJKBO3J.CollectionType,
|
|
65
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
65
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CollectionMain, {
|
|
66
66
|
collection: data.subject
|
|
67
67
|
})
|
|
68
68
|
}),
|
|
@@ -71,7 +71,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
71
71
|
// TODO(burdon): Add role name syntax to minimal plugin docs.
|
|
72
72
|
role: "complementary--settings",
|
|
73
73
|
filter: (data) => (0, import_echo.isSpace)(data.subject),
|
|
74
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
74
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpaceSettingsPanel, {
|
|
75
75
|
space: data.subject
|
|
76
76
|
})
|
|
77
77
|
}),
|
|
@@ -80,7 +80,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
80
80
|
role: "complementary--settings",
|
|
81
81
|
position: "hoist",
|
|
82
82
|
filter: (data) => (0, import_echo.isEchoObject)(data.subject),
|
|
83
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
83
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.BaseObjectSettings, {
|
|
84
84
|
object: data.subject
|
|
85
85
|
})
|
|
86
86
|
}),
|
|
@@ -89,58 +89,58 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
89
89
|
role: "complementary--settings",
|
|
90
90
|
position: "fallback",
|
|
91
91
|
filter: (data) => (0, import_echo.isEchoObject)(data.subject),
|
|
92
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
92
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.AdvancedObjectSettings, {
|
|
93
93
|
object: data.subject
|
|
94
94
|
})
|
|
95
95
|
}),
|
|
96
96
|
(0, import_app_framework.createSurface)({
|
|
97
|
-
id:
|
|
97
|
+
id: import_chunk_53J7HLYX.SPACE_SETTINGS_DIALOG,
|
|
98
98
|
role: "dialog",
|
|
99
|
-
filter: (data) => data.component ===
|
|
100
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
99
|
+
filter: (data) => data.component === import_chunk_53J7HLYX.SPACE_SETTINGS_DIALOG,
|
|
100
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpaceSettingsDialog, {
|
|
101
101
|
...data.props,
|
|
102
102
|
createInvitationUrl
|
|
103
103
|
})
|
|
104
104
|
}),
|
|
105
105
|
(0, import_app_framework.createSurface)({
|
|
106
|
-
id:
|
|
106
|
+
id: import_chunk_53J7HLYX.JOIN_DIALOG,
|
|
107
107
|
role: "dialog",
|
|
108
|
-
filter: (data) => data.component ===
|
|
109
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
108
|
+
filter: (data) => data.component === import_chunk_53J7HLYX.JOIN_DIALOG,
|
|
109
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.JoinDialog, data.props)
|
|
110
110
|
}),
|
|
111
111
|
(0, import_app_framework.createSurface)({
|
|
112
|
-
id:
|
|
112
|
+
id: import_chunk_53J7HLYX.CREATE_SPACE_DIALOG,
|
|
113
113
|
role: "dialog",
|
|
114
|
-
filter: (data) => data.component ===
|
|
115
|
-
component: () => /* @__PURE__ */ import_react.default.createElement(
|
|
114
|
+
filter: (data) => data.component === import_chunk_53J7HLYX.CREATE_SPACE_DIALOG,
|
|
115
|
+
component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CreateSpaceDialog, null)
|
|
116
116
|
}),
|
|
117
117
|
(0, import_app_framework.createSurface)({
|
|
118
|
-
id:
|
|
118
|
+
id: import_chunk_53J7HLYX.CREATE_OBJECT_DIALOG,
|
|
119
119
|
role: "dialog",
|
|
120
|
-
filter: (data) => data.component ===
|
|
121
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
120
|
+
filter: (data) => data.component === import_chunk_53J7HLYX.CREATE_OBJECT_DIALOG,
|
|
121
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CreateObjectDialog, data.props)
|
|
122
122
|
}),
|
|
123
123
|
(0, import_app_framework.createSurface)({
|
|
124
|
-
id:
|
|
124
|
+
id: import_chunk_53J7HLYX.POPOVER_RENAME_SPACE,
|
|
125
125
|
role: "popover",
|
|
126
|
-
filter: (data) => data.component ===
|
|
127
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
126
|
+
filter: (data) => data.component === import_chunk_53J7HLYX.POPOVER_RENAME_SPACE && (0, import_echo.isSpace)(data.props),
|
|
127
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.PopoverRenameSpace, {
|
|
128
128
|
space: data.props
|
|
129
129
|
})
|
|
130
130
|
}),
|
|
131
131
|
(0, import_app_framework.createSurface)({
|
|
132
|
-
id:
|
|
132
|
+
id: import_chunk_53J7HLYX.POPOVER_RENAME_OBJECT,
|
|
133
133
|
role: "popover",
|
|
134
|
-
filter: (data) => data.component ===
|
|
135
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
134
|
+
filter: (data) => data.component === import_chunk_53J7HLYX.POPOVER_RENAME_OBJECT && (0, import_echo.isReactiveObject)(data.props),
|
|
135
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.PopoverRenameObject, {
|
|
136
136
|
object: data.props
|
|
137
137
|
})
|
|
138
138
|
}),
|
|
139
139
|
(0, import_app_framework.createSurface)({
|
|
140
|
-
id:
|
|
140
|
+
id: import_chunk_53J7HLYX.POPOVER_ADD_SPACE,
|
|
141
141
|
role: "popover",
|
|
142
|
-
filter: (data) => data.component ===
|
|
143
|
-
component: () => /* @__PURE__ */ import_react.default.createElement(
|
|
142
|
+
filter: (data) => data.component === import_chunk_53J7HLYX.POPOVER_ADD_SPACE,
|
|
143
|
+
component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.PopoverAddSpace, null)
|
|
144
144
|
}),
|
|
145
145
|
(0, import_app_framework.createSurface)({
|
|
146
146
|
id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-presence`,
|
|
@@ -148,7 +148,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
148
148
|
filter: (data) => typeof data.id === "string" && (0, import_echo.isEchoObject)(data.subject),
|
|
149
149
|
component: ({ data }) => {
|
|
150
150
|
const state = (0, import_app_framework.useCapability)(import_chunk_YZKNRFHU.SpaceCapabilities.MutableState);
|
|
151
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
151
|
+
return /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SmallPresenceLive, {
|
|
152
152
|
id: data.id,
|
|
153
153
|
open: data.open,
|
|
154
154
|
viewers: state.viewersByObject[data.id]
|
|
@@ -161,7 +161,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
161
161
|
role: "navtree-item-end",
|
|
162
162
|
position: "fallback",
|
|
163
163
|
filter: (data) => typeof data.id === "string",
|
|
164
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
164
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SmallPresenceLive, {
|
|
165
165
|
id: data.id,
|
|
166
166
|
open: data.open
|
|
167
167
|
})
|
|
@@ -170,7 +170,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
170
170
|
id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-sync-status`,
|
|
171
171
|
role: "navtree-item-end",
|
|
172
172
|
filter: (data) => (0, import_echo.isSpace)(data.subject),
|
|
173
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
173
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.InlineSyncStatus, {
|
|
174
174
|
space: data.subject,
|
|
175
175
|
open: data.open
|
|
176
176
|
})
|
|
@@ -183,7 +183,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
183
183
|
component: ({ data }) => {
|
|
184
184
|
const space = (0, import_echo.isSpace)(data.subject) ? data.subject : (0, import_echo.getSpace)(data.subject);
|
|
185
185
|
const object = (0, import_echo.isSpace)(data.subject) ? data.subject.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_WAJKBO3J.CollectionType.typename]?.target : void 0 : data.subject;
|
|
186
|
-
return object ? /* @__PURE__ */ import_react.default.createElement(
|
|
186
|
+
return object ? /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpacePresence, {
|
|
187
187
|
object
|
|
188
188
|
}) : null;
|
|
189
189
|
}
|
|
@@ -192,7 +192,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
192
192
|
id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/collection-section`,
|
|
193
193
|
role: "section",
|
|
194
194
|
filter: (data) => data.subject instanceof import_chunk_WAJKBO3J.CollectionType,
|
|
195
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
195
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CollectionSection, {
|
|
196
196
|
collection: data.subject
|
|
197
197
|
})
|
|
198
198
|
}),
|
|
@@ -200,7 +200,7 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
200
200
|
id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/settings`,
|
|
201
201
|
role: "article",
|
|
202
202
|
filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix === import_chunk_WZR6OAN3.SPACE_PLUGIN,
|
|
203
|
-
component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(
|
|
203
|
+
component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpacePluginSettings, {
|
|
204
204
|
settings: subject.value
|
|
205
205
|
})
|
|
206
206
|
}),
|
|
@@ -208,14 +208,14 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
|
|
|
208
208
|
id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/menu-footer`,
|
|
209
209
|
role: "menu-footer",
|
|
210
210
|
filter: (data) => (0, import_echo.isEchoObject)(data.subject),
|
|
211
|
-
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(
|
|
211
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.MenuFooter, {
|
|
212
212
|
object: data.subject
|
|
213
213
|
})
|
|
214
214
|
}),
|
|
215
215
|
(0, import_app_framework.createSurface)({
|
|
216
216
|
id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/status`,
|
|
217
217
|
role: "status",
|
|
218
|
-
component: () => /* @__PURE__ */ import_react.default.createElement(
|
|
218
|
+
component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SyncStatus, null)
|
|
219
219
|
})
|
|
220
220
|
]);
|
|
221
|
-
//# sourceMappingURL=react-surface-
|
|
221
|
+
//# sourceMappingURL=react-surface-JTIQUBHB.cjs.map
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var schema_tools_OZS4OC6X_exports = {};
|
|
20
|
+
__export(schema_tools_OZS4OC6X_exports, {
|
|
21
|
+
TypeNameSchema: () => TypeNameSchema,
|
|
22
|
+
default: () => schema_tools_default
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(schema_tools_OZS4OC6X_exports);
|
|
25
|
+
var import_SchemaAST = require("effect/SchemaAST");
|
|
26
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
27
|
+
var import_artifact = require("@dxos/artifact");
|
|
28
|
+
var import_echo_schema = require("@dxos/echo-schema");
|
|
29
|
+
var import_invariant = require("@dxos/invariant");
|
|
30
|
+
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
31
|
+
var import_schema = require("@dxos/schema");
|
|
32
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/capabilities/schema-tools.ts";
|
|
33
|
+
var TypeNameSchema = import_echo_schema.S.String.pipe(import_echo_schema.S.pattern(/^\w+\.\w{2,}\/[\w/]+$/i), import_echo_schema.S.annotations({
|
|
34
|
+
[import_SchemaAST.TitleAnnotationId]: "TypeName",
|
|
35
|
+
[import_SchemaAST.DescriptionAnnotationId]: "Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.",
|
|
36
|
+
[import_SchemaAST.ExamplesAnnotationId]: [
|
|
37
|
+
"example.com/type/Document",
|
|
38
|
+
"example.com/type/FlightList"
|
|
39
|
+
]
|
|
40
|
+
}));
|
|
41
|
+
var formatDescription = `The format of the property. Additional information:
|
|
42
|
+
${import_echo_schema.FormatEnum.GeoPoint}: ${JSON.stringify((0, import_echo_schema.toJsonSchema)(import_echo_schema.GeoPoint))}
|
|
43
|
+
This tuple is GeoJSON. You must specify \`${import_echo_schema.FormatEnum.GeoPoint}\` as [Longitude, Latitude]`;
|
|
44
|
+
var PropertyDefinitionSchema = import_echo_schema.S.Struct({
|
|
45
|
+
name: import_echo_schema.S.String.annotations({
|
|
46
|
+
[import_SchemaAST.DescriptionAnnotationId]: "The name of the property."
|
|
47
|
+
}),
|
|
48
|
+
format: import_echo_schema.S.Union(...import_echo_schema.FormatEnums.map((format) => import_echo_schema.S.Literal(format))).annotations({
|
|
49
|
+
[import_SchemaAST.DescriptionAnnotationId]: formatDescription
|
|
50
|
+
}),
|
|
51
|
+
config: import_echo_schema.S.optional(import_echo_schema.S.Struct({
|
|
52
|
+
options: import_echo_schema.S.optional(import_echo_schema.S.Array(import_echo_schema.SelectOptionSchema).annotations({
|
|
53
|
+
description: `Options for SingleSelect/MultiSelect formats. Available colors: ${import_react_ui_theme.hues.join(", ")}`
|
|
54
|
+
}).pipe(import_echo_schema.S.mutable))
|
|
55
|
+
}))
|
|
56
|
+
}).pipe(import_echo_schema.S.mutable);
|
|
57
|
+
var SYSTEM_NAMESPACE = "dxos.org/echo/schema";
|
|
58
|
+
var schema_tools_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.Tools, [
|
|
59
|
+
(0, import_artifact.defineTool)(SYSTEM_NAMESPACE, {
|
|
60
|
+
name: "list",
|
|
61
|
+
description: "List registered schemas in the space.",
|
|
62
|
+
caption: "Listing registered schemas...",
|
|
63
|
+
schema: import_echo_schema.S.Struct({}),
|
|
64
|
+
execute: async (_input, { extensions }) => {
|
|
65
|
+
(0, import_invariant.invariant)(extensions?.space, "No space.", {
|
|
66
|
+
F: __dxlog_file,
|
|
67
|
+
L: 67,
|
|
68
|
+
S: void 0,
|
|
69
|
+
A: [
|
|
70
|
+
"extensions?.space",
|
|
71
|
+
"'No space.'"
|
|
72
|
+
]
|
|
73
|
+
});
|
|
74
|
+
const space = extensions.space;
|
|
75
|
+
const schemas = await space.db.schemaRegistry.query({}).run();
|
|
76
|
+
return import_artifact.ToolResult.Success(schemas.map((schema) => ({
|
|
77
|
+
typename: schema.typename,
|
|
78
|
+
version: schema.version
|
|
79
|
+
})));
|
|
80
|
+
}
|
|
81
|
+
}),
|
|
82
|
+
(0, import_artifact.defineTool)(SYSTEM_NAMESPACE, {
|
|
83
|
+
name: "get",
|
|
84
|
+
description: "Get a specific schema by its typename.",
|
|
85
|
+
caption: "Getting schema...",
|
|
86
|
+
schema: import_echo_schema.S.Struct({
|
|
87
|
+
typename: import_echo_schema.S.String.annotations({
|
|
88
|
+
description: "The fully qualified typename of the schema."
|
|
89
|
+
})
|
|
90
|
+
}),
|
|
91
|
+
execute: async ({ typename }, { extensions }) => {
|
|
92
|
+
(0, import_invariant.invariant)(extensions?.space, "No space.", {
|
|
93
|
+
F: __dxlog_file,
|
|
94
|
+
L: 89,
|
|
95
|
+
S: void 0,
|
|
96
|
+
A: [
|
|
97
|
+
"extensions?.space",
|
|
98
|
+
"'No space.'"
|
|
99
|
+
]
|
|
100
|
+
});
|
|
101
|
+
const space = extensions.space;
|
|
102
|
+
const schema = await space.db.schemaRegistry.query({
|
|
103
|
+
typename
|
|
104
|
+
}).firstOrUndefined();
|
|
105
|
+
if (!schema) {
|
|
106
|
+
return import_artifact.ToolResult.Error(`Schema not found: ${typename}`);
|
|
107
|
+
}
|
|
108
|
+
return import_artifact.ToolResult.Success(schema);
|
|
109
|
+
}
|
|
110
|
+
}),
|
|
111
|
+
(0, import_artifact.defineTool)(SYSTEM_NAMESPACE, {
|
|
112
|
+
name: "create",
|
|
113
|
+
description: "Create a new schema with the provided definition.",
|
|
114
|
+
caption: "Creating schema...",
|
|
115
|
+
schema: import_echo_schema.S.Struct({
|
|
116
|
+
typename: TypeNameSchema.annotations({
|
|
117
|
+
description: 'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., "example.com/type/TypeName").'
|
|
118
|
+
}),
|
|
119
|
+
properties: import_echo_schema.S.Array(PropertyDefinitionSchema).pipe(import_echo_schema.S.annotations({
|
|
120
|
+
description: "Array of property definitions for the schema."
|
|
121
|
+
}), import_echo_schema.S.mutable)
|
|
122
|
+
}),
|
|
123
|
+
execute: async ({ typename, properties }, { extensions }) => {
|
|
124
|
+
(0, import_invariant.invariant)(extensions?.space, "No space.", {
|
|
125
|
+
F: __dxlog_file,
|
|
126
|
+
L: 115,
|
|
127
|
+
S: void 0,
|
|
128
|
+
A: [
|
|
129
|
+
"extensions?.space",
|
|
130
|
+
"'No space.'"
|
|
131
|
+
]
|
|
132
|
+
});
|
|
133
|
+
const space = extensions.space;
|
|
134
|
+
const schema = (0, import_schema.echoSchemaFromPropertyDefinitions)(typename, properties);
|
|
135
|
+
const [registeredSchema] = await space.db.schemaRegistry.register([
|
|
136
|
+
schema
|
|
137
|
+
]);
|
|
138
|
+
return import_artifact.ToolResult.Success(registeredSchema);
|
|
139
|
+
}
|
|
140
|
+
})
|
|
141
|
+
]);
|
|
142
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
143
|
+
0 && (module.exports = {
|
|
144
|
+
TypeNameSchema
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=schema-tools-OZS4OC6X.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/schema-tools.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from 'effect/SchemaAST';\n\nimport { Capabilities, contributes, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { type Space } from '@dxos/client/echo';\nimport { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { hues } from '@dxos/react-ui-theme';\nimport { echoSchemaFromPropertyDefinitions } from '@dxos/schema';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\n// TODO(ZaymonFC): Move this somewhere common.\nexport const TypeNameSchema = S.String.pipe(\n S.pattern(/^\\w+\\.\\w{2,}\\/[\\w/]+$/i),\n S.annotations({\n [TitleAnnotationId]: 'TypeName',\n [DescriptionAnnotationId]:\n 'Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.',\n [ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],\n }),\n);\n\nconst formatDescription = `The format of the property. Additional information:\n ${FormatEnum.GeoPoint}: ${JSON.stringify(toJsonSchema(GeoPoint))}\n This tuple is GeoJSON. You must specify \\`${FormatEnum.GeoPoint}\\` as [Longitude, Latitude]`;\n\n// TODO(ZaymonFC): All properties are default optional, but maybe we should allow for required properties.\nconst PropertyDefinitionSchema = S.Struct({\n name: S.String.annotations({ [DescriptionAnnotationId]: 'The name of the property.' }),\n format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({\n [DescriptionAnnotationId]: formatDescription,\n }),\n config: S.optional(\n S.Struct({\n options: S.optional(\n S.Array(SelectOptionSchema)\n .annotations({\n description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(', ')}`,\n })\n .pipe(S.mutable),\n ),\n }),\n ),\n}).pipe(S.mutable);\n\nconst SYSTEM_NAMESPACE = 'dxos.org/echo/schema';\n\nexport default () =>\n contributes(Capabilities.Tools, [\n defineTool(SYSTEM_NAMESPACE, {\n name: 'list',\n description: 'List registered schemas in the space.',\n caption: 'Listing registered schemas...',\n schema: S.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schemas = await space.db.schemaRegistry.query({}).run();\n return ToolResult.Success(\n schemas.map((schema) => ({\n typename: schema.typename,\n version: schema.version,\n })),\n );\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'get',\n description: 'Get a specific schema by its typename.',\n caption: 'Getting schema...',\n schema: S.Struct({\n typename: S.String.annotations({\n description: 'The fully qualified typename of the schema.',\n }),\n }),\n execute: async ({ typename }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();\n if (!schema) {\n return ToolResult.Error(`Schema not found: ${typename}`);\n }\n\n return ToolResult.Success(schema);\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'create',\n description: 'Create a new schema with the provided definition.',\n caption: 'Creating schema...',\n schema: S.Struct({\n typename: TypeNameSchema.annotations({\n description:\n 'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., \"example.com/type/TypeName\").',\n }),\n properties: S.Array(PropertyDefinitionSchema).pipe(\n S.annotations({ description: 'Array of property definitions for the schema.' }),\n S.mutable,\n ),\n }),\n execute: async ({ typename, properties }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = echoSchemaFromPropertyDefinitions(typename, properties);\n const [registeredSchema] = await space.db.schemaRegistry.register([schema]);\n\n return ToolResult.Success(registeredSchema);\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["TypeNameSchema", "S", "String", "pipe", "pattern", "annotations", "TitleAnnotationId", "DescriptionAnnotationId", "ExamplesAnnotationId", "formatDescription", "FormatEnum", "GeoPoint", "JSON", "stringify", "toJsonSchema", "PropertyDefinitionSchema", "Struct", "name", "format", "Union", "FormatEnums", "map", "Literal", "config", "optional", "options", "Array", "SelectOptionSchema", "description", "hues", "join", "mutable", "SYSTEM_NAMESPACE", "contributes", "Capabilities", "Tools", "defineTool", "caption", "schema", "execute", "_input", "extensions", "invariant", "space", "schemas", "db", "schemaRegistry", "query", "run", "ToolResult", "Success", "typename", "version", "firstOrUndefined", "Error", "properties", "echoSchemaFromPropertyDefinitions", "registeredSchema", "register"]
|
|
7
|
+
}
|
|
@@ -419,10 +419,11 @@ import { lazy } from "@dxos/app-framework";
|
|
|
419
419
|
var AppGraphBuilder = lazy(() => import("./app-graph-builder-TERVM2SL.mjs"));
|
|
420
420
|
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-GZRSWHEN.mjs"));
|
|
421
421
|
var IdentityCreated = lazy(() => import("./identity-created-3CGEXNPO.mjs"));
|
|
422
|
-
var IntentResolver = lazy(() => import("./intent-resolver-
|
|
423
|
-
var ReactRoot = lazy(() => import("./react-root-
|
|
424
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
422
|
+
var IntentResolver = lazy(() => import("./intent-resolver-7EYVRN3R.mjs"));
|
|
423
|
+
var ReactRoot = lazy(() => import("./react-root-RCKGZSZB.mjs"));
|
|
424
|
+
var ReactSurface = lazy(() => import("./react-surface-WKKBE5V4.mjs"));
|
|
425
425
|
var Schema = lazy(() => import("./schema-LOR2EVGY.mjs"));
|
|
426
|
+
var Tools = lazy(() => import("./schema-tools-KJVXGDBO.mjs"));
|
|
426
427
|
var SpaceSettings = lazy(() => import("./settings-H6MXTEQM.mjs"));
|
|
427
428
|
var SpaceState = lazy(() => import("./state-VYA6OFHD.mjs"));
|
|
428
429
|
var SpacesReady = lazy(() => import("./spaces-ready-HKAQG5SA.mjs"));
|
|
@@ -1808,8 +1809,9 @@ export {
|
|
|
1808
1809
|
ReactRoot,
|
|
1809
1810
|
ReactSurface,
|
|
1810
1811
|
Schema,
|
|
1812
|
+
Tools,
|
|
1811
1813
|
SpaceSettings,
|
|
1812
1814
|
SpaceState,
|
|
1813
1815
|
SpacesReady
|
|
1814
1816
|
};
|
|
1815
|
-
//# sourceMappingURL=chunk-
|
|
1817
|
+
//# sourceMappingURL=chunk-FDVNOFE3.mjs.map
|