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

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 (202) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/browser/AutomationPanel-Y7LQYFOY.mjs +78 -0
  3. package/dist/lib/browser/AutomationPanel-Y7LQYFOY.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-KGZGB5AY.mjs +423 -0
  5. package/dist/lib/browser/ScriptContainer-KGZGB5AY.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-RHEZ5LUU.mjs → chunk-C4AX55JL.mjs} +51 -2
  7. package/dist/lib/browser/{chunk-RHEZ5LUU.mjs.map → chunk-C4AX55JL.mjs.map} +4 -4
  8. package/dist/lib/browser/{chunk-DL5XQRQM.mjs → chunk-KHNN3F7J.mjs} +18 -6
  9. package/dist/lib/browser/chunk-KHNN3F7J.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-O4LWBX6A.mjs → chunk-KXVQPS4Y.mjs} +2 -2
  11. package/dist/lib/browser/{chunk-O4LWBX6A.mjs.map → chunk-KXVQPS4Y.mjs.map} +2 -2
  12. package/dist/lib/browser/chunk-SGQHRB4P.mjs +17 -0
  13. package/dist/lib/browser/chunk-SGQHRB4P.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-SP3Q7BCM.mjs +248 -0
  15. package/dist/lib/browser/chunk-SP3Q7BCM.mjs.map +7 -0
  16. package/dist/lib/browser/edge/index.mjs +5 -1
  17. package/dist/lib/browser/index.mjs +86 -61
  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-UNLRYLMA.cjs +100 -0
  23. package/dist/lib/node/AutomationPanel-UNLRYLMA.cjs.map +7 -0
  24. package/dist/lib/node/ScriptContainer-BIBIIJHP.cjs +425 -0
  25. package/dist/lib/node/ScriptContainer-BIBIIJHP.cjs.map +7 -0
  26. package/dist/lib/node/{chunk-5RBVXKXT.cjs → chunk-25PQE7FL.cjs} +6 -6
  27. package/dist/lib/node/{chunk-5RBVXKXT.cjs.map → chunk-25PQE7FL.cjs.map} +2 -2
  28. package/dist/lib/node/{TypescriptEditor-M3WWFIP2.cjs → chunk-EJC55SDD.cjs} +18 -8
  29. package/dist/lib/node/chunk-EJC55SDD.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-PFH3ROEH.cjs → chunk-FY5KKL5N.cjs} +22 -8
  31. package/dist/lib/node/chunk-FY5KKL5N.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-4GTXIELQ.cjs → chunk-NKWNQMJH.cjs} +44 -6
  33. package/dist/lib/node/chunk-NKWNQMJH.cjs.map +7 -0
  34. package/dist/lib/node/chunk-NWBG5QDN.cjs +277 -0
  35. package/dist/lib/node/chunk-NWBG5QDN.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 +103 -82
  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-D4NHEKM6.mjs +79 -0
  46. package/dist/lib/node-esm/AutomationPanel-D4NHEKM6.mjs.map +7 -0
  47. package/dist/lib/node-esm/ScriptContainer-4VQ46IAZ.mjs +424 -0
  48. package/dist/lib/node-esm/ScriptContainer-4VQ46IAZ.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-7EDYDVQH.mjs +47 -0
  50. package/dist/lib/node-esm/chunk-7EDYDVQH.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-EEDWDGZT.mjs +249 -0
  52. package/dist/lib/node-esm/chunk-EEDWDGZT.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-GO7HYFM5.mjs +19 -0
  54. package/dist/lib/node-esm/chunk-GO7HYFM5.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-YIISE4MX.mjs +280 -0
  58. package/dist/lib/node-esm/chunk-YIISE4MX.mjs.map +7 -0
  59. package/dist/lib/node-esm/edge/index.mjs +24 -0
  60. package/dist/lib/node-esm/index.mjs +317 -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.d.ts → DebugPanel/DebugPanel.d.ts} +2 -1
  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/Toolbar/Toolbar.d.ts +23 -0
  93. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  94. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +14 -0
  95. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -0
  96. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  97. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  98. package/dist/types/src/components/{TypescriptEditor.d.ts → TypescriptEditor/TypescriptEditor.d.ts} +1 -2
  99. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -0
  100. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +6 -0
  101. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/TypescriptEditor/index.d.ts +2 -0
  103. package/dist/types/src/components/TypescriptEditor/index.d.ts.map +1 -0
  104. package/dist/types/src/components/index.d.ts +3 -3
  105. package/dist/types/src/components/index.d.ts.map +1 -1
  106. package/dist/types/src/edge/functions.d.ts +7 -0
  107. package/dist/types/src/edge/functions.d.ts.map +1 -1
  108. package/dist/types/src/meta.d.ts +4 -9
  109. package/dist/types/src/meta.d.ts.map +1 -1
  110. package/dist/types/src/templates/chat.d.ts +6 -0
  111. package/dist/types/src/templates/chat.d.ts.map +1 -0
  112. package/dist/types/src/templates/chess.d.ts +6 -0
  113. package/dist/types/src/templates/chess.d.ts.map +1 -0
  114. package/dist/types/src/templates/echo.d.ts +6 -0
  115. package/dist/types/src/templates/echo.d.ts.map +1 -0
  116. package/dist/types/src/templates/email.d.ts +6 -0
  117. package/dist/types/src/templates/email.d.ts.map +1 -0
  118. package/dist/types/src/templates/forex.d.ts +6 -0
  119. package/dist/types/src/templates/forex.d.ts.map +1 -0
  120. package/dist/types/src/templates.d.ts +8 -0
  121. package/dist/types/src/templates.d.ts.map +1 -0
  122. package/dist/types/src/translations.d.ts +2 -0
  123. package/dist/types/src/translations.d.ts.map +1 -1
  124. package/dist/types/src/types/script.d.ts +4 -4
  125. package/dist/types/src/types/types.d.ts +4 -3
  126. package/dist/types/src/types/types.d.ts.map +1 -1
  127. package/package.json +62 -55
  128. package/src/ScriptPlugin.tsx +26 -39
  129. package/src/bundler/bundler.test.ts +12 -2
  130. package/src/components/AutomationPanel/AutomationPanel.tsx +101 -0
  131. package/src/components/AutomationPanel/index.ts +9 -0
  132. package/src/components/{DebugPanel.tsx → DebugPanel/DebugPanel.tsx} +83 -78
  133. package/src/components/DebugPanel/index.ts +5 -0
  134. package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/FrameContainer.tsx +1 -1
  135. package/src/components/ScriptBlock/ScriptBlock.stories.tsx +15 -14
  136. package/src/components/ScriptBlock/ScriptBlock.tsx +23 -51
  137. package/src/components/ScriptContainer.tsx +22 -0
  138. package/src/components/ScriptEditor.tsx +58 -55
  139. package/src/components/ScriptSettings/ScriptSettings.tsx +47 -0
  140. package/src/components/ScriptSettings/index.ts +5 -0
  141. package/src/components/Toolbar/Toolbar.stories.tsx +30 -0
  142. package/src/components/Toolbar/Toolbar.tsx +177 -0
  143. package/src/components/{ScriptBlock/Splitter → Toolbar}/index.ts +1 -1
  144. package/src/components/{TypescriptEditor.stories.tsx → TypescriptEditor/TypescriptEditor.stories.tsx} +17 -35
  145. package/src/components/{TypescriptEditor.tsx → TypescriptEditor/TypescriptEditor.tsx} +1 -3
  146. package/src/components/TypescriptEditor/index.ts +5 -0
  147. package/src/components/index.ts +5 -3
  148. package/src/edge/functions.ts +19 -0
  149. package/src/meta.ts +15 -0
  150. package/src/templates/chat.ts +102 -0
  151. package/src/templates/chess.ts +41 -0
  152. package/src/templates/echo.ts +15 -0
  153. package/src/templates/email.ts +38 -0
  154. package/src/templates/forex.ts +21 -0
  155. package/src/templates.ts +54 -0
  156. package/src/translations.ts +2 -0
  157. package/src/types/types.ts +9 -5
  158. package/dist/lib/browser/ScriptEditor-5Y3EROG3.mjs +0 -513
  159. package/dist/lib/browser/ScriptEditor-5Y3EROG3.mjs.map +0 -7
  160. package/dist/lib/browser/TypescriptEditor-GPE72Y6I.mjs +0 -9
  161. package/dist/lib/browser/chunk-DL5XQRQM.mjs.map +0 -7
  162. package/dist/lib/browser/chunk-JBACGDOJ.mjs +0 -21
  163. package/dist/lib/browser/chunk-JBACGDOJ.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-MRGOT5RF.mjs +0 -78
  165. package/dist/lib/browser/chunk-MRGOT5RF.mjs.map +0 -7
  166. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs +0 -526
  167. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs.map +0 -7
  168. package/dist/lib/node/TypescriptEditor-M3WWFIP2.cjs.map +0 -7
  169. package/dist/lib/node/chunk-4GTXIELQ.cjs.map +0 -7
  170. package/dist/lib/node/chunk-4VMNBXWU.cjs +0 -54
  171. package/dist/lib/node/chunk-4VMNBXWU.cjs.map +0 -7
  172. package/dist/lib/node/chunk-IMLDKD5Y.cjs +0 -111
  173. package/dist/lib/node/chunk-IMLDKD5Y.cjs.map +0 -7
  174. package/dist/lib/node/chunk-PFH3ROEH.cjs.map +0 -7
  175. package/dist/types/src/components/DebugPanel.d.ts.map +0 -1
  176. package/dist/types/src/components/ScriptBlock/FrameContainer/FrameContainer.d.ts.map +0 -1
  177. package/dist/types/src/components/ScriptBlock/FrameContainer/frame.d.ts.map +0 -1
  178. package/dist/types/src/components/ScriptBlock/FrameContainer/index.d.ts.map +0 -1
  179. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts +0 -15
  180. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts.map +0 -1
  181. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts +0 -13
  182. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts.map +0 -1
  183. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts +0 -2
  184. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts.map +0 -1
  185. package/dist/types/src/components/Toolbar.d.ts +0 -13
  186. package/dist/types/src/components/Toolbar.d.ts.map +0 -1
  187. package/dist/types/src/components/Toolbar.stories.d.ts +0 -14
  188. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  189. package/dist/types/src/components/TypescriptEditor.d.ts.map +0 -1
  190. package/dist/types/src/components/TypescriptEditor.stories.d.ts +0 -10
  191. package/dist/types/src/components/TypescriptEditor.stories.d.ts.map +0 -1
  192. package/src/components/ScriptBlock/Splitter/Splitter.stories.tsx +0 -37
  193. package/src/components/ScriptBlock/Splitter/Splitter.tsx +0 -52
  194. package/src/components/Toolbar.stories.tsx +0 -17
  195. package/src/components/Toolbar.tsx +0 -147
  196. package/src/meta.tsx +0 -19
  197. /package/dist/lib/{browser/TypescriptEditor-GPE72Y6I.mjs.map → node-esm/edge/index.mjs.map} +0 -0
  198. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.d.ts +0 -0
  199. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.d.ts +0 -0
  200. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.html +0 -0
  201. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.tsx +0 -0
  202. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.ts +0 -0
