@dxos/plugin-script 0.6.13-staging.1e988a3 → 0.6.14-main.1366248

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 (206) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/browser/AutomationPanel-XLL2ZXGS.mjs +78 -0
  3. package/dist/lib/browser/AutomationPanel-XLL2ZXGS.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-YXH4MFEO.mjs +415 -0
  5. package/dist/lib/browser/ScriptContainer-YXH4MFEO.mjs.map +7 -0
  6. package/dist/lib/browser/chunk-C7VBULMK.mjs +18 -0
  7. package/dist/lib/browser/chunk-C7VBULMK.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-RHEZ5LUU.mjs → chunk-G6H56WFS.mjs} +51 -2
  9. package/dist/lib/browser/{chunk-RHEZ5LUU.mjs.map → chunk-G6H56WFS.mjs.map} +4 -4
  10. package/dist/lib/browser/{chunk-DL5XQRQM.mjs → chunk-KHNN3F7J.mjs} +18 -6
  11. package/dist/lib/browser/chunk-KHNN3F7J.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-NCZUJKJE.mjs +236 -0
  13. package/dist/lib/browser/chunk-NCZUJKJE.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-O4LWBX6A.mjs → chunk-USXWNH3S.mjs} +2 -2
  15. package/dist/lib/browser/{chunk-O4LWBX6A.mjs.map → chunk-USXWNH3S.mjs.map} +2 -2
  16. package/dist/lib/browser/edge/index.mjs +5 -1
  17. package/dist/lib/browser/index.mjs +185 -62
  18. package/dist/lib/browser/index.mjs.map +4 -4
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/meta.mjs +1 -1
  21. package/dist/lib/browser/types/index.mjs +2 -2
  22. package/dist/lib/node/AutomationPanel-OSPAFWZU.cjs +100 -0
  23. package/dist/lib/node/AutomationPanel-OSPAFWZU.cjs.map +7 -0
  24. package/dist/lib/node/ScriptContainer-FWHFEIHK.cjs +417 -0
  25. package/dist/lib/node/ScriptContainer-FWHFEIHK.cjs.map +7 -0
  26. package/dist/lib/node/{TypescriptEditor-M3WWFIP2.cjs → chunk-6LYX73ZT.cjs} +19 -8
  27. package/dist/lib/node/chunk-6LYX73ZT.cjs.map +7 -0
  28. package/dist/lib/node/{chunk-4GTXIELQ.cjs → chunk-ACLCRWDB.cjs} +44 -6
  29. package/dist/lib/node/chunk-ACLCRWDB.cjs.map +7 -0
  30. package/dist/lib/node/chunk-BJ4WIWCP.cjs +265 -0
  31. package/dist/lib/node/chunk-BJ4WIWCP.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-5RBVXKXT.cjs → chunk-CPNHUAFN.cjs} +6 -6
  33. package/dist/lib/node/{chunk-5RBVXKXT.cjs.map → chunk-CPNHUAFN.cjs.map} +2 -2
  34. package/dist/lib/node/{chunk-PFH3ROEH.cjs → chunk-FY5KKL5N.cjs} +22 -8
  35. package/dist/lib/node/chunk-FY5KKL5N.cjs.map +7 -0
  36. package/dist/lib/node/edge/index.cjs +12 -8
  37. package/dist/lib/node/edge/index.cjs.map +2 -2
  38. package/dist/lib/node/index.cjs +196 -81
  39. package/dist/lib/node/index.cjs.map +4 -4
  40. package/dist/lib/node/meta.cjs +3 -3
  41. package/dist/lib/node/meta.cjs.map +1 -1
  42. package/dist/lib/node/meta.json +1 -1
  43. package/dist/lib/node/types/index.cjs +5 -5
  44. package/dist/lib/node/types/index.cjs.map +1 -1
  45. package/dist/lib/node-esm/AutomationPanel-KJNL6ARP.mjs +79 -0
  46. package/dist/lib/node-esm/AutomationPanel-KJNL6ARP.mjs.map +7 -0
  47. package/dist/lib/node-esm/ScriptContainer-6U5WJFRB.mjs +416 -0
  48. package/dist/lib/node-esm/ScriptContainer-6U5WJFRB.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-2NPZGQGA.mjs +47 -0
  50. package/dist/lib/node-esm/chunk-2NPZGQGA.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-DXWSRDEN.mjs +237 -0
  52. package/dist/lib/node-esm/chunk-DXWSRDEN.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-LDLNTVAK.mjs +280 -0
  54. package/dist/lib/node-esm/chunk-LDLNTVAK.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-QMTTZYLF.mjs +255 -0
  56. package/dist/lib/node-esm/chunk-QMTTZYLF.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-SLTZMY34.mjs +20 -0
  58. package/dist/lib/node-esm/chunk-SLTZMY34.mjs.map +7 -0
  59. package/dist/lib/node-esm/edge/index.mjs +24 -0
  60. package/dist/lib/node-esm/index.mjs +415 -0
  61. package/dist/lib/node-esm/index.mjs.map +7 -0
  62. package/dist/lib/node-esm/meta.json +1 -0
  63. package/dist/lib/node-esm/meta.mjs +10 -0
  64. package/dist/lib/node-esm/meta.mjs.map +7 -0
  65. package/dist/lib/node-esm/types/index.mjs +13 -0
  66. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  67. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  68. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +17 -0
  69. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -0
  70. package/dist/types/src/components/AutomationPanel/index.d.ts +4 -0
  71. package/dist/types/src/components/AutomationPanel/index.d.ts.map +1 -0
  72. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +7 -0
  73. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -0
  74. package/dist/types/src/components/DebugPanel/index.d.ts +2 -0
  75. package/dist/types/src/components/DebugPanel/index.d.ts.map +1 -0
  76. package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/FrameContainer.d.ts +1 -1
  77. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -0
  78. package/dist/types/src/components/FrameContainer/frame.d.ts.map +1 -0
  79. package/dist/types/src/components/FrameContainer/index.d.ts.map +1 -0
  80. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts +1 -3
  81. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts.map +1 -1
  82. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts +3 -8
  83. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts.map +1 -1
  84. package/dist/types/src/components/ScriptContainer.d.ts +5 -0
  85. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -0
  86. package/dist/types/src/components/ScriptEditor.d.ts +4 -5
  87. package/dist/types/src/components/ScriptEditor.d.ts.map +1 -1
  88. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +6 -0
  89. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -0
  90. package/dist/types/src/components/ScriptSettings/index.d.ts +2 -0
  91. package/dist/types/src/components/ScriptSettings/index.d.ts.map +1 -0
  92. package/dist/types/src/components/ScriptSettingsPanel.d.ts +7 -0
  93. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -0
  94. package/dist/types/src/components/Toolbar/Toolbar.d.ts +23 -0
  95. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  96. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +14 -0
  97. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -0
  98. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  99. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  100. package/dist/types/src/components/{TypescriptEditor.d.ts → TypescriptEditor/TypescriptEditor.d.ts} +1 -2
  101. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -0
  102. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +6 -0
  103. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -0
  104. package/dist/types/src/components/TypescriptEditor/index.d.ts +2 -0
  105. package/dist/types/src/components/TypescriptEditor/index.d.ts.map +1 -0
  106. package/dist/types/src/components/index.d.ts +4 -3
  107. package/dist/types/src/components/index.d.ts.map +1 -1
  108. package/dist/types/src/edge/functions.d.ts +7 -0
  109. package/dist/types/src/edge/functions.d.ts.map +1 -1
  110. package/dist/types/src/meta.d.ts +5 -9
  111. package/dist/types/src/meta.d.ts.map +1 -1
  112. package/dist/types/src/templates/chat.d.ts +6 -0
  113. package/dist/types/src/templates/chat.d.ts.map +1 -0
  114. package/dist/types/src/templates/chess.d.ts +6 -0
  115. package/dist/types/src/templates/chess.d.ts.map +1 -0
  116. package/dist/types/src/templates/echo.d.ts +6 -0
  117. package/dist/types/src/templates/echo.d.ts.map +1 -0
  118. package/dist/types/src/templates/email.d.ts +6 -0
  119. package/dist/types/src/templates/email.d.ts.map +1 -0
  120. package/dist/types/src/templates/forex.d.ts +6 -0
  121. package/dist/types/src/templates/forex.d.ts.map +1 -0
  122. package/dist/types/src/templates.d.ts +8 -0
  123. package/dist/types/src/templates.d.ts.map +1 -0
  124. package/dist/types/src/translations.d.ts +7 -0
  125. package/dist/types/src/translations.d.ts.map +1 -1
  126. package/dist/types/src/types/script.d.ts +4 -4
  127. package/dist/types/src/types/types.d.ts +4 -3
  128. package/dist/types/src/types/types.d.ts.map +1 -1
  129. package/package.json +59 -64
  130. package/src/ScriptPlugin.tsx +47 -41
  131. package/src/bundler/bundler.test.ts +12 -2
  132. package/src/components/AutomationPanel/AutomationPanel.tsx +101 -0
  133. package/src/components/AutomationPanel/index.ts +9 -0
  134. package/src/components/{DebugPanel.tsx → DebugPanel/DebugPanel.tsx} +74 -96
  135. package/src/components/DebugPanel/index.ts +5 -0
  136. package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/FrameContainer.tsx +1 -1
  137. package/src/components/ScriptBlock/ScriptBlock.stories.tsx +15 -14
  138. package/src/components/ScriptBlock/ScriptBlock.tsx +23 -51
  139. package/src/components/ScriptContainer.tsx +22 -0
  140. package/src/components/ScriptEditor.tsx +51 -62
  141. package/src/components/ScriptSettings/ScriptSettings.tsx +47 -0
  142. package/src/components/ScriptSettings/index.ts +5 -0
  143. package/src/components/ScriptSettingsPanel.tsx +105 -0
  144. package/src/components/Toolbar/Toolbar.stories.tsx +30 -0
  145. package/src/components/Toolbar/Toolbar.tsx +177 -0
  146. package/src/components/{ScriptBlock/Splitter → Toolbar}/index.ts +1 -1
  147. package/src/components/{TypescriptEditor.stories.tsx → TypescriptEditor/TypescriptEditor.stories.tsx} +17 -35
  148. package/src/components/{TypescriptEditor.tsx → TypescriptEditor/TypescriptEditor.tsx} +1 -3
  149. package/src/components/TypescriptEditor/index.ts +5 -0
  150. package/src/components/index.ts +6 -3
  151. package/src/edge/functions.ts +19 -0
  152. package/src/meta.ts +16 -0
  153. package/src/templates/chat.ts +102 -0
  154. package/src/templates/chess.ts +41 -0
  155. package/src/templates/echo.ts +15 -0
  156. package/src/templates/email.ts +38 -0
  157. package/src/templates/forex.ts +21 -0
  158. package/src/templates.ts +54 -0
  159. package/src/translations.ts +7 -0
  160. package/src/types/types.ts +9 -5
  161. package/dist/lib/browser/ScriptEditor-5Y3EROG3.mjs +0 -513
  162. package/dist/lib/browser/ScriptEditor-5Y3EROG3.mjs.map +0 -7
  163. package/dist/lib/browser/TypescriptEditor-GPE72Y6I.mjs +0 -9
  164. package/dist/lib/browser/chunk-DL5XQRQM.mjs.map +0 -7
  165. package/dist/lib/browser/chunk-JBACGDOJ.mjs +0 -21
  166. package/dist/lib/browser/chunk-JBACGDOJ.mjs.map +0 -7
  167. package/dist/lib/browser/chunk-MRGOT5RF.mjs +0 -78
  168. package/dist/lib/browser/chunk-MRGOT5RF.mjs.map +0 -7
  169. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs +0 -526
  170. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs.map +0 -7
  171. package/dist/lib/node/TypescriptEditor-M3WWFIP2.cjs.map +0 -7
  172. package/dist/lib/node/chunk-4GTXIELQ.cjs.map +0 -7
  173. package/dist/lib/node/chunk-4VMNBXWU.cjs +0 -54
  174. package/dist/lib/node/chunk-4VMNBXWU.cjs.map +0 -7
  175. package/dist/lib/node/chunk-IMLDKD5Y.cjs +0 -111
  176. package/dist/lib/node/chunk-IMLDKD5Y.cjs.map +0 -7
  177. package/dist/lib/node/chunk-PFH3ROEH.cjs.map +0 -7
  178. package/dist/types/src/components/DebugPanel.d.ts +0 -9
  179. package/dist/types/src/components/DebugPanel.d.ts.map +0 -1
  180. package/dist/types/src/components/ScriptBlock/FrameContainer/FrameContainer.d.ts.map +0 -1
  181. package/dist/types/src/components/ScriptBlock/FrameContainer/frame.d.ts.map +0 -1
  182. package/dist/types/src/components/ScriptBlock/FrameContainer/index.d.ts.map +0 -1
  183. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts +0 -15
  184. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts.map +0 -1
  185. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts +0 -13
  186. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts.map +0 -1
  187. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts +0 -2
  188. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts.map +0 -1
  189. package/dist/types/src/components/Toolbar.d.ts +0 -13
  190. package/dist/types/src/components/Toolbar.d.ts.map +0 -1
  191. package/dist/types/src/components/Toolbar.stories.d.ts +0 -14
  192. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  193. package/dist/types/src/components/TypescriptEditor.d.ts.map +0 -1
  194. package/dist/types/src/components/TypescriptEditor.stories.d.ts +0 -10
  195. package/dist/types/src/components/TypescriptEditor.stories.d.ts.map +0 -1
  196. package/src/components/ScriptBlock/Splitter/Splitter.stories.tsx +0 -37
  197. package/src/components/ScriptBlock/Splitter/Splitter.tsx +0 -52
  198. package/src/components/Toolbar.stories.tsx +0 -17
  199. package/src/components/Toolbar.tsx +0 -147
  200. package/src/meta.tsx +0 -19
  201. /package/dist/lib/{browser/TypescriptEditor-GPE72Y6I.mjs.map → node-esm/edge/index.mjs.map} +0 -0
  202. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.d.ts +0 -0
  203. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.d.ts +0 -0
  204. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.html +0 -0
  205. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.tsx +0 -0
  206. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.ts +0 -0
