@eclipse-lyra/extension-notebook 0.7.64 → 0.7.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ extensionRegistry.registerExtension({
11
11
  id: pkg.name,
12
12
  name: t.EXT_NOTEBOOK_NAME,
13
13
  description: t.EXT_NOTEBOOK_DESC,
14
- loader: () => import("./notebook-extension-De4Mcjwo.js"),
14
+ loader: () => import("./notebook-extension-VRMt2nJk.js"),
15
15
  icon: "lyra jupyter",
16
16
  dependencies: []
17
17
  });
@@ -16,7 +16,10 @@ var NOTEBOOK_CATALOG = {
16
16
  items: [{
17
17
  label: "JavaScript basics",
18
18
  icon: "lyra jupyter",
19
- state: { url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJtZXRhZGF0YSI6IHt9LAogICAgICAic291cmNlIjogWwogICAgICAgICIjIEphdmFTY3JpcHQga2VybmVsXG4iLAogICAgICAgICJcbiIsCiAgICAgICAgIlJ1biBjb2RlIGNlbGxzIHdpdGggdGhlICoqSmF2YVNjcmlwdCoqIGtlcm5lbC4gRWFjaCBjZWxsIHJ1bnMgaW4gYSBzaGFyZWQgcnVudGltZS4iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAgICAibWV0YWRhdGEiOiB7fSwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgInNvdXJjZSI6IFsKICAgICAgICAiY29uc3QgeCA9IDEgKyAyO1xuIiwKICAgICAgICAicmV0dXJuIHg7IgogICAgICBdCiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm1ldGFkYXRhIjoge30sCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJzb3VyY2UiOiBbCiAgICAgICAgImNvbnN0IGl0ZW1zID0gWydEdWNrREInLCAnUEdsaXRlJywgJ05vdGVib29rcyddO1xuIiwKICAgICAgICAicmV0dXJuIGl0ZW1zLmpvaW4oJywgJyk7IgogICAgICBdCiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm1ldGFkYXRhIjoge30sCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJzb3VyY2UiOiBbCiAgICAgICAgImNvbnN0IGZpYiA9IChuKSA9PiBuIDw9IDEgPyBuIDogZmliKG4gLSAxKSArIGZpYihuIC0gMik7XG4iLAogICAgICAgICJyZXR1cm4gZmliKDEwKTsiCiAgICAgIF0KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsKICAgICJrZXJuZWwiOiAiamF2YXNjcmlwdCIsCiAgICAibGFuZ3VhZ2VfaW5mbyI6IHsKICAgICAgIm5hbWUiOiAicHl0aG9uIgogICAgfQogIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href }
19
+ state: {
20
+ url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJtZXRhZGF0YSI6IHt9LAogICAgICAic291cmNlIjogWwogICAgICAgICIjIEphdmFTY3JpcHQga2VybmVsXG4iLAogICAgICAgICJcbiIsCiAgICAgICAgIlJ1biBjb2RlIGNlbGxzIHdpdGggdGhlICoqSmF2YVNjcmlwdCoqIGtlcm5lbC4gRWFjaCBjZWxsIHJ1bnMgaW4gYSBzaGFyZWQgcnVudGltZS4iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAgICAibWV0YWRhdGEiOiB7fSwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgInNvdXJjZSI6IFsKICAgICAgICAiY29uc3QgeCA9IDEgKyAyO1xuIiwKICAgICAgICAicmV0dXJuIHg7IgogICAgICBdCiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm1ldGFkYXRhIjoge30sCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJzb3VyY2UiOiBbCiAgICAgICAgImNvbnN0IGl0ZW1zID0gWydEdWNrREInLCAnUEdsaXRlJywgJ05vdGVib29rcyddO1xuIiwKICAgICAgICAicmV0dXJuIGl0ZW1zLmpvaW4oJywgJyk7IgogICAgICBdCiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm1ldGFkYXRhIjoge30sCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJzb3VyY2UiOiBbCiAgICAgICAgImNvbnN0IGZpYiA9IChuKSA9PiBuIDw9IDEgPyBuIDogZmliKG4gLSAxKSArIGZpYihuIC0gMik7XG4iLAogICAgICAgICJyZXR1cm4gZmliKDEwKTsiCiAgICAgIF0KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsKICAgICJrZXJuZWwiOiAiamF2YXNjcmlwdCIsCiAgICAibGFuZ3VhZ2VfaW5mbyI6IHsKICAgICAgIm5hbWUiOiAicHl0aG9uIgogICAgfQogIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href,
21
+ filename: "javascript-basics.ipynb"
22
+ }
20
23
  }]
21
24
  },
