@dxos/plugin-automation 0.7.5-main.9d26e3a → 0.7.5-main.e9bb01b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/lib/browser/{AssistantPanel-32FH2RA6.mjs → AssistantPanel-NTOUHOWA.mjs} +3 -3
  2. package/dist/lib/browser/{AssistantPanel-32FH2RA6.mjs.map → AssistantPanel-NTOUHOWA.mjs.map} +2 -2
  3. package/dist/lib/browser/AutomationPanel-KT3YFV56.mjs +231 -0
  4. package/dist/lib/browser/AutomationPanel-KT3YFV56.mjs.map +7 -0
  5. package/dist/lib/browser/app-graph-builder-6FSMLMT4.mjs +131 -0
  6. package/dist/lib/browser/app-graph-builder-6FSMLMT4.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-4ODBJDXM.mjs +10 -0
  8. package/dist/lib/browser/chunk-4ODBJDXM.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-DN5M2QL5.mjs → chunk-DL6LB2NI.mjs} +2 -8
  10. package/dist/lib/browser/{chunk-DN5M2QL5.mjs.map → chunk-DL6LB2NI.mjs.map} +4 -4
  11. package/dist/lib/browser/{chunk-X5KMOH3I.mjs → chunk-DQ7ZSYJJ.mjs} +4 -4
  12. package/dist/lib/browser/chunk-DQ7ZSYJJ.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +89 -236
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/react-surface-5YTE5MRE.mjs +34 -0
  17. package/dist/lib/browser/react-surface-5YTE5MRE.mjs.map +7 -0
  18. package/dist/lib/browser/types/index.mjs +1 -3
  19. package/dist/lib/node/{AssistantPanel-XANI7YNV.cjs → AssistantPanel-U7GDWPRC.cjs} +7 -7
  20. package/dist/lib/node/{AssistantPanel-XANI7YNV.cjs.map → AssistantPanel-U7GDWPRC.cjs.map} +2 -2
  21. package/dist/lib/node/{AutomationPanel-VADY3HMP.cjs → AutomationPanel-H5WE4FIU.cjs} +112 -32
  22. package/dist/lib/node/AutomationPanel-H5WE4FIU.cjs.map +7 -0
  23. package/dist/lib/node/app-graph-builder-65TBXO3I.cjs +147 -0
  24. package/dist/lib/node/app-graph-builder-65TBXO3I.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-NIL4TP6U.cjs → chunk-JNDMZQH7.cjs} +4 -9
  26. package/dist/lib/node/chunk-JNDMZQH7.cjs.map +7 -0
  27. package/dist/lib/node/chunk-JUSXT4U5.cjs +43 -0
  28. package/dist/lib/node/chunk-JUSXT4U5.cjs.map +7 -0
  29. package/dist/lib/node/{chunk-DTJ7XVO2.cjs → chunk-TQEDPRY5.cjs} +8 -8
  30. package/dist/lib/node/chunk-TQEDPRY5.cjs.map +7 -0
  31. package/dist/lib/node/index.cjs +112 -258
  32. package/dist/lib/node/index.cjs.map +4 -4
  33. package/dist/lib/node/meta.json +1 -1
  34. package/dist/lib/node/react-surface-S6U5ISJ6.cjs +57 -0
  35. package/dist/lib/node/react-surface-S6U5ISJ6.cjs.map +7 -0
  36. package/dist/lib/node/types/index.cjs +5 -7
  37. package/dist/lib/node/types/index.cjs.map +2 -2
  38. package/dist/lib/node-esm/{AssistantPanel-5M6O6JV7.mjs → AssistantPanel-M67P24GS.mjs} +3 -3
  39. package/dist/lib/node-esm/{AssistantPanel-5M6O6JV7.mjs.map → AssistantPanel-M67P24GS.mjs.map} +2 -2
  40. package/dist/lib/node-esm/AutomationPanel-MW42U6I4.mjs +232 -0
  41. package/dist/lib/node-esm/AutomationPanel-MW42U6I4.mjs.map +7 -0
  42. package/dist/lib/node-esm/app-graph-builder-4SD4F3KN.mjs +132 -0
  43. package/dist/lib/node-esm/app-graph-builder-4SD4F3KN.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-GCHXTXVT.mjs → chunk-GIAYUM5I.mjs} +2 -8
  45. package/dist/lib/node-esm/{chunk-GCHXTXVT.mjs.map → chunk-GIAYUM5I.mjs.map} +4 -4
  46. package/dist/lib/node-esm/{chunk-HNOBZHWK.mjs → chunk-JFHI22MF.mjs} +4 -4
  47. package/dist/lib/node-esm/chunk-JFHI22MF.mjs.map +7 -0
  48. package/dist/lib/node-esm/chunk-XVIEXSEZ.mjs +12 -0
  49. package/dist/lib/node-esm/chunk-XVIEXSEZ.mjs.map +7 -0
  50. package/dist/lib/node-esm/index.mjs +89 -236
  51. package/dist/lib/node-esm/index.mjs.map +4 -4
  52. package/dist/lib/node-esm/meta.json +1 -1
  53. package/dist/lib/node-esm/react-surface-RWTR3TKT.mjs +35 -0
  54. package/dist/lib/node-esm/react-surface-RWTR3TKT.mjs.map +7 -0
  55. package/dist/lib/node-esm/types/index.mjs +1 -3
  56. package/dist/types/src/AutomationPlugin.d.ts +1 -3
  57. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/app-graph-builder.d.ts +180 -0
  59. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  60. package/dist/types/src/capabilities/index.d.ts +179 -0
  61. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  62. package/dist/types/src/capabilities/react-surface.d.ts +4 -0
  63. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  64. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -1
  65. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  66. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +1 -2
  67. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  68. package/dist/types/src/components/index.d.ts +1 -1
  69. package/dist/types/src/components/index.d.ts.map +1 -1
  70. package/dist/types/src/index.d.ts +1 -2
  71. package/dist/types/src/index.d.ts.map +1 -1
  72. package/dist/types/src/meta.d.ts +1 -2
  73. package/dist/types/src/meta.d.ts.map +1 -1
  74. package/dist/types/src/translations.d.ts +7 -0
  75. package/dist/types/src/translations.d.ts.map +1 -1
  76. package/dist/types/src/types/index.d.ts +0 -1
  77. package/dist/types/src/types/index.d.ts.map +1 -1
  78. package/dist/types/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +38 -46
  80. package/src/AutomationPlugin.tsx +55 -193
  81. package/src/capabilities/app-graph-builder.ts +127 -0
  82. package/src/capabilities/index.ts +8 -0
  83. package/src/capabilities/react-surface.tsx +27 -0
  84. package/src/components/AssistantPanel/AssistantPanel.tsx +1 -4
  85. package/src/components/AutomationPanel/AutomationPanel.tsx +54 -37
  86. package/src/components/TriggerEditor/TriggerEditor.tsx +65 -8
  87. package/src/index.ts +1 -4
  88. package/src/meta.ts +3 -2
  89. package/src/translations.ts +9 -0
  90. package/src/types/index.ts +0 -1
  91. package/dist/lib/browser/AutomationPanel-ABGPG5LE.mjs +0 -151
  92. package/dist/lib/browser/AutomationPanel-ABGPG5LE.mjs.map +0 -7
  93. package/dist/lib/browser/chunk-X5KMOH3I.mjs.map +0 -7
  94. package/dist/lib/browser/meta.mjs +0 -9
  95. package/dist/lib/browser/meta.mjs.map +0 -7
  96. package/dist/lib/node/AutomationPanel-VADY3HMP.cjs.map +0 -7
  97. package/dist/lib/node/chunk-DTJ7XVO2.cjs.map +0 -7
  98. package/dist/lib/node/chunk-NIL4TP6U.cjs.map +0 -7
  99. package/dist/lib/node/meta.cjs +0 -30
  100. package/dist/lib/node/meta.cjs.map +0 -7
  101. package/dist/lib/node-esm/AutomationPanel-EETYIDPA.mjs +0 -152
  102. package/dist/lib/node-esm/AutomationPanel-EETYIDPA.mjs.map +0 -7
  103. package/dist/lib/node-esm/chunk-HNOBZHWK.mjs.map +0 -7
  104. package/dist/lib/node-esm/meta.mjs +0 -10
  105. package/dist/lib/node-esm/meta.mjs.map +0 -7
  106. package/dist/types/src/types/types.d.ts +0 -7
  107. package/dist/types/src/types/types.d.ts.map +0 -1
  108. package/src/types/types.ts +0 -27