@@ -1,22 +1,26 @@
1
1
  import {
2
2
  Bundler,
3
- initializeBundler
4
- } from "./chunk-RHEZ5LUU.mjs";
3
+ initializeBundler,
4
+ templates
5
+ } from "./chunk-G6H56WFS.mjs";
6
+ import {
7
+ getInvocationUrl,
8
+ getUserFunctionUrlInMetadata
9
+ } from "./chunk-KHNN3F7J.mjs";
5
10
  import {
6
11
  FunctionType,
7
12
  ScriptAction,
8
13
  ScriptType
9
- } from "./chunk-O4LWBX6A.mjs";
14
+ } from "./chunk-USXWNH3S.mjs";
10
15
  import {
11
16
  SCRIPT_PLUGIN,
12
17
  meta_default
13
- } from "./chunk-JBACGDOJ.mjs";
18
+ } from "./chunk-C7VBULMK.mjs";
14
19
 
15
20
  // packages/plugins/experimental/plugin-script/src/ScriptPlugin.tsx
16
- import { Code } from "@phosphor-icons/react";
17
21
  import wasmUrl from "esbuild-wasm/esbuild.wasm?url";
18
- import React2 from "react";
19
- import { parseIntentPlugin, resolvePlugin, NavigationAction } from "@dxos/app-framework";
22
+ import React3 from "react";
23
+ import { NavigationAction, parseIntentPlugin, resolvePlugin } from "@dxos/app-framework";
20
24
  import { create } from "@dxos/echo-schema";
