@dxos/plugin-graph 0.7.5-labs.e27f9b9 → 0.7.5-main.2567c87
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/GraphContext-VQKUKWLP.mjs +10 -0
- package/dist/lib/browser/GraphContext-VQKUKWLP.mjs.map +7 -0
- package/dist/lib/browser/chunk-L7JM5AMI.mjs +25 -0
- package/dist/lib/browser/chunk-L7JM5AMI.mjs.map +7 -0
- package/dist/lib/browser/{graph-U2AHH24Q.mjs → graph-WNFVYZKZ.mjs} +4 -16
- package/dist/lib/browser/graph-WNFVYZKZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +12 -4
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/GraphContext-MUIA2AJE.cjs +31 -0
- package/dist/lib/node/GraphContext-MUIA2AJE.cjs.map +7 -0
- package/dist/lib/node/chunk-3QIHDIIS.cjs +55 -0
- package/dist/lib/node/chunk-3QIHDIIS.cjs.map +7 -0
- package/dist/lib/node/{graph-AOAAITHV.cjs → graph-HXCMZDUQ.cjs} +6 -18
- package/dist/lib/node/graph-HXCMZDUQ.cjs.map +7 -0
- package/dist/lib/node/index.cjs +11 -4
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/GraphContext-VNVZEAJK.mjs +11 -0
- package/dist/lib/node-esm/GraphContext-VNVZEAJK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XY43PHPY.mjs +26 -0
- package/dist/lib/node-esm/chunk-XY43PHPY.mjs.map +7 -0
- package/dist/lib/node-esm/{graph-VC422POI.mjs → graph-UQRZMBQ5.mjs} +4 -16
- package/dist/lib/node-esm/graph-UQRZMBQ5.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +12 -4
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/GraphContext.d.ts +11 -0
- package/dist/types/src/GraphContext.d.ts.map +1 -0
- package/dist/types/src/GraphPlugin.d.ts.map +1 -1
- package/dist/types/src/graph.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/GraphContext.tsx +25 -0
- package/src/GraphPlugin.ts +6 -1
- package/src/graph.ts +3 -16
- package/src/index.ts +1 -0
- package/dist/lib/browser/graph-U2AHH24Q.mjs.map +0 -7
- package/dist/lib/node/graph-AOAAITHV.cjs.map +0 -7
- package/dist/lib/node-esm/graph-VC422POI.mjs.map +0 -7
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GRAPH_PLUGIN
|
|
3
|
+
} from "./chunk-7LNMG3EB.mjs";
|
|
4
|
+
|
|
5
|
+
// packages/plugins/plugin-graph/src/GraphContext.tsx
|
|
6
|
+
import React, { createContext, useContext } from "react";
|
|
7
|
+
import { Capabilities, contributes, useCapability } from "@dxos/app-framework";
|
|
8
|
+
import { raise } from "@dxos/debug";
|
|
9
|
+
var GraphContext = /* @__PURE__ */ createContext(null);
|
|
10
|
+
var useGraph = () => useContext(GraphContext) ?? raise(new Error("Missing GraphContext"));
|
|
11
|
+
var GraphContext_default = () => contributes(Capabilities.ReactContext, {
|
|
12
|
+
id: GRAPH_PLUGIN,
|
|
13
|
+
context: (props) => {
|
|
14
|
+
const value = useCapability(Capabilities.AppGraph);
|
|
15
|
+
return /* @__PURE__ */ React.createElement(GraphContext.Provider, {
|
|
16
|
+
value
|
|
17
|
+
}, props.children);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
useGraph,
|
|
23
|
+
GraphContext_default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=chunk-L7JM5AMI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/GraphContext.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type Context, createContext, type PropsWithChildren, useContext } from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\nimport { type GraphBuilder } from '@dxos/app-graph';\nimport { raise } from '@dxos/debug';\n\nimport { GRAPH_PLUGIN } from './meta';\n\ntype GraphContextType = Pick<GraphBuilder, 'graph' | 'explore'>;\nconst GraphContext: Context<GraphContextType | null> = createContext<GraphContextType | null>(null);\n\nexport const useGraph = (): GraphContextType => useContext(GraphContext) ?? raise(new Error('Missing GraphContext'));\n\nexport default () =>\n contributes(Capabilities.ReactContext, {\n id: GRAPH_PLUGIN,\n context: (props: PropsWithChildren) => {\n const value = useCapability(Capabilities.AppGraph);\n return <GraphContext.Provider value={value}>{props.children}</GraphContext.Provider>;\n },\n });\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,OAAOA,SAAuBC,eAAuCC,kBAAkB;AAEvF,SAASC,cAAcC,aAAaC,qBAAqB;AAEzD,SAASC,aAAa;AAKtB,IAAMC,eAAiDC,8BAAuC,IAAA;AAEvF,IAAMC,WAAW,MAAwBC,WAAWH,YAAAA,KAAiBI,MAAM,IAAIC,MAAM,sBAAA,CAAA;AAE5F,IAAA,uBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,IAAIC;EACJC,SAAS,CAACC,UAAAA;AACR,UAAMC,QAAQC,cAAcP,aAAaQ,QAAQ;AACjD,WAAO,sBAAA,cAACf,aAAagB,UAAQ;MAACH;OAAeD,MAAMK,QAAQ;EAC7D;AACF,CAAA;",
|
|
6
|
+
"names": ["React", "createContext", "useContext", "Capabilities", "contributes", "useCapability", "raise", "GraphContext", "createContext", "useGraph", "useContext", "raise", "Error", "contributes", "Capabilities", "ReactContext", "id", "GRAPH_PLUGIN", "context", "props", "value", "useCapability", "AppGraph", "Provider", "children"]
|
|
7
|
+
}
|
|
@@ -3,34 +3,22 @@ import {
|
|
|
3
3
|
} from "./chunk-7LNMG3EB.mjs";
|
|
4
4
|
|
|
5
5
|
// packages/plugins/plugin-graph/src/graph.ts
|
|
6
|
-
import { batch, effect, untracked } from "@preact/signals-core";
|
|
7
6
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
8
|
-
import {
|
|
7
|
+
import { GraphBuilder } from "@dxos/app-graph";
|
|
9
8
|
var KEY = `${GRAPH_PLUGIN}/app-graph`;
|
|
10
9
|
var graph_default = async (context) => {
|
|
11
10
|
const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? void 0);
|
|
12
11
|
const interval = setInterval(() => {
|
|
13
12
|
localStorage.setItem(KEY, builder.graph.pickle());
|
|
14
13
|
}, 5e3);
|
|
15
|
-
|
|
16
|
-
batch(() => {
|
|
17
|
-
const next = flattenExtensions(context.requestCapabilities(Capabilities.AppGraphBuilder));
|
|
18
|
-
const current = untracked(() => builder.extensions);
|
|
19
|
-
const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));
|
|
20
|
-
removed.forEach((extension) => builder.removeExtension(extension.id));
|
|
21
|
-
next.forEach((extension) => builder.addExtension(extension));
|
|
22
|
-
});
|
|
23
|
-
});
|
|
14
|
+
context.requestCapabilities(Capabilities.AppGraphBuilder).forEach((extension) => builder.addExtension(extension));
|
|
24
15
|
await builder.initialize();
|
|
25
16
|
await builder.graph.expand(builder.graph.root);
|
|
26
17
|
setupDevtools(builder.graph);
|
|
27
18
|
return contributes(Capabilities.AppGraph, {
|
|
28
19
|
graph: builder.graph,
|
|
29
20
|
explore: (options) => builder.explore(options)
|
|
30
|
-
}, () =>
|
|
31
|
-
clearInterval(interval);
|
|
32
|
-
unsubscribe();
|
|
33
|
-
});
|
|
21
|
+
}, () => clearInterval(interval));
|
|
34
22
|
};
|
|
35
23
|
var setupDevtools = (graph) => {
|
|
36
24
|
globalThis.composer ??= {};
|
|
@@ -39,4 +27,4 @@ var setupDevtools = (graph) => {
|
|
|
39
27
|
export {
|
|
40
28
|
graph_default as default
|
|
41
29
|
};
|
|
42
|
-
//# sourceMappingURL=graph-
|
|
30
|
+
//# sourceMappingURL=graph-WNFVYZKZ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/graph.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type Graph, GraphBuilder } from '@dxos/app-graph';\n\nimport { GRAPH_PLUGIN } from './meta';\n\nconst KEY = `${GRAPH_PLUGIN}/app-graph`;\n\nexport default async (context: PluginsContext) => {\n const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? undefined);\n const interval = setInterval(() => {\n localStorage.setItem(KEY, builder.graph.pickle());\n }, 5_000);\n\n context.requestCapabilities(Capabilities.AppGraphBuilder).forEach((extension) => builder.addExtension(extension));\n\n await builder.initialize();\n await builder.graph.expand(builder.graph.root);\n\n setupDevtools(builder.graph);\n\n return contributes(\n Capabilities.AppGraph,\n { graph: builder.graph, explore: (options) => builder.explore(options) },\n () => clearInterval(interval),\n );\n};\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,cAAcC,mBAAwC;AAC/D,SAAqBC,oBAAoB;AAIzC,IAAMC,MAAM,GAAGC,YAAAA;AAEf,IAAA,gBAAe,OAAOC,YAAAA;AACpB,QAAMC,UAAUC,aAAaC,KAAKC,aAAaC,QAAQP,GAAAA,KAAQQ,MAAAA;AAC/D,QAAMC,WAAWC,YAAY,MAAA;AAC3BJ,iBAAaK,QAAQX,KAAKG,QAAQS,MAAMC,OAAM,CAAA;EAChD,GAAG,GAAA;AAEHX,UAAQY,oBAAoBC,aAAaC,eAAe,EAAEC,QAAQ,CAACC,cAAcf,QAAQgB,aAAaD,SAAAA,CAAAA;AAEtG,QAAMf,QAAQiB,WAAU;AACxB,QAAMjB,QAAQS,MAAMS,OAAOlB,QAAQS,MAAMU,IAAI;AAE7CC,gBAAcpB,QAAQS,KAAK;AAE3B,SAAOY,YACLT,aAAaU,UACb;IAAEb,OAAOT,QAAQS;IAAOc,SAAS,CAACC,YAAYxB,QAAQuB,QAAQC,OAAAA;EAAS,GACvE,MAAMC,cAAcnB,QAAAA,CAAAA;AAExB;AAGA,IAAMc,gBAAgB,CAACX,UAAAA;AACpBiB,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAASlB,QAAQA;AACvC;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "GraphBuilder", "KEY", "GRAPH_PLUGIN", "context", "builder", "GraphBuilder", "from", "localStorage", "getItem", "undefined", "interval", "setInterval", "setItem", "graph", "pickle", "requestCapabilities", "Capabilities", "AppGraphBuilder", "forEach", "extension", "addExtension", "initialize", "expand", "root", "setupDevtools", "contributes", "AppGraph", "explore", "options", "clearInterval", "globalThis", "composer"]
|
|
7
|
+
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useGraph
|
|
3
|
+
} from "./chunk-L7JM5AMI.mjs";
|
|
1
4
|
import {
|
|
2
5
|
GRAPH_PLUGIN,
|
|
3
6
|
meta
|
|
@@ -9,22 +12,27 @@ export * from "@dxos/app-graph";
|
|
|
9
12
|
// packages/plugins/plugin-graph/src/GraphPlugin.ts
|
|
10
13
|
import { defineModule, lazy, Events, definePlugin } from "@dxos/app-framework";
|
|
11
14
|
var GraphPlugin = () => definePlugin(meta, [
|
|
15
|
+
defineModule({
|
|
16
|
+
id: `${meta.id}/module/react-context`,
|
|
17
|
+
activatesOn: Events.Startup,
|
|
18
|
+
activate: lazy(() => import("./GraphContext-VQKUKWLP.mjs"))
|
|
19
|
+
}),
|
|
12
20
|
defineModule({
|
|
13
21
|
id: `${meta.id}/module/graph`,
|
|
14
22
|
activatesOn: Events.Startup,
|
|
15
23
|
activatesBefore: [
|
|
16
|
-
Events.SetupAppGraph
|
|
17
|
-
Events.SetupMetadata
|
|
24
|
+
Events.SetupAppGraph
|
|
18
25
|
],
|
|
19
26
|
activatesAfter: [
|
|
20
27
|
Events.AppGraphReady
|
|
21
28
|
],
|
|
22
|
-
activate: lazy(() => import("./graph-
|
|
29
|
+
activate: lazy(() => import("./graph-WNFVYZKZ.mjs"))
|
|
23
30
|
})
|
|
24
31
|
]);
|
|
25
32
|
export {
|
|
26
33
|
GRAPH_PLUGIN,
|
|
27
34
|
GraphPlugin,
|
|
28
|
-
meta
|
|
35
|
+
meta,
|
|
36
|
+
useGraph
|
|
29
37
|
};
|
|
30
38
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts", "../../../src/GraphPlugin.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport * from '@dxos/app-graph';\n\nexport * from './GraphPlugin';\nexport * from './meta';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineModule, lazy, Events, definePlugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/graph`,\n activatesOn: Events.Startup,\n activatesBefore: [Events.SetupAppGraph
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["defineModule", "lazy", "Events", "definePlugin", "GraphPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport * from '@dxos/app-graph';\n\nexport * from './GraphContext';\nexport * from './GraphPlugin';\nexport * from './meta';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineModule, lazy, Events, definePlugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/react-context`,\n activatesOn: Events.Startup,\n activate: lazy(() => import('./GraphContext')),\n }),\n defineModule({\n id: `${meta.id}/module/graph`,\n activatesOn: Events.Startup,\n activatesBefore: [Events.SetupAppGraph],\n activatesAfter: [Events.AppGraphReady],\n activate: lazy(() => import('./graph')),\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,cAAc;;;ACAd,SAASA,cAAcC,MAAMC,QAAQC,oBAAoB;AASlD,IAAMC,cAAc,MACzBC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAUC,KAAK,MAAM,OAAO,6BAAA,CAAA;EAC9B,CAAA;EACAN,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBG,iBAAiB;MAACJ,OAAOK;;IACzBC,gBAAgB;MAACN,OAAOO;;IACxBL,UAAUC,KAAK,MAAM,OAAO,sBAAA,CAAA;EAC9B,CAAA;CACD;",
|
|
6
|
+
"names": ["defineModule", "lazy", "Events", "definePlugin", "GraphPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "lazy", "activatesBefore", "SetupAppGraph", "activatesAfter", "AppGraphReady"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytes":891,"imports":[],"format":"esm"},"packages/plugins/plugin-graph/src/
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytes":891,"imports":[],"format":"esm"},"packages/plugins/plugin-graph/src/GraphContext.tsx":{"bytes":3234,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-graph/src/graph.ts":{"bytes":4364,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-graph/src/GraphPlugin.ts":{"bytes":3276,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-graph/src/GraphContext.tsx","kind":"dynamic-import","original":"./GraphContext"},{"path":"packages/plugins/plugin-graph/src/graph.ts","kind":"dynamic-import","original":"./graph"}],"format":"esm"},"packages/plugins/plugin-graph/src/index.ts":{"bytes":797,"imports":[{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/GraphContext.tsx","kind":"import-statement","original":"./GraphContext"},{"path":"packages/plugins/plugin-graph/src/GraphPlugin.ts","kind":"import-statement","original":"./GraphPlugin"},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-graph/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1757},"packages/plugins/plugin-graph/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/browser/chunk-L7JM5AMI.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-graph/dist/lib/browser/chunk-7LNMG3EB.mjs","kind":"import-statement"},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/dist/lib/browser/GraphContext-VQKUKWLP.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-graph/dist/lib/browser/graph-WNFVYZKZ.mjs","kind":"dynamic-import"}],"exports":["GRAPH_PLUGIN","GraphPlugin","meta","useGraph"],"entryPoint":"packages/plugins/plugin-graph/src/index.ts","inputs":{"packages/plugins/plugin-graph/src/index.ts":{"bytesInOutput":33},"packages/plugins/plugin-graph/src/GraphPlugin.ts":{"bytesInOutput":552}},"bytes":896},"packages/plugins/plugin-graph/dist/lib/browser/GraphContext-VQKUKWLP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-graph/dist/lib/browser/GraphContext-VQKUKWLP.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/browser/chunk-L7JM5AMI.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-graph/dist/lib/browser/chunk-7LNMG3EB.mjs","kind":"import-statement"}],"exports":["default","useGraph"],"entryPoint":"packages/plugins/plugin-graph/src/GraphContext.tsx","inputs":{},"bytes":215},"packages/plugins/plugin-graph/dist/lib/browser/chunk-L7JM5AMI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1766},"packages/plugins/plugin-graph/dist/lib/browser/chunk-L7JM5AMI.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/browser/chunk-7LNMG3EB.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["GraphContext_default","useGraph"],"inputs":{"packages/plugins/plugin-graph/src/GraphContext.tsx":{"bytesInOutput":612}},"bytes":814},"packages/plugins/plugin-graph/dist/lib/browser/graph-WNFVYZKZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2342},"packages/plugins/plugin-graph/dist/lib/browser/graph-WNFVYZKZ.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/browser/chunk-7LNMG3EB.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-graph/src/graph.ts","inputs":{"packages/plugins/plugin-graph/src/graph.ts":{"bytesInOutput":867}},"bytes":1052},"packages/plugins/plugin-graph/dist/lib/browser/chunk-7LNMG3EB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":418},"packages/plugins/plugin-graph/dist/lib/browser/chunk-7LNMG3EB.mjs":{"imports":[],"exports":["GRAPH_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytesInOutput":79}},"bytes":204}}}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 GraphContext_MUIA2AJE_exports = {};
|
|
20
|
+
__export(GraphContext_MUIA2AJE_exports, {
|
|
21
|
+
default: () => import_chunk_3QIHDIIS.GraphContext_default,
|
|
22
|
+
useGraph: () => import_chunk_3QIHDIIS.useGraph
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(GraphContext_MUIA2AJE_exports);
|
|
25
|
+
var import_chunk_3QIHDIIS = require("./chunk-3QIHDIIS.cjs");
|
|
26
|
+
var import_chunk_KHIPMH35 = require("./chunk-KHIPMH35.cjs");
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
useGraph
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=GraphContext-MUIA2AJE.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["GraphContext-MUIA2AJE.cjs"],
|
|
4
|
+
"sourcesContent": ["import {\n GraphContext_default,\n useGraph\n} from \"./chunk-3QIHDIIS.cjs\";\nimport \"./chunk-KHIPMH35.cjs\";\nexport {\n GraphContext_default as default,\n useGraph\n};\n//# sourceMappingURL=GraphContext-MUIA2AJE.cjs.map\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;AACP,4BAAO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var chunk_3QIHDIIS_exports = {};
|
|
30
|
+
__export(chunk_3QIHDIIS_exports, {
|
|
31
|
+
GraphContext_default: () => GraphContext_default,
|
|
32
|
+
useGraph: () => useGraph
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(chunk_3QIHDIIS_exports);
|
|
35
|
+
var import_chunk_KHIPMH35 = require("./chunk-KHIPMH35.cjs");
|
|
36
|
+
var import_react = __toESM(require("react"));
|
|
37
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
38
|
+
var import_debug = require("@dxos/debug");
|
|
39
|
+
var GraphContext = /* @__PURE__ */ (0, import_react.createContext)(null);
|
|
40
|
+
var useGraph = () => (0, import_react.useContext)(GraphContext) ?? (0, import_debug.raise)(new Error("Missing GraphContext"));
|
|
41
|
+
var GraphContext_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactContext, {
|
|
42
|
+
id: import_chunk_KHIPMH35.GRAPH_PLUGIN,
|
|
43
|
+
context: (props) => {
|
|
44
|
+
const value = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.AppGraph);
|
|
45
|
+
return /* @__PURE__ */ import_react.default.createElement(GraphContext.Provider, {
|
|
46
|
+
value
|
|
47
|
+
}, props.children);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
51
|
+
0 && (module.exports = {
|
|
52
|
+
GraphContext_default,
|
|
53
|
+
useGraph
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=chunk-3QIHDIIS.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/GraphContext.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type Context, createContext, type PropsWithChildren, useContext } from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\nimport { type GraphBuilder } from '@dxos/app-graph';\nimport { raise } from '@dxos/debug';\n\nimport { GRAPH_PLUGIN } from './meta';\n\ntype GraphContextType = Pick<GraphBuilder, 'graph' | 'explore'>;\nconst GraphContext: Context<GraphContextType | null> = createContext<GraphContextType | null>(null);\n\nexport const useGraph = (): GraphContextType => useContext(GraphContext) ?? raise(new Error('Missing GraphContext'));\n\nexport default () =>\n contributes(Capabilities.ReactContext, {\n id: GRAPH_PLUGIN,\n context: (props: PropsWithChildren) => {\n const value = useCapability(Capabilities.AppGraph);\n return <GraphContext.Provider value={value}>{props.children}</GraphContext.Provider>;\n },\n });\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAuF;AAEvF,2BAAyD;AAEzD,mBAAsB;AAKtB,IAAMA,eAAiDC,gDAAuC,IAAA;AAEvF,IAAMC,WAAW,UAAwBC,yBAAWH,YAAAA,SAAiBI,oBAAM,IAAIC,MAAM,sBAAA,CAAA;AAE5F,IAAA,uBAAe,UACbC,kCAAYC,kCAAaC,cAAc;EACrCC,IAAIC;EACJC,SAAS,CAACC,UAAAA;AACR,UAAMC,YAAQC,oCAAcP,kCAAaQ,QAAQ;AACjD,WAAO,6BAAAC,QAAA,cAAChB,aAAaiB,UAAQ;MAACJ;OAAeD,MAAMM,QAAQ;EAC7D;AACF,CAAA;",
|
|
6
|
+
"names": ["GraphContext", "createContext", "useGraph", "useContext", "raise", "Error", "contributes", "Capabilities", "ReactContext", "id", "GRAPH_PLUGIN", "context", "props", "value", "useCapability", "AppGraph", "React", "Provider", "children"]
|
|
7
|
+
}
|
|
@@ -16,13 +16,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var graph_HXCMZDUQ_exports = {};
|
|
20
|
+
__export(graph_HXCMZDUQ_exports, {
|
|
21
21
|
default: () => graph_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(graph_HXCMZDUQ_exports);
|
|
24
24
|
var import_chunk_KHIPMH35 = require("./chunk-KHIPMH35.cjs");
|
|
25
|
-
var import_signals_core = require("@preact/signals-core");
|
|
26
25
|
var import_app_framework = require("@dxos/app-framework");
|
|
27
26
|
var import_app_graph = require("@dxos/app-graph");
|
|
28
27
|
var KEY = `${import_chunk_KHIPMH35.GRAPH_PLUGIN}/app-graph`;
|
|
@@ -31,28 +30,17 @@ var graph_default = async (context) => {
|
|
|
31
30
|
const interval = setInterval(() => {
|
|
32
31
|
localStorage.setItem(KEY, builder.graph.pickle());
|
|
33
32
|
}, 5e3);
|
|
34
|
-
|
|
35
|
-
(0, import_signals_core.batch)(() => {
|
|
36
|
-
const next = (0, import_app_graph.flattenExtensions)(context.requestCapabilities(import_app_framework.Capabilities.AppGraphBuilder));
|
|
37
|
-
const current = (0, import_signals_core.untracked)(() => builder.extensions);
|
|
38
|
-
const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));
|
|
39
|
-
removed.forEach((extension) => builder.removeExtension(extension.id));
|
|
40
|
-
next.forEach((extension) => builder.addExtension(extension));
|
|
41
|
-
});
|
|
42
|
-
});
|
|
33
|
+
context.requestCapabilities(import_app_framework.Capabilities.AppGraphBuilder).forEach((extension) => builder.addExtension(extension));
|
|
43
34
|
await builder.initialize();
|
|
44
35
|
await builder.graph.expand(builder.graph.root);
|
|
45
36
|
setupDevtools(builder.graph);
|
|
46
37
|
return (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraph, {
|
|
47
38
|
graph: builder.graph,
|
|
48
39
|
explore: (options) => builder.explore(options)
|
|
49
|
-
}, () =>
|
|
50
|
-
clearInterval(interval);
|
|
51
|
-
unsubscribe();
|
|
52
|
-
});
|
|
40
|
+
}, () => clearInterval(interval));
|
|
53
41
|
};
|
|
54
42
|
var setupDevtools = (graph) => {
|
|
55
43
|
globalThis.composer ??= {};
|
|
56
44
|
globalThis.composer.graph = graph;
|
|
57
45
|
};
|
|
58
|
-
//# sourceMappingURL=graph-
|
|
46
|
+
//# sourceMappingURL=graph-HXCMZDUQ.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/graph.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type Graph, GraphBuilder } from '@dxos/app-graph';\n\nimport { GRAPH_PLUGIN } from './meta';\n\nconst KEY = `${GRAPH_PLUGIN}/app-graph`;\n\nexport default async (context: PluginsContext) => {\n const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? undefined);\n const interval = setInterval(() => {\n localStorage.setItem(KEY, builder.graph.pickle());\n }, 5_000);\n\n context.requestCapabilities(Capabilities.AppGraphBuilder).forEach((extension) => builder.addExtension(extension));\n\n await builder.initialize();\n await builder.graph.expand(builder.graph.root);\n\n setupDevtools(builder.graph);\n\n return contributes(\n Capabilities.AppGraph,\n { graph: builder.graph, explore: (options) => builder.explore(options) },\n () => clearInterval(interval),\n );\n};\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA+D;AAC/D,uBAAyC;AAIzC,IAAMA,MAAM,GAAGC,kCAAAA;AAEf,IAAA,gBAAe,OAAOC,YAAAA;AACpB,QAAMC,UAAUC,8BAAaC,KAAKC,aAAaC,QAAQP,GAAAA,KAAQQ,MAAAA;AAC/D,QAAMC,WAAWC,YAAY,MAAA;AAC3BJ,iBAAaK,QAAQX,KAAKG,QAAQS,MAAMC,OAAM,CAAA;EAChD,GAAG,GAAA;AAEHX,UAAQY,oBAAoBC,kCAAaC,eAAe,EAAEC,QAAQ,CAACC,cAAcf,QAAQgB,aAAaD,SAAAA,CAAAA;AAEtG,QAAMf,QAAQiB,WAAU;AACxB,QAAMjB,QAAQS,MAAMS,OAAOlB,QAAQS,MAAMU,IAAI;AAE7CC,gBAAcpB,QAAQS,KAAK;AAE3B,aAAOY,kCACLT,kCAAaU,UACb;IAAEb,OAAOT,QAAQS;IAAOc,SAAS,CAACC,YAAYxB,QAAQuB,QAAQC,OAAAA;EAAS,GACvE,MAAMC,cAAcnB,QAAAA,CAAAA;AAExB;AAGA,IAAMc,gBAAgB,CAACX,UAAAA;AACpBiB,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAASlB,QAAQA;AACvC;",
|
|
6
|
+
"names": ["KEY", "GRAPH_PLUGIN", "context", "builder", "GraphBuilder", "from", "localStorage", "getItem", "undefined", "interval", "setInterval", "setItem", "graph", "pickle", "requestCapabilities", "Capabilities", "AppGraphBuilder", "forEach", "extension", "addExtension", "initialize", "expand", "root", "setupDevtools", "contributes", "AppGraph", "explore", "options", "clearInterval", "globalThis", "composer"]
|
|
7
|
+
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -31,24 +31,30 @@ var node_exports = {};
|
|
|
31
31
|
__export(node_exports, {
|
|
32
32
|
GRAPH_PLUGIN: () => import_chunk_KHIPMH35.GRAPH_PLUGIN,
|
|
33
33
|
GraphPlugin: () => GraphPlugin,
|
|
34
|
-
meta: () => import_chunk_KHIPMH35.meta
|
|
34
|
+
meta: () => import_chunk_KHIPMH35.meta,
|
|
35
|
+
useGraph: () => import_chunk_3QIHDIIS.useGraph
|
|
35
36
|
});
|
|
36
37
|
module.exports = __toCommonJS(node_exports);
|
|
38
|
+
var import_chunk_3QIHDIIS = require("./chunk-3QIHDIIS.cjs");
|
|
37
39
|
var import_chunk_KHIPMH35 = require("./chunk-KHIPMH35.cjs");
|
|
38
40
|
__reExport(node_exports, require("@dxos/app-graph"), module.exports);
|
|
39
41
|
var import_app_framework = require("@dxos/app-framework");
|
|
40
42
|
var GraphPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_KHIPMH35.meta, [
|
|
43
|
+
(0, import_app_framework.defineModule)({
|
|
44
|
+
id: `${import_chunk_KHIPMH35.meta.id}/module/react-context`,
|
|
45
|
+
activatesOn: import_app_framework.Events.Startup,
|
|
46
|
+
activate: (0, import_app_framework.lazy)(() => import("./GraphContext-MUIA2AJE.cjs"))
|
|
47
|
+
}),
|
|
41
48
|
(0, import_app_framework.defineModule)({
|
|
42
49
|
id: `${import_chunk_KHIPMH35.meta.id}/module/graph`,
|
|
43
50
|
activatesOn: import_app_framework.Events.Startup,
|
|
44
51
|
activatesBefore: [
|
|
45
|
-
import_app_framework.Events.SetupAppGraph
|
|
46
|
-
import_app_framework.Events.SetupMetadata
|
|
52
|
+
import_app_framework.Events.SetupAppGraph
|
|
47
53
|
],
|
|
48
54
|
activatesAfter: [
|
|
49
55
|
import_app_framework.Events.AppGraphReady
|
|
50
56
|
],
|
|
51
|
-
activate: (0, import_app_framework.lazy)(() => import("./graph-
|
|
57
|
+
activate: (0, import_app_framework.lazy)(() => import("./graph-HXCMZDUQ.cjs"))
|
|
52
58
|
})
|
|
53
59
|
]);
|
|
54
60
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -56,6 +62,7 @@ var GraphPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_KHIP
|
|
|
56
62
|
GRAPH_PLUGIN,
|
|
57
63
|
GraphPlugin,
|
|
58
64
|
meta,
|
|
65
|
+
useGraph,
|
|
59
66
|
...require("@dxos/app-graph")
|
|
60
67
|
});
|
|
61
68
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts", "../../../src/GraphPlugin.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport * from '@dxos/app-graph';\n\nexport * from './GraphPlugin';\nexport * from './meta';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineModule, lazy, Events, definePlugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/graph`,\n activatesOn: Events.Startup,\n activatesBefore: [Events.SetupAppGraph
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["GraphPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport * from '@dxos/app-graph';\n\nexport * from './GraphContext';\nexport * from './GraphPlugin';\nexport * from './meta';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineModule, lazy, Events, definePlugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/react-context`,\n activatesOn: Events.Startup,\n activate: lazy(() => import('./GraphContext')),\n }),\n defineModule({\n id: `${meta.id}/module/graph`,\n activatesOn: Events.Startup,\n activatesBefore: [Events.SetupAppGraph],\n activatesAfter: [Events.AppGraphReady],\n activate: lazy(() => import('./graph')),\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAc;ACAd,2BAAyD;AASlD,IAAMA,cAAc,UACzBC,mCAAaC,4BAAM;MACjBC,mCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,4BAAOC;IACpBC,cAAUC,2BAAK,MAAM,OAAO,6BAAA,CAAA;EAC9B,CAAA;MACAN,mCAAa;IACXC,IAAI,GAAGF,2BAAKE,EAAE;IACdC,aAAaC,4BAAOC;IACpBG,iBAAiB;MAACJ,4BAAOK;;IACzBC,gBAAgB;MAACN,4BAAOO;;IACxBL,cAAUC,2BAAK,MAAM,OAAO,sBAAA,CAAA;EAC9B,CAAA;CACD;",
|
|
6
|
+
"names": ["GraphPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "lazy", "activatesBefore", "SetupAppGraph", "activatesAfter", "AppGraphReady"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytes":891,"imports":[],"format":"esm"},"packages/plugins/plugin-graph/src/
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytes":891,"imports":[],"format":"esm"},"packages/plugins/plugin-graph/src/GraphContext.tsx":{"bytes":3234,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-graph/src/graph.ts":{"bytes":4364,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-graph/src/GraphPlugin.ts":{"bytes":3276,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-graph/src/GraphContext.tsx","kind":"dynamic-import","original":"./GraphContext"},{"path":"packages/plugins/plugin-graph/src/graph.ts","kind":"dynamic-import","original":"./graph"}],"format":"esm"},"packages/plugins/plugin-graph/src/index.ts":{"bytes":797,"imports":[{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/GraphContext.tsx","kind":"import-statement","original":"./GraphContext"},{"path":"packages/plugins/plugin-graph/src/GraphPlugin.ts","kind":"import-statement","original":"./GraphPlugin"},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-graph/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1757},"packages/plugins/plugin-graph/dist/lib/node/index.cjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node/chunk-3QIHDIIS.cjs","kind":"import-statement"},{"path":"packages/plugins/plugin-graph/dist/lib/node/chunk-KHIPMH35.cjs","kind":"import-statement"},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/dist/lib/node/GraphContext-MUIA2AJE.cjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-graph/dist/lib/node/graph-HXCMZDUQ.cjs","kind":"dynamic-import"}],"exports":["GRAPH_PLUGIN","GraphPlugin","meta","useGraph"],"entryPoint":"packages/plugins/plugin-graph/src/index.ts","inputs":{"packages/plugins/plugin-graph/src/index.ts":{"bytesInOutput":33},"packages/plugins/plugin-graph/src/GraphPlugin.ts":{"bytesInOutput":552}},"bytes":896},"packages/plugins/plugin-graph/dist/lib/node/GraphContext-MUIA2AJE.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-graph/dist/lib/node/GraphContext-MUIA2AJE.cjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node/chunk-3QIHDIIS.cjs","kind":"import-statement"},{"path":"packages/plugins/plugin-graph/dist/lib/node/chunk-KHIPMH35.cjs","kind":"import-statement"}],"exports":["default","useGraph"],"entryPoint":"packages/plugins/plugin-graph/src/GraphContext.tsx","inputs":{},"bytes":215},"packages/plugins/plugin-graph/dist/lib/node/chunk-3QIHDIIS.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1766},"packages/plugins/plugin-graph/dist/lib/node/chunk-3QIHDIIS.cjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node/chunk-KHIPMH35.cjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["GraphContext_default","useGraph"],"inputs":{"packages/plugins/plugin-graph/src/GraphContext.tsx":{"bytesInOutput":612}},"bytes":814},"packages/plugins/plugin-graph/dist/lib/node/graph-HXCMZDUQ.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2342},"packages/plugins/plugin-graph/dist/lib/node/graph-HXCMZDUQ.cjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node/chunk-KHIPMH35.cjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-graph/src/graph.ts","inputs":{"packages/plugins/plugin-graph/src/graph.ts":{"bytesInOutput":867}},"bytes":1052},"packages/plugins/plugin-graph/dist/lib/node/chunk-KHIPMH35.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":418},"packages/plugins/plugin-graph/dist/lib/node/chunk-KHIPMH35.cjs":{"imports":[],"exports":["GRAPH_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytesInOutput":79}},"bytes":204}}}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
GraphContext_default,
|
|
4
|
+
useGraph
|
|
5
|
+
} from "./chunk-XY43PHPY.mjs";
|
|
6
|
+
import "./chunk-IHM26RSC.mjs";
|
|
7
|
+
export {
|
|
8
|
+
GraphContext_default as default,
|
|
9
|
+
useGraph
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=GraphContext-VNVZEAJK.mjs.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
GRAPH_PLUGIN
|
|
4
|
+
} from "./chunk-IHM26RSC.mjs";
|
|
5
|
+
|
|
6
|
+
// packages/plugins/plugin-graph/src/GraphContext.tsx
|
|
7
|
+
import React, { createContext, useContext } from "react";
|
|
8
|
+
import { Capabilities, contributes, useCapability } from "@dxos/app-framework";
|
|
9
|
+
import { raise } from "@dxos/debug";
|
|
10
|
+
var GraphContext = /* @__PURE__ */ createContext(null);
|
|
11
|
+
var useGraph = () => useContext(GraphContext) ?? raise(new Error("Missing GraphContext"));
|
|
12
|
+
var GraphContext_default = () => contributes(Capabilities.ReactContext, {
|
|
13
|
+
id: GRAPH_PLUGIN,
|
|
14
|
+
context: (props) => {
|
|
15
|
+
const value = useCapability(Capabilities.AppGraph);
|
|
16
|
+
return /* @__PURE__ */ React.createElement(GraphContext.Provider, {
|
|
17
|
+
value
|
|
18
|
+
}, props.children);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
useGraph,
|
|
24
|
+
GraphContext_default
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-XY43PHPY.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/GraphContext.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type Context, createContext, type PropsWithChildren, useContext } from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\nimport { type GraphBuilder } from '@dxos/app-graph';\nimport { raise } from '@dxos/debug';\n\nimport { GRAPH_PLUGIN } from './meta';\n\ntype GraphContextType = Pick<GraphBuilder, 'graph' | 'explore'>;\nconst GraphContext: Context<GraphContextType | null> = createContext<GraphContextType | null>(null);\n\nexport const useGraph = (): GraphContextType => useContext(GraphContext) ?? raise(new Error('Missing GraphContext'));\n\nexport default () =>\n contributes(Capabilities.ReactContext, {\n id: GRAPH_PLUGIN,\n context: (props: PropsWithChildren) => {\n const value = useCapability(Capabilities.AppGraph);\n return <GraphContext.Provider value={value}>{props.children}</GraphContext.Provider>;\n },\n });\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,OAAOA,SAAuBC,eAAuCC,kBAAkB;AAEvF,SAASC,cAAcC,aAAaC,qBAAqB;AAEzD,SAASC,aAAa;AAKtB,IAAMC,eAAiDC,8BAAuC,IAAA;AAEvF,IAAMC,WAAW,MAAwBC,WAAWH,YAAAA,KAAiBI,MAAM,IAAIC,MAAM,sBAAA,CAAA;AAE5F,IAAA,uBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,IAAIC;EACJC,SAAS,CAACC,UAAAA;AACR,UAAMC,QAAQC,cAAcP,aAAaQ,QAAQ;AACjD,WAAO,sBAAA,cAACf,aAAagB,UAAQ;MAACH;OAAeD,MAAMK,QAAQ;EAC7D;AACF,CAAA;",
|
|
6
|
+
"names": ["React", "createContext", "useContext", "Capabilities", "contributes", "useCapability", "raise", "GraphContext", "createContext", "useGraph", "useContext", "raise", "Error", "contributes", "Capabilities", "ReactContext", "id", "GRAPH_PLUGIN", "context", "props", "value", "useCapability", "AppGraph", "Provider", "children"]
|
|
7
|
+
}
|
|
@@ -4,34 +4,22 @@ import {
|
|
|
4
4
|
} from "./chunk-IHM26RSC.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-graph/src/graph.ts
|
|
7
|
-
import { batch, effect, untracked } from "@preact/signals-core";
|
|
8
7
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
9
|
-
import {
|
|
8
|
+
import { GraphBuilder } from "@dxos/app-graph";
|
|
10
9
|
var KEY = `${GRAPH_PLUGIN}/app-graph`;
|
|
11
10
|
var graph_default = async (context) => {
|
|
12
11
|
const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? void 0);
|
|
13
12
|
const interval = setInterval(() => {
|
|
14
13
|
localStorage.setItem(KEY, builder.graph.pickle());
|
|
15
14
|
}, 5e3);
|
|
16
|
-
|
|
17
|
-
batch(() => {
|
|
18
|
-
const next = flattenExtensions(context.requestCapabilities(Capabilities.AppGraphBuilder));
|
|
19
|
-
const current = untracked(() => builder.extensions);
|
|
20
|
-
const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));
|
|
21
|
-
removed.forEach((extension) => builder.removeExtension(extension.id));
|
|
22
|
-
next.forEach((extension) => builder.addExtension(extension));
|
|
23
|
-
});
|
|
24
|
-
});
|
|
15
|
+
context.requestCapabilities(Capabilities.AppGraphBuilder).forEach((extension) => builder.addExtension(extension));
|
|
25
16
|
await builder.initialize();
|
|
26
17
|
await builder.graph.expand(builder.graph.root);
|
|
27
18
|
setupDevtools(builder.graph);
|
|
28
19
|
return contributes(Capabilities.AppGraph, {
|
|
29
20
|
graph: builder.graph,
|
|
30
21
|
explore: (options) => builder.explore(options)
|
|
31
|
-
}, () =>
|
|
32
|
-
clearInterval(interval);
|
|
33
|
-
unsubscribe();
|
|
34
|
-
});
|
|
22
|
+
}, () => clearInterval(interval));
|
|
35
23
|
};
|
|
36
24
|
var setupDevtools = (graph) => {
|
|
37
25
|
globalThis.composer ??= {};
|
|
@@ -40,4 +28,4 @@ var setupDevtools = (graph) => {
|
|
|
40
28
|
export {
|
|
41
29
|
graph_default as default
|
|
42
30
|
};
|
|
43
|
-
//# sourceMappingURL=graph-
|
|
31
|
+
//# sourceMappingURL=graph-UQRZMBQ5.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/graph.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type Graph, GraphBuilder } from '@dxos/app-graph';\n\nimport { GRAPH_PLUGIN } from './meta';\n\nconst KEY = `${GRAPH_PLUGIN}/app-graph`;\n\nexport default async (context: PluginsContext) => {\n const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? undefined);\n const interval = setInterval(() => {\n localStorage.setItem(KEY, builder.graph.pickle());\n }, 5_000);\n\n context.requestCapabilities(Capabilities.AppGraphBuilder).forEach((extension) => builder.addExtension(extension));\n\n await builder.initialize();\n await builder.graph.expand(builder.graph.root);\n\n setupDevtools(builder.graph);\n\n return contributes(\n Capabilities.AppGraph,\n { graph: builder.graph, explore: (options) => builder.explore(options) },\n () => clearInterval(interval),\n );\n};\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,SAASA,cAAcC,mBAAwC;AAC/D,SAAqBC,oBAAoB;AAIzC,IAAMC,MAAM,GAAGC,YAAAA;AAEf,IAAA,gBAAe,OAAOC,YAAAA;AACpB,QAAMC,UAAUC,aAAaC,KAAKC,aAAaC,QAAQP,GAAAA,KAAQQ,MAAAA;AAC/D,QAAMC,WAAWC,YAAY,MAAA;AAC3BJ,iBAAaK,QAAQX,KAAKG,QAAQS,MAAMC,OAAM,CAAA;EAChD,GAAG,GAAA;AAEHX,UAAQY,oBAAoBC,aAAaC,eAAe,EAAEC,QAAQ,CAACC,cAAcf,QAAQgB,aAAaD,SAAAA,CAAAA;AAEtG,QAAMf,QAAQiB,WAAU;AACxB,QAAMjB,QAAQS,MAAMS,OAAOlB,QAAQS,MAAMU,IAAI;AAE7CC,gBAAcpB,QAAQS,KAAK;AAE3B,SAAOY,YACLT,aAAaU,UACb;IAAEb,OAAOT,QAAQS;IAAOc,SAAS,CAACC,YAAYxB,QAAQuB,QAAQC,OAAAA;EAAS,GACvE,MAAMC,cAAcnB,QAAAA,CAAAA;AAExB;AAGA,IAAMc,gBAAgB,CAACX,UAAAA;AACpBiB,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAASlB,QAAQA;AACvC;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "GraphBuilder", "KEY", "GRAPH_PLUGIN", "context", "builder", "GraphBuilder", "from", "localStorage", "getItem", "undefined", "interval", "setInterval", "setItem", "graph", "pickle", "requestCapabilities", "Capabilities", "AppGraphBuilder", "forEach", "extension", "addExtension", "initialize", "expand", "root", "setupDevtools", "contributes", "AppGraph", "explore", "options", "clearInterval", "globalThis", "composer"]
|
|
7
|
+
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
useGraph
|
|
4
|
+
} from "./chunk-XY43PHPY.mjs";
|
|
2
5
|
import {
|
|
3
6
|
GRAPH_PLUGIN,
|
|
4
7
|
meta
|
|
@@ -10,22 +13,27 @@ export * from "@dxos/app-graph";
|
|
|
10
13
|
// packages/plugins/plugin-graph/src/GraphPlugin.ts
|
|
11
14
|
import { defineModule, lazy, Events, definePlugin } from "@dxos/app-framework";
|
|
12
15
|
var GraphPlugin = () => definePlugin(meta, [
|
|
16
|
+
defineModule({
|
|
17
|
+
id: `${meta.id}/module/react-context`,
|
|
18
|
+
activatesOn: Events.Startup,
|
|
19
|
+
activate: lazy(() => import("./GraphContext-VNVZEAJK.mjs"))
|
|
20
|
+
}),
|
|
13
21
|
defineModule({
|
|
14
22
|
id: `${meta.id}/module/graph`,
|
|
15
23
|
activatesOn: Events.Startup,
|
|
16
24
|
activatesBefore: [
|
|
17
|
-
Events.SetupAppGraph
|
|
18
|
-
Events.SetupMetadata
|
|
25
|
+
Events.SetupAppGraph
|
|
19
26
|
],
|
|
20
27
|
activatesAfter: [
|
|
21
28
|
Events.AppGraphReady
|
|
22
29
|
],
|
|
23
|
-
activate: lazy(() => import("./graph-
|
|
30
|
+
activate: lazy(() => import("./graph-UQRZMBQ5.mjs"))
|
|
24
31
|
})
|
|
25
32
|
]);
|
|
26
33
|
export {
|
|
27
34
|
GRAPH_PLUGIN,
|
|
28
35
|
GraphPlugin,
|
|
29
|
-
meta
|
|
36
|
+
meta,
|
|
37
|
+
useGraph
|
|
30
38
|
};
|
|
31
39
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts", "../../../src/GraphPlugin.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport * from '@dxos/app-graph';\n\nexport * from './GraphPlugin';\nexport * from './meta';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineModule, lazy, Events, definePlugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/graph`,\n activatesOn: Events.Startup,\n activatesBefore: [Events.SetupAppGraph
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["defineModule", "lazy", "Events", "definePlugin", "GraphPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport * from '@dxos/app-graph';\n\nexport * from './GraphContext';\nexport * from './GraphPlugin';\nexport * from './meta';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineModule, lazy, Events, definePlugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\n/**\n * Manages the state of the graph for the application.\n * Enables other plugins to register node builders to add nodes to the graph.\n * This includes actions and annotation each other's nodes.\n */\nexport const GraphPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/react-context`,\n activatesOn: Events.Startup,\n activate: lazy(() => import('./GraphContext')),\n }),\n defineModule({\n id: `${meta.id}/module/graph`,\n activatesOn: Events.Startup,\n activatesBefore: [Events.SetupAppGraph],\n activatesAfter: [Events.AppGraphReady],\n activate: lazy(() => import('./graph')),\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,cAAc;;;ACAd,SAASA,cAAcC,MAAMC,QAAQC,oBAAoB;AASlD,IAAMC,cAAc,MACzBC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAUC,KAAK,MAAM,OAAO,6BAAA,CAAA;EAC9B,CAAA;EACAN,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBG,iBAAiB;MAACJ,OAAOK;;IACzBC,gBAAgB;MAACN,OAAOO;;IACxBL,UAAUC,KAAK,MAAM,OAAO,sBAAA,CAAA;EAC9B,CAAA;CACD;",
|
|
6
|
+
"names": ["defineModule", "lazy", "Events", "definePlugin", "GraphPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "Startup", "activate", "lazy", "activatesBefore", "SetupAppGraph", "activatesAfter", "AppGraphReady"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytes":891,"imports":[],"format":"esm"},"packages/plugins/plugin-graph/src/
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytes":891,"imports":[],"format":"esm"},"packages/plugins/plugin-graph/src/GraphContext.tsx":{"bytes":3234,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-graph/src/graph.ts":{"bytes":4364,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-graph/src/GraphPlugin.ts":{"bytes":3276,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-graph/src/GraphContext.tsx","kind":"dynamic-import","original":"./GraphContext"},{"path":"packages/plugins/plugin-graph/src/graph.ts","kind":"dynamic-import","original":"./graph"}],"format":"esm"},"packages/plugins/plugin-graph/src/index.ts":{"bytes":797,"imports":[{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/src/GraphContext.tsx","kind":"import-statement","original":"./GraphContext"},{"path":"packages/plugins/plugin-graph/src/GraphPlugin.ts","kind":"import-statement","original":"./GraphPlugin"},{"path":"packages/plugins/plugin-graph/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-graph/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1758},"packages/plugins/plugin-graph/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-XY43PHPY.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-IHM26RSC.mjs","kind":"import-statement"},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/GraphContext-VNVZEAJK.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/graph-UQRZMBQ5.mjs","kind":"dynamic-import"}],"exports":["GRAPH_PLUGIN","GraphPlugin","meta","useGraph"],"entryPoint":"packages/plugins/plugin-graph/src/index.ts","inputs":{"packages/plugins/plugin-graph/src/index.ts":{"bytesInOutput":33},"packages/plugins/plugin-graph/src/GraphPlugin.ts":{"bytesInOutput":552}},"bytes":988},"packages/plugins/plugin-graph/dist/lib/node-esm/GraphContext-VNVZEAJK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-graph/dist/lib/node-esm/GraphContext-VNVZEAJK.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-XY43PHPY.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-IHM26RSC.mjs","kind":"import-statement"}],"exports":["default","useGraph"],"entryPoint":"packages/plugins/plugin-graph/src/GraphContext.tsx","inputs":{},"bytes":307},"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-XY43PHPY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1767},"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-XY43PHPY.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-IHM26RSC.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["GraphContext_default","useGraph"],"inputs":{"packages/plugins/plugin-graph/src/GraphContext.tsx":{"bytesInOutput":612}},"bytes":906},"packages/plugins/plugin-graph/dist/lib/node-esm/graph-UQRZMBQ5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2343},"packages/plugins/plugin-graph/dist/lib/node-esm/graph-UQRZMBQ5.mjs":{"imports":[{"path":"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-IHM26RSC.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-graph/src/graph.ts","inputs":{"packages/plugins/plugin-graph/src/graph.ts":{"bytesInOutput":867}},"bytes":1144},"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-IHM26RSC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":420},"packages/plugins/plugin-graph/dist/lib/node-esm/chunk-IHM26RSC.mjs":{"imports":[],"exports":["GRAPH_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-graph/src/meta.ts":{"bytesInOutput":79}},"bytes":297}}}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { type PropsWithChildren } from 'react';
|
|
2
|
+
import { type GraphBuilder } from '@dxos/app-graph';
|
|
3
|
+
type GraphContextType = Pick<GraphBuilder, 'graph' | 'explore'>;
|
|
4
|
+
export declare const useGraph: () => GraphContextType;
|
|
5
|
+
declare const _default: () => import("@dxos/app-framework").Capability<Readonly<{
|
|
6
|
+
id: string;
|
|
7
|
+
dependsOn?: string[];
|
|
8
|
+
context: React.FC<PropsWithChildren>;
|
|
9
|
+
}>>;
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=GraphContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphContext.d.ts","sourceRoot":"","sources":["../../../src/GraphContext.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAA+B,KAAK,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAG/F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD,KAAK,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;AAGhE,eAAO,MAAM,QAAQ,QAAO,gBAAwF,CAAC;;;;;;AAErH,wBAOK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphPlugin.d.ts","sourceRoot":"","sources":["../../../src/GraphPlugin.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"GraphPlugin.d.ts","sourceRoot":"","sources":["../../../src/GraphPlugin.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,eAAO,MAAM,WAAW,4CAcpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/graph.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,iBAAiB,CAAC;kCAM5B,cAAc;;;;AAA7C,wBAkBE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAEhC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAEhC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-graph",
|
|
3
|
-
"version": "0.7.5-
|
|
3
|
+
"version": "0.7.5-main.2567c87",
|
|
4
4
|
"description": "DXOS Surface plugin for constructing knowledge graphs",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@preact/signals-core": "^1.6.0",
|
|
27
|
-
"@dxos/
|
|
28
|
-
"@dxos/app-
|
|
29
|
-
"@dxos/
|
|
30
|
-
"@dxos/async": "0.7.5-
|
|
27
|
+
"@dxos/app-framework": "0.7.5-main.2567c87",
|
|
28
|
+
"@dxos/app-graph": "0.7.5-main.2567c87",
|
|
29
|
+
"@dxos/debug": "0.7.5-main.2567c87",
|
|
30
|
+
"@dxos/async": "0.7.5-main.2567c87"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/react": "~18.2.0",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"react": "~18.2.0",
|
|
36
36
|
"react-dom": "~18.2.0",
|
|
37
37
|
"vite": "5.4.7",
|
|
38
|
-
"@dxos/react-client": "0.7.5-
|
|
39
|
-
"@dxos/storybook-utils": "0.7.5-
|
|
38
|
+
"@dxos/react-client": "0.7.5-main.2567c87",
|
|
39
|
+
"@dxos/storybook-utils": "0.7.5-main.2567c87"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"react": "~18.2.0",
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { type Context, createContext, type PropsWithChildren, useContext } from 'react';
|
|
6
|
+
|
|
7
|
+
import { Capabilities, contributes, useCapability } from '@dxos/app-framework';
|
|
8
|
+
import { type GraphBuilder } from '@dxos/app-graph';
|
|
9
|
+
import { raise } from '@dxos/debug';
|
|
10
|
+
|
|
11
|
+
import { GRAPH_PLUGIN } from './meta';
|
|
12
|
+
|
|
13
|
+
type GraphContextType = Pick<GraphBuilder, 'graph' | 'explore'>;
|
|
14
|
+
const GraphContext: Context<GraphContextType | null> = createContext<GraphContextType | null>(null);
|
|
15
|
+
|
|
16
|
+
export const useGraph = (): GraphContextType => useContext(GraphContext) ?? raise(new Error('Missing GraphContext'));
|
|
17
|
+
|
|
18
|
+
export default () =>
|
|
19
|
+
contributes(Capabilities.ReactContext, {
|
|
20
|
+
id: GRAPH_PLUGIN,
|
|
21
|
+
context: (props: PropsWithChildren) => {
|
|
22
|
+
const value = useCapability(Capabilities.AppGraph);
|
|
23
|
+
return <GraphContext.Provider value={value}>{props.children}</GraphContext.Provider>;
|
|
24
|
+
},
|
|
25
|
+
});
|
package/src/GraphPlugin.ts
CHANGED
|
@@ -13,10 +13,15 @@ import { meta } from './meta';
|
|
|
13
13
|
*/
|
|
14
14
|
export const GraphPlugin = () =>
|
|
15
15
|
definePlugin(meta, [
|
|
16
|
+
defineModule({
|
|
17
|
+
id: `${meta.id}/module/react-context`,
|
|
18
|
+
activatesOn: Events.Startup,
|
|
19
|
+
activate: lazy(() => import('./GraphContext')),
|
|
20
|
+
}),
|
|
16
21
|
defineModule({
|
|
17
22
|
id: `${meta.id}/module/graph`,
|
|
18
23
|
activatesOn: Events.Startup,
|
|
19
|
-
activatesBefore: [Events.SetupAppGraph
|
|
24
|
+
activatesBefore: [Events.SetupAppGraph],
|
|
20
25
|
activatesAfter: [Events.AppGraphReady],
|
|
21
26
|
activate: lazy(() => import('./graph')),
|
|
22
27
|
}),
|
package/src/graph.ts
CHANGED
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { batch, effect, untracked } from '@preact/signals-core';
|
|
6
|
-
|
|
7
5
|
import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
|
|
8
|
-
import {
|
|
6
|
+
import { type Graph, GraphBuilder } from '@dxos/app-graph';
|
|
9
7
|
|
|
10
8
|
import { GRAPH_PLUGIN } from './meta';
|
|
11
9
|
|
|
@@ -17,15 +15,7 @@ export default async (context: PluginsContext) => {
|
|
|
17
15
|
localStorage.setItem(KEY, builder.graph.pickle());
|
|
18
16
|
}, 5_000);
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
batch(() => {
|
|
22
|
-
const next = flattenExtensions(context.requestCapabilities(Capabilities.AppGraphBuilder));
|
|
23
|
-
const current = untracked(() => builder.extensions);
|
|
24
|
-
const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));
|
|
25
|
-
removed.forEach((extension) => builder.removeExtension(extension.id));
|
|
26
|
-
next.forEach((extension) => builder.addExtension(extension));
|
|
27
|
-
});
|
|
28
|
-
});
|
|
18
|
+
context.requestCapabilities(Capabilities.AppGraphBuilder).forEach((extension) => builder.addExtension(extension));
|
|
29
19
|
|
|
30
20
|
await builder.initialize();
|
|
31
21
|
await builder.graph.expand(builder.graph.root);
|
|
@@ -35,10 +25,7 @@ export default async (context: PluginsContext) => {
|
|
|
35
25
|
return contributes(
|
|
36
26
|
Capabilities.AppGraph,
|
|
37
27
|
{ graph: builder.graph, explore: (options) => builder.explore(options) },
|
|
38
|
-
() =>
|
|
39
|
-
clearInterval(interval);
|
|
40
|
-
unsubscribe();
|
|
41
|
-
},
|
|
28
|
+
() => clearInterval(interval),
|
|
42
29
|
);
|
|
43
30
|
};
|
|
44
31
|
|
package/src/index.ts
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/graph.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { batch, effect, untracked } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { flattenExtensions, type Graph, GraphBuilder } from '@dxos/app-graph';\n\nimport { GRAPH_PLUGIN } from './meta';\n\nconst KEY = `${GRAPH_PLUGIN}/app-graph`;\n\nexport default async (context: PluginsContext) => {\n const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? undefined);\n const interval = setInterval(() => {\n localStorage.setItem(KEY, builder.graph.pickle());\n }, 5_000);\n\n const unsubscribe = effect(() => {\n batch(() => {\n const next = flattenExtensions(context.requestCapabilities(Capabilities.AppGraphBuilder));\n const current = untracked(() => builder.extensions);\n const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));\n removed.forEach((extension) => builder.removeExtension(extension.id));\n next.forEach((extension) => builder.addExtension(extension));\n });\n });\n\n await builder.initialize();\n await builder.graph.expand(builder.graph.root);\n\n setupDevtools(builder.graph);\n\n return contributes(\n Capabilities.AppGraph,\n { graph: builder.graph, explore: (options) => builder.explore(options) },\n () => {\n clearInterval(interval);\n unsubscribe();\n },\n );\n};\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,OAAOC,QAAQC,iBAAiB;AAEzC,SAASC,cAAcC,mBAAwC;AAC/D,SAASC,mBAA+BC,oBAAoB;AAI5D,IAAMC,MAAM,GAAGC,YAAAA;AAEf,IAAA,gBAAe,OAAOC,YAAAA;AACpB,QAAMC,UAAUC,aAAaC,KAAKC,aAAaC,QAAQP,GAAAA,KAAQQ,MAAAA;AAC/D,QAAMC,WAAWC,YAAY,MAAA;AAC3BJ,iBAAaK,QAAQX,KAAKG,QAAQS,MAAMC,OAAM,CAAA;EAChD,GAAG,GAAA;AAEH,QAAMC,cAAcC,OAAO,MAAA;AACzBC,UAAM,MAAA;AACJ,YAAMC,OAAOC,kBAAkBhB,QAAQiB,oBAAoBC,aAAaC,eAAe,CAAA;AACvF,YAAMC,UAAUC,UAAU,MAAMpB,QAAQqB,UAAU;AAClD,YAAMC,UAAUH,QAAQI,OAAO,CAAC,EAAEC,GAAE,MAAO,CAACV,KAAKW,KAAK,CAAC,EAAED,IAAIE,OAAM,MAAOA,WAAWF,EAAAA,CAAAA;AACrFF,cAAQK,QAAQ,CAACC,cAAc5B,QAAQ6B,gBAAgBD,UAAUJ,EAAE,CAAA;AACnEV,WAAKa,QAAQ,CAACC,cAAc5B,QAAQ8B,aAAaF,SAAAA,CAAAA;IACnD,CAAA;EACF,CAAA;AAEA,QAAM5B,QAAQ+B,WAAU;AACxB,QAAM/B,QAAQS,MAAMuB,OAAOhC,QAAQS,MAAMwB,IAAI;AAE7CC,gBAAclC,QAAQS,KAAK;AAE3B,SAAO0B,YACLlB,aAAamB,UACb;IAAE3B,OAAOT,QAAQS;IAAO4B,SAAS,CAACC,YAAYtC,QAAQqC,QAAQC,OAAAA;EAAS,GACvE,MAAA;AACEC,kBAAcjC,QAAAA;AACdK,gBAAAA;EACF,CAAA;AAEJ;AAGA,IAAMuB,gBAAgB,CAACzB,UAAAA;AACpB+B,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAAShC,QAAQA;AACvC;",
|
|
6
|
-
"names": ["batch", "effect", "untracked", "Capabilities", "contributes", "flattenExtensions", "GraphBuilder", "KEY", "GRAPH_PLUGIN", "context", "builder", "GraphBuilder", "from", "localStorage", "getItem", "undefined", "interval", "setInterval", "setItem", "graph", "pickle", "unsubscribe", "effect", "batch", "next", "flattenExtensions", "requestCapabilities", "Capabilities", "AppGraphBuilder", "current", "untracked", "extensions", "removed", "filter", "id", "some", "nextId", "forEach", "extension", "removeExtension", "addExtension", "initialize", "expand", "root", "setupDevtools", "contributes", "AppGraph", "explore", "options", "clearInterval", "globalThis", "composer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/graph.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { batch, effect, untracked } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { flattenExtensions, type Graph, GraphBuilder } from '@dxos/app-graph';\n\nimport { GRAPH_PLUGIN } from './meta';\n\nconst KEY = `${GRAPH_PLUGIN}/app-graph`;\n\nexport default async (context: PluginsContext) => {\n const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? undefined);\n const interval = setInterval(() => {\n localStorage.setItem(KEY, builder.graph.pickle());\n }, 5_000);\n\n const unsubscribe = effect(() => {\n batch(() => {\n const next = flattenExtensions(context.requestCapabilities(Capabilities.AppGraphBuilder));\n const current = untracked(() => builder.extensions);\n const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));\n removed.forEach((extension) => builder.removeExtension(extension.id));\n next.forEach((extension) => builder.addExtension(extension));\n });\n });\n\n await builder.initialize();\n await builder.graph.expand(builder.graph.root);\n\n setupDevtools(builder.graph);\n\n return contributes(\n Capabilities.AppGraph,\n { graph: builder.graph, explore: (options) => builder.explore(options) },\n () => {\n clearInterval(interval);\n unsubscribe();\n },\n );\n};\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,0BAAyC;AAEzC,2BAA+D;AAC/D,uBAA4D;AAI5D,IAAMA,MAAM,GAAGC,kCAAAA;AAEf,IAAA,gBAAe,OAAOC,YAAAA;AACpB,QAAMC,UAAUC,8BAAaC,KAAKC,aAAaC,QAAQP,GAAAA,KAAQQ,MAAAA;AAC/D,QAAMC,WAAWC,YAAY,MAAA;AAC3BJ,iBAAaK,QAAQX,KAAKG,QAAQS,MAAMC,OAAM,CAAA;EAChD,GAAG,GAAA;AAEH,QAAMC,kBAAcC,4BAAO,MAAA;AACzBC,mCAAM,MAAA;AACJ,YAAMC,WAAOC,oCAAkBhB,QAAQiB,oBAAoBC,kCAAaC,eAAe,CAAA;AACvF,YAAMC,cAAUC,+BAAU,MAAMpB,QAAQqB,UAAU;AAClD,YAAMC,UAAUH,QAAQI,OAAO,CAAC,EAAEC,GAAE,MAAO,CAACV,KAAKW,KAAK,CAAC,EAAED,IAAIE,OAAM,MAAOA,WAAWF,EAAAA,CAAAA;AACrFF,cAAQK,QAAQ,CAACC,cAAc5B,QAAQ6B,gBAAgBD,UAAUJ,EAAE,CAAA;AACnEV,WAAKa,QAAQ,CAACC,cAAc5B,QAAQ8B,aAAaF,SAAAA,CAAAA;IACnD,CAAA;EACF,CAAA;AAEA,QAAM5B,QAAQ+B,WAAU;AACxB,QAAM/B,QAAQS,MAAMuB,OAAOhC,QAAQS,MAAMwB,IAAI;AAE7CC,gBAAclC,QAAQS,KAAK;AAE3B,aAAO0B,kCACLlB,kCAAamB,UACb;IAAE3B,OAAOT,QAAQS;IAAO4B,SAAS,CAACC,YAAYtC,QAAQqC,QAAQC,OAAAA;EAAS,GACvE,MAAA;AACEC,kBAAcjC,QAAAA;AACdK,gBAAAA;EACF,CAAA;AAEJ;AAGA,IAAMuB,gBAAgB,CAACzB,UAAAA;AACpB+B,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAAShC,QAAQA;AACvC;",
|
|
6
|
-
"names": ["KEY", "GRAPH_PLUGIN", "context", "builder", "GraphBuilder", "from", "localStorage", "getItem", "undefined", "interval", "setInterval", "setItem", "graph", "pickle", "unsubscribe", "effect", "batch", "next", "flattenExtensions", "requestCapabilities", "Capabilities", "AppGraphBuilder", "current", "untracked", "extensions", "removed", "filter", "id", "some", "nextId", "forEach", "extension", "removeExtension", "addExtension", "initialize", "expand", "root", "setupDevtools", "contributes", "AppGraph", "explore", "options", "clearInterval", "globalThis", "composer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/graph.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { batch, effect, untracked } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { flattenExtensions, type Graph, GraphBuilder } from '@dxos/app-graph';\n\nimport { GRAPH_PLUGIN } from './meta';\n\nconst KEY = `${GRAPH_PLUGIN}/app-graph`;\n\nexport default async (context: PluginsContext) => {\n const builder = GraphBuilder.from(localStorage.getItem(KEY) ?? undefined);\n const interval = setInterval(() => {\n localStorage.setItem(KEY, builder.graph.pickle());\n }, 5_000);\n\n const unsubscribe = effect(() => {\n batch(() => {\n const next = flattenExtensions(context.requestCapabilities(Capabilities.AppGraphBuilder));\n const current = untracked(() => builder.extensions);\n const removed = current.filter(({ id }) => !next.some(({ id: nextId }) => nextId === id));\n removed.forEach((extension) => builder.removeExtension(extension.id));\n next.forEach((extension) => builder.addExtension(extension));\n });\n });\n\n await builder.initialize();\n await builder.graph.expand(builder.graph.root);\n\n setupDevtools(builder.graph);\n\n return contributes(\n Capabilities.AppGraph,\n { graph: builder.graph, explore: (options) => builder.explore(options) },\n () => {\n clearInterval(interval);\n unsubscribe();\n },\n );\n};\n\n// Expose the graph to the window for debugging.\nconst setupDevtools = (graph: Graph) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.graph = graph;\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,SAASA,OAAOC,QAAQC,iBAAiB;AAEzC,SAASC,cAAcC,mBAAwC;AAC/D,SAASC,mBAA+BC,oBAAoB;AAI5D,IAAMC,MAAM,GAAGC,YAAAA;AAEf,IAAA,gBAAe,OAAOC,YAAAA;AACpB,QAAMC,UAAUC,aAAaC,KAAKC,aAAaC,QAAQP,GAAAA,KAAQQ,MAAAA;AAC/D,QAAMC,WAAWC,YAAY,MAAA;AAC3BJ,iBAAaK,QAAQX,KAAKG,QAAQS,MAAMC,OAAM,CAAA;EAChD,GAAG,GAAA;AAEH,QAAMC,cAAcC,OAAO,MAAA;AACzBC,UAAM,MAAA;AACJ,YAAMC,OAAOC,kBAAkBhB,QAAQiB,oBAAoBC,aAAaC,eAAe,CAAA;AACvF,YAAMC,UAAUC,UAAU,MAAMpB,QAAQqB,UAAU;AAClD,YAAMC,UAAUH,QAAQI,OAAO,CAAC,EAAEC,GAAE,MAAO,CAACV,KAAKW,KAAK,CAAC,EAAED,IAAIE,OAAM,MAAOA,WAAWF,EAAAA,CAAAA;AACrFF,cAAQK,QAAQ,CAACC,cAAc5B,QAAQ6B,gBAAgBD,UAAUJ,EAAE,CAAA;AACnEV,WAAKa,QAAQ,CAACC,cAAc5B,QAAQ8B,aAAaF,SAAAA,CAAAA;IACnD,CAAA;EACF,CAAA;AAEA,QAAM5B,QAAQ+B,WAAU;AACxB,QAAM/B,QAAQS,MAAMuB,OAAOhC,QAAQS,MAAMwB,IAAI;AAE7CC,gBAAclC,QAAQS,KAAK;AAE3B,SAAO0B,YACLlB,aAAamB,UACb;IAAE3B,OAAOT,QAAQS;IAAO4B,SAAS,CAACC,YAAYtC,QAAQqC,QAAQC,OAAAA;EAAS,GACvE,MAAA;AACEC,kBAAcjC,QAAAA;AACdK,gBAAAA;EACF,CAAA;AAEJ;AAGA,IAAMuB,gBAAgB,CAACzB,UAAAA;AACpB+B,aAAmBC,aAAa,CAAC;AACjCD,aAAmBC,SAAShC,QAAQA;AACvC;",
|
|
6
|
-
"names": ["batch", "effect", "untracked", "Capabilities", "contributes", "flattenExtensions", "GraphBuilder", "KEY", "GRAPH_PLUGIN", "context", "builder", "GraphBuilder", "from", "localStorage", "getItem", "undefined", "interval", "setInterval", "setItem", "graph", "pickle", "unsubscribe", "effect", "batch", "next", "flattenExtensions", "requestCapabilities", "Capabilities", "AppGraphBuilder", "current", "untracked", "extensions", "removed", "filter", "id", "some", "nextId", "forEach", "extension", "removeExtension", "addExtension", "initialize", "expand", "root", "setupDevtools", "contributes", "AppGraph", "explore", "options", "clearInterval", "globalThis", "composer"]
|
|
7
|
-
}
|