@@ -28,24 +28,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
- Bundler: () => import_chunk_4GTXIELQ.Bundler,
31
+ AutomationPanel: () => AutomationPanel,
32
+ Bundler: () => import_chunk_NKWNQMJH.Bundler,
32
33
  Compiler: () => Compiler,
33
- FunctionType: () => import_chunk_5RBVXKXT.FunctionType,
34
- ScriptAction: () => import_chunk_5RBVXKXT.ScriptAction,
35
- ScriptEditor: () => ScriptEditor,
34
+ FunctionType: () => import_chunk_25PQE7FL.FunctionType,
35
+ ScriptAction: () => import_chunk_25PQE7FL.ScriptAction,
36
+ ScriptContainer: () => ScriptContainer,
36
37
  ScriptPlugin: () => ScriptPlugin,
37
- ScriptType: () => import_chunk_5RBVXKXT.ScriptType,
38
- TypescriptEditor: () => TypescriptEditor,
38
+ ScriptSettings: () => ScriptSettings,
39
+ ScriptType: () => import_chunk_25PQE7FL.ScriptType,
39
40
  default: () => src_default,
40
- initializeBundler: () => import_chunk_4GTXIELQ.initializeBundler
41
+ initializeBundler: () => import_chunk_NKWNQMJH.initializeBundler
41
42
  });