21
25
  import { parseClientPlugin } from "@dxos/plugin-client";
22
26
  import { createExtension, isActionGroup } from "@dxos/plugin-graph";
@@ -78,9 +82,121 @@ var Compiler = class {
78
82
  };
79
83
 
80
84
  // packages/plugins/experimental/plugin-script/src/components/index.ts
85
+ import { lazy } from "react";
86
+
87
+ // packages/plugins/experimental/plugin-script/src/components/ScriptSettings/ScriptSettings.tsx
81
88
  import React from "react";
82
- var ScriptEditor = React.lazy(() => import("./ScriptEditor-5Y3EROG3.mjs"));
83
- var TypescriptEditor = React.lazy(() => import("./TypescriptEditor-GPE72Y6I.mjs"));
89
+ import { useClient } from "@dxos/react-client";
90
+ import { Button, useTranslation } from "@dxos/react-ui";
91
+ import { DeprecatedFormInput } from "@dxos/react-ui-data";
92
+ var ScriptSettings = ({ settings }) => {
93
+ const { t } = useTranslation(SCRIPT_PLUGIN);
94
+ const client = useClient();
95
+ const handleAuthenticate = async () => {
96
+ const { identityKey } = client.halo.identity.get();
97
+ await client.halo.writeCredentials([
98
+ {
99
+ issuer: identityKey,
100
+ issuanceDate: /* @__PURE__ */ new Date(),
101
+ subject: {
102
+ id: identityKey,
103
+ assertion: {
104
+ "@type": "dxos.halo.credentials.ServiceAccess",
105
+ serverName: "hub.dxos.network",
106
+ serverKey: identityKey,
107
+ identityKey,
108
+ capabilities: [
109
+ "composer:beta"
110
+ ]
111
+ }
112
+ }
113
+ }
114
+ ]);
115
+ };
116
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
117
+ label: t("authenticate action label")
118
+ }, /* @__PURE__ */ React.createElement(Button, {
119
+ onClick: handleAuthenticate
120
+ }, t("authenticate button label"))));
121
+ };
122
+
123
+ // packages/plugins/experimental/plugin-script/src/components/ScriptSettingsPanel.tsx
124
+ import React2, { useCallback } from "react";
125
+ import { useClient as useClient2 } from "@dxos/react-client";
126
+ import { Filter, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
127
+ import { Button as Button2, Icon, Input, useControlledValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
128
+ var ScriptSettingsPanel = ({ script }) => {
129
+ const { t } = useTranslation2(SCRIPT_PLUGIN);
130
+ const client = useClient2();
131
+ const space = getSpace(script);
132
+ const [fn] = useQuery(space, Filter.schema(FunctionType, (fn2) => fn2.source === script));
133
+ const handleNameChange = useCallback((event) => {
134
+ script.name = event.target.value;
135
+ }, [
136
+ script
137
+ ]);
138
+ const [binding, setBinding] = useControlledValue(fn?.binding ?? "");
139
+ const handleBindingChange = useCallback((event) => {
140
+ setBinding(event.target.value);
141
+ }, [
142
+ setBinding
143
+ ]);
144
+ const handleBindingBlur = useCallback(() => {
145
+ fn.binding = binding;
146
+ }, [
147
+ fn,
148
+ binding
149
+ ]);
150
+ const functionPath = fn && getUserFunctionUrlInMetadata(getMeta(fn));
151
+ const functionUrl = functionPath && getInvocationUrl(functionPath, client.config.values.runtime?.services?.edge?.url ?? "", {
152
+ spaceId: space?.id
153
+ });
154
+ const handleCopy = useCallback(() => functionUrl && navigator.clipboard.writeText(functionUrl), [
155
+ functionUrl
156
+ ]);
157
+ return /* @__PURE__ */ React2.createElement("div", {
158
+ role: "form",
159
+ className: "flex flex-col w-full p-2 gap-4"
160
+ }, /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement("div", {
161
+ role: "none",
162
+ className: "flex flex-col gap-1"
163
+ }, /* @__PURE__ */ React2.createElement(Input.Label, null, t("name label")), /* @__PURE__ */ React2.createElement(Input.TextInput, {
164
+ placeholder: t("object title placeholder"),
165
+ value: script.name ?? "",
166
+ onChange: handleNameChange
167
+ }))), fn && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("hr", {
168
+ className: "border-separator"
169
+ }), /* @__PURE__ */ React2.createElement("h2", null, t("remote function settings heading")), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement("div", {
170
+ role: "none",
171
+ className: "flex flex-col gap-1"
172
+ }, /* @__PURE__ */ React2.createElement(Input.Label, null, t("function url label")), /* @__PURE__ */ React2.createElement("div", {
173
+ role: "none",
174
+ className: "flex gap-1"
175
+ }, /* @__PURE__ */ React2.createElement(Input.TextInput, {
176
+ disabled: true,
177
+ value: functionUrl,
178
+ onChange: (event) => {
179
+ fn.name = event.target.value;
180
+ }
181
+ }), /* @__PURE__ */ React2.createElement(Button2, {
182
+ onClick: handleCopy
183
+ }, /* @__PURE__ */ React2.createElement(Icon, {
184
+ icon: "ph--copy--regular",
185
+ size: 4
186
+ }))))), /* @__PURE__ */ React2.createElement(Input.Root, null, /* @__PURE__ */ React2.createElement("div", {
187
+ role: "none",
188
+ className: "flex flex-col gap-1"
189
+ }, /* @__PURE__ */ React2.createElement(Input.Label, null, t("function binding label")), /* @__PURE__ */ React2.createElement(Input.TextInput, {
190
+ placeholder: t("function binding placeholder"),
191
+ value: binding,
192
+ onChange: handleBindingChange,
193
+ onBlur: handleBindingBlur
194
+ })))));
195
+ };
196
+
197
+ // packages/plugins/experimental/plugin-script/src/components/index.ts
198
+ var AutomationPanel = lazy(() => import("./AutomationPanel-XLL2ZXGS.mjs"));
199
+ var ScriptContainer = lazy(() => import("./ScriptContainer-YXH4MFEO.mjs"));
84
200
 
