@dxos/plugin-space 0.8.3-main.672df60 → 0.8.3-main.7f5a14c

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 (177) hide show
  1. package/dist/lib/browser/{app-graph-builder-DCWUULKX.mjs → app-graph-builder-UNXUTH53.mjs} +11 -10
  2. package/dist/lib/browser/app-graph-builder-UNXUTH53.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-MLU7XI2P.mjs → app-graph-serializer-KPKPMC4M.mjs} +6 -6
  4. package/dist/lib/browser/app-graph-serializer-KPKPMC4M.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-ZQEIXWBK.mjs → chunk-CF4FBDGP.mjs} +26 -24
  6. package/dist/lib/browser/chunk-CF4FBDGP.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-W46VVHFM.mjs → chunk-LGEIVEYC.mjs} +8 -7
  8. package/dist/lib/browser/chunk-LGEIVEYC.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-N5QMRLKI.mjs → chunk-RRJIDXPY.mjs} +18 -18
  10. package/dist/lib/browser/chunk-RRJIDXPY.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-VEBKN45O.mjs → chunk-TQPBDRXV.mjs} +2 -2
  12. package/dist/lib/browser/{identity-created-O63SIYOF.mjs → identity-created-EM6GZDNF.mjs} +4 -4
  13. package/dist/lib/browser/identity-created-EM6GZDNF.mjs.map +7 -0
  14. package/dist/lib/browser/index.mjs +7 -7
  15. package/dist/lib/browser/index.mjs.map +3 -3
  16. package/dist/lib/browser/{intent-resolver-PG473BRV.mjs → intent-resolver-K3ULKQ6V.mjs} +25 -28
  17. package/dist/lib/browser/intent-resolver-K3ULKQ6V.mjs.map +7 -0
  18. package/dist/lib/browser/meta.json +1 -1
  19. package/dist/lib/browser/{react-root-FRDC4UXB.mjs → react-root-ECO7G77L.mjs} +4 -4
  20. package/dist/lib/browser/{react-surface-QOP7T66K.mjs → react-surface-Y5AZBYA7.mjs} +12 -12
  21. package/dist/lib/browser/react-surface-Y5AZBYA7.mjs.map +7 -0
  22. package/dist/lib/browser/{schema-tools-JIEMHUXV.mjs → schema-tools-ILTVSSS3.mjs} +7 -6
  23. package/dist/lib/browser/schema-tools-ILTVSSS3.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-2IN2WLUK.mjs → settings-MU7O6JDD.mjs} +4 -4
  25. package/dist/lib/browser/settings-MU7O6JDD.mjs.map +7 -0
  26. package/dist/lib/browser/{spaces-ready-L4QAGTDE.mjs → spaces-ready-NXZAWHGI.mjs} +9 -10
  27. package/dist/lib/browser/spaces-ready-NXZAWHGI.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +1 -1
  29. package/dist/lib/node/{app-graph-builder-WC445X77.cjs → app-graph-builder-6QDQEYHS.cjs} +38 -37
  30. package/dist/lib/node/app-graph-builder-6QDQEYHS.cjs.map +7 -0
  31. package/dist/lib/node/{app-graph-serializer-UPQOQVMJ.cjs → app-graph-serializer-6SWKHDE2.cjs} +21 -21
  32. package/dist/lib/node/app-graph-serializer-6SWKHDE2.cjs.map +7 -0
  33. package/dist/lib/node/{chunk-COQYISES.cjs → chunk-KDBPQ6L3.cjs} +54 -54
  34. package/dist/lib/node/chunk-KDBPQ6L3.cjs.map +7 -0
  35. package/dist/lib/node/{chunk-USFHJG7C.cjs → chunk-QCANR24R.cjs} +67 -65
  36. package/dist/lib/node/chunk-QCANR24R.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-DXL5TDFP.cjs → chunk-SF3NU7EW.cjs} +6 -6
  38. package/dist/lib/node/{chunk-FXHI7JNY.cjs → chunk-UUBPYP7E.cjs} +33 -32
  39. package/dist/lib/node/chunk-UUBPYP7E.cjs.map +7 -0
  40. package/dist/lib/node/{identity-created-UXEAUGC7.cjs → identity-created-KCJAOFZC.cjs} +7 -7
  41. package/dist/lib/node/identity-created-KCJAOFZC.cjs.map +7 -0
  42. package/dist/lib/node/index.cjs +61 -61
  43. package/dist/lib/node/index.cjs.map +3 -3
  44. package/dist/lib/node/{intent-resolver-VPVZSSIL.cjs → intent-resolver-XR4S7LME.cjs} +65 -68
  45. package/dist/lib/node/intent-resolver-XR4S7LME.cjs.map +7 -0
  46. package/dist/lib/node/meta.json +1 -1
  47. package/dist/lib/node/{react-root-JXLRINF3.cjs → react-root-Z2YM6JYC.cjs} +8 -8
  48. package/dist/lib/node/{react-surface-ZIYDBL3C.cjs → react-surface-H6XNU6DS.cjs} +56 -56
  49. package/dist/lib/node/react-surface-H6XNU6DS.cjs.map +7 -0
  50. package/dist/lib/node/{schema-tools-ZG6Z2QRC.cjs → schema-tools-IYREN4IH.cjs} +9 -8
  51. package/dist/lib/node/schema-tools-IYREN4IH.cjs.map +7 -0
  52. package/dist/lib/node/{settings-FOH7EB5C.cjs → settings-XRAT3YMN.cjs} +7 -7
  53. package/dist/lib/node/settings-XRAT3YMN.cjs.map +7 -0
  54. package/dist/lib/node/{spaces-ready-VXQYCBII.cjs → spaces-ready-KKFEN2MM.cjs} +22 -23
  55. package/dist/lib/node/spaces-ready-KKFEN2MM.cjs.map +7 -0
  56. package/dist/lib/node/types/index.cjs +12 -12
  57. package/dist/lib/node/types/index.cjs.map +1 -1
  58. package/dist/lib/node-esm/{app-graph-builder-E7CCGPQJ.mjs → app-graph-builder-5EAV4CDH.mjs} +11 -10
  59. package/dist/lib/node-esm/app-graph-builder-5EAV4CDH.mjs.map +7 -0
  60. package/dist/lib/node-esm/{app-graph-serializer-UCMSLPIA.mjs → app-graph-serializer-BRLVJW6I.mjs} +6 -6
  61. package/dist/lib/node-esm/app-graph-serializer-BRLVJW6I.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-FTELJGEG.mjs → chunk-226REPOB.mjs} +8 -7
  63. package/dist/lib/node-esm/chunk-226REPOB.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-OSPEGYX3.mjs → chunk-55OOAFBS.mjs} +2 -2
  65. package/dist/lib/node-esm/{chunk-BE2BLE7K.mjs → chunk-AVONUBZO.mjs} +26 -24
  66. package/dist/lib/node-esm/chunk-AVONUBZO.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-XAZNQ3QN.mjs → chunk-FTL5AMXF.mjs} +18 -18
  68. package/dist/lib/node-esm/chunk-FTL5AMXF.mjs.map +7 -0
  69. package/dist/lib/node-esm/{identity-created-ZECO4NH3.mjs → identity-created-FOFH2WPI.mjs} +4 -4
  70. package/dist/lib/node-esm/identity-created-FOFH2WPI.mjs.map +7 -0
  71. package/dist/lib/node-esm/index.mjs +7 -7
  72. package/dist/lib/node-esm/index.mjs.map +3 -3
  73. package/dist/lib/node-esm/{intent-resolver-SK5LP5ZK.mjs → intent-resolver-72KTB4S2.mjs} +25 -28
  74. package/dist/lib/node-esm/intent-resolver-72KTB4S2.mjs.map +7 -0
  75. package/dist/lib/node-esm/meta.json +1 -1
  76. package/dist/lib/node-esm/{react-root-K2KRGIT7.mjs → react-root-FU2I5U2M.mjs} +4 -4
  77. package/dist/lib/node-esm/{react-surface-XNUWZCSH.mjs → react-surface-L4SMKRYF.mjs} +12 -12
  78. package/dist/lib/node-esm/react-surface-L4SMKRYF.mjs.map +7 -0
  79. package/dist/lib/node-esm/{schema-tools-2Y4D42PD.mjs → schema-tools-SRLCRZ3B.mjs} +7 -6
  80. package/dist/lib/node-esm/schema-tools-SRLCRZ3B.mjs.map +7 -0
  81. package/dist/lib/node-esm/{settings-Q4XDFSYD.mjs → settings-C7GQAEDU.mjs} +4 -4
  82. package/dist/lib/node-esm/settings-C7GQAEDU.mjs.map +7 -0
  83. package/dist/lib/node-esm/{spaces-ready-JHKPD4PH.mjs → spaces-ready-WTISHKEH.mjs} +9 -10
  84. package/dist/lib/node-esm/spaces-ready-WTISHKEH.mjs.map +7 -0
  85. package/dist/lib/node-esm/types/index.mjs +1 -1
  86. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  92. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  93. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  94. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  96. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  97. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  98. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +2 -2
  99. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  100. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  101. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  102. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +2 -2
  103. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  104. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  105. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  106. package/dist/types/src/components/SpacePresence.d.ts +2 -2
  107. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  108. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  109. package/dist/types/src/types/collection.d.ts +5 -5
  110. package/dist/types/src/types/collection.d.ts.map +1 -1
  111. package/dist/types/src/types/types.d.ts +5 -4
  112. package/dist/types/src/types/types.d.ts.map +1 -1
  113. package/dist/types/src/util.d.ts +10 -10
  114. package/dist/types/src/util.d.ts.map +1 -1
  115. package/package.json +45 -45
  116. package/src/SpacePlugin.tsx +4 -4
  117. package/src/capabilities/app-graph-builder.ts +8 -17
  118. package/src/capabilities/app-graph-serializer.ts +3 -3
  119. package/src/capabilities/identity-created.ts +2 -2
  120. package/src/capabilities/intent-resolver.ts +30 -26
  121. package/src/capabilities/react-surface.tsx +10 -22
  122. package/src/capabilities/schema-tools.ts +3 -2
  123. package/src/capabilities/settings.ts +6 -2
  124. package/src/capabilities/spaces-ready.ts +5 -6
  125. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +3 -2
  126. package/src/components/CreateDialog/CreateObjectDialog.tsx +9 -16
  127. package/src/components/CreateDialog/CreateObjectPanel.tsx +3 -2
  128. package/src/components/CreateDialog/CreateSpaceDialog.tsx +1 -1
  129. package/src/components/MenuFooter.tsx +3 -2
  130. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -4
  131. package/src/components/ObjectSettings/BaseObjectSettings.tsx +5 -4
  132. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -3
  133. package/src/components/SchemaContainer.tsx +3 -3
  134. package/src/components/SpacePresence.tsx +22 -15
  135. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +2 -1
  136. package/src/types/collection.ts +13 -4
  137. package/src/types/types.ts +5 -4
  138. package/src/util.tsx +26 -35
  139. package/dist/lib/browser/app-graph-builder-DCWUULKX.mjs.map +0 -7
  140. package/dist/lib/browser/app-graph-serializer-MLU7XI2P.mjs.map +0 -7
  141. package/dist/lib/browser/chunk-N5QMRLKI.mjs.map +0 -7
  142. package/dist/lib/browser/chunk-W46VVHFM.mjs.map +0 -7
  143. package/dist/lib/browser/chunk-ZQEIXWBK.mjs.map +0 -7
  144. package/dist/lib/browser/identity-created-O63SIYOF.mjs.map +0 -7
  145. package/dist/lib/browser/intent-resolver-PG473BRV.mjs.map +0 -7
  146. package/dist/lib/browser/react-surface-QOP7T66K.mjs.map +0 -7
  147. package/dist/lib/browser/schema-tools-JIEMHUXV.mjs.map +0 -7
  148. package/dist/lib/browser/settings-2IN2WLUK.mjs.map +0 -7
  149. package/dist/lib/browser/spaces-ready-L4QAGTDE.mjs.map +0 -7
  150. package/dist/lib/node/app-graph-builder-WC445X77.cjs.map +0 -7
  151. package/dist/lib/node/app-graph-serializer-UPQOQVMJ.cjs.map +0 -7
  152. package/dist/lib/node/chunk-COQYISES.cjs.map +0 -7
  153. package/dist/lib/node/chunk-FXHI7JNY.cjs.map +0 -7
  154. package/dist/lib/node/chunk-USFHJG7C.cjs.map +0 -7
  155. package/dist/lib/node/identity-created-UXEAUGC7.cjs.map +0 -7
  156. package/dist/lib/node/intent-resolver-VPVZSSIL.cjs.map +0 -7
  157. package/dist/lib/node/react-surface-ZIYDBL3C.cjs.map +0 -7
  158. package/dist/lib/node/schema-tools-ZG6Z2QRC.cjs.map +0 -7
  159. package/dist/lib/node/settings-FOH7EB5C.cjs.map +0 -7
  160. package/dist/lib/node/spaces-ready-VXQYCBII.cjs.map +0 -7
  161. package/dist/lib/node-esm/app-graph-builder-E7CCGPQJ.mjs.map +0 -7
  162. package/dist/lib/node-esm/app-graph-serializer-UCMSLPIA.mjs.map +0 -7
  163. package/dist/lib/node-esm/chunk-BE2BLE7K.mjs.map +0 -7
  164. package/dist/lib/node-esm/chunk-FTELJGEG.mjs.map +0 -7
  165. package/dist/lib/node-esm/chunk-XAZNQ3QN.mjs.map +0 -7
  166. package/dist/lib/node-esm/identity-created-ZECO4NH3.mjs.map +0 -7
  167. package/dist/lib/node-esm/intent-resolver-SK5LP5ZK.mjs.map +0 -7
  168. package/dist/lib/node-esm/react-surface-XNUWZCSH.mjs.map +0 -7
  169. package/dist/lib/node-esm/schema-tools-2Y4D42PD.mjs.map +0 -7
  170. package/dist/lib/node-esm/settings-Q4XDFSYD.mjs.map +0 -7
  171. package/dist/lib/node-esm/spaces-ready-JHKPD4PH.mjs.map +0 -7
  172. /package/dist/lib/browser/{chunk-VEBKN45O.mjs.map → chunk-TQPBDRXV.mjs.map} +0 -0
  173. /package/dist/lib/browser/{react-root-FRDC4UXB.mjs.map → react-root-ECO7G77L.mjs.map} +0 -0
  174. /package/dist/lib/node/{chunk-DXL5TDFP.cjs.map → chunk-SF3NU7EW.cjs.map} +0 -0
  175. /package/dist/lib/node/{react-root-JXLRINF3.cjs.map → react-root-Z2YM6JYC.cjs.map} +0 -0
  176. /package/dist/lib/node-esm/{chunk-OSPEGYX3.mjs.map → chunk-55OOAFBS.mjs.map} +0 -0
  177. /package/dist/lib/node-esm/{react-root-K2KRGIT7.mjs.map → react-root-FU2I5U2M.mjs.map} +0 -0
