@dxos/plugin-registry 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055
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/PluginArticle-XBWRL2VJ.mjs +29 -0
- package/dist/lib/browser/PluginArticle-XBWRL2VJ.mjs.map +7 -0
- package/dist/lib/browser/PluginRegistry-YU7M4VWL.mjs +82 -0
- package/dist/lib/browser/PluginRegistry-YU7M4VWL.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-M6TK7ZTK.mjs +168 -0
- package/dist/lib/browser/app-graph-builder-M6TK7ZTK.mjs.map +7 -0
- package/dist/lib/browser/chunk-FGKYAUX2.mjs +25 -0
- package/dist/lib/browser/chunk-FGKYAUX2.mjs.map +7 -0
- package/dist/lib/browser/chunk-Y5BNERPC.mjs +193 -0
- package/dist/lib/browser/chunk-Y5BNERPC.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +222 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +29 -31
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/open-plugin-registry-Z3I6SBRQ.mjs +18 -0
- package/dist/lib/browser/open-plugin-registry-Z3I6SBRQ.mjs.map +7 -0
- package/dist/lib/browser/operation-handler-BLH2Y76R.mjs +16 -0
- package/dist/lib/browser/operation-handler-BLH2Y76R.mjs.map +7 -0
- package/dist/lib/browser/react-surface-6NL2F2O3.mjs +85 -0
- package/dist/lib/browser/react-surface-6NL2F2O3.mjs.map +7 -0
- package/dist/lib/node-esm/PluginArticle-FIVZRB45.mjs +30 -0
- package/dist/lib/node-esm/PluginArticle-FIVZRB45.mjs.map +7 -0
- package/dist/lib/node-esm/PluginRegistry-RHD6ZITD.mjs +83 -0
- package/dist/lib/node-esm/PluginRegistry-RHD6ZITD.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-FSZAEWLX.mjs +169 -0
- package/dist/lib/node-esm/app-graph-builder-FSZAEWLX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-44X3W2YY.mjs +27 -0
- package/dist/lib/node-esm/chunk-44X3W2YY.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-576PZRDS.mjs +194 -0
- package/dist/lib/node-esm/chunk-576PZRDS.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +223 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +68 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/open-plugin-registry-4ZDMAWN2.mjs +19 -0
- package/dist/lib/node-esm/open-plugin-registry-4ZDMAWN2.mjs.map +7 -0
- package/dist/lib/node-esm/operation-handler-FQX7TJYA.mjs +18 -0
- package/dist/lib/node-esm/operation-handler-FQX7TJYA.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-FUOA7DZ3.mjs +86 -0
- package/dist/lib/node-esm/react-surface-FUOA7DZ3.mjs.map +7 -0
- package/dist/types/src/RegistryPlugin.d.ts +2 -1
- package/dist/types/src/RegistryPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +3 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler/index.d.ts +4 -0
- package/dist/types/src/capabilities/operation-handler/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/cli/commands/disable.d.ts +11 -0
- package/dist/types/src/cli/commands/disable.d.ts.map +1 -0
- package/dist/types/src/cli/commands/enable.d.ts +11 -0
- package/dist/types/src/cli/commands/enable.d.ts.map +1 -0
- package/dist/types/src/cli/commands/index.d.ts +3 -0
- package/dist/types/src/cli/commands/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/list.d.ts +7 -0
- package/dist/types/src/cli/commands/list.d.ts.map +1 -0
- package/dist/types/src/cli/commands/util.d.ts +11 -0
- package/dist/types/src/cli/commands/util.d.ts.map +1 -0
- package/dist/types/src/cli/index.d.ts +3 -0
- package/dist/types/src/cli/index.d.ts.map +1 -0
- package/dist/types/src/cli/plugin.d.ts +3 -0
- package/dist/types/src/cli/plugin.d.ts.map +1 -0
- package/dist/types/src/cli/storage.d.ts +18 -0
- package/dist/types/src/cli/storage.d.ts.map +1 -0
- package/dist/types/src/components/PluginDetail/PluginDetail.d.ts +15 -0
- package/dist/types/src/components/PluginDetail/PluginDetail.d.ts.map +1 -0
- package/dist/types/src/components/{PluginDetail.stories.d.ts → PluginDetail/PluginDetail.stories.d.ts} +8 -1
- package/dist/types/src/components/PluginDetail/PluginDetail.stories.d.ts.map +1 -0
- package/dist/types/src/components/PluginDetail/index.d.ts +2 -0
- package/dist/types/src/components/PluginDetail/index.d.ts.map +1 -0
- package/dist/types/src/components/{PluginItem.d.ts → PluginList/PluginItem.d.ts} +2 -2
- package/dist/types/src/components/PluginList/PluginItem.d.ts.map +1 -0
- package/dist/types/src/components/{PluginList.d.ts → PluginList/PluginList.d.ts} +1 -1
- package/dist/types/src/components/PluginList/PluginList.d.ts.map +1 -0
- package/dist/types/src/components/PluginList/PluginList.stories.d.ts.map +1 -0
- package/dist/types/src/components/PluginList/index.d.ts +2 -0
- package/dist/types/src/components/PluginList/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +0 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/PluginArticle/PluginArticle.d.ts +7 -0
- package/dist/types/src/containers/PluginArticle/PluginArticle.d.ts.map +1 -0
- package/dist/types/src/containers/PluginArticle/index.d.ts +3 -0
- package/dist/types/src/containers/PluginArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/PluginRegistry/PluginRegistry.d.ts +14 -0
- package/dist/types/src/containers/PluginRegistry/PluginRegistry.d.ts.map +1 -0
- package/dist/types/src/containers/PluginRegistry/index.d.ts +3 -0
- package/dist/types/src/containers/PluginRegistry/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +4 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +7 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/open-plugin-registry.d.ts +5 -0
- package/dist/types/src/operations/open-plugin-registry.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +50 -32
- package/src/RegistryPlugin.tsx +10 -24
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +137 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/index.ts +3 -5
- package/src/capabilities/operation-handler/index.ts +11 -0
- package/src/capabilities/operation-handler/operation-handler.ts +16 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +88 -0
- package/src/cli/commands/disable.ts +47 -0
- package/src/cli/commands/enable.ts +44 -0
- package/src/cli/commands/index.ts +14 -0
- package/src/cli/commands/list.ts +41 -0
- package/src/cli/commands/util.ts +24 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/plugin.ts +17 -0
- package/src/cli/storage.ts +50 -0
- package/src/components/PluginDetail/PluginDetail.stories.tsx +44 -0
- package/src/components/PluginDetail/PluginDetail.tsx +84 -0
- package/src/components/PluginDetail/index.ts +5 -0
- package/src/components/{PluginItem.tsx → PluginList/PluginItem.tsx} +18 -14
- package/src/components/PluginList/PluginList.stories.tsx +87 -0
- package/src/components/{PluginList.tsx → PluginList/PluginList.tsx} +2 -2
- package/src/components/PluginList/index.ts +5 -0
- package/src/components/index.ts +0 -1
- package/src/containers/PluginArticle/PluginArticle.tsx +28 -0
- package/src/containers/PluginArticle/index.ts +7 -0
- package/src/containers/PluginRegistry/PluginRegistry.tsx +94 -0
- package/src/containers/PluginRegistry/index.ts +7 -0
- package/src/containers/index.ts +8 -0
- package/src/meta.ts +14 -7
- package/src/operations/index.ts +7 -0
- package/src/operations/open-plugin-registry.ts +21 -0
- package/dist/lib/browser/app-graph-builder-6CNBP3A4.mjs +0 -162
- package/dist/lib/browser/app-graph-builder-6CNBP3A4.mjs.map +0 -7
- package/dist/lib/browser/chunk-XPEFEID2.mjs +0 -19
- package/dist/lib/browser/chunk-XPEFEID2.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-LKNUYBTN.mjs +0 -23
- package/dist/lib/browser/intent-resolver-LKNUYBTN.mjs.map +0 -7
- package/dist/lib/browser/react-surface-IGCXOVE2.mjs +0 -359
- package/dist/lib/browser/react-surface-IGCXOVE2.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/components/PluginDetail.d.ts +0 -9
- package/dist/types/src/components/PluginDetail.d.ts.map +0 -1
- package/dist/types/src/components/PluginDetail.stories.d.ts.map +0 -1
- package/dist/types/src/components/PluginItem.d.ts.map +0 -1
- package/dist/types/src/components/PluginList.d.ts.map +0 -1
- package/dist/types/src/components/PluginList.stories.d.ts.map +0 -1
- package/dist/types/src/components/RegistryContainer.d.ts +0 -7
- package/dist/types/src/components/RegistryContainer.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -156
- package/src/capabilities/intent-resolver.ts +0 -27
- package/src/capabilities/react-surface.tsx +0 -86
- package/src/components/PluginDetail.stories.tsx +0 -45
- package/src/components/PluginDetail.tsx +0 -82
- package/src/components/PluginList.stories.tsx +0 -80
- package/src/components/RegistryContainer.tsx +0 -76
- /package/dist/types/src/components/{PluginList.stories.d.ts → PluginList/PluginList.stories.d.ts} +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta,
|
|
3
|
+
registryCategoryId
|
|
4
|
+
} from "./chunk-FGKYAUX2.mjs";
|
|
5
|
+
|
|
6
|
+
// src/capabilities/react-surface/react-surface.tsx
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import React, { useMemo } from "react";
|
|
9
|
+
import { Capabilities, Capability, Plugin } from "@dxos/app-framework";
|
|
10
|
+
import { Surface, usePluginManager } from "@dxos/app-framework/ui";
|
|
11
|
+
|
|
12
|
+
// src/containers/index.ts
|
|
13
|
+
import { lazy } from "react";
|
|
14
|
+
var PluginArticle = lazy(() => import("./PluginArticle-XBWRL2VJ.mjs"));
|
|
15
|
+
var PluginRegistry = lazy(() => import("./PluginRegistry-YU7M4VWL.mjs"));
|
|
16
|
+
|
|
17
|
+
// src/capabilities/react-surface/react-surface.tsx
|
|
18
|
+
var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
|
|
19
|
+
Surface.create({
|
|
20
|
+
id: `${meta.id}.all`,
|
|
21
|
+
role: "article",
|
|
22
|
+
filter: (data) => data.subject === registryCategoryId("all"),
|
|
23
|
+
component: () => {
|
|
24
|
+
const manager = usePluginManager();
|
|
25
|
+
const filtered = useMemo(() => manager.getPlugins().filter(({ meta: meta2 }) => !manager.getCore().includes(meta2.id)), []);
|
|
26
|
+
return /* @__PURE__ */ React.createElement(PluginRegistry, {
|
|
27
|
+
id: registryCategoryId("all"),
|
|
28
|
+
plugins: filtered
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}),
|
|
32
|
+
Surface.create({
|
|
33
|
+
id: `${meta.id}.installed`,
|
|
34
|
+
role: "article",
|
|
35
|
+
filter: (data) => data.subject === registryCategoryId("installed"),
|
|
36
|
+
component: () => {
|
|
37
|
+
const manager = usePluginManager();
|
|
38
|
+
const filtered = useMemo(() => manager.getPlugins().filter(({ meta: meta2 }) => !manager.getCore().includes(meta2.id)).filter(({ meta: meta2 }) => manager.getEnabled().includes(meta2.id)), []);
|
|
39
|
+
return /* @__PURE__ */ React.createElement(PluginRegistry, {
|
|
40
|
+
id: registryCategoryId("installed"),
|
|
41
|
+
plugins: filtered
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}),
|
|
45
|
+
Surface.create({
|
|
46
|
+
id: `${meta.id}.recommended`,
|
|
47
|
+
role: "article",
|
|
48
|
+
filter: (data) => data.subject === registryCategoryId("recommended"),
|
|
49
|
+
component: () => {
|
|
50
|
+
const manager = usePluginManager();
|
|
51
|
+
const filtered = useMemo(() => manager.getPlugins().filter(({ meta: meta2 }) => !manager.getCore().includes(meta2.id)).filter(({ meta: meta2 }) => !meta2.tags?.includes("labs")), []);
|
|
52
|
+
return /* @__PURE__ */ React.createElement(PluginRegistry, {
|
|
53
|
+
id: registryCategoryId("recommended"),
|
|
54
|
+
plugins: filtered
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}),
|
|
58
|
+
Surface.create({
|
|
59
|
+
id: `${meta.id}.labs`,
|
|
60
|
+
role: "article",
|
|
61
|
+
filter: (data) => data.subject === registryCategoryId("labs"),
|
|
62
|
+
component: () => {
|
|
63
|
+
const manager = usePluginManager();
|
|
64
|
+
const filtered = useMemo(() => manager.getPlugins().filter(({ meta: meta2 }) => meta2.tags?.includes("labs")), []);
|
|
65
|
+
return /* @__PURE__ */ React.createElement(PluginRegistry, {
|
|
66
|
+
id: registryCategoryId("labs"),
|
|
67
|
+
plugins: filtered
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}),
|
|
71
|
+
Surface.create({
|
|
72
|
+
id: `${meta.id}.plugin-details`,
|
|
73
|
+
role: "article",
|
|
74
|
+
filter: (data) => Plugin.isPlugin(data.subject),
|
|
75
|
+
component: ({ data: { subject } }) => {
|
|
76
|
+
return /* @__PURE__ */ React.createElement(PluginArticle, {
|
|
77
|
+
subject
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
])));
|
|
82
|
+
export {
|
|
83
|
+
react_surface_default as default
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=react-surface-6NL2F2O3.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/containers/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, Capability, Plugin } from '@dxos/app-framework';\nimport { Surface, usePluginManager } from '@dxos/app-framework/ui';\n\nimport { PluginArticle, PluginRegistry } from '../../containers';\nimport { registryCategoryId, meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}.all`,\n role: 'article',\n filter: (data): data is any => data.subject === registryCategoryId('all'),\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () => manager.getPlugins().filter(({ meta }) => !manager.getCore().includes(meta.id)),\n [],\n );\n\n return <PluginRegistry id={registryCategoryId('all')} plugins={filtered} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.installed`,\n role: 'article',\n filter: (data): data is any => data.subject === registryCategoryId('installed'),\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager\n .getPlugins()\n .filter(({ meta }) => !manager.getCore().includes(meta.id))\n .filter(({ meta }) => manager.getEnabled().includes(meta.id)),\n [],\n );\n\n return <PluginRegistry id={registryCategoryId('installed')} plugins={filtered} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.recommended`,\n role: 'article',\n filter: (data): data is any => data.subject === registryCategoryId('recommended'),\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager\n .getPlugins()\n .filter(({ meta }) => !manager.getCore().includes(meta.id))\n .filter(({ meta }) => !meta.tags?.includes('labs')),\n [],\n );\n\n return <PluginRegistry id={registryCategoryId('recommended')} plugins={filtered} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.labs`,\n role: 'article',\n filter: (data): data is any => data.subject === registryCategoryId('labs'),\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.getPlugins().filter(({ meta }) => meta.tags?.includes('labs')), []);\n\n return <PluginRegistry id={registryCategoryId('labs')} plugins={filtered} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.plugin-details`,\n role: 'article',\n filter: (data): data is { subject: Plugin.Plugin } => Plugin.isPlugin(data.subject),\n component: ({ data: { subject } }) => {\n return <PluginArticle subject={subject} />;\n },\n }),\n ]),\n ),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const PluginArticle: ComponentType<any> = lazy(() => import('./PluginArticle'));\nexport const PluginRegistry: ComponentType<any> = lazy(() => import('./PluginRegistry'));\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "React", "useMemo", "Capabilities", "Capability", "Plugin", "Surface", "usePluginManager", "lazy", "PluginArticle", "lazy", "PluginRegistry", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "filter", "data", "subject", "registryCategoryId", "component", "manager", "usePluginManager", "filtered", "useMemo", "getPlugins", "getCore", "includes", "PluginRegistry", "plugins", "getEnabled", "tags", "Plugin", "isPlugin", "PluginArticle"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
PluginDetail
|
|
4
|
+
} from "./chunk-576PZRDS.mjs";
|
|
5
|
+
import "./chunk-44X3W2YY.mjs";
|
|
6
|
+
|
|
7
|
+
// src/containers/PluginArticle/PluginArticle.tsx
|
|
8
|
+
import React, { useCallback } from "react";
|
|
9
|
+
import { usePluginManager } from "@dxos/app-framework/ui";
|
|
10
|
+
import { runAndForwardErrors } from "@dxos/effect";
|
|
11
|
+
var PluginArticle = ({ subject: plugin }) => {
|
|
12
|
+
const manager = usePluginManager();
|
|
13
|
+
const enabled = manager.getEnabled().includes(plugin.meta.id);
|
|
14
|
+
const handleEnableChange = useCallback((enabled2) => enabled2 ? runAndForwardErrors(manager.enable(plugin.meta.id)) : runAndForwardErrors(manager.disable(plugin.meta.id)), [
|
|
15
|
+
manager,
|
|
16
|
+
plugin.meta.id
|
|
17
|
+
]);
|
|
18
|
+
return /* @__PURE__ */ React.createElement(PluginDetail, {
|
|
19
|
+
plugin,
|
|
20
|
+
enabled,
|
|
21
|
+
onEnabledChange: handleEnableChange
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// src/containers/PluginArticle/index.ts
|
|
26
|
+
var PluginArticle_default = PluginArticle;
|
|
27
|
+
export {
|
|
28
|
+
PluginArticle_default as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=PluginArticle-FIVZRB45.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/PluginArticle/PluginArticle.tsx", "../../../src/containers/PluginArticle/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { usePluginManager } from '@dxos/app-framework/ui';\nimport { runAndForwardErrors } from '@dxos/effect';\n\nimport { PluginDetail } from '../../components';\n\n// TODO(burdon): Convert to ECHO type.\nexport type PluginArticleProps = { subject: Plugin.Plugin };\n\nexport const PluginArticle = ({ subject: plugin }: PluginArticleProps) => {\n const manager = usePluginManager();\n const enabled = manager.getEnabled().includes(plugin.meta.id);\n const handleEnableChange = useCallback(\n (enabled: boolean) =>\n enabled\n ? runAndForwardErrors(manager.enable(plugin.meta.id))\n : runAndForwardErrors(manager.disable(plugin.meta.id)),\n [manager, plugin.meta.id],\n );\n\n return <PluginDetail plugin={plugin} enabled={enabled} onEnabledChange={handleEnableChange} />;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { PluginArticle } from './PluginArticle';\n\nexport default PluginArticle;\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAGnC,SAASC,wBAAwB;AACjC,SAASC,2BAA2B;AAO7B,IAAMC,gBAAgB,CAAC,EAAEC,SAASC,OAAM,MAAsB;AACnE,QAAMC,UAAUC,iBAAAA;AAChB,QAAMC,UAAUF,QAAQG,WAAU,EAAGC,SAASL,OAAOM,KAAKC,EAAE;AAC5D,QAAMC,qBAAqBC,YACzB,CAACN,aACCA,WACIO,oBAAoBT,QAAQU,OAAOX,OAAOM,KAAKC,EAAE,CAAA,IACjDG,oBAAoBT,QAAQW,QAAQZ,OAAOM,KAAKC,EAAE,CAAA,GACxD;IAACN;IAASD,OAAOM,KAAKC;GAAG;AAG3B,SAAO,sBAAA,cAACM,cAAAA;IAAab;IAAgBG;IAAkBW,iBAAiBN;;AAC1E;;;ACrBA,IAAA,wBAAeO;",
|
|
6
|
+
"names": ["React", "useCallback", "usePluginManager", "runAndForwardErrors", "PluginArticle", "subject", "plugin", "manager", "usePluginManager", "enabled", "getEnabled", "includes", "meta", "id", "handleEnableChange", "useCallback", "runAndForwardErrors", "enable", "disable", "PluginDetail", "onEnabledChange", "PluginArticle"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
PluginList
|
|
4
|
+
} from "./chunk-576PZRDS.mjs";
|
|
5
|
+
import {
|
|
6
|
+
getPluginPath
|
|
7
|
+
} from "./chunk-44X3W2YY.mjs";
|
|
8
|
+
|
|
9
|
+
// src/containers/PluginRegistry/PluginRegistry.tsx
|
|
10
|
+
import { useAtomValue } from "@effect-atom/atom-react";
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import React, { useCallback, useMemo } from "react";
|
|
13
|
+
import { useCapabilities, useOperationInvoker, usePluginManager } from "@dxos/app-framework/ui";
|
|
14
|
+
import { AppCapabilities, LayoutOperation, SettingsOperation } from "@dxos/app-toolkit";
|
|
15
|
+
import { runAndForwardErrors } from "@dxos/effect";
|
|
16
|
+
import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
|
|
17
|
+
import { ScrollArea } from "@dxos/react-ui";
|
|
18
|
+
import { composable, composableProps } from "@dxos/ui-theme";
|
|
19
|
+
var sortByPluginMeta = ({ meta: { name: a = "" } }, { meta: { name: b = "" } }) => a.localeCompare(b);
|
|
20
|
+
var PluginRegistry = composable(({ id, plugins: pluginsProp, ...props }, forwardedRef) => {
|
|
21
|
+
const manager = usePluginManager();
|
|
22
|
+
const { invoke, invokePromise } = useOperationInvoker();
|
|
23
|
+
const plugins = useMemo(() => pluginsProp.sort(sortByPluginMeta), [
|
|
24
|
+
pluginsProp
|
|
25
|
+
]);
|
|
26
|
+
const enabled = useAtomValue(manager.enabled);
|
|
27
|
+
const allSettings = useCapabilities(AppCapabilities.Settings);
|
|
28
|
+
const handleChange = useCallback((id2, enabled2) => Effect.gen(function* () {
|
|
29
|
+
if (enabled2) {
|
|
30
|
+
yield* manager.enable(id2);
|
|
31
|
+
} else {
|
|
32
|
+
yield* manager.disable(id2);
|
|
33
|
+
}
|
|
34
|
+
yield* invoke(ObservabilityOperation.SendEvent, {
|
|
35
|
+
name: "plugins.toggle",
|
|
36
|
+
properties: {
|
|
37
|
+
plugin: id2,
|
|
38
|
+
enabled: enabled2
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}).pipe(runAndForwardErrors), [
|
|
42
|
+
invoke,
|
|
43
|
+
manager
|
|
44
|
+
]);
|
|
45
|
+
const handleClick = useCallback((pluginId) => invokePromise(LayoutOperation.Open, {
|
|
46
|
+
subject: [
|
|
47
|
+
getPluginPath(pluginId)
|
|
48
|
+
],
|
|
49
|
+
pivotId: id,
|
|
50
|
+
positioning: "end"
|
|
51
|
+
}), [
|
|
52
|
+
invokePromise,
|
|
53
|
+
id
|
|
54
|
+
]);
|
|
55
|
+
const hasSettings = useCallback((pluginId) => allSettings.some((s) => s.prefix === pluginId), [
|
|
56
|
+
allSettings
|
|
57
|
+
]);
|
|
58
|
+
const handleSettings = useCallback((pluginId) => invokePromise(SettingsOperation.Open, {
|
|
59
|
+
plugin: pluginId
|
|
60
|
+
}), [
|
|
61
|
+
invokePromise
|
|
62
|
+
]);
|
|
63
|
+
return /* @__PURE__ */ React.createElement(ScrollArea.Root, {
|
|
64
|
+
...composableProps(props),
|
|
65
|
+
orientation: "vertical",
|
|
66
|
+
ref: forwardedRef
|
|
67
|
+
}, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, null, /* @__PURE__ */ React.createElement(PluginList, {
|
|
68
|
+
plugins,
|
|
69
|
+
enabled,
|
|
70
|
+
onClick: handleClick,
|
|
71
|
+
onChange: handleChange,
|
|
72
|
+
hasSettings,
|
|
73
|
+
onSettings: handleSettings
|
|
74
|
+
})));
|
|
75
|
+
});
|
|
76
|
+
PluginRegistry.displayName = "PluginRegistry";
|
|
77
|
+
|
|
78
|
+
// src/containers/PluginRegistry/index.ts
|
|
79
|
+
var PluginRegistry_default = PluginRegistry;
|
|
80
|
+
export {
|
|
81
|
+
PluginRegistry_default as default
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=PluginRegistry-RHD6ZITD.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/PluginRegistry/PluginRegistry.tsx", "../../../src/containers/PluginRegistry/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { useCapabilities, useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation, SettingsOperation } from '@dxos/app-toolkit';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/operations';\nimport { ScrollArea } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/ui-theme';\n\nimport { PluginList } from '../../components';\nimport { getPluginPath } from '../../meta';\n\nconst sortByPluginMeta = ({ meta: { name: a = '' } }: Plugin.Plugin, { meta: { name: b = '' } }: Plugin.Plugin) =>\n a.localeCompare(b);\n\nexport type PluginRegistryProps = {\n id: string;\n plugins: Plugin.Plugin[];\n};\n\nexport const PluginRegistry = composable<HTMLDivElement, PluginRegistryProps>(\n ({ id, plugins: pluginsProp, ...props }, forwardedRef) => {\n const manager = usePluginManager();\n const { invoke, invokePromise } = useOperationInvoker();\n const plugins = useMemo(() => pluginsProp.sort(sortByPluginMeta), [pluginsProp]);\n const enabled = useAtomValue(manager.enabled);\n const allSettings = useCapabilities(AppCapabilities.Settings);\n\n // TODO(wittjosiah): Factor out to an intent?\n const handleChange = useCallback(\n (id: string, enabled: boolean) =>\n Effect.gen(function* () {\n if (enabled) {\n yield* manager.enable(id);\n } else {\n yield* manager.disable(id);\n }\n\n yield* invoke(ObservabilityOperation.SendEvent, {\n name: 'plugins.toggle',\n properties: {\n plugin: id,\n enabled,\n },\n });\n }).pipe(runAndForwardErrors),\n [invoke, manager],\n );\n\n const handleClick = useCallback(\n (pluginId: string) =>\n invokePromise(LayoutOperation.Open, {\n subject: [getPluginPath(pluginId)],\n pivotId: id,\n positioning: 'end',\n }),\n [invokePromise, id],\n );\n\n const hasSettings = useCallback(\n (pluginId: string) => allSettings.some((s) => s.prefix === pluginId),\n [allSettings],\n );\n\n const handleSettings = useCallback(\n (pluginId: string) => invokePromise(SettingsOperation.Open, { plugin: pluginId }),\n [invokePromise],\n );\n\n return (\n <ScrollArea.Root {...composableProps(props)} orientation='vertical' ref={forwardedRef}>\n <ScrollArea.Viewport>\n <PluginList\n plugins={plugins}\n enabled={enabled}\n onClick={handleClick}\n onChange={handleChange}\n hasSettings={hasSettings}\n onSettings={handleSettings}\n />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n );\n },\n);\n\nPluginRegistry.displayName = 'PluginRegistry';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { PluginRegistry } from './PluginRegistry';\n\nexport default PluginRegistry;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,SAASA,oBAAoB;AAC7B,YAAYC,YAAY;AACxB,OAAOC,SAASC,aAAaC,eAAe;AAG5C,SAASC,iBAAiBC,qBAAqBC,wBAAwB;AACvE,SAASC,iBAAiBC,iBAAiBC,yBAAyB;AACpE,SAASC,2BAA2B;AACpC,SAASC,8BAA8B;AACvC,SAASC,kBAAkB;AAC3B,SAASC,YAAYC,uBAAuB;AAK5C,IAAMC,mBAAmB,CAAC,EAAEC,MAAM,EAAEC,MAAMC,IAAI,GAAE,EAAE,GAAmB,EAAEF,MAAM,EAAEC,MAAME,IAAI,GAAE,EAAE,MAC3FD,EAAEE,cAAcD,CAAAA;AAOX,IAAME,iBAAiBC,WAC5B,CAAC,EAAEC,IAAIC,SAASC,aAAa,GAAGC,MAAAA,GAASC,iBAAAA;AACvC,QAAMC,UAAUC,iBAAAA;AAChB,QAAM,EAAEC,QAAQC,cAAa,IAAKC,oBAAAA;AAClC,QAAMR,UAAUS,QAAQ,MAAMR,YAAYS,KAAKnB,gBAAAA,GAAmB;IAACU;GAAY;AAC/E,QAAMU,UAAUC,aAAaR,QAAQO,OAAO;AAC5C,QAAME,cAAcC,gBAAgBC,gBAAgBC,QAAQ;AAG5D,QAAMC,eAAeC,YACnB,CAACnB,KAAYY,aACJQ,WAAI,aAAA;AACT,QAAIR,UAAS;AACX,aAAOP,QAAQgB,OAAOrB,GAAAA;IACxB,OAAO;AACL,aAAOK,QAAQiB,QAAQtB,GAAAA;IACzB;AAEA,WAAOO,OAAOgB,uBAAuBC,WAAW;MAC9C9B,MAAM;MACN+B,YAAY;QACVC,QAAQ1B;QACRY,SAAAA;MACF;IACF,CAAA;EACF,CAAA,EAAGe,KAAKC,mBAAAA,GACV;IAACrB;IAAQF;GAAQ;AAGnB,QAAMwB,cAAcV,YAClB,CAACW,aACCtB,cAAcuB,gBAAgBC,MAAM;IAClCC,SAAS;MAACC,cAAcJ,QAAAA;;IACxBK,SAASnC;IACToC,aAAa;EACf,CAAA,GACF;IAAC5B;IAAeR;GAAG;AAGrB,QAAMqC,cAAclB,YAClB,CAACW,aAAqBhB,YAAYwB,KAAK,CAACC,MAAMA,EAAEC,WAAWV,QAAAA,GAC3D;IAAChB;GAAY;AAGf,QAAM2B,iBAAiBtB,YACrB,CAACW,aAAqBtB,cAAckC,kBAAkBV,MAAM;IAAEN,QAAQI;EAAS,CAAA,GAC/E;IAACtB;GAAc;AAGjB,SACE,sBAAA,cAACmC,WAAWC,MAAI;IAAE,GAAGC,gBAAgB1C,KAAAA;IAAQ2C,aAAY;IAAWC,KAAK3C;KACvE,sBAAA,cAACuC,WAAWK,UAAQ,MAClB,sBAAA,cAACC,YAAAA;IACChD;IACAW;IACAsC,SAASrB;IACTsB,UAAUjC;IACVmB;IACAe,YAAYX;;AAKtB,CAAA;AAGF3C,eAAeuD,cAAc;;;ACvF7B,IAAA,yBAAeC;",
|
|
6
|
+
"names": ["useAtomValue", "Effect", "React", "useCallback", "useMemo", "useCapabilities", "useOperationInvoker", "usePluginManager", "AppCapabilities", "LayoutOperation", "SettingsOperation", "runAndForwardErrors", "ObservabilityOperation", "ScrollArea", "composable", "composableProps", "sortByPluginMeta", "meta", "name", "a", "b", "localeCompare", "PluginRegistry", "composable", "id", "plugins", "pluginsProp", "props", "forwardedRef", "manager", "usePluginManager", "invoke", "invokePromise", "useOperationInvoker", "useMemo", "sort", "enabled", "useAtomValue", "allSettings", "useCapabilities", "AppCapabilities", "Settings", "handleChange", "useCallback", "gen", "enable", "disable", "ObservabilityOperation", "SendEvent", "properties", "plugin", "pipe", "runAndForwardErrors", "handleClick", "pluginId", "LayoutOperation", "Open", "subject", "getPluginPath", "pivotId", "positioning", "hasSettings", "some", "s", "prefix", "handleSettings", "SettingsOperation", "ScrollArea", "Root", "composableProps", "orientation", "ref", "Viewport", "PluginList", "onClick", "onChange", "onSettings", "displayName", "PluginRegistry"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
REGISTRY_ID,
|
|
4
|
+
REGISTRY_KEY,
|
|
5
|
+
meta,
|
|
6
|
+
registryCategoryId
|
|
7
|
+
} from "./chunk-44X3W2YY.mjs";
|
|
8
|
+
|
|
9
|
+
// src/capabilities/app-graph-builder/app-graph-builder.ts
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
12
|
+
import { AppCapabilities, SettingsOperation } from "@dxos/app-toolkit";
|
|
13
|
+
import { Operation } from "@dxos/operation";
|
|
14
|
+
import { GraphBuilder, NodeMatcher } from "@dxos/plugin-graph";
|
|
15
|
+
var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
16
|
+
const capabilities = yield* Capability.Service;
|
|
17
|
+
const extensions = yield* Effect.all([
|
|
18
|
+
GraphBuilder.createExtension({
|
|
19
|
+
id: meta.id,
|
|
20
|
+
match: NodeMatcher.whenRoot,
|
|
21
|
+
actions: () => Effect.succeed([
|
|
22
|
+
{
|
|
23
|
+
id: meta.id,
|
|
24
|
+
data: () => Operation.invoke(SettingsOperation.OpenPluginRegistry),
|
|
25
|
+
properties: {
|
|
26
|
+
label: [
|
|
27
|
+
"open plugin registry label",
|
|
28
|
+
{
|
|
29
|
+
ns: meta.id
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
icon: "ph--squares-four--regular",
|
|
33
|
+
disposition: "menu"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
])
|
|
37
|
+
}),
|
|
38
|
+
GraphBuilder.createExtension({
|
|
39
|
+
id: meta.id,
|
|
40
|
+
match: NodeMatcher.whenRoot,
|
|
41
|
+
connector: () => Effect.succeed([
|
|
42
|
+
{
|
|
43
|
+
id: REGISTRY_ID,
|
|
44
|
+
type: meta.id,
|
|
45
|
+
properties: {
|
|
46
|
+
label: [
|
|
47
|
+
"plugin registry label",
|
|
48
|
+
{
|
|
49
|
+
ns: meta.id
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
icon: "ph--squares-four--regular",
|
|
53
|
+
disposition: "pin-end",
|
|
54
|
+
testId: "treeView.pluginRegistry"
|
|
55
|
+
},
|
|
56
|
+
nodes: [
|
|
57
|
+
{
|
|
58
|
+
id: registryCategoryId("all"),
|
|
59
|
+
type: "category",
|
|
60
|
+
data: registryCategoryId("all"),
|
|
61
|
+
properties: {
|
|
62
|
+
label: [
|
|
63
|
+
"all plugins label",
|
|
64
|
+
{
|
|
65
|
+
ns: meta.id
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
icon: "ph--squares-four--regular",
|
|
69
|
+
key: REGISTRY_KEY,
|
|
70
|
+
testId: "pluginRegistry.all"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: registryCategoryId("installed"),
|
|
75
|
+
type: "category",
|
|
76
|
+
data: registryCategoryId("installed"),
|
|
77
|
+
properties: {
|
|
78
|
+
label: [
|
|
79
|
+
"installed plugins label",
|
|
80
|
+
{
|
|
81
|
+
ns: meta.id
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
icon: "ph--check--regular",
|
|
85
|
+
key: REGISTRY_KEY,
|
|
86
|
+
testId: "pluginRegistry.installed"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: registryCategoryId("recommended"),
|
|
91
|
+
type: "category",
|
|
92
|
+
data: registryCategoryId("recommended"),
|
|
93
|
+
properties: {
|
|
94
|
+
label: [
|
|
95
|
+
"recommended plugins label",
|
|
96
|
+
{
|
|
97
|
+
ns: meta.id
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
icon: "ph--star--regular",
|
|
101
|
+
key: REGISTRY_KEY,
|
|
102
|
+
testId: "pluginRegistry.recommended"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: registryCategoryId("labs"),
|
|
107
|
+
type: "category",
|
|
108
|
+
data: registryCategoryId("labs"),
|
|
109
|
+
properties: {
|
|
110
|
+
label: [
|
|
111
|
+
"labs plugins label",
|
|
112
|
+
{
|
|
113
|
+
ns: meta.id
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
icon: "ph--flask--regular",
|
|
117
|
+
key: REGISTRY_KEY,
|
|
118
|
+
testId: "pluginRegistry.labs"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
])
|
|
124
|
+
}),
|
|
125
|
+
GraphBuilder.createExtension({
|
|
126
|
+
id: `${meta.id}.actions`,
|
|
127
|
+
match: NodeMatcher.whenId(`root/${REGISTRY_ID}`),
|
|
128
|
+
actions: () => Effect.succeed([
|
|
129
|
+
{
|
|
130
|
+
id: `${meta.id}.load-by-url`,
|
|
131
|
+
data: Effect.fnUntraced(function* () {
|
|
132
|
+
}),
|
|
133
|
+
properties: {
|
|
134
|
+
label: [
|
|
135
|
+
"load by url label",
|
|
136
|
+
{
|
|
137
|
+
ns: meta.id
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
icon: "ph--cloud-arrow-down--regular",
|
|
141
|
+
disabled: true
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
])
|
|
145
|
+
}),
|
|
146
|
+
GraphBuilder.createExtension({
|
|
147
|
+
id: `${meta.id}.plugins`,
|
|
148
|
+
match: NodeMatcher.whenId(`root/${REGISTRY_ID}`),
|
|
149
|
+
connector: () => {
|
|
150
|
+
const manager = capabilities.get(Capabilities.PluginManager);
|
|
151
|
+
return Effect.succeed(manager.getPlugins().map((plugin) => ({
|
|
152
|
+
id: plugin.meta.id,
|
|
153
|
+
type: "org.dxos.plugin",
|
|
154
|
+
data: plugin,
|
|
155
|
+
properties: {
|
|
156
|
+
label: plugin.meta.name ?? plugin.meta.id,
|
|
157
|
+
icon: plugin.meta.icon ?? "ph--circle--regular",
|
|
158
|
+
disposition: "hidden"
|
|
159
|
+
}
|
|
160
|
+
})));
|
|
161
|
+
}
|
|
162
|
+
})
|
|
163
|
+
]);
|
|
164
|
+
return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
|
|
165
|
+
}));
|
|
166
|
+
export {
|
|
167
|
+
app_graph_builder_default as default
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=app-graph-builder-FSZAEWLX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, SettingsOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\nimport { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';\n\nimport { REGISTRY_ID, REGISTRY_KEY, registryCategoryId, meta } from '../../meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n\n const extensions = yield* Effect.all([\n GraphBuilder.createExtension({\n id: meta.id,\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed([\n {\n id: meta.id,\n data: () => Operation.invoke(SettingsOperation.OpenPluginRegistry),\n properties: {\n label: ['open plugin registry label', { ns: meta.id }],\n icon: 'ph--squares-four--regular',\n disposition: 'menu',\n },\n },\n ]),\n }),\n GraphBuilder.createExtension({\n id: meta.id,\n match: NodeMatcher.whenRoot,\n connector: () =>\n Effect.succeed([\n {\n id: REGISTRY_ID,\n type: meta.id,\n properties: {\n label: ['plugin registry label', { ns: meta.id }],\n icon: 'ph--squares-four--regular',\n disposition: 'pin-end',\n testId: 'treeView.pluginRegistry',\n },\n nodes: [\n {\n id: registryCategoryId('all'),\n type: 'category' as const,\n data: registryCategoryId('all'),\n properties: {\n label: ['all plugins label', { ns: meta.id }],\n icon: 'ph--squares-four--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.all',\n },\n },\n {\n id: registryCategoryId('installed'),\n type: 'category' as const,\n data: registryCategoryId('installed'),\n properties: {\n label: ['installed plugins label', { ns: meta.id }],\n icon: 'ph--check--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.installed',\n },\n },\n {\n id: registryCategoryId('recommended'),\n type: 'category' as const,\n data: registryCategoryId('recommended'),\n properties: {\n label: ['recommended plugins label', { ns: meta.id }],\n icon: 'ph--star--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.recommended',\n },\n },\n {\n id: registryCategoryId('labs'),\n type: 'category' as const,\n data: registryCategoryId('labs'),\n properties: {\n label: ['labs plugins label', { ns: meta.id }],\n icon: 'ph--flask--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.labs',\n },\n },\n ],\n },\n ]),\n }),\n GraphBuilder.createExtension({\n id: `${meta.id}.actions`,\n match: NodeMatcher.whenId(`root/${REGISTRY_ID}`),\n actions: () =>\n Effect.succeed([\n {\n id: `${meta.id}.load-by-url`,\n data: Effect.fnUntraced(function* () {}),\n properties: {\n label: ['load by url label', { ns: meta.id }],\n icon: 'ph--cloud-arrow-down--regular',\n disabled: true,\n },\n },\n ]),\n }),\n GraphBuilder.createExtension({\n id: `${meta.id}.plugins`,\n match: NodeMatcher.whenId(`root/${REGISTRY_ID}`),\n connector: () => {\n const manager = capabilities.get(Capabilities.PluginManager);\n return Effect.succeed(\n manager.getPlugins().map((plugin) => ({\n id: plugin.meta.id,\n type: 'org.dxos.plugin',\n data: plugin,\n properties: {\n label: plugin.meta.name ?? plugin.meta.id,\n icon: plugin.meta.icon ?? 'ph--circle--regular',\n disposition: 'hidden',\n },\n })),\n );\n },\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "AppCapabilities", "SettingsOperation", "Operation", "GraphBuilder", "NodeMatcher", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "extensions", "all", "GraphBuilder", "createExtension", "id", "meta", "match", "NodeMatcher", "whenRoot", "actions", "succeed", "data", "Operation", "invoke", "SettingsOperation", "OpenPluginRegistry", "properties", "label", "ns", "icon", "disposition", "connector", "REGISTRY_ID", "type", "testId", "nodes", "registryCategoryId", "key", "REGISTRY_KEY", "whenId", "disabled", "manager", "get", "Capabilities", "PluginManager", "getPlugins", "map", "plugin", "name", "contributes", "AppCapabilities", "AppGraphBuilder"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/meta.ts
|
|
4
|
+
import { pinnedWorkspaceId } from "@dxos/app-toolkit";
|
|
5
|
+
import { trim } from "@dxos/util";
|
|
6
|
+
var REGISTRY_ID = pinnedWorkspaceId("dxos:plugin-registry");
|
|
7
|
+
var REGISTRY_KEY = "plugin-registry";
|
|
8
|
+
var CATEGORY_SEPARATOR = ">";
|
|
9
|
+
var registryCategoryId = (category) => `${REGISTRY_KEY}${CATEGORY_SEPARATOR}${category}`;
|
|
10
|
+
var getPluginPath = (pluginId) => `root/${REGISTRY_ID}/${pluginId}`;
|
|
11
|
+
var meta = {
|
|
12
|
+
id: "org.dxos.plugin.registry",
|
|
13
|
+
name: "Plugins",
|
|
14
|
+
description: trim`
|
|
15
|
+
Plugin management system for discovering, installing, and configuring workspace extensions.
|
|
16
|
+
Browse available plugins and customize your workspace capabilities.
|
|
17
|
+
`
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
REGISTRY_ID,
|
|
22
|
+
REGISTRY_KEY,
|
|
23
|
+
registryCategoryId,
|
|
24
|
+
getPluginPath,
|
|
25
|
+
meta
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=chunk-44X3W2YY.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { pinnedWorkspaceId } from '@dxos/app-toolkit';\nimport { trim } from '@dxos/util';\n\nexport const REGISTRY_ID = pinnedWorkspaceId('dxos:plugin-registry');\nexport const REGISTRY_KEY = 'plugin-registry';\n\n// TODO(wittjosiah): Should this be a special separator or use the standard path separator?\nconst CATEGORY_SEPARATOR = '>';\n\n/** Build a registry category node ID. */\nexport const registryCategoryId = (category: string): string => `${REGISTRY_KEY}${CATEGORY_SEPARATOR}${category}`;\n\n/** Qualified graph path to a specific plugin node. */\nexport const getPluginPath = (pluginId: string): string => `root/${REGISTRY_ID}/${pluginId}`;\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.registry',\n name: 'Plugins',\n description: trim`\n Plugin management system for discovering, installing, and configuring workspace extensions.\n Browse available plugins and customize your workspace capabilities.\n `,\n};\n"],
|
|
5
|
+
"mappings": ";;;AAKA,SAASA,yBAAyB;AAClC,SAASC,YAAY;AAEd,IAAMC,cAAcC,kBAAkB,sBAAA;AACtC,IAAMC,eAAe;AAG5B,IAAMC,qBAAqB;AAGpB,IAAMC,qBAAqB,CAACC,aAA6B,GAAGH,YAAAA,GAAeC,kBAAAA,GAAqBE,QAAAA;AAGhG,IAAMC,gBAAgB,CAACC,aAA6B,QAAQP,WAAAA,IAAeO,QAAAA;AAE3E,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;AAIf;",
|
|
6
|
+
"names": ["pinnedWorkspaceId", "trim", "REGISTRY_ID", "pinnedWorkspaceId", "REGISTRY_KEY", "CATEGORY_SEPARATOR", "registryCategoryId", "category", "getPluginPath", "pluginId", "meta", "id", "name", "description", "trim"]
|
|
7
|
+
}
|