42
43
  module.exports = __toCommonJS(node_exports);
43
- var import_chunk_4GTXIELQ = require("./chunk-4GTXIELQ.cjs");
44
- var import_chunk_5RBVXKXT = require("./chunk-5RBVXKXT.cjs");
45
- var import_chunk_4VMNBXWU = require("./chunk-4VMNBXWU.cjs");
46
- var import_react = require("@phosphor-icons/react");
44
+ var import_chunk_NKWNQMJH = require("./chunk-NKWNQMJH.cjs");
45
+ var import_chunk_25PQE7FL = require("./chunk-25PQE7FL.cjs");
46
+ var import_chunk_EJC55SDD = require("./chunk-EJC55SDD.cjs");
47
47
  var import_esbuild = __toESM(require("esbuild-wasm/esbuild.wasm?url"));
48
- var import_react2 = __toESM(require("react"));
48
+ var import_react = __toESM(require("react"));
49
49
  var import_app_framework = require("@dxos/app-framework");
50
50
  var import_echo_schema = require("@dxos/echo-schema");
51
51
  var import_plugin_client = require("@dxos/plugin-client");
@@ -56,7 +56,11 @@ var import_echo = require("@dxos/react-client/echo");
56
56
  var import_vfs = require("@typescript/vfs");
57
57
  var import_typescript = __toESM(require("typescript"));