package/src/util.tsx CHANGED
@@ -5,10 +5,9 @@
5
5
  import { Rx } from '@effect-rx/rx-react';
6
6
 
7
7
  import { createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';
8
- import { type BaseObject, EXPANDO_TYPENAME, getTypeAnnotation, getTypename, type Expando } from '@dxos/echo-schema';
9
- import { getSchema } from '@dxos/echo-schema';
8
+ import { Obj, Ref, Type } from '@dxos/echo';
9
+ import { EXPANDO_TYPENAME } from '@dxos/echo-schema';
10
10
  import { invariant } from '@dxos/invariant';
11
- import { makeRef } from '@dxos/live-object';
12
11
  import { Migrations } from '@dxos/migrations';
13
12
  import {
14
13
  ACTION_GROUP_TYPE,
@@ -19,15 +18,7 @@ import {
19
18
  type Node,
20
19
  type NodeArg,
21
20
  } from '@dxos/plugin-graph';
22
- import {
23
- fullyQualifiedId,
24
- getSpace,
25
- isEchoObject,
26
- type QueryResult,
27
- SpaceState,
28
- type AnyLiveObject,
29
- type Space,
30
- } from '@dxos/react-client/echo';
21
+ import { fullyQualifiedId, getSpace, type QueryResult, SpaceState, type Space } from '@dxos/react-client/echo';
31
22
  import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
32
23
 
33
24
  import { SPACE_PLUGIN } from './meta';
@@ -41,14 +32,13 @@ export const SHARED = 'shared-spaces';
41
32
  /**
42
33
  * Convert a query result to an Rx value of the objects.
43
34
  */
44
- export const rxFromQuery = <T extends BaseObject>(query: QueryResult<T>): Rx.Rx<T[]> => {
35
+ export const rxFromQuery = <T extends Obj.Any>(query: QueryResult<T>): Rx.Rx<T[]> => {
45
36
  return Rx.make((get) => {
46
37
  const unsubscribe = query.subscribe((result) => {
47
38
  get.setSelf(result.objects);
48
39
  });
49
40
 
50
41
  get.addFinalizer(() => unsubscribe());
51
-
52
42
  return query.objects;
53
43
  });
54
44
  };
@@ -84,9 +74,9 @@ const getCollectionGraphNodePartials = ({
84
74
  role: 'branch',
85
75
  onRearrangeChildren: (nextOrder: unknown[]) => {
86
76
  // Change on disk.
87
- collection.objects = nextOrder.filter(isEchoObject).map(makeRef);
77
+ collection.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
88
78
  },
89
- onTransferStart: (child: Node<AnyLiveObject<any>>, index?: number) => {
79
+ onTransferStart: (child: Node<Obj.Any>, index?: number) => {
90
80
  // TODO(wittjosiah): Support transfer between spaces.
91
81
  // const childSpace = getSpace(child.data);
92
82
  // if (space && childSpace && !childSpace.key.equals(space.key)) {
@@ -107,15 +97,15 @@ const getCollectionGraphNodePartials = ({
107
97
  // TODO(dmaretskyi): Compare by id.
108
98
  if (!collection.objects.find((object) => object.target === child.data)) {
109
99
  if (typeof index !== 'undefined') {
110
- collection.objects.splice(index, 0, makeRef(child.data));
100
+ collection.objects.splice(index, 0, Ref.make(child.data));
111
101
  } else {
112
- collection.objects.push(makeRef(child.data));
102
+ collection.objects.push(Ref.make(child.data));
113
103
  }
114
104
  }
115
105
 
116
106
  // }
117
107
  },
118
- onTransferEnd: (child: Node<AnyLiveObject<any>>, destination: Node) => {
108
+ onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {
119
109
  // Remove child from origin collection.
120
110
  const index = collection.objects.findIndex((object) => object.target === child.data);
121
111
  if (index > -1) {
@@ -131,14 +121,14 @@ const getCollectionGraphNodePartials = ({
131
121
  // childSpace.db.remove(child.data);
132
122
  // }
133
123
  },
134
- onCopy: async (child: Node<AnyLiveObject<any>>, index?: number) => {
124
+ onCopy: async (child: Node<Obj.Any>, index?: number) => {
135
125
  // Create clone of child and add to destination space.
136
126
  const newObject = await cloneObject(child.data, resolve, space);
137
127
  space.db.add(newObject);
138
128
  if (typeof index !== 'undefined') {
139
- collection.objects.splice(index, 0, makeRef(newObject));
129
+ collection.objects.splice(index, 0, Ref.make(newObject));
140
130
  } else {
141
- collection.objects.push(makeRef(newObject));
131
+ collection.objects.push(Ref.make(newObject));
142
132
  }
143
133
  },
144
134
  };
@@ -305,17 +295,17 @@ export const constructSpaceActions = ({
305
295
  };
306
296
 
307
297
  export const createObjectNode = ({
308
- object,
309
298
  space,
299
+ object,
310
300
  navigable = false,
311
301
  resolve,
312
302
  }: {
313
- object: AnyLiveObject<any>;
314
303
  space: Space;
304
+ object: Obj.Any;
315
305
  navigable?: boolean;
316
306
  resolve: (typename: string) => Record<string, any>;
317
307
  }) => {
318
- const type = getTypename(object);
308
+ const type = Obj.getTypename(object);
319
309
  if (!type) {
320
310
  return undefined;
321
311
  }
@@ -337,8 +327,9 @@ export const createObjectNode = ({
337
327
  data: object,
338
328
  properties: {
339
329
  ...partials,
330
+ // TODO(burdon): Use annotation to get the name field.
340
331
  label: metadata.label?.(object) ||
341
- object.name || ['object name placeholder', { ns: type, default: 'New object' }],
332
+ (object as any).name || ['object name placeholder', { ns: type, default: 'New object' }],
342
333
  icon: metadata.icon ?? 'ph--placeholder--regular',
343
334
  testId: 'spacePlugin.object',
344
335
  persistenceClass: 'echo',
@@ -353,7 +344,7 @@ export const constructObjectActions = ({
353
344
  dispatch,
354
345
  navigable = false,
355
346
  }: {
356
- object: AnyLiveObject<any>;
347
+ object: Obj.Any;
357
348
  graph: ReadableGraph;
358
349
  dispatch: PromiseIntentDispatcher;
359
350
  navigable?: boolean;
@@ -456,10 +447,10 @@ export const constructObjectActions = ({
456
447
  * @deprecated This is a temporary solution.
457
448
  */
458
449
  export const getNestedObjects = async (
459
- object: AnyLiveObject<any>,
450
+ object: Obj.Any,
460
451
  resolve: (typename: string) => Record<string, any>,
461
- ): Promise<AnyLiveObject<any>[]> => {
462
- const type = getTypename(object);
452
+ ): Promise<Obj.Any[]> => {
453
+ const type = Obj.getTypename(object);
463
454
  if (!type) {
464
455
  return [];
465
456
  }
@@ -470,7 +461,7 @@ export const getNestedObjects = async (
470
461
  return [];
471
462
  }
472
463
 
473
- const objects: AnyLiveObject<any>[] = await loadReferences(object);
464
+ const objects: Obj.Any[] = await loadReferences(object);
474
465
  const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
475
466
  return [...objects, ...nested.flat()];
476
467
  };
@@ -480,12 +471,12 @@ export const getNestedObjects = async (
480
471
  */
481
472
  // TODO(burdon): Remove.
482
473
  export const cloneObject = async (
483
- object: Expando,
474
+ object: Type.Expando,
484
475
  resolve: (typename: string) => Record<string, any>,
485
476
  newSpace: Space,
486
- ): Promise<Expando> => {
487
- const schema = getSchema(object);
488
- const typename = schema ? getTypeAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;
477
+ ): Promise<Type.Expando> => {
478
+ const schema = Obj.getSchema(object);
479
+ const typename = schema ? Type.getTypename(schema) ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;
489
480
  const metadata = resolve(typename);
490
481
  const serializer = metadata.serializer;
491
482
  invariant(serializer, `No serializer for type: ${typename}`);
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Array, Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';\nimport {\n Expando,\n Filter,\n getSpace,\n isEchoObject,\n SpaceState,\n type Space,\n isSpace,\n type QueryResult,\n} from '@dxos/client/echo';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, rxFromObservable, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { getActiveSpace } from '../hooks';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n rxFromQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginContext) => {\n const resolve = (typename: string) =>\n context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const client = context.getCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph.sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.type(Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: SpaceAction.OpenCreateSpace._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.OpenCreateSpace));\n },\n properties: {\n label: ['create space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.createSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.Join._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.Join));\n },\n properties: {\n label: ['join space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sign-in--regular',\n testId: 'spacePlugin.joinSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.OpenMembers._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenMembers, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: SpaceAction.OpenSettings._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open current space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n keyBinding: {\n macos: 'meta+shift+,',\n windows: 'ctrl+shift+,',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [spacesNode]),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n connector: (node) => {\n let query: QueryResult<Expando> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === SPACES ? Option.some(node) : Option.none())),\n Option.map(() => {\n const state = context.getCapability(SpaceCapabilities.State);\n const client = context.getCapability(ClientCapabilities.Client);\n const spacesRx = rxFromObservable(client.spaces);\n const isReadyRx = rxFromObservable(client.spaces.isReady);\n\n const spaces = get(spacesRx);\n const isReady = get(isReadyRx);\n\n if (!spaces || !isReady) {\n return [];\n }\n\n const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(\n SPACE_PLUGIN,\n )?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n if (!query) {\n query = client.spaces.default.db.query(Filter.type(Expando, { key: SHARED }));\n }\n const [spacesOrder] = get(rxFromQuery(query));\n return get(\n rxFromSignal(() => {\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) =>\n settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE,\n )\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n }),\n );\n } catch {\n return [];\n }\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n // resolver: ({ id }) => {\n // if (id.length !== SPACE_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const spaces = toSignal(\n // (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.get(),\n // );\n\n // const isReady = toSignal(\n // (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.isReady.get(),\n // );\n\n // if (!spaces || !isReady) {\n // return;\n // }\n\n // const space = spaces.find((space) => space.id === id);\n // if (!space) {\n // return;\n // }\n\n // if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n // return false;\n // } else if (space.state.get() !== SpaceState.SPACE_READY) {\n // return undefined;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return constructSpaceNode({\n // space,\n // navigable: state.navigableCollections,\n // personal: space === client.spaces.default,\n // namesCache: state.spaceNames,\n // resolve,\n // });\n // }\n // },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.flatMap((space) => {\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [client] = get(context.capabilities(ClientCapabilities.Client));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n\n if (!dispatcher || !client || !state) {\n return Option.none();\n } else {\n return Option.some({\n space,\n dispatch: dispatcher.dispatchPromise,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n }\n }),\n Option.map((params) => constructSpaceActions(params)),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((space) => {\n const state = context.getCapability(SpaceCapabilities.State);\n\n const spaceState = get(rxFromObservable(space.state));\n if (spaceState !== SpaceState.SPACE_READY) {\n return [];\n }\n\n const collection = get(\n rxFromSignal(() => space.properties[CollectionType.typename]?.target as CollectionType | undefined),\n );\n if (!collection) {\n return [];\n }\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map((object) =>\n createObjectNode({\n object,\n space,\n resolve,\n navigable: state.navigableCollections,\n }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.data instanceof CollectionType ? Option.some(node.data) : Option.none())),\n Option.map((collection) => {\n const state = context.getCapability(SpaceCapabilities.State);\n const space = getSpace(collection);\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map(\n (object) =>\n space && createObjectNode({ object, space, resolve, navigable: state.navigableCollections }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => {\n // if (id.length !== FQ_ID_LENGTH) {\n // return;\n // }\n\n // const [spaceId, objectId] = id.split(':');\n // if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const space = client.spaces.get().find((space) => space.id === spaceId);\n // if (!space) {\n // return;\n // }\n\n // const spaceState = toSignal(\n // (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n // () => space.state.get(),\n // space.id,\n // );\n // if (spaceState !== SpaceState.SPACE_READY) {\n // return;\n // }\n\n // const [object] = memoizeQuery(space, Query.select(Filter.ids(objectId)));\n // if (!object) {\n // return;\n // }\n\n // if (isDeleted(object)) {\n // return false;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n // }\n // },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (isEchoObject(node.data) ? Option.some(node.data) : Option.none())),\n Option.flatMap((object) => {\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [appGraph] = get(context.capabilities(Capabilities.AppGraph));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n\n if (!dispatcher || !appGraph || !state) {\n return Option.none();\n } else {\n return Option.some({\n object,\n graph: appGraph.graph,\n dispatch: dispatcher.dispatchPromise,\n navigable: get(rxFromSignal(() => state.navigableCollections)),\n });\n }\n }),\n Option.map((params) => constructObjectActions(params)),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Object settings plank companion.\n createExtension({\n id: `${SPACE_PLUGIN}/settings`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (isEchoObject(node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'settings'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'settings',\n properties: {\n label: ['object settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "Array", "Option", "pipe", "Capabilities", "contributes", "createIntent", "Expando", "Filter", "getSpace", "isEchoObject", "SpaceState", "isSpace", "log", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "rxFromObservable", "ROOT_ID", "rxFromSignal", "isNonNullable", "context", "resolve", "typename", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "getCapability", "AppGraph", "client", "ClientCapabilities", "Client", "sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "SpaceAction", "OpenCreateSpace", "_tag", "data", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "Join", "OpenMembers", "space", "getActiveSpace", "keyBinding", "macos", "windows", "OpenSettings", "getOrElse", "connector", "state", "SpaceCapabilities", "State", "spacesRx", "rxFromObservable", "isReadyRx", "isReady", "settings", "capabilities", "SettingsStore", "getStore", "value", "rxFromQuery", "rxFromSignal", "orderMap", "Map", "index", "filter", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "SPACE_TYPE", "isSpace", "dispatcher", "migrating", "sdkMigrationRunning", "params", "constructSpaceActions", "spaceState", "SPACE_READY", "collection", "CollectionType", "target", "Array", "object", "isNonNullable", "createObjectNode", "getSpace", "isEchoObject", "appGraph", "constructObjectActions", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-serializer.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';\nimport { isSpace } from '@dxos/client/echo';\nimport { live } from '@dxos/live-object';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport translations from '../translations';\nimport { CollectionType, SpaceAction, SPACE_TYPE } from '../types';\nimport { SPACES } from '../util';\n\n// https://stackoverflow.com/a/19016910\nconst DIRECTORY_TYPE = 'text/directory';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphSerializer, [\n {\n inputType: SPACES,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'],\n data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: () => {\n // No-op.\n },\n },\n {\n inputType: SPACE_TYPE,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data) => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(createIntent(SpaceAction.Create, { name: data.name, edgeReplication: true }));\n return result.data?.space;\n },\n },\n {\n inputType: CollectionType.typename,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.name ?? translations[0]['en-US'][CollectionType.typename]['object name placeholder'],\n data: node.data.name ?? translations[0]['en-US'][CollectionType.typename]['object name placeholder'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const collection =\n ancestors.findLast((ancestor) => ancestor instanceof CollectionType) ??\n space?.properties[CollectionType.typename]?.target;\n if (!space || !collection) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(\n createIntent(SpaceAction.AddObject, {\n target: collection,\n object: live(CollectionType, { name: data.name, objects: [], views: {} }),\n }),\n );\n\n return result.data?.object;\n },\n },\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,oBAAwC;AAC5E,SAASC,eAAe;AACxB,SAASC,YAAY;AAQrB,IAAMC,iBAAiB;AAEvB,IAAA,+BAAe,CAACC,YACdC,YAAYC,aAAaC,oBAAoB;EAC3C;IACEC,WAAWC;IACXC,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA;MAC7CC,MAAMF,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA;MAC7CE,MAAMd;IACR;IACAe,aAAa,MAAA;IAEb;EACF;EACA;IACEV,WAAWW;IACXT,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKI,WAAWP,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EC,MAAMJ,KAAKI,KAAKI,WAAWP,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EE,MAAMd;IACR;IACAe,aAAa,OAAOF,SAAAA;AAClB,YAAM,EAAEK,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SAASI,aAAaC,YAAYC,QAAQ;QAAEf,MAAMG,KAAKH;QAAMgB,iBAAiB;MAAK,CAAA,CAAA;AACxG,aAAOJ,OAAOT,MAAMc;IACtB;EACF;EACA;IACEtB,WAAWuB,eAAeC;IAC1BtB,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKH,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASiB,eAAeC,QAAQ,EAAE,yBAAA;MAC1EhB,MAAMJ,KAAKI,KAAKH,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASiB,eAAeC,QAAQ,EAAE,yBAAA;MAC1Ef,MAAMd;IACR;IACAe,aAAa,OAAOF,MAAMiB,cAAAA;AACxB,YAAMH,QAAQG,UAAUC,KAAKC,OAAAA;AAC7B,YAAMC,aACJH,UAAUI,SAAS,CAACC,aAAaA,oBAAoBP,cAAAA,KACrDD,OAAOV,WAAWW,eAAeC,QAAQ,GAAGO;AAC9C,UAAI,CAACT,SAAS,CAACM,YAAY;AACzB;MACF;AAEA,YAAM,EAAEf,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SACnBI,aAAaC,YAAYa,WAAW;QAClCD,QAAQH;QACRK,QAAQC,KAAKX,gBAAgB;UAAElB,MAAMG,KAAKH;UAAM8B,SAAS,CAAA;UAAIC,OAAO,CAAC;QAAE,CAAA;MACzE,CAAA,CAAA;AAGF,aAAOnB,OAAOT,MAAMyB;IACtB;EACF;CACD;",
6
- "names": ["Capabilities", "contributes", "createIntent", "isSpace", "live", "DIRECTORY_TYPE", "context", "contributes", "Capabilities", "AppGraphSerializer", "inputType", "SPACES", "outputType", "serialize", "node", "name", "translations", "SPACE_PLUGIN", "data", "type", "deserialize", "SPACE_TYPE", "properties", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "result", "createIntent", "SpaceAction", "Create", "edgeReplication", "space", "CollectionType", "typename", "ancestors", "find", "isSpace", "collection", "findLast", "ancestor", "target", "AddObject", "object", "live", "objects", "views"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/util.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\n\nimport { createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { type BaseObject, EXPANDO_TYPENAME, getTypeAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { getSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n type ReadableGraph,\n type ActionData,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n type QueryResult,\n SpaceState,\n type AnyLiveObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction, SPACE_TYPE } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\n/**\n * Convert a query result to an Rx value of the objects.\n */\nexport const rxFromQuery = <T extends BaseObject>(query: QueryResult<T>): Rx.Rx<T[]> => {\n return Rx.make((get) => {\n const unsubscribe = query.subscribe((result) => {\n get.setSelf(result.objects);\n });\n\n get.addFinalizer(() => unsubscribe());\n\n return query.objects;\n });\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n navigable,\n collection,\n space,\n resolve,\n}: {\n navigable: boolean;\n collection: CollectionType;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(isEchoObject).map(makeRef);\n },\n onTransferStart: (child: Node<AnyLiveObject<any>>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(child.data));\n } else {\n collection.objects.push(makeRef(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<AnyLiveObject<any>>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<AnyLiveObject<any>>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(newObject));\n } else {\n collection.objects.push(makeRef(newObject));\n }\n },\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[CollectionType.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && collection instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection, space, resolve, navigable })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/settings`,\n data: null,\n properties: {\n label: ['settings panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n nodes: [\n {\n id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/properties`,\n data: `${SPACE_PLUGIN}/properties`,\n properties: {\n label: ['space settings properties label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n },\n },\n {\n id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/members`,\n data: `${SPACE_PLUGIN}/members`,\n properties: {\n label: ['members panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n position: 'hoist',\n },\n },\n {\n id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/schema`,\n data: `${SPACE_PLUGIN}/schema`,\n properties: {\n label: ['space settings schema label', { ns: SPACE_PLUGIN }],\n icon: 'ph--shapes--regular',\n },\n },\n ],\n },\n ],\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'list-item-primary',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n );\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: AnyLiveObject<any>;\n space: Space;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\n const partials =\n object instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection: object, space, resolve, navigable })\n : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n ...partials,\n label: metadata.label?.(object) ||\n object.name || ['object name placeholder', { ns: type, default: 'New object' }],\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n },\n };\n};\n\nexport const constructObjectActions = ({\n object,\n graph,\n dispatch,\n navigable = false,\n}: {\n object: AnyLiveObject<any>;\n graph: ReadableGraph;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n const actions: NodeArg<ActionData>[] = [\n ...(object instanceof CollectionType\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--pencil-simple-line--regular',\n // TODO(wittjosiah): Need's focus.\n keyBinding: {\n macos: 'shift+F6',\n },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const collection = graph\n .getConnections(fullyQualifiedId(object), 'inbound')\n .find(({ data }) => data instanceof CollectionType)?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable || !(object instanceof CollectionType)\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: AnyLiveObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<AnyLiveObject<any>[]> => {\n const type = getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: AnyLiveObject<any>[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Expando> => {\n const schema = getSchema(object);\n const typename = schema ? getTypeAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getTypeAnnotation", "getTypename", "getSchema", "invariant", "makeRef", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "fullyQualifiedId", "getSpace", "isEchoObject", "SpaceState", "ATTENDABLE_PATH_SEPARATOR", "SPACES", "SPACE_PLUGIN", "COMPOSER_SPACE_LOCK", "SHARED", "rxFromQuery", "query", "Rx", "make", "get", "unsubscribe", "subscribe", "result", "setSelf", "objects", "addFinalizer", "getSpaceDisplayName", "space", "personal", "namesCache", "state", "SpaceState", "SPACE_READY", "properties", "name", "length", "id", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "filter", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "db", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "SPACE_TYPE", "cacheable", "label", "description", "hue", "icon", "undefined", "disabled", "testId", "nodes", "ATTENDABLE_PATH_SEPARATOR", "disposition", "position", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "running", "OpenCreateObject", "ACTION_TYPE", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "default", "persistenceClass", "persistenceKey", "constructObjectActions", "graph", "getSpace", "invariant", "RenameObject", "RemoveObjects", "getConnections", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "LayoutAction", "Expose", "part", "subject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getTypeAnnotation", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/collection.ts", "../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Expando, Ref, TypedObject } from '@dxos/echo-schema';\n\nexport class CollectionType extends TypedObject({ typename: 'dxos.org/type/Collection', version: '0.1.0' })({\n name: Schema.optional(Schema.String),\n objects: Schema.mutable(Schema.Array(Ref(Expando))),\n // Key is schema typename and value is reference to a view object of the associated schema.\n // Having collection reference the views rather than vice versa ensures that the state converges to a single view per key (i.e. type).\n // This also leaves open a future where this key could be changed to allow for multiple stack views per section.\n // TODO(wittjosiah): Any way to make this more type safe?\n // TODO(wittjosiah): Should the views be separate objects or just be schemas for view data in this record?\n views: Schema.mutable(Schema.Record({ key: Schema.String, value: Ref(Expando) })),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { type AnyIntentChain } from '@dxos/app-framework';\nimport { Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';\nimport { type PublicKey } from '@dxos/react-client';\n// TODO(wittjosiah): This pulls in full client.\nimport { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';\nimport { type ComplexMap } from '@dxos/util';\n\nimport { CollectionType } from './collection';\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const SPACE_DIRECTORY_HANDLE = 'dxos.org/plugin/space/directory';\nexport const SPACE_TYPE = 'dxos.org/type/Space';\n\nexport type ObjectViewerProps = {\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type ObjectId = string;\n\nexport type PluginState = {\n /**\n * Which objects are currently being viewed by which peers.\n */\n viewersByObject: Record<ObjectId, ComplexMap<PublicKey, ObjectViewerProps>>;\n\n /**\n * Which peers are currently viewing which objects.\n */\n viewersByIdentity: ComplexMap<PublicKey, Set<ObjectId>>;\n\n /**\n * Object that was linked to directly but not found and is being awaited.\n */\n awaiting: string | undefined;\n\n /**\n * Cached space names, used when spaces are closed or loading.\n */\n spaceNames: Record<string, string>;\n\n /**\n * Which spaces have an SDK migration running currently.\n */\n // TODO(wittjosiah): Factor out to sdk. Migration running should probably be a space state.\n sdkMigrationRunning: Record<string, boolean>;\n\n /**\n * Whether or not the user can navigate to collections in the graph.\n * Determined by whether or not there is an available plugin that can render a collection.\n */\n navigableCollections: boolean;\n\n /**\n * Tracks whether setting edge replication as default has been run on spaces.\n */\n // TODO(wittjosiah): Systematic way to handle migrations of state outside of spaces.\n enabledEdgeReplication: boolean;\n};\n\nexport const SpaceSettingsSchema = Schema.mutable(\n Schema.Struct({\n /**\n * Show closed spaces.\n */\n showHidden: Schema.Boolean,\n }),\n);\n\nexport type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;\n\n// TODO(wittjosiah): Reconcile with graph export serializers.\n\nexport type SerializerMap = Record<string, TypedObjectSerializer>;\n\nexport interface TypedObjectSerializer<T extends Expando = Expando> {\n serialize(params: { object: T }): Promise<string>;\n\n /**\n * @param params.content\n * @param params.space Space to use for deserializing schema references.\n * @param params.newId Generate new ID for deserialized object.\n */\n deserialize(params: { content: string; space: Space; newId?: boolean }): Promise<T>;\n}\n\n// TODO(burdon): Move to FormatEnum or SDK.\nexport const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');\nexport const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');\n\nexport const SpaceForm = Schema.Struct({\n name: Schema.optional(Schema.String.annotations({ title: 'Name' })),\n icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),\n hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),\n // TODO(wittjosiah): Make optional with default value.\n edgeReplication: Schema.Boolean.annotations({ title: 'Enable EDGE Replication' }),\n});\n\nexport type ObjectForm<T extends BaseObject = BaseObject> = {\n // TODO(dmaretskyi): Change to Schema.Schema.AnyNoContext\n objectSchema: TypedObject;\n formSchema?: Schema.Schema<T, any>;\n hidden?: boolean;\n getIntent: (props: T, options: { space: Space }) => AnyIntentChain;\n};\n\nexport const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;\n\nexport const SPACE_ACTION = `${SPACE_PLUGIN}/action`;\n\nexport namespace SpaceAction {\n export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class Create extends Schema.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {\n input: SpaceForm,\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n space: SpaceSchema,\n }),\n }) {}\n\n export class Join extends Schema.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n onDone: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n }) {}\n\n export class OpenMembers extends Schema.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Share extends Schema.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {\n input: Schema.Struct({\n space: SpaceSchema,\n type: Schema.Enums(Invitation.Type),\n authMethod: Schema.Enums(Invitation.AuthMethod),\n multiUse: Schema.Boolean,\n target: Schema.optional(Schema.String),\n }),\n output: Schema.instanceOf(CancellableInvitationObservable),\n }) {}\n\n export class GetShareLink extends Schema.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {\n input: Schema.Struct({\n space: SpaceSchema,\n target: Schema.optional(Schema.String),\n copyToClipboard: Schema.optional(Schema.Boolean),\n }),\n output: Schema.String,\n }) {}\n\n export class Lock extends Schema.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Unlock extends Schema.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Rename extends Schema.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {\n input: Schema.Struct({\n space: SpaceSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n // TODO(wittjosiah): Handle scrolling to section.\n // This maybe motivates making the space settings its own deck?\n export class OpenSettings extends Schema.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {\n input: Schema.Struct({ space: SpaceSchema }),\n output: Schema.Void,\n }) {}\n\n export class Open extends Schema.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Close extends Schema.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Migrate extends Schema.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {\n input: Schema.Struct({\n space: SpaceSchema,\n version: Schema.optional(Schema.String),\n }),\n output: Schema.Boolean,\n }) {}\n\n export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {\n input: Schema.Struct({\n target: Schema.Union(SpaceSchema, CollectionType),\n navigable: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n }) {}\n\n export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {\n input: Schema.Struct({\n object: ReactiveObjectSchema,\n target: Schema.Union(SpaceSchema, CollectionType),\n hidden: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n object: EchoObjectSchema,\n }),\n }) {}\n\n export class AddRelation extends Schema.TaggedClass<AddRelation>()(`${SPACE_ACTION}/add-relation`, {\n input: Schema.Struct({\n space: SpaceSchema,\n // TODO(wittjosiah): Relation schema.\n schema: Schema.Any,\n source: Expando,\n target: Expando,\n // TODO(wittjosiah): Type based on relation schema.\n fields: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Struct({\n relation: Schema.Any,\n }),\n }) {}\n\n export const DeletionData = Schema.Struct({\n objects: Schema.Array(EchoObjectSchema),\n parentCollection: CollectionType,\n indices: Schema.Array(Schema.Number),\n nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),\n wasActive: Schema.Array(Schema.String),\n });\n\n export type DeletionData = Schema.Schema.Type<typeof DeletionData>;\n\n export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {\n input: Schema.Struct({\n objects: Schema.Array(EchoObjectSchema),\n target: Schema.optional(CollectionType),\n deletionData: Schema.optional(DeletionData),\n }),\n output: Schema.Void,\n }) {}\n\n export class RenameObject extends Schema.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n target: Schema.Union(SpaceSchema, CollectionType),\n }),\n output: Schema.Void,\n }) {}\n\n export class WaitForObject extends Schema.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {\n input: Schema.Struct({\n id: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport namespace CollectionAction {\n export class Create extends Schema.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: CollectionType,\n }),\n }) {}\n}\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "Expando", "Ref", "TypedObject", "CollectionType", "TypedObject", "typename", "version", "name", "Schema", "optional", "String", "objects", "mutable", "Array", "Ref", "Expando", "views", "Record", "key", "value", "Schema", "Expando", "EchoObjectSchema", "ReactiveObjectSchema", "SpaceSchema", "CancellableInvitationObservable", "Invitation", "SPACE_DIRECTORY_HANDLE", "SPACE_TYPE", "SpaceSettingsSchema", "Schema", "mutable", "Struct", "showHidden", "Boolean", "IconAnnotationId", "Symbol", "for", "HueAnnotationId", "SpaceForm", "name", "optional", "String", "annotations", "title", "icon", "hue", "edgeReplication", "defineObjectForm", "form", "SPACE_ACTION", "SPACE_PLUGIN", "SpaceAction", "OpenCreateSpace", "TaggedClass", "input", "Void", "output", "Create", "id", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "OpenMembers", "Share", "type", "Enums", "Invitation", "Type", "authMethod", "AuthMethod", "multiUse", "target", "instanceOf", "CancellableInvitationObservable", "GetShareLink", "copyToClipboard", "Lock", "Unlock", "Rename", "caller", "OpenSettings", "Open", "Close", "Migrate", "version", "OpenCreateObject", "Union", "CollectionType", "navigable", "AddObject", "object", "ReactiveObjectSchema", "hidden", "EchoObjectSchema", "AddRelation", "schema", "source", "Expando", "fields", "Record", "key", "value", "relation", "DeletionData", "objects", "parentCollection", "indices", "Number", "nestedObjectsList", "wasActive", "RemoveObjects", "deletionData", "RenameObject", "DuplicateObject", "WaitForObject", "CollectionAction"]
7
- }