85
201
  // packages/plugins/experimental/plugin-script/src/translations.ts
86
202
  var translations_default = [
@@ -98,7 +214,14 @@ var translations_default = [
98
214
  "upload failed label": "Upload failed",
99
215
  "copy link label": "Copy function link",
100
216
  "format label": "Format",
101
- "toggle details label": "Toggle details panel"
217
+ "toggle details label": "Toggle details panel",
218
+ "authenticate action label": "Authenticate functions service",
219
+ "authenticate button label": "Authenticate",
220
+ "name label": "Name",
221
+ "remote function settings heading": "Remote Function",
222
+ "function url label": "Invocation URL",
223
+ "function binding label": "Function binding",
224
+ "function binding placeholder": "BINDING"
102
225
  }
103
226
  }
104
227
  }
@@ -122,6 +245,7 @@ var ScriptPlugin = () => {
122
245
  });
123
246
  },
124
247
  provides: {
248
+ settings: {},
125
249
  metadata: {
126
250
  records: {
127
251
  [ScriptType.typename]: {
@@ -131,8 +255,7 @@ var ScriptPlugin = () => {
131
255
  ns: SCRIPT_PLUGIN
132
256
  }
133
257
  ],
134
- icon: (props) => /* @__PURE__ */ React2.createElement(Code, props),
135
- iconSymbol: "ph--code--regular",
258
+ icon: "ph--code--regular",
136
259
  // TODO(wittjosiah): Move out of metadata.
137
260
  loadReferences: (script) => loadObjectReferences(script, (script2) => [
138
261
  script2.source
@@ -147,6 +270,17 @@ var ScriptPlugin = () => {
147
270
  FunctionType
148
271
  ]
149
272
  },
273
+ space: {
274
+ onSpaceCreate: {
275
+ label: [
276
+ "create object label",
277
+ {
278
+ ns: SCRIPT_PLUGIN
279
+ }
280
+ ],
281
+ action: ScriptAction.CREATE
282
+ }
283
+ },
150
284
  graph: {
151
285
  builder: (plugins) => {
152
286
  const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
@@ -193,8 +327,7 @@ var ScriptPlugin = () => {
193
327
  ns: SCRIPT_PLUGIN
194
328
  }
195
329
  ],
196
- icon: (props) => /* @__PURE__ */ React2.createElement(Code, props),
197
- iconSymbol: "ph--code--regular",
330
+ icon: "ph--code--regular",
198
331
  testId: "scriptPlugin.createObject"
199
332
  }
200
333
  }
@@ -203,45 +336,42 @@ var ScriptPlugin = () => {
203
336
  });
204
337
  }
205
338
  },