@@ -1,30 +0,0 @@
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 meta_exports = {};
20
- __export(meta_exports, {
21
- AUTOMATION_PLUGIN: () => import_chunk_DTJ7XVO2.AUTOMATION_PLUGIN,
22
- default: () => import_chunk_DTJ7XVO2.meta_default
23
- });
24
- module.exports = __toCommonJS(meta_exports);
25
- var import_chunk_DTJ7XVO2 = require("./chunk-DTJ7XVO2.cjs");
26
- // Annotate the CommonJS export names for ESM import in node:
27
- 0 && (module.exports = {
28
- AUTOMATION_PLUGIN
29
- });
30
- //# sourceMappingURL=meta.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["meta.cjs"],
4
- "sourcesContent": ["import {\n AUTOMATION_PLUGIN,\n meta_default\n} from \"./chunk-DTJ7XVO2.cjs\";\nexport {\n AUTOMATION_PLUGIN,\n meta_default as default\n};\n//# sourceMappingURL=meta.cjs.map\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;",
6
- "names": []
7
- }
@@ -1,152 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- AUTOMATION_PLUGIN
4
- } from "./chunk-HNOBZHWK.mjs";
5
-
6
- // packages/plugins/experimental/plugin-automation/src/components/AutomationPanel/AutomationPanel.tsx
7
- import React2, { useState } from "react";
8
- import { S } from "@dxos/echo-schema";
9
- import { FunctionType as FunctionType2, FunctionTrigger, FunctionTriggerSchema as FunctionTriggerSchema2, ScriptType as ScriptType2 } from "@dxos/functions";
10
- import { useClient } from "@dxos/react-client";
11
- import { create, Filter as Filter2, useQuery as useQuery2, getSpace } from "@dxos/react-client/echo";
12
- import { IconButton, Input, useTranslation as useTranslation2, Button } from "@dxos/react-ui";
13
- import { List } from "@dxos/react-ui-list";
14
- import { ghostHover, mx } from "@dxos/react-ui-theme";
15
-
16
- // packages/plugins/experimental/plugin-automation/src/components/TriggerEditor/TriggerEditor.tsx
17
- import React from "react";
18
- import { FunctionType, FunctionTriggerSchema, ScriptType, TriggerKind } from "@dxos/functions";
19
- import { Filter, useQuery } from "@dxos/react-client/echo";
20
- import { useTranslation } from "@dxos/react-ui";
21
- import { Form, SelectInput } from "@dxos/react-ui-form";
22
- var TriggerEditor = ({ space, trigger, onSave, onCancel, storedTrigger }) => {
23
- const { t } = useTranslation(AUTOMATION_PLUGIN);
24
- const functions = useQuery(space, Filter.schema(FunctionType));
25
- const scripts = useQuery(space, Filter.schema(ScriptType));
26
- const handleSave = (values) => {
27
- onSave?.(values);
28
- };
29
- return /* @__PURE__ */ React.createElement(Form, {
30
- schema: FunctionTriggerSchema,
31
- values: trigger,
32
- filter: (props) => props.filter((p) => p.name !== "meta"),
33
- onSave: handleSave,
34
- onCancel,
35
- Custom: {
36
- ["function"]: (props) => /* @__PURE__ */ React.createElement(SelectInput, {
37
- ...props,
38
- options: functions.map((fn) => ({
39
- value: fn.name,
40
- label: getFunctionName(scripts, fn)
41
- }))
42
- }),
43
- ["spec.type"]: (props) => /* @__PURE__ */ React.createElement(SelectInput, {
44
- ...props,
45
- options: Object.values(TriggerKind).map((kind) => ({
46
- value: kind,
47
- label: t(`trigger type ${kind}`)
48
- }))
49
- })
50
- }
51
- });
52
- };
53
- var getFunctionName = (scripts, fn) => {
54
- return scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;
55
- };
56
-
57
- // packages/plugins/experimental/plugin-automation/src/components/AutomationPanel/AutomationPanel.tsx
58
- var grid = "grid grid-cols-[40px_1fr_32px] min-bs-[2.5rem]";
59
- var AutomationPanel = ({ space }) => {
60
- const { t } = useTranslation2(AUTOMATION_PLUGIN);
61
- const client = useClient();
62
- const triggers = useQuery2(space, Filter2.schema(FunctionTrigger));
63
- const functions = useQuery2(space, Filter2.schema(FunctionType2));
64
- const scripts = useQuery2(space, Filter2.schema(ScriptType2));
65
- const [trigger, setTrigger] = useState();
66
- const [selected, setSelected] = useState();
67
- const handleSelect = (trigger2) => {
68
- const { id: _, ...values } = trigger2;
69
- setTrigger(values);
70
- setSelected(trigger2);
71
- };
72
- const handleAdd = () => {
73
- setTrigger(create(FunctionTriggerSchema2, {}));
74
- setSelected(void 0);
75
- };
76
- const handleDelete = (trigger2) => {
77
- space.db.remove(trigger2);
78
- setTrigger(void 0);
79
- setSelected(void 0);
80
- };
81
- const handleSave = (trigger2) => {
82
- if (selected) {
83
- Object.assign(selected, trigger2);
84
- } else {
85
- space.db.add(create(FunctionTrigger, trigger2));
86
- }
87
- setTrigger(void 0);
88
- setSelected(void 0);
89
- };
90
- const handleCancel = () => {
91
- setTrigger(void 0);
92
- };
93
- return /* @__PURE__ */ React2.createElement("div", {
94
- className: "flex flex-col w-full divide-y divide-separator overflow-y-auto"
95
- }, /* @__PURE__ */ React2.createElement(List.Root, {
96
- items: triggers,
97
- isItem: S.is(FunctionTrigger),
98
- getId: (field) => field.id
99
- }, ({ items: triggers2 }) => /* @__PURE__ */ React2.createElement("div", {
100
- role: "list",
101
- className: "flex flex-col w-full"
102
- }, triggers2?.map((trigger2) => /* @__PURE__ */ React2.createElement(List.Item, {
103
- key: trigger2.id,
104
- item: trigger2,
105
- classNames: mx(grid, ghostHover, "items-center")
106
- }, /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement(Input.Switch, {
107
- checked: trigger2.enabled,
108
- onCheckedChange: (checked) => trigger2.enabled = checked
109
- })), /* @__PURE__ */ React2.createElement("div", {
110
- className: "flex"
111
- }, /* @__PURE__ */ React2.createElement(List.ItemTitle, {
112
- classNames: "px-2 cursor-pointer w-0 shrink",
113
- onClick: () => handleSelect(trigger2)
114
- }, getFunctionName2(scripts, functions, trigger2)), /* @__PURE__ */ React2.createElement(Button, {
115
- onClick: () => navigator.clipboard.writeText(getWebhookUrl(client, trigger2))
116
- }, "Copy URL")), /* @__PURE__ */ React2.createElement(List.ItemDeleteButton, {
117
- onClick: () => handleDelete(trigger2)
118
- }))))), trigger && /* @__PURE__ */ React2.createElement(TriggerEditor, {
119
- space,
120
- storedTrigger: selected,
121
- trigger,
122
- onSave: handleSave,
123
- onCancel: handleCancel
124
- }), !trigger && /* @__PURE__ */ React2.createElement("div", {
125
- className: "flex p-2 justify-center"
126
- }, /* @__PURE__ */ React2.createElement(IconButton, {
127
- icon: "ph--plus--regular",
128
- label: t("new trigger"),
129
- onClick: handleAdd
130
- })));
131
- };
132
- var getWebhookUrl = (client, trigger) => {
133
- const spaceId = getSpace(trigger).id;
134
- const edgeUrl = new URL(client.config.values.runtime.services.edge.url);
135
- const isSecure = edgeUrl.protocol.startsWith("https") || edgeUrl.protocol.startsWith("wss");
136
- edgeUrl.protocol = isSecure ? "https" : "http";
137
- return new URL(`/webhook/${spaceId}:${trigger.id}`, edgeUrl).toString();
138
- };
139
- var getFunctionName2 = (scripts, functions, trigger) => {
140
- const functionObject = functions.find((fn) => fn.name === trigger.function);
141
- if (!functionObject) {
142
- return trigger.function;
143
- }
144
- return scripts.find((s) => functionObject.source?.target?.id === s.id)?.name ?? functionObject.name;
145
- };
146
-
147
- // packages/plugins/experimental/plugin-automation/src/components/AutomationPanel/index.ts
148
- var AutomationPanel_default = AutomationPanel;
149
- export {
150
- AutomationPanel_default as default
151
- };
152
- //# sourceMappingURL=AutomationPanel-EETYIDPA.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/AutomationPanel/AutomationPanel.tsx", "../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/AutomationPanel/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport { S } from '@dxos/echo-schema';\nimport {\n FunctionType,\n FunctionTrigger,\n FunctionTriggerSchema,\n type FunctionTriggerType,\n ScriptType,\n} from '@dxos/functions';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { create, Filter, useQuery, type Space, type ReactiveObject, getSpace } from '@dxos/react-client/echo';\nimport { IconButton, Input, useTranslation, Button } from '@dxos/react-ui';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\nimport { TriggerEditor, type TriggerEditorProps } from '../TriggerEditor';\n\nconst grid = 'grid grid-cols-[40px_1fr_32px] min-bs-[2.5rem]';\n\nexport type AutomationPanelProps = {\n space: Space;\n object?: ReactiveObject<any>;\n};\n\n// TODO(burdon): Factor out common layout with ViewEditor.\nexport const AutomationPanel = ({ space }: AutomationPanelProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const client = useClient();\n const triggers = useQuery(space, Filter.schema(FunctionTrigger));\n const functions = useQuery(space, Filter.schema(FunctionType));\n const scripts = useQuery(space, Filter.schema(ScriptType));\n\n const [trigger, setTrigger] = useState<FunctionTriggerType>();\n const [selected, setSelected] = useState<FunctionTrigger>();\n\n const handleSelect = (trigger: FunctionTrigger) => {\n const { id: _, ...values } = trigger;\n setTrigger(values);\n setSelected(trigger);\n };\n\n const handleAdd = () => {\n setTrigger(create(FunctionTriggerSchema, {}));\n setSelected(undefined);\n };\n\n const handleDelete = (trigger: FunctionTrigger) => {\n space.db.remove(trigger);\n setTrigger(undefined);\n setSelected(undefined);\n };\n\n const handleSave: TriggerEditorProps['onSave'] = (trigger) => {\n if (selected) {\n Object.assign(selected, trigger);\n } else {\n space.db.add(create(FunctionTrigger, trigger));\n }\n\n setTrigger(undefined);\n setSelected(undefined);\n };\n\n const handleCancel: TriggerEditorProps['onCancel'] = () => {\n setTrigger(undefined);\n };\n\n return (\n <div className='flex flex-col w-full divide-y divide-separator overflow-y-auto'>\n <List.Root<FunctionTrigger> items={triggers} isItem={S.is(FunctionTrigger)} getId={(field) => field.id}>\n {({ items: triggers }) => (\n <div role='list' className='flex flex-col w-full'>\n {triggers?.map((trigger) => (\n <List.Item<FunctionTrigger>\n key={trigger.id}\n item={trigger}\n classNames={mx(grid, ghostHover, 'items-center')}\n >\n <Input.Root>\n <Input.Switch checked={trigger.enabled} onCheckedChange={(checked) => (trigger.enabled = checked)} />\n </Input.Root>\n\n <div className={'flex'}>\n <List.ItemTitle classNames='px-2 cursor-pointer w-0 shrink' onClick={() => handleSelect(trigger)}>\n {getFunctionName(scripts, functions, trigger)}\n </List.ItemTitle>\n\n {/* TODO: a better way to expose URL copy action */}\n <Button onClick={() => navigator.clipboard.writeText(getWebhookUrl(client, trigger))}>\n Copy URL\n </Button>\n </div>\n\n <List.ItemDeleteButton onClick={() => handleDelete(trigger)} />\n </List.Item>\n ))}\n </div>\n )}\n </List.Root>\n\n {trigger && (\n <TriggerEditor\n space={space}\n storedTrigger={selected}\n trigger={trigger}\n onSave={handleSave}\n onCancel={handleCancel}\n />\n )}\n\n {!trigger && (\n <div className='flex p-2 justify-center'>\n <IconButton icon='ph--plus--regular' label={t('new trigger')} onClick={handleAdd} />\n </div>\n )}\n </div>\n );\n};\n\nconst getWebhookUrl = (client: Client, trigger: FunctionTrigger) => {\n const spaceId = getSpace(trigger)!.id;\n const edgeUrl = new URL(client.config.values.runtime!.services!.edge!.url!);\n const isSecure = edgeUrl.protocol.startsWith('https') || edgeUrl.protocol.startsWith('wss');\n edgeUrl.protocol = isSecure ? 'https' : 'http';\n return new URL(`/webhook/${spaceId}:${trigger.id}`, edgeUrl).toString();\n};\n\nconst getFunctionName = (scripts: ScriptType[], functions: FunctionType[], trigger: FunctionTriggerType) => {\n const functionObject = functions.find((fn) => fn.name === trigger.function);\n if (!functionObject) {\n return trigger.function;\n }\n return scripts.find((s) => functionObject.source?.target?.id === s.id)?.name ?? functionObject.name;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport {\n FunctionType,\n FunctionTriggerSchema,\n type FunctionTriggerType,\n type FunctionTrigger,\n ScriptType,\n TriggerKind,\n} from '@dxos/functions';\nimport { Filter, useQuery, type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { Form, SelectInput } from '@dxos/react-ui-form';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\n\nexport type TriggerEditorProps = {\n space: Space;\n trigger: FunctionTriggerType;\n storedTrigger?: FunctionTrigger;\n onSave?: (trigger: Omit<FunctionTrigger, 'id'>) => void;\n onCancel?: () => void;\n};\n\nexport const TriggerEditor = ({ space, trigger, onSave, onCancel, storedTrigger }: TriggerEditorProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const functions = useQuery(space, Filter.schema(FunctionType));\n const scripts = useQuery(space, Filter.schema(ScriptType));\n\n const handleSave = (values: FunctionTriggerType) => {\n onSave?.(values);\n };\n\n return (\n <Form<FunctionTriggerType>\n schema={FunctionTriggerSchema}\n values={trigger}\n filter={(props) => props.filter((p) => p.name !== 'meta')}\n onSave={handleSave}\n onCancel={onCancel}\n Custom={{\n ['function' satisfies keyof FunctionTriggerType]: (props) => (\n <SelectInput<FunctionTriggerType>\n {...props}\n options={functions.map((fn) => ({\n value: fn.name,\n label: getFunctionName(scripts, fn),\n }))}\n />\n ),\n ['spec.type' as const]: (props) => (\n <SelectInput<FunctionTriggerType>\n {...props}\n options={Object.values(TriggerKind).map((kind) => ({\n value: kind,\n label: t(`trigger type ${kind}`),\n }))}\n />\n ),\n }}\n />\n );\n};\n\nconst getFunctionName = (scripts: ScriptType[], fn: FunctionType) => {\n return scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { AutomationPanel } from './AutomationPanel';\n\nexport default AutomationPanel;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useState", "S", "FunctionType", "FunctionTrigger", "FunctionTriggerSchema", "ScriptType", "useClient", "create", "Filter", "useQuery", "getSpace", "IconButton", "Input", "useTranslation", "Button", "List", "ghostHover", "mx", "React", "FunctionType", "FunctionTriggerSchema", "ScriptType", "TriggerKind", "Filter", "useQuery", "useTranslation", "Form", "SelectInput", "TriggerEditor", "space", "trigger", "onSave", "onCancel", "storedTrigger", "t", "useTranslation", "AUTOMATION_PLUGIN", "functions", "useQuery", "Filter", "schema", "FunctionType", "scripts", "ScriptType", "handleSave", "values", "Form", "FunctionTriggerSchema", "filter", "props", "p", "name", "Custom", "SelectInput", "options", "map", "fn", "value", "label", "getFunctionName", "Object", "TriggerKind", "kind", "find", "s", "source", "target", "id", "grid", "AutomationPanel", "space", "t", "useTranslation", "AUTOMATION_PLUGIN", "client", "useClient", "triggers", "useQuery", "Filter", "schema", "FunctionTrigger", "functions", "FunctionType", "scripts", "ScriptType", "trigger", "setTrigger", "useState", "selected", "setSelected", "handleSelect", "id", "_", "values", "handleAdd", "create", "FunctionTriggerSchema", "undefined", "handleDelete", "db", "remove", "handleSave", "Object", "assign", "add", "handleCancel", "React", "div", "className", "List", "Root", "items", "isItem", "S", "is", "getId", "field", "role", "map", "Item", "key", "item", "classNames", "mx", "ghostHover", "Input", "Switch", "checked", "enabled", "onCheckedChange", "ItemTitle", "onClick", "getFunctionName", "Button", "navigator", "clipboard", "writeText", "getWebhookUrl", "ItemDeleteButton", "TriggerEditor", "storedTrigger", "onSave", "onCancel", "IconButton", "icon", "label", "spaceId", "getSpace", "edgeUrl", "URL", "config", "runtime", "services", "edge", "url", "isSecure", "protocol", "startsWith", "toString", "functionObject", "find", "fn", "name", "function", "s", "source", "target", "AutomationPanel"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const AUTOMATION_PLUGIN = 'dxos.org/plugin/automation';\n\nexport default {\n id: AUTOMATION_PLUGIN,\n name: 'Automation',\n description: 'Automation workflows.',\n icon: 'ph--magic-wand--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-automation',\n tags: ['experimental'],\n} satisfies PluginMeta;\n"],
5
- "mappings": ";;;AAMO,IAAMA,oBAAoB;AAEjC,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
- "names": ["AUTOMATION_PLUGIN", "id", "name", "description", "icon", "source", "tags"]
7
- }
@@ -1,10 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- AUTOMATION_PLUGIN,
4
- meta_default
5
- } from "./chunk-HNOBZHWK.mjs";
6
- export {
7
- AUTOMATION_PLUGIN,
8
- meta_default as default
9
- };
10
- //# sourceMappingURL=meta.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- import type { GraphBuilderProvides, IntentResolverProvides, MetadataRecordsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';
2
- import { type PanelProvides } from '@dxos/plugin-deck/types';
3
- import { type SchemaProvides } from '@dxos/plugin-space';
4
- export declare enum AutomationAction {
5
- }
6
- export type AutomationPluginProvides = SurfaceProvides & IntentResolverProvides & MetadataRecordsProvides & TranslationsProvides & GraphBuilderProvides & SchemaProvides & PanelProvides;
7
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,oBAAY,gBAAgB;CAAG;AAE/B,MAAM,MAAM,wBAAwB,GAAG,eAAe,GACpD,sBAAsB,GACtB,uBAAuB,GACvB,oBAAoB,GACpB,oBAAoB,GACpB,cAAc,GACd,aAAa,CAAC"}
@@ -1,27 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import type {
6
- GraphBuilderProvides,
7
- IntentResolverProvides,
8
- MetadataRecordsProvides,
9
- SurfaceProvides,
10
- TranslationsProvides,
11
- } from '@dxos/app-framework';
12
- import { type PanelProvides } from '@dxos/plugin-deck/types';
13
- import { type SchemaProvides } from '@dxos/plugin-space';
14
-
15
- // import { AUTOMATION_PLUGIN } from '../meta';
16
-
17
- // const AUTOMATION_ACTION = `${AUTOMATION_PLUGIN}/action`;
18
-
19
- export enum AutomationAction {}
20
-
21
- export type AutomationPluginProvides = SurfaceProvides &
22
- IntentResolverProvides &
23
- MetadataRecordsProvides &
24
- TranslationsProvides &
25
- GraphBuilderProvides &
26
- SchemaProvides &
27
- PanelProvides;