22
25
  {
@@ -26,7 +29,10 @@ var NOTEBOOK_CATALOG = {
26
29
  items: [{
27
30
  label: "DuckDB in notebooks",
28
31
  icon: "lyra jupyter",
29
- state: { url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJzb3VyY2UiOiBbIiMgRHVja0RCIGluIG5vdGVib29rc1xuXG5Vc2UgdGhlICoqRHVja0RCKioga2VybmVsIHRvIHJ1biBTUUwgaW4gY2VsbHMuIFJlc3VsdHMgYXJlIHNob3duIGFzIHRleHQuIl0sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgJ0R1Y2tEQicgQVMgZW5naW5lLCB2ZXJzaW9uKCkgQVMgdjsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJDUkVBVEUgT1IgUkVQTEFDRSBURU1QIFRBQkxFIHQgKGlkIElOVCwgbmFtZSBWQVJDSEFSKTtcbklOU0VSVCBJTlRPIHQgVkFMVUVTICgxLCAnYScpLCAoMiwgJ2InKSwgKDMsICdjJyk7XG5TRUxFQ1QgKiBGUk9NIHQ7Il0sCiAgICAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAgICAib3V0cHV0cyI6IFtdLAogICAgICAibWV0YWRhdGEiOiB7fQogICAgfSwKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJjb2RlIiwKICAgICAgInNvdXJjZSI6IFsiU0VMRUNUIG5hbWUsIGlkICogMTAgQVMgc2NhbGVkIEZST00gdCBPUkRFUiBCWSBpZCBERVNDOyJdLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgIm1ldGFkYXRhIjoge30KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsgImtlcm5lbCI6ICJkdWNrZGIiIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href }
32
+ state: {
33
+ url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJzb3VyY2UiOiBbIiMgRHVja0RCIGluIG5vdGVib29rc1xuXG5Vc2UgdGhlICoqRHVja0RCKioga2VybmVsIHRvIHJ1biBTUUwgaW4gY2VsbHMuIFJlc3VsdHMgYXJlIHNob3duIGFzIHRleHQuIl0sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgJ0R1Y2tEQicgQVMgZW5naW5lLCB2ZXJzaW9uKCkgQVMgdjsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJDUkVBVEUgT1IgUkVQTEFDRSBURU1QIFRBQkxFIHQgKGlkIElOVCwgbmFtZSBWQVJDSEFSKTtcbklOU0VSVCBJTlRPIHQgVkFMVUVTICgxLCAnYScpLCAoMiwgJ2InKSwgKDMsICdjJyk7XG5TRUxFQ1QgKiBGUk9NIHQ7Il0sCiAgICAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAgICAib3V0cHV0cyI6IFtdLAogICAgICAibWV0YWRhdGEiOiB7fQogICAgfSwKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJjb2RlIiwKICAgICAgInNvdXJjZSI6IFsiU0VMRUNUIG5hbWUsIGlkICogMTAgQVMgc2NhbGVkIEZST00gdCBPUkRFUiBCWSBpZCBERVNDOyJdLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgIm1ldGFkYXRhIjoge30KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsgImtlcm5lbCI6ICJkdWNrZGIiIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href,
34
+ filename: "duckdb-sample.ipynb"
35
+ }
30
36
  }]
31
37
  },
32
38
  {
@@ -36,7 +42,10 @@ var NOTEBOOK_CATALOG = {
36
42
  items: [{
37
43
  label: "PostgreSQL in notebooks",
38
44
  icon: "lyra jupyter",
39
- state: { url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJzb3VyY2UiOiBbIiMgUG9zdGdyZVNRTCAoUEdsaXRlKSBpbiBub3RlYm9va3NcblxuVXNlIHRoZSAqKlBHbGl0ZSoqIGtlcm5lbCB0byBydW4gUG9zdGdyZVNRTCBTUUwgaW4gdGhlIGJyb3dzZXIuIl0sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgJ1BHbGl0ZScgQVMgZW5naW5lLCB2ZXJzaW9uKCkgQVMgdjsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBkZW1vIChpZCBTRVJJQUwgUFJJTUFSWSBLRVksIGxhYmVsIFRFWFQpO1xuSU5TRVJUIElOVE8gZGVtbyAobGFiZWwpIFZBTFVFUyAoJ2ZpcnN0JyksICgnc2Vjb25kJyksICgndGhpcmQnKTtcblNFTEVDVCAqIEZST00gZGVtbzsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgbGFiZWwsIGlkICogMiBBUyBkb3VibGVfaWQgRlJPTSBkZW1vIE9SREVSIEJZIGlkOyJdLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgIm1ldGFkYXRhIjoge30KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsgImtlcm5lbCI6ICJwZ2xpdGUiIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href }
45
+ state: {
46
+ url: new URL("data:application/octet-stream;base64,ewogICJjZWxscyI6IFsKICAgIHsKICAgICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICAgICJzb3VyY2UiOiBbIiMgUG9zdGdyZVNRTCAoUEdsaXRlKSBpbiBub3RlYm9va3NcblxuVXNlIHRoZSAqKlBHbGl0ZSoqIGtlcm5lbCB0byBydW4gUG9zdGdyZVNRTCBTUUwgaW4gdGhlIGJyb3dzZXIuIl0sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgJ1BHbGl0ZScgQVMgZW5naW5lLCB2ZXJzaW9uKCkgQVMgdjsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBkZW1vIChpZCBTRVJJQUwgUFJJTUFSWSBLRVksIGxhYmVsIFRFWFQpO1xuSU5TRVJUIElOVE8gZGVtbyAobGFiZWwpIFZBTFVFUyAoJ2ZpcnN0JyksICgnc2Vjb25kJyksICgndGhpcmQnKTtcblNFTEVDVCAqIEZST00gZGVtbzsiXSwKICAgICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICAgICJvdXRwdXRzIjogW10sCiAgICAgICJtZXRhZGF0YSI6IHt9CiAgICB9LAogICAgewogICAgICAiY2VsbF90eXBlIjogImNvZGUiLAogICAgICAic291cmNlIjogWyJTRUxFQ1QgbGFiZWwsIGlkICogMiBBUyBkb3VibGVfaWQgRlJPTSBkZW1vIE9SREVSIEJZIGlkOyJdLAogICAgICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgICAgIm91dHB1dHMiOiBbXSwKICAgICAgIm1ldGFkYXRhIjoge30KICAgIH0KICBdLAogICJtZXRhZGF0YSI6IHsgImtlcm5lbCI6ICJwZ2xpdGUiIH0sCiAgIm5iZm9ybWF0IjogNCwKICAibmJmb3JtYXRfbWlub3IiOiA0Cn0K", "" + import.meta.url).href,
47
+ filename: "pglite-sample.ipynb"
48
+ }
40
49
  }]
41
50
  }
42
51
  ]
@@ -157,4 +166,4 @@ var notebook_extension_default = ({ editorRegistry, commandRegistry, contributio
157
166
  //#endregion
158
167
  export { notebook_extension_default as default };
159
168
 
160
- //# sourceMappingURL=notebook-extension-De4Mcjwo.js.map
169
+ //# sourceMappingURL=notebook-extension-VRMt2nJk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-extension-VRMt2nJk.js","names":[],"sources":["../src/notebook-catalog.ts","../src/javascript-kernel.ts","../src/notebook-extension.ts"],"sourcesContent":["import type { CatalogContribution } from \"@eclipse-lyra/extension-catalog/api\";\nimport { registerCatalog } from \"@eclipse-lyra/extension-catalog/api\";\n\nconst NOTEBOOK_CATALOG: CatalogContribution = {\n label: \"Notebooks\",\n icon: \"lyra jupyter\",\n contributionId: \"catalog.notebooks\",\n items: [\n {\n label: \"JavaScript\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.javascript\",\n items: [\n { label: \"JavaScript basics\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/javascript-basics.ipynb\", import.meta.url).href, filename: \"javascript-basics.ipynb\" } },\n ],\n },\n {\n label: \"DuckDB\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.duckdb\",\n items: [\n { label: \"DuckDB in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/duckdb-sample.ipynb\", import.meta.url).href, filename: \"duckdb-sample.ipynb\" } },\n ],\n },\n {\n label: \"PGlite\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.pglite\",\n items: [\n { label: \"PostgreSQL in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/pglite-sample.ipynb\", import.meta.url).href, filename: \"pglite-sample.ipynb\" } },\n ],\n },\n ],\n};\n\nexport function registerNotebookCatalog(): void {\n registerCatalog(NOTEBOOK_CATALOG);\n}\n","import { createJsRuntime, type JsRuntime } from '@eclipse-lyra/core';\nimport type { NotebookExecutionResult, NotebookKernel, NotebookKernelContribution } from './notebook-kernel-api';\n\nclass JavaScriptNotebookKernel implements NotebookKernel {\n readonly id = 'javascript';\n readonly label = 'JavaScript';\n readonly language = 'javascript';\n\n private runtime: JsRuntime | null = null;\n\n private getRuntime(): JsRuntime {\n if (!this.runtime) {\n this.runtime = createJsRuntime();\n }\n return this.runtime;\n }\n\n async getVersion(): Promise<string> {\n return 'JavaScript';\n }\n\n async execute(code: string): Promise<NotebookExecutionResult> {\n try {\n const result = await this.getRuntime().execute(code);\n if (result === undefined || result === null) {\n return {};\n }\n return { data: String(result) };\n } catch (err) {\n return { error: err instanceof Error ? err.message : String(err) };\n }\n }\n\n close(): void {\n if (this.runtime) {\n this.runtime.close();\n this.runtime = null;\n }\n }\n}\n\nexport const javascriptKernelContribution: NotebookKernelContribution = {\n id: 'javascript',\n label: 'JavaScript',\n language: 'javascript',\n loadKernel: async (): Promise<NotebookKernel> => new JavaScriptNotebookKernel(),\n};\n","import { html } from \"lit\";\nimport type { EditorInput } from \"@eclipse-lyra/core\";\nimport { File } from \"@eclipse-lyra/core\";\nimport { activeEditorSignal } from \"@eclipse-lyra/core\";\nimport type { ExecutionContext } from \"@eclipse-lyra/core\";\nimport { registerNotebookCatalog } from \"./notebook-catalog\";\nimport { NotebookData, isNotebookEditorLike } from \"./notebook-types\";\nimport { TARGET_NOTEBOOK_KERNELS } from \"./notebook-kernel-api\";\nimport { javascriptKernelContribution } from \"./javascript-kernel\";\n\nexport default ({ editorRegistry, commandRegistry, contributionRegistry }: any) => {\n registerNotebookCatalog();\n contributionRegistry.registerContribution(TARGET_NOTEBOOK_KERNELS, javascriptKernelContribution);\n\n const INITIAL_NOTEBOOK_CONTENT: NotebookData = {\n cells: [\n {\n cell_type: 'markdown',\n source: ['Press the **Run** button in the code cell below to execute it.'],\n metadata: {}\n },\n {\n cell_type: 'code',\n source: ['return \"Hello, World!\"'],\n execution_count: null,\n outputs: [],\n metadata: {}\n }\n ],\n metadata: { kernel: 'javascript' },\n nbformat: 4,\n nbformat_minor: 4\n };\n commandRegistry.registerHandler('notebook.runCell', {\n ranking: 10,\n canExecute: (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex;\n if (cellIndex !== undefined) {\n return cellIndex >= 0 && cellIndex < (activeEditor.notebook?.cells.length ?? 0);\n }\n return activeEditor.focusedCellIndex >= 0;\n }\n return false;\n },\n execute: async (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex ?? activeEditor.focusedCellIndex;\n if (cellIndex >= 0) {\n await activeEditor.executeCell(cellIndex);\n }\n }\n }\n });\n\n editorRegistry.registerEditorInputHandler({\n editorId: \"system.notebooeditor\",\n label: \"Jupyter Notebook\",\n icon: \"lyra jupyter\",\n lazyInit: () => import('./notebook-runtime'),\n canHandle: (input: any) => input instanceof File && input.getName().toLowerCase().endsWith(\".ipynb\"),\n handle: async (input: File) => {\n const editorInput = {\n title: input.getWorkspacePath(),\n data: input,\n key: input.getWorkspacePath(),\n icon: \"lyra jupyter\",\n state: {},\n } as EditorInput;\n editorInput.component = (id: string) => html`\n <lyra-notebook-editor id=\"${id}\" .input=${editorInput}></lyra-notebook-editor>`;\n return editorInput;\n },\n ranking: 100,\n });\n\n contributionRegistry.registerContribution('filebrowser.create', {\n label: 'Jupyter Notebook',\n icon: 'lyra jupyter',\n command: 'touch',\n params: {\n path: \"notebook.ipynb\",\n extension: '.ipynb',\n ask: true,\n contents: JSON.stringify(INITIAL_NOTEBOOK_CONTENT, null, 2)\n }\n });\n};\n\n\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-lyra/extension-notebook",
3
- "version": "0.7.64",
3
+ "version": "0.7.66",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"notebook-extension-De4Mcjwo.js","names":[],"sources":["../src/notebook-catalog.ts","../src/javascript-kernel.ts","../src/notebook-extension.ts"],"sourcesContent":["import type { CatalogContribution } from \"@eclipse-lyra/extension-catalog/api\";\nimport { registerCatalog } from \"@eclipse-lyra/extension-catalog/api\";\n\nconst NOTEBOOK_CATALOG: CatalogContribution = {\n label: \"Notebooks\",\n icon: \"lyra jupyter\",\n contributionId: \"catalog.notebooks\",\n items: [\n {\n label: \"JavaScript\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.javascript\",\n items: [\n { label: \"JavaScript basics\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/javascript-basics.ipynb\", import.meta.url).href } },\n ],\n },\n {\n label: \"DuckDB\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.duckdb\",\n items: [\n { label: \"DuckDB in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/duckdb-sample.ipynb\", import.meta.url).href } },\n ],\n },\n {\n label: \"PGlite\",\n icon: \"file-code\",\n contributionId: \"catalog.notebooks.pglite\",\n items: [\n { label: \"PostgreSQL in notebooks\", icon: \"lyra jupyter\", state: { url: new URL(\"./catalog/pglite-sample.ipynb\", import.meta.url).href } },\n ],\n },\n ],\n};\n\nexport function registerNotebookCatalog(): void {\n registerCatalog(NOTEBOOK_CATALOG);\n}\n","import { createJsRuntime, type JsRuntime } from '@eclipse-lyra/core';\nimport type { NotebookExecutionResult, NotebookKernel, NotebookKernelContribution } from './notebook-kernel-api';\n\nclass JavaScriptNotebookKernel implements NotebookKernel {\n readonly id = 'javascript';\n readonly label = 'JavaScript';\n readonly language = 'javascript';\n\n private runtime: JsRuntime | null = null;\n\n private getRuntime(): JsRuntime {\n if (!this.runtime) {\n this.runtime = createJsRuntime();\n }\n return this.runtime;\n }\n\n async getVersion(): Promise<string> {\n return 'JavaScript';\n }\n\n async execute(code: string): Promise<NotebookExecutionResult> {\n try {\n const result = await this.getRuntime().execute(code);\n if (result === undefined || result === null) {\n return {};\n }\n return { data: String(result) };\n } catch (err) {\n return { error: err instanceof Error ? err.message : String(err) };\n }\n }\n\n close(): void {\n if (this.runtime) {\n this.runtime.close();\n this.runtime = null;\n }\n }\n}\n\nexport const javascriptKernelContribution: NotebookKernelContribution = {\n id: 'javascript',\n label: 'JavaScript',\n language: 'javascript',\n loadKernel: async (): Promise<NotebookKernel> => new JavaScriptNotebookKernel(),\n};\n","import { html } from \"lit\";\nimport type { EditorInput } from \"@eclipse-lyra/core\";\nimport { File } from \"@eclipse-lyra/core\";\nimport { activeEditorSignal } from \"@eclipse-lyra/core\";\nimport type { ExecutionContext } from \"@eclipse-lyra/core\";\nimport { registerNotebookCatalog } from \"./notebook-catalog\";\nimport { NotebookData, isNotebookEditorLike } from \"./notebook-types\";\nimport { TARGET_NOTEBOOK_KERNELS } from \"./notebook-kernel-api\";\nimport { javascriptKernelContribution } from \"./javascript-kernel\";\n\nexport default ({ editorRegistry, commandRegistry, contributionRegistry }: any) => {\n registerNotebookCatalog();\n contributionRegistry.registerContribution(TARGET_NOTEBOOK_KERNELS, javascriptKernelContribution);\n\n const INITIAL_NOTEBOOK_CONTENT: NotebookData = {\n cells: [\n {\n cell_type: 'markdown',\n source: ['Press the **Run** button in the code cell below to execute it.'],\n metadata: {}\n },\n {\n cell_type: 'code',\n source: ['return \"Hello, World!\"'],\n execution_count: null,\n outputs: [],\n metadata: {}\n }\n ],\n metadata: { kernel: 'javascript' },\n nbformat: 4,\n nbformat_minor: 4\n };\n commandRegistry.registerHandler('notebook.runCell', {\n ranking: 10,\n canExecute: (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex;\n if (cellIndex !== undefined) {\n return cellIndex >= 0 && cellIndex < (activeEditor.notebook?.cells.length ?? 0);\n }\n return activeEditor.focusedCellIndex >= 0;\n }\n return false;\n },\n execute: async (context: ExecutionContext) => {\n const activeEditor = activeEditorSignal.get();\n if (isNotebookEditorLike(activeEditor)) {\n const cellIndex = context.params?.cellIndex ?? activeEditor.focusedCellIndex;\n if (cellIndex >= 0) {\n await activeEditor.executeCell(cellIndex);\n }\n }\n }\n });\n\n editorRegistry.registerEditorInputHandler({\n editorId: \"system.notebooeditor\",\n label: \"Jupyter Notebook\",\n icon: \"lyra jupyter\",\n lazyInit: () => import('./notebook-runtime'),\n canHandle: (input: any) => input instanceof File && input.getName().toLowerCase().endsWith(\".ipynb\"),\n handle: async (input: File) => {\n const editorInput = {\n title: input.getWorkspacePath(),\n data: input,\n key: input.getWorkspacePath(),\n icon: \"lyra jupyter\",\n state: {},\n } as EditorInput;\n editorInput.component = (id: string) => html`\n <lyra-notebook-editor id=\"${id}\" .input=${editorInput}></lyra-notebook-editor>`;\n return editorInput;\n },\n ranking: 100,\n });\n\n contributionRegistry.registerContribution('filebrowser.create', {\n label: 'Jupyter Notebook',\n icon: 'lyra jupyter',\n command: 'touch',\n params: {\n path: \"notebook.ipynb\",\n extension: '.ipynb',\n ask: true,\n contents: JSON.stringify(INITIAL_NOTEBOOK_CONTENT, null, 2)\n }\n });\n};\n\n\n"],"mappings":"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"}