206
- stack: {
207
- creators: [
208
- {
209
- id: "create-stack-section-script",
210
- testId: "scriptPlugin.createSection",
211
- type: [
212
- "plugin name",
213
- {
214
- ns: SCRIPT_PLUGIN
339
+ surface: {
340
+ component: ({ data, role }) => {
341
+ switch (role) {
342
+ case "settings": {
343
+ return data.plugin === meta_default.id ? /* @__PURE__ */ React3.createElement(ScriptSettings, {
344
+ settings: {}
345
+ }) : null;
346
+ }
347
+ case "article": {
348
+ if (data.object instanceof ScriptType) {
349
+ return /* @__PURE__ */ React3.createElement(ScriptContainer, {
350
+ script: data.object,
351
+ env: compiler.environment
352
+ });
215
353
  }
216
- ],
217
- label: [
218
- "create stack section label",
219
- {
220
- ns: SCRIPT_PLUGIN
354
+ break;
355
+ }
356
+ case "complementary--automation": {
357
+ if (data.subject instanceof ScriptType) {
358
+ return {
359
+ node: /* @__PURE__ */ React3.createElement(AutomationPanel, {
360
+ subject: data.subject
361
+ }),
362
+ disposition: "hoist"
363
+ };
221
364
  }
222
- ],
223
- icon: (props) => /* @__PURE__ */ React2.createElement(Code, props),
224
- intent: {
225
- plugin: SCRIPT_PLUGIN,
226
- action: ScriptAction.CREATE
365
+ break;
366
+ }
367
+ case "complementary--settings": {
368
+ if (data.subject instanceof ScriptType) {
369
+ return /* @__PURE__ */ React3.createElement(ScriptSettingsPanel, {
370
+ script: data.subject
371
+ });
372
+ }
373
+ break;
227
374
  }
228
- }
229
- ]
230
- },
231
- surface: {
232
- component: ({ data, role }) => {
233
- if (role && ![
234
- "article",
235
- "section"
236
- ].includes(role)) {
237
- return null;
238
- }
239
- if (data.object instanceof ScriptType) {
240
- return /* @__PURE__ */ React2.createElement(ScriptEditor, {
241
- env: compiler.environment,
242
- script: data.object,
243
- role
244
- });
245
375
  }
246
376
  return null;
247
377
  }
@@ -253,7 +383,7 @@ var ScriptPlugin = () => {
253
383
  return {
254
384
  data: create(ScriptType, {
255
385
  source: create(TextType, {
256
- content: example
386
+ content: templates[0].source
257
387
  })
258
388
  })
259
389
  };
@@ -264,27 +394,20 @@ var ScriptPlugin = () => {
264
394
  }
265
395
  };
266
396
  };
267
- var example = [
268
- "export default async ({ ",
269
- " event: { data: { request } },",
270
- " context: { space, ai } ",
271
- "}: any) => {",
272
- " return new Response('Hello DXOS!');",
273
- "};",
274
- ""
275
- ].join("\n");
276
397
 
277
398
  // packages/plugins/experimental/plugin-script/src/index.ts
278
399
  var src_default = ScriptPlugin;
279
400
  export {
401
+ AutomationPanel,
280
402
  Bundler,
281
403
  Compiler,
282
404
  FunctionType,
283
405
  ScriptAction,
284
- ScriptEditor,
406
+ ScriptContainer,
285
407
  ScriptPlugin,
408
+ ScriptSettings,
409
+ ScriptSettingsPanel,
286
410
  ScriptType,
287
- TypescriptEditor,
288
411
  src_default as default,
289
412
  initializeBundler
290
413
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/ScriptPlugin.tsx", "../../../src/compiler/compiler.ts", "../../../src/components/index.ts", "../../../src/translations.ts", "../../../src/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Code, type IconProps } from '@phosphor-icons/react';\n// @ts-ignore\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\nimport React from 'react';\n\nimport { parseIntentPlugin, type PluginDefinition, resolvePlugin, NavigationAction } from '@dxos/app-framework';\nimport { create } from '@dxos/echo-schema';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { TextType } from '@dxos/plugin-markdown/types';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { loadObjectReferences } from '@dxos/react-client/echo';\n\nimport { initializeBundler } from './bundler';\nimport { Compiler } from './compiler';\nimport { ScriptEditor } from './components';\nimport meta, { SCRIPT_PLUGIN } from './meta';\nimport translations from './translations';\nimport { FunctionType, ScriptType } from './types';\nimport { ScriptAction, type ScriptPluginProvides } from './types';\n\nexport const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {\n const compiler = new Compiler();\n\n return {\n meta,\n initialize: async () => {\n await compiler.initialize();\n // TODO(wittjosiah): Fetch types for https modules.\n compiler.setFile('/src/typings.d.ts', \"declare module 'https://*';\");\n // TODO(wittjosiah): Proper function handler types.\n // TODO(wittjosiah): Remove.\n compiler.setFile(\n '/src/runtime.ts',\n `\n export const Filter: any = {};\n export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;\n export const functionHandler = (handler: FunctionHandler) => handler;\n `,\n );\n await initializeBundler({ wasmUrl });\n },\n provides: {\n metadata: {\n records: {\n [ScriptType.typename]: {\n placeholder: ['object title placeholder', { ns: SCRIPT_PLUGIN }],\n icon: (props: IconProps) => <Code {...props} />,\n iconSymbol: 'ph--code--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (script: ScriptType) => loadObjectReferences(script, (script) => [script.source]),\n },\n },\n },\n translations,\n echo: {\n schema: [ScriptType, FunctionType],\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: ScriptAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${SCRIPT_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: SCRIPT_PLUGIN, action: ScriptAction.CREATE },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create object label', { ns: SCRIPT_PLUGIN }],\n icon: (props: IconProps) => <Code {...props} />,\n iconSymbol: 'ph--code--regular',\n testId: 'scriptPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n },\n stack: {\n creators: [\n {\n id: 'create-stack-section-script',\n testId: 'scriptPlugin.createSection',\n type: ['plugin name', { ns: SCRIPT_PLUGIN }],\n label: ['create stack section label', { ns: SCRIPT_PLUGIN }],\n icon: (props: any) => <Code {...props} />,\n intent: {\n plugin: SCRIPT_PLUGIN,\n action: ScriptAction.CREATE,\n },\n },\n ],\n },\n surface: {\n component: ({ data, role }) => {\n if (role && !['article', 'section'].includes(role)) {\n return null;\n }\n\n if (data.object instanceof ScriptType) {\n return <ScriptEditor env={compiler.environment} script={data.object} role={role} />;\n }\n\n return null;\n },\n },\n intent: {\n resolver: (intent) => {\n switch (intent.action) {\n case ScriptAction.CREATE: {\n return { data: create(ScriptType, { source: create(TextType, { content: example }) }) };\n }\n }\n },\n },\n },\n };\n};\n\n// TODO(burdon): Import.\nconst example = [\n 'export default async ({ ',\n ' event: { data: { request } },',\n ' context: { space, ai } ',\n '}: any) => {',\n \" return new Response('Hello DXOS!');\",\n '};',\n '',\n].join('\\n');\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n type VirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize() {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.5.4', true, ts);\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, [], ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string) {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string) {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nexport const ScriptEditor = React.lazy(() => import('./ScriptEditor'));\nexport const TypescriptEditor = React.lazy(() => import('./TypescriptEditor'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SCRIPT_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [SCRIPT_PLUGIN]: {\n 'plugin name': 'Scripts',\n 'object title placeholder': 'New script',\n 'create object label': 'Create script',\n 'create stack section label': 'Create script',\n 'binding placeholder': 'Function name',\n 'function request placeholder': 'Function request',\n 'deploy label': 'Deploy',\n 'deployed label': 'Current version of the script is deployed',\n 'upload failed label': 'Upload failed',\n 'copy link label': 'Copy function link',\n 'format label': 'Format',\n 'toggle details label': 'Toggle details panel',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptPlugin } from './ScriptPlugin';\n\nexport default ScriptPlugin;\n\nexport * from './bundler';\nexport * from './compiler';\nexport * from './components';\nexport * from './types';\n\nexport * from './ScriptPlugin';\n"],
5
- "mappings": "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",
6
- "names": ["Code", "wasmUrl", "React", "parseIntentPlugin", "resolvePlugin", "NavigationAction", "create", "parseClientPlugin", "createExtension", "isActionGroup", "TextType", "SpaceAction", "loadObjectReferences", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "constructor", "_options", "initialize", "_env", "_fsMap", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "React", "ScriptEditor", "React", "lazy", "TypescriptEditor", "SCRIPT_PLUGIN", "ScriptPlugin", "compiler", "Compiler", "meta", "initialize", "setFile", "initializeBundler", "wasmUrl", "provides", "metadata", "records", "ScriptType", "typename", "placeholder", "ns", "SCRIPT_PLUGIN", "icon", "props", "React", "Code", "iconSymbol", "loadReferences", "script", "loadObjectReferences", "source", "translations", "echo", "schema", "FunctionType", "graph", "builder", "plugins", "client", "resolvePlugin", "parseClientPlugin", "dispatch", "parseIntentPlugin", "intent", "createExtension", "id", "ScriptAction", "CREATE", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "space", "spaces", "get", "find", "object", "db", "getObjectById", "target", "data", "plugin", "action", "NavigationAction", "OPEN", "properties", "label", "testId", "stack", "creators", "type", "surface", "component", "role", "includes", "ScriptEditor", "env", "environment", "resolver", "create", "TextType", "content", "example", "join", "ScriptPlugin"]
3
+ "sources": ["../../../src/ScriptPlugin.tsx", "../../../src/compiler/compiler.ts", "../../../src/components/index.ts", "../../../src/components/ScriptSettings/ScriptSettings.tsx", "../../../src/components/ScriptSettingsPanel.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\n// @ts-ignore\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\nimport React from 'react';\n\nimport { NavigationAction, parseIntentPlugin, type PluginDefinition, resolvePlugin } from '@dxos/app-framework';\nimport { create } from '@dxos/echo-schema';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { TextType } from '@dxos/plugin-markdown/types';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { loadObjectReferences } from '@dxos/react-client/echo';\n\nimport { initializeBundler } from './bundler';\nimport { Compiler } from './compiler';\nimport { AutomationPanel, ScriptContainer, ScriptSettings, ScriptSettingsPanel } from './components';\nimport meta, { SCRIPT_PLUGIN } from './meta';\nimport { templates } from './templates';\nimport translations from './translations';\nimport { FunctionType, ScriptAction, type ScriptPluginProvides, ScriptType } from './types';\n\nexport const ScriptPlugin = (): PluginDefinition<ScriptPluginProvides> => {\n const compiler = new Compiler();\n\n return {\n meta,\n initialize: async () => {\n await compiler.initialize();\n // TODO(wittjosiah): Fetch types for https modules.\n compiler.setFile('/src/typings.d.ts', \"declare module 'https://*';\");\n // TODO(wittjosiah): Proper function handler types.\n // TODO(wittjosiah): Remove.\n compiler.setFile(\n '/src/runtime.ts',\n `\n export const Filter: any = {};\n export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;\n export const functionHandler = (handler: FunctionHandler) => handler;\n `,\n );\n await initializeBundler({ wasmUrl });\n },\n provides: {\n settings: {},\n metadata: {\n records: {\n [ScriptType.typename]: {\n placeholder: ['object title placeholder', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--code--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (script: ScriptType) => loadObjectReferences(script, (script) => [script.source]),\n },\n },\n },\n translations,\n echo: {\n schema: [ScriptType, FunctionType],\n },\n space: {\n onSpaceCreate: {\n label: ['create object label', { ns: SCRIPT_PLUGIN }],\n action: ScriptAction.CREATE,\n },\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: ScriptAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${SCRIPT_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: SCRIPT_PLUGIN, action: ScriptAction.CREATE },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create object label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--code--regular',\n testId: 'scriptPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n },\n surface: {\n component: ({ data, role }) => {\n switch (role) {\n case 'settings': {\n return data.plugin === meta.id ? <ScriptSettings settings={{}} /> : null;\n }\n\n case 'article': {\n if (data.object instanceof ScriptType) {\n return <ScriptContainer script={data.object} env={compiler.environment} />;\n }\n break;\n }\n\n case 'complementary--automation': {\n if (data.subject instanceof ScriptType) {\n return {\n node: <AutomationPanel subject={data.subject as any} />,\n disposition: 'hoist',\n };\n }\n break;\n }\n\n case 'complementary--settings': {\n if (data.subject instanceof ScriptType) {\n return <ScriptSettingsPanel script={data.subject} />;\n }\n break;\n }\n }\n\n return null;\n },\n },\n intent: {\n resolver: (intent) => {\n switch (intent.action) {\n case ScriptAction.CREATE: {\n return {\n data: create(ScriptType, {\n source: create(TextType, {\n content: templates[0].source,\n }),\n }),\n };\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n type VirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize() {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.5.4', true, ts);\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, [], ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string) {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string) {\n return this.environment.languageService.getEmitOutput(fileName);\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './ScriptSettings';\nexport * from './ScriptSettingsPanel';\n\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\nexport const ScriptContainer = lazy(() => import('./ScriptContainer'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { useClient } from '@dxos/react-client';\nimport { Button, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormInput } from '@dxos/react-ui-data';\n\nimport { SCRIPT_PLUGIN } from '../../meta';\nimport { type ScriptSettingsProps } from '../../types';\n\nexport const ScriptSettings = ({ settings }: { settings: ScriptSettingsProps }) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const client = useClient();\n\n // TODO(burdon): Check token.\n const handleAuthenticate = async () => {\n const { identityKey } = client.halo.identity.get()!;\n await client.halo.writeCredentials([\n {\n issuer: identityKey,\n issuanceDate: new Date(),\n subject: {\n id: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.ServiceAccess',\n serverName: 'hub.dxos.network',\n serverKey: identityKey,\n identityKey,\n capabilities: ['composer:beta'],\n },\n },\n } satisfies Credential,\n ]);\n };\n\n return (\n <>\n <DeprecatedFormInput label={t('authenticate action label')}>\n <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>\n </DeprecatedFormInput>\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { Button, Icon, Input, useControlledValue, useTranslation } from '@dxos/react-ui';\n\nimport { getInvocationUrl, getUserFunctionUrlInMetadata } from '../edge';\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { FunctionType, type ScriptType } from '../types';\n\nexport type ScriptSettingsPanelProps = {\n script: ScriptType;\n};\n\nexport const ScriptSettingsPanel = ({ script }: ScriptSettingsPanelProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const client = useClient();\n const space = getSpace(script);\n // TODO(dmaretskyi): Parametric query.\n const [fn] = useQuery(\n space,\n Filter.schema(FunctionType, (fn) => fn.source === script),\n );\n\n const handleNameChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n script.name = event.target.value;\n },\n [script],\n );\n\n const [binding, setBinding] = useControlledValue(fn?.binding ?? '');\n const handleBindingChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setBinding(event.target.value);\n },\n [setBinding],\n );\n const handleBindingBlur = useCallback(() => {\n fn.binding = binding;\n }, [fn, binding]);\n\n const functionPath = fn && getUserFunctionUrlInMetadata(getMeta(fn));\n const functionUrl =\n functionPath &&\n getInvocationUrl(functionPath, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n\n // TODO(wittjosiah): Use ClipboardProvider.\n const handleCopy = useCallback(() => functionUrl && navigator.clipboard.writeText(functionUrl), [functionUrl]);\n\n return (\n <div role='form' className='flex flex-col w-full p-2 gap-4'>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('name label')}</Input.Label>\n <Input.TextInput\n placeholder={t('object title placeholder')}\n value={script.name ?? ''}\n onChange={handleNameChange}\n />\n </div>\n </Input.Root>\n {fn && (\n <>\n <hr className='border-separator' />\n <h2>{t('remote function settings heading')}</h2>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function url label')}</Input.Label>\n <div role='none' className='flex gap-1'>\n <Input.TextInput\n disabled\n value={functionUrl}\n onChange={(event) => {\n fn.name = event.target.value;\n }}\n />\n <Button onClick={handleCopy}>\n <Icon icon='ph--copy--regular' size={4} />\n </Button>\n </div>\n </div>\n </Input.Root>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function binding label')}</Input.Label>\n <Input.TextInput\n placeholder={t('function binding placeholder')}\n value={binding}\n onChange={handleBindingChange}\n onBlur={handleBindingBlur}\n />\n </div>\n </Input.Root>\n </>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SCRIPT_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [SCRIPT_PLUGIN]: {\n 'plugin name': 'Scripts',\n 'object title placeholder': 'New script',\n 'create object label': 'Create script',\n 'create stack section label': 'Create script',\n 'binding placeholder': 'Function name',\n 'function request placeholder': 'Function request',\n 'deploy label': 'Deploy',\n 'deployed label': 'Current version of the script is deployed',\n 'upload failed label': 'Upload failed',\n 'copy link label': 'Copy function link',\n 'format label': 'Format',\n 'toggle details label': 'Toggle details panel',\n 'authenticate action label': 'Authenticate functions service',\n 'authenticate button label': 'Authenticate',\n 'name label': 'Name',\n 'remote function settings heading': 'Remote Function',\n 'function url label': 'Invocation URL',\n 'function binding label': 'Function binding',\n 'function binding placeholder': 'BINDING',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ScriptPlugin } from './ScriptPlugin';\n\nexport default ScriptPlugin;\n\nexport * from './bundler';\nexport * from './compiler';\nexport * from './components';\nexport * from './types';\n\nexport * from './ScriptPlugin';\n"],
5
+ "mappings": "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",
6
+ "names": ["wasmUrl", "React", "NavigationAction", "parseIntentPlugin", "resolvePlugin", "create", "parseClientPlugin", "createExtension", "isActionGroup", "TextType", "SpaceAction", "loadObjectReferences", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "constructor", "_options", "initialize", "_env", "_fsMap", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "lazy", "React", "useClient", "Button", "useTranslation", "DeprecatedFormInput", "ScriptSettings", "settings", "t", "useTranslation", "SCRIPT_PLUGIN", "client", "useClient", "handleAuthenticate", "identityKey", "halo", "identity", "get", "writeCredentials", "issuer", "issuanceDate", "Date", "subject", "id", "assertion", "serverName", "serverKey", "capabilities", "DeprecatedFormInput", "label", "Button", "onClick", "React", "useCallback", "useClient", "Filter", "getMeta", "getSpace", "useQuery", "Button", "Icon", "Input", "useControlledValue", "useTranslation", "ScriptSettingsPanel", "script", "t", "useTranslation", "SCRIPT_PLUGIN", "client", "useClient", "space", "getSpace", "fn", "useQuery", "Filter", "schema", "FunctionType", "source", "handleNameChange", "useCallback", "event", "name", "target", "value", "binding", "setBinding", "useControlledValue", "handleBindingChange", "handleBindingBlur", "functionPath", "getUserFunctionUrlInMetadata", "getMeta", "functionUrl", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "id", "handleCopy", "navigator", "clipboard", "writeText", "React", "div", "role", "className", "Input", "Root", "Label", "TextInput", "placeholder", "onChange", "hr", "h2", "disabled", "Button", "onClick", "Icon", "icon", "size", "onBlur", "AutomationPanel", "lazy", "ScriptContainer", "SCRIPT_PLUGIN", "ScriptPlugin", "compiler", "Compiler", "meta", "initialize", "setFile", "initializeBundler", "wasmUrl", "provides", "settings", "metadata", "records", "ScriptType", "typename", "placeholder", "ns", "SCRIPT_PLUGIN", "icon", "loadReferences", "script", "loadObjectReferences", "source", "translations", "echo", "schema", "FunctionType", "space", "onSpaceCreate", "label", "action", "ScriptAction", "CREATE", "graph", "builder", "plugins", "client", "resolvePlugin", "parseClientPlugin", "dispatch", "parseIntentPlugin", "intent", "createExtension", "id", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "spaces", "get", "find", "object", "db", "getObjectById", "target", "data", "plugin", "NavigationAction", "OPEN", "properties", "testId", "surface", "component", "role", "React", "ScriptSettings", "ScriptContainer", "env", "environment", "subject", "AutomationPanel", "disposition", "ScriptSettingsPanel", "resolver", "create", "TextType", "content", "templates", "ScriptPlugin"]
7
7
  }