58
58
  var import_invariant = require("@dxos/invariant");
59
+ var import_react2 = require("react");
59
60
  var import_react3 = __toESM(require("react"));
61
+ var import_plugin_settings = require("@dxos/plugin-settings");
62
+ var import_react_client = require("@dxos/react-client");
63
+ var import_react_ui = require("@dxos/react-ui");
60
64
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-script/src/compiler/compiler.ts";
61
65
  var defaultOptions = {
62
66
  lib: [
@@ -105,12 +109,42 @@ var Compiler = class {
105
109
  return this.environment.languageService.getEmitOutput(fileName);
106
110
  }
107
111
  };
108
- var ScriptEditor = import_react3.default.lazy(() => import("./ScriptEditor-YCUQFWQM.cjs"));
109
- var TypescriptEditor = import_react3.default.lazy(() => import("./TypescriptEditor-M3WWFIP2.cjs"));
112
+ var ScriptSettings = ({ settings }) => {
113
+ const { t } = (0, import_react_ui.useTranslation)(import_chunk_EJC55SDD.SCRIPT_PLUGIN);
114
+ const client = (0, import_react_client.useClient)();
115
+ const handleAuthenticate = async () => {
116
+ const { identityKey } = client.halo.identity.get();
117
+ await client.halo.writeCredentials([
118
+ {
119
+ issuer: identityKey,
120
+ issuanceDate: /* @__PURE__ */ new Date(),
121
+ subject: {
122
+ id: identityKey,
123
+ assertion: {
124
+ "@type": "dxos.halo.credentials.ServiceAccess",
125
+ serverName: "hub.dxos.network",
126
+ serverKey: identityKey,
127
+ identityKey,
128
+ capabilities: [
129
+ "composer:beta"
130
+ ]
131
+ }
132
+ }
133
+ }
134
+ ]);
135
+ };
136
+ return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(import_plugin_settings.SettingsValue, {
137
+ label: t("authenticate action label")
138
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Button, {
139
+ onClick: handleAuthenticate
140
+ }, t("authenticate button label"))));
141
+ };
142
+ var ScriptContainer = (0, import_react2.lazy)(() => import("./ScriptContainer-BIBIIJHP.cjs"));
143
+ var AutomationPanel = (0, import_react2.lazy)(() => import("./AutomationPanel-UNLRYLMA.cjs"));
110
144
  var translations_default = [
111
145
  {
112
146
  "en-US": {
113
- [import_chunk_4VMNBXWU.SCRIPT_PLUGIN]: {
147
+ [import_chunk_EJC55SDD.SCRIPT_PLUGIN]: {
114
148
  "plugin name": "Scripts",
115
149
  "object title placeholder": "New script",
116
150
  "create object label": "Create script",
@@ -122,7 +156,9 @@ var translations_default = [
122
156
  "upload failed label": "Upload failed",
123
157
  "copy link label": "Copy function link",
124
158
  "format label": "Format",
125
- "toggle details label": "Toggle details panel"
159
+ "toggle details label": "Toggle details panel",
160
+ "authenticate action label": "Authenticate functions service",
161
+ "authenticate button label": "Authenticate"
126
162
  }
127
163
  }
128
164
  }
@@ -130,7 +166,7 @@ var translations_default = [
130
166
  var ScriptPlugin = () => {
131
167
  const compiler = new Compiler();
132
168
  return {
133
- meta: import_chunk_4VMNBXWU.meta_default,
169
+ meta: import_chunk_EJC55SDD.meta_default,
134
170
  initialize: async () => {
135
171
  await compiler.initialize();
136
172
  compiler.setFile("/src/typings.d.ts", "declare module 'https://*';");
@@ -139,22 +175,22 @@ var ScriptPlugin = () => {
139
175
  export type FunctionHandler = ({ event, context }: { event: any; context: any }) => Promise<Response>;
140
176
  export const functionHandler = (handler: FunctionHandler) => handler;
141
177
  `);
142
- await (0, import_chunk_4GTXIELQ.initializeBundler)({
178
+ await (0, import_chunk_NKWNQMJH.initializeBundler)({
143
179
  wasmUrl: import_esbuild.default
144
180
  });
145
181
  },
146
182
  provides: {
183
+ settings: {},
147
184
  metadata: {
148
185
  records: {
149
- [import_chunk_5RBVXKXT.ScriptType.typename]: {
186
+ [import_chunk_25PQE7FL.ScriptType.typename]: {
150
187
  placeholder: [
151
188
  "object title placeholder",
152
189
  {
153
- ns: import_chunk_4VMNBXWU.SCRIPT_PLUGIN
190
+ ns: import_chunk_EJC55SDD.SCRIPT_PLUGIN
154
191
  }
155
192
  ],
156
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.Code, props),
157
- iconSymbol: "ph--code--regular",
193
+ icon: "ph--code--regular",
158
194
  // TODO(wittjosiah): Move out of metadata.
159
195
  loadReferences: (script) => (0, import_echo.loadObjectReferences)(script, (script2) => [
160
196
  script2.source
@@ -165,10 +201,21 @@ var ScriptPlugin = () => {
165
201
  translations: translations_default,
166
202
  echo: {
167
203
  schema: [
168
- import_chunk_5RBVXKXT.ScriptType,
169
- import_chunk_5RBVXKXT.FunctionType
204
+ import_chunk_25PQE7FL.ScriptType,
205
+ import_chunk_25PQE7FL.FunctionType
170
206
  ]
171
207
  },
208
+ space: {
209
+ onSpaceCreate: {
210
+ label: [
211
+ "create object label",
212
+ {
213
+ ns: import_chunk_EJC55SDD.SCRIPT_PLUGIN
214
+ }
215
+ ],
216
+ action: import_chunk_25PQE7FL.ScriptAction.CREATE
217
+ }
218
+ },
172
219
  graph: {
173
220
  builder: (plugins) => {
174
221
  const client = (0, import_app_framework.resolvePlugin)(plugins, import_plugin_client.parseClientPlugin)?.provides.client;
@@ -177,7 +224,7 @@ var ScriptPlugin = () => {
177
224
  return [];
178
225
  }
179
226
  return (0, import_plugin_graph.createExtension)({
180
- id: import_chunk_5RBVXKXT.ScriptAction.CREATE,
227
+ id: import_chunk_25PQE7FL.ScriptAction.CREATE,
181
228
  filter: (node) => (0, import_plugin_graph.isActionGroup)(node) && node.id.startsWith(import_plugin_space.SpaceAction.ADD_OBJECT),
182
229
  actions: ({ node }) => {
183
230
  const id = node.id.split("/").at(-1);
@@ -190,12 +237,12 @@ var ScriptPlugin = () => {
190
237
  }
191
238
  return [
192
239
  {
193
- id: `${import_chunk_4VMNBXWU.SCRIPT_PLUGIN}/create/${node.id}`,
240
+ id: `${import_chunk_EJC55SDD.SCRIPT_PLUGIN}/create/${node.id}`,
194
241
  data: async () => {
195
242
  await dispatch([
196
243
  {
197
- plugin: import_chunk_4VMNBXWU.SCRIPT_PLUGIN,
198
- action: import_chunk_5RBVXKXT.ScriptAction.CREATE
244
+ plugin: import_chunk_EJC55SDD.SCRIPT_PLUGIN,
245
+ action: import_chunk_25PQE7FL.ScriptAction.CREATE
199
246
  },
200
247
  {
201
248
  action: import_plugin_space.SpaceAction.ADD_OBJECT,
@@ -212,11 +259,10 @@ var ScriptPlugin = () => {
212
259
  label: [
213
260
  "create object label",
214
261
  {
215
- ns: import_chunk_4VMNBXWU.SCRIPT_PLUGIN
262
+ ns: import_chunk_EJC55SDD.SCRIPT_PLUGIN
216
263
  }
217
264
  ],
218
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.Code, props),
219
- iconSymbol: "ph--code--regular",
265
+ icon: "ph--code--regular",
220
266
  testId: "scriptPlugin.createObject"
221
267
  }
222
268
  }
@@ -225,45 +271,28 @@ var ScriptPlugin = () => {
225
271
  });
226
272
  }
227
273
  },
228
- stack: {
229
- creators: [
230
- {
231
- id: "create-stack-section-script",
232
- testId: "scriptPlugin.createSection",
233
- type: [
234
- "plugin name",
235
- {
236
- ns: import_chunk_4VMNBXWU.SCRIPT_PLUGIN
237
- }
238
- ],
239
- label: [
240
- "create stack section label",
241
- {
242
- ns: import_chunk_4VMNBXWU.SCRIPT_PLUGIN
243
- }
244
- ],
245
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.Code, props),
246
- intent: {
247
- plugin: import_chunk_4VMNBXWU.SCRIPT_PLUGIN,
248
- action: import_chunk_5RBVXKXT.ScriptAction.CREATE
249
- }
250
- }
251
- ]
252
- },
253
274
  surface: {
254
275
  component: ({ data, role }) => {
255
- if (role && ![
256
- "article",
257
- "section"
258
- ].includes(role)) {
259
- return null;
260
- }
261
- if (data.object instanceof import_chunk_5RBVXKXT.ScriptType) {
262
- return /* @__PURE__ */ import_react2.default.createElement(ScriptEditor, {
263
- env: compiler.environment,
264
- script: data.object,
265
- role
266
- });
276
+ switch (role) {
277
+ case "settings": {
278
+ return data.plugin === import_chunk_EJC55SDD.meta_default.id ? /* @__PURE__ */ import_react.default.createElement(ScriptSettings, {
279
+ settings: {}
280
+ }) : null;
281
+ }
282
+ case "article": {
283
+ if (data.object instanceof import_chunk_25PQE7FL.ScriptType) {
284
+ return /* @__PURE__ */ import_react.default.createElement(ScriptContainer, {
285
+ script: data.object,
286
+ env: compiler.environment
287
+ });
288
+ }
289
+ break;
290
+ }
291
+ case "complementary--automation": {
292
+ return /* @__PURE__ */ import_react.default.createElement(AutomationPanel, {
293
+ subject: data.subject
294
+ });
295
+ }
267
296
  }
268
297
  return null;
269
298
  }
@@ -271,11 +300,11 @@ var ScriptPlugin = () => {
271
300
  intent: {
272
301
  resolver: (intent) => {
273
302
  switch (intent.action) {
274
- case import_chunk_5RBVXKXT.ScriptAction.CREATE: {
303
+ case import_chunk_25PQE7FL.ScriptAction.CREATE: {
275
304
  return {
276
- data: (0, import_echo_schema.create)(import_chunk_5RBVXKXT.ScriptType, {
305
+ data: (0, import_echo_schema.create)(import_chunk_25PQE7FL.ScriptType, {
277
306
  source: (0, import_echo_schema.create)(import_types.TextType, {
278
- content: example
307
+ content: import_chunk_NKWNQMJH.templates[0].source
279
308
  })
280
309
  })
281
310
  };
@@ -286,26 +315,18 @@ var ScriptPlugin = () => {
286
315
  }
287
316
  };
288
317
  };
289
- var example = [
290
- "export default async ({ ",
291
- " event: { data: { request } },",
292
- " context: { space, ai } ",
293
- "}: any) => {",
294
- " return new Response('Hello DXOS!');",
295
- "};",
296
- ""
297
- ].join("\n");
298
318
  var src_default = ScriptPlugin;
299
319
  // Annotate the CommonJS export names for ESM import in node:
300
320
  0 && (module.exports = {
321
+ AutomationPanel,
301
322
  Bundler,
302
323
  Compiler,
303
324
  FunctionType,
304
325
  ScriptAction,
305
- ScriptEditor,
326
+ ScriptContainer,
306
327
  ScriptPlugin,
328
+ ScriptSettings,
307
329
  ScriptType,
308
- TypescriptEditor,
309
330
  initializeBundler
310
331
  });
311
332
  //# sourceMappingURL=index.cjs.map
@@ -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": ["import_react", "defaultOptions", "lib", "target", "ts", "ScriptTarget", "ES2022", "Compiler", "constructor", "_options", "initialize", "_env", "_fsMap", "createDefaultMapFromCDN", "system", "createSystem", "createVirtualTypeScriptEnvironment", "environment", "invariant", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "ScriptEditor", "React", "lazy", "TypescriptEditor", "SCRIPT_PLUGIN", "ScriptPlugin", "compiler", "meta", "initializeBundler", "wasmUrl", "provides", "metadata", "records", "ScriptType", "typename", "placeholder", "ns", "icon", "props", "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", "data", "plugin", "action", "NavigationAction", "OPEN", "properties", "label", "testId", "stack", "creators", "type", "surface", "component", "role", "includes", "env", "resolver", "create", "TextType", "example", "join"]
3
+ "sources": ["../../../src/ScriptPlugin.tsx", "../../../src/compiler/compiler.ts", "../../../src/components/index.ts", "../../../src/components/ScriptSettings/ScriptSettings.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 { 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 { AutomationPanel, ScriptContainer, ScriptSettings } from './components';\nimport meta, { SCRIPT_PLUGIN } from './meta';\nimport { templates } from './templates';\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 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 return <AutomationPanel subject={data.subject as any} />;\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: templates[0].source }) }) };\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';\n\nexport const ScriptContainer = lazy(() => import('./ScriptContainer'));\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { SettingsValue } from '@dxos/plugin-settings';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { useClient } from '@dxos/react-client';\nimport { Button, useTranslation } from '@dxos/react-ui';\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 <SettingsValue label={t('authenticate action label')}>\n <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>\n </SettingsValue>\n </>\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 },\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": ["import_react", "defaultOptions", "lib", "target", "ts", "ScriptTarget", "ES2022", "Compiler", "constructor", "_options", "initialize", "_env", "_fsMap", "createDefaultMapFromCDN", "system", "createSystem", "createVirtualTypeScriptEnvironment", "environment", "invariant", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "ScriptSettings", "settings", "t", "useTranslation", "SCRIPT_PLUGIN", "client", "useClient", "handleAuthenticate", "identityKey", "halo", "identity", "get", "writeCredentials", "issuer", "issuanceDate", "Date", "subject", "id", "assertion", "serverName", "serverKey", "capabilities", "React", "SettingsValue", "label", "Button", "onClick", "ScriptContainer", "lazy", "AutomationPanel", "ScriptPlugin", "compiler", "meta", "initializeBundler", "wasmUrl", "provides", "metadata", "records", "ScriptType", "typename", "placeholder", "ns", "icon", "loadReferences", "script", "loadObjectReferences", "source", "translations", "echo", "schema", "FunctionType", "space", "onSpaceCreate", "action", "ScriptAction", "CREATE", "graph", "builder", "plugins", "resolvePlugin", "parseClientPlugin", "dispatch", "parseIntentPlugin", "intent", "createExtension", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "spaces", "find", "object", "db", "getObjectById", "data", "plugin", "NavigationAction", "OPEN", "properties", "testId", "surface", "component", "role", "env", "resolver", "create", "TextType", "templates"]
7
7
  }
@@ -18,11 +18,11 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var meta_exports = {};
20
20
  __export(meta_exports, {
21
- SCRIPT_PLUGIN: () => import_chunk_4VMNBXWU.SCRIPT_PLUGIN,
22
- default: () => import_chunk_4VMNBXWU.meta_default
21
+ SCRIPT_PLUGIN: () => import_chunk_EJC55SDD.SCRIPT_PLUGIN,
22
+ default: () => import_chunk_EJC55SDD.meta_default
23
23
  });
24
24
  module.exports = __toCommonJS(meta_exports);
25
- var import_chunk_4VMNBXWU = require("./chunk-4VMNBXWU.cjs");
25
+ var import_chunk_EJC55SDD = require("./chunk-EJC55SDD.cjs");
26
26
  // Annotate the CommonJS export names for ESM import in node:
27
27
  0 && (module.exports = {
28
28
  SCRIPT_PLUGIN
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["meta.cjs"],
4
- "sourcesContent": ["import {\n SCRIPT_PLUGIN,\n meta_default\n} from \"./chunk-4VMNBXWU.cjs\";\nexport {\n SCRIPT_PLUGIN,\n meta_default as default\n};\n//# sourceMappingURL=meta.cjs.map\n"],
4
+ "sourcesContent": ["import {\n SCRIPT_PLUGIN,\n meta_default\n} from \"./chunk-EJC55SDD.cjs\";\nexport {\n SCRIPT_PLUGIN,\n meta_default as default\n};\n//# sourceMappingURL=meta.cjs.map\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;",
6
6
  "names": []
7
7
  }