algraf-editor 0.67.0 → 0.68.1
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/README.md +13 -1
- package/dist/index.cjs +22 -8
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +22 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# algraf-editor
|
|
2
2
|
|
|
3
|
-
Reusable Monaco and React editor integration for Algraf `0.
|
|
3
|
+
Reusable Monaco and React editor integration for Algraf `0.68.x` browser hosts.
|
|
4
4
|
|
|
5
5
|
The package owns editor wiring only: language registration, TextMate grammar
|
|
6
6
|
setup, the default light theme, marker conversion, Monaco providers, structural
|
|
@@ -16,10 +16,22 @@ cross-repo development:
|
|
|
16
16
|
```ts
|
|
17
17
|
import { AlgrafEditor } from "algraf-editor";
|
|
18
18
|
import { loadAlgrafRuntime } from "algraf-wasm";
|
|
19
|
+
import EditorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker";
|
|
20
|
+
import onigasmWasmUrl from "onigasm/lib/onigasm.wasm?url";
|
|
19
21
|
|
|
20
22
|
const runtime = await loadAlgrafRuntime({ wasmUrl: "/wasm/algraf.wasm" });
|
|
23
|
+
|
|
24
|
+
const setupOptions = {
|
|
25
|
+
createEditorWorker: () => new EditorWorker(),
|
|
26
|
+
onigasmWasmUrl,
|
|
27
|
+
};
|
|
21
28
|
```
|
|
22
29
|
|
|
30
|
+
The editor package keeps Vite-specific `?worker` and `?url` imports out of its
|
|
31
|
+
published `dist/` entrypoints. Vite hosts should import those assets in the app
|
|
32
|
+
and pass them through `setupOptions`; other bundlers can provide equivalent
|
|
33
|
+
worker factories and asset URLs.
|
|
34
|
+
|
|
23
35
|
Use packed mode before publishing by running `npm pack --dry-run` in
|
|
24
36
|
`packages/wasm` and `editors/monaco`, then inspecting the file lists for
|
|
25
37
|
`dist/`, declarations, README, package metadata, and editor assets.
|
package/dist/index.cjs
CHANGED
|
@@ -49,11 +49,9 @@ var import_react = __toESM(require("react"), 1);
|
|
|
49
49
|
var monaco2 = __toESM(require("monaco-editor/esm/vs/editor/editor.api"), 1);
|
|
50
50
|
var import_editor_main = require("monaco-editor/min/vs/editor/editor.main.css");
|
|
51
51
|
var import_hoverContribution = require("monaco-editor/esm/vs/editor/contrib/hover/browser/hoverContribution");
|
|
52
|
-
var import_editor = __toESM(require("monaco-editor/esm/vs/editor/editor.worker?worker"), 1);
|
|
53
52
|
var import_monaco_editor_textmate = require("monaco-editor-textmate");
|
|
54
53
|
var import_monaco_textmate = require("monaco-textmate");
|
|
55
54
|
var import_onigasm = require("onigasm");
|
|
56
|
-
var import_onigasm2 = __toESM(require("onigasm/lib/onigasm.wasm?url"), 1);
|
|
57
55
|
|
|
58
56
|
// assets/algraf.tmLanguage.json
|
|
59
57
|
var algraf_tmLanguage_default = {
|
|
@@ -986,11 +984,11 @@ function registerAlgrafLanguage(options = {}) {
|
|
|
986
984
|
}
|
|
987
985
|
async function setupAlgrafMonacoOnce(options) {
|
|
988
986
|
if (options.configureWorker !== false) {
|
|
989
|
-
configureMonacoWorker();
|
|
987
|
+
configureMonacoWorker(options);
|
|
990
988
|
}
|
|
991
989
|
registerAlgrafLanguage(options);
|
|
992
990
|
defineAlgrafTheme(options.themeName ?? ALGRAF_THEME_NAME, options.theme ?? defaultAlgrafTheme());
|
|
993
|
-
await loadOnigasmOnce(options
|
|
991
|
+
await loadOnigasmOnce(resolveOnigasmWasmUrl(options));
|
|
994
992
|
const registry = new import_monaco_textmate.Registry({
|
|
995
993
|
getGrammarDefinition: async () => ({
|
|
996
994
|
format: "json",
|
|
@@ -1003,11 +1001,27 @@ async function setupAlgrafMonacoOnce(options) {
|
|
|
1003
1001
|
/* @__PURE__ */ new Map([[options.languageId ?? ALGRAF_LANGUAGE_ID, options.scopeName ?? ALGRAF_SCOPE_NAME]])
|
|
1004
1002
|
);
|
|
1005
1003
|
}
|
|
1006
|
-
function configureMonacoWorker() {
|
|
1004
|
+
function configureMonacoWorker(options) {
|
|
1007
1005
|
const target = globalThis;
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
}
|
|
1006
|
+
if (target.MonacoEnvironment?.getWorker) {
|
|
1007
|
+
return;
|
|
1008
|
+
}
|
|
1009
|
+
const createEditorWorker = options.createEditorWorker;
|
|
1010
|
+
if (!createEditorWorker) {
|
|
1011
|
+
throw new Error(
|
|
1012
|
+
"algraf-editor requires setupAlgrafMonaco({ createEditorWorker }) unless configureWorker is false."
|
|
1013
|
+
);
|
|
1014
|
+
}
|
|
1015
|
+
target.MonacoEnvironment = {
|
|
1016
|
+
...target.MonacoEnvironment,
|
|
1017
|
+
getWorker: () => createEditorWorker()
|
|
1018
|
+
};
|
|
1019
|
+
}
|
|
1020
|
+
function resolveOnigasmWasmUrl(options) {
|
|
1021
|
+
if (options.onigasmWasmUrl) {
|
|
1022
|
+
return options.onigasmWasmUrl;
|
|
1023
|
+
}
|
|
1024
|
+
throw new Error("algraf-editor requires setupAlgrafMonaco({ onigasmWasmUrl }) for TextMate grammar loading.");
|
|
1011
1025
|
}
|
|
1012
1026
|
function loadOnigasmOnce(url) {
|
|
1013
1027
|
onigasmPromise ?? (onigasmPromise = (0, import_onigasm.loadWASM)(url).catch((error) => {
|
package/dist/index.d.cts
CHANGED
|
@@ -122,6 +122,7 @@ interface SetupAlgrafMonacoOptions {
|
|
|
122
122
|
grammar?: unknown;
|
|
123
123
|
languageConfiguration?: monaco.languages.LanguageConfiguration;
|
|
124
124
|
onigasmWasmUrl?: string;
|
|
125
|
+
createEditorWorker?: () => Worker | Promise<Worker>;
|
|
125
126
|
configureWorker?: boolean;
|
|
126
127
|
}
|
|
127
128
|
declare function AlgrafEditor({ value, files, diagnostics, runtime, onChange, modelUri, languageId, themeName, theme, className, editorClassName, options, setupOptions, }: AlgrafEditorProps): React.ReactElement;
|
package/dist/index.d.ts
CHANGED
|
@@ -122,6 +122,7 @@ interface SetupAlgrafMonacoOptions {
|
|
|
122
122
|
grammar?: unknown;
|
|
123
123
|
languageConfiguration?: monaco.languages.LanguageConfiguration;
|
|
124
124
|
onigasmWasmUrl?: string;
|
|
125
|
+
createEditorWorker?: () => Worker | Promise<Worker>;
|
|
125
126
|
configureWorker?: boolean;
|
|
126
127
|
}
|
|
127
128
|
declare function AlgrafEditor({ value, files, diagnostics, runtime, onChange, modelUri, languageId, themeName, theme, className, editorClassName, options, setupOptions, }: AlgrafEditorProps): React.ReactElement;
|
package/dist/index.mjs
CHANGED
|
@@ -3,11 +3,9 @@ import React from "react";
|
|
|
3
3
|
import * as monaco2 from "monaco-editor/esm/vs/editor/editor.api";
|
|
4
4
|
import "monaco-editor/min/vs/editor/editor.main.css";
|
|
5
5
|
import "monaco-editor/esm/vs/editor/contrib/hover/browser/hoverContribution";
|
|
6
|
-
import EditorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker";
|
|
7
6
|
import { wireTmGrammars } from "monaco-editor-textmate";
|
|
8
7
|
import { Registry } from "monaco-textmate";
|
|
9
8
|
import { loadWASM as loadOnigasm } from "onigasm";
|
|
10
|
-
import onigasmWasmUrl from "onigasm/lib/onigasm.wasm?url";
|
|
11
9
|
|
|
12
10
|
// assets/algraf.tmLanguage.json
|
|
13
11
|
var algraf_tmLanguage_default = {
|
|
@@ -940,11 +938,11 @@ function registerAlgrafLanguage(options = {}) {
|
|
|
940
938
|
}
|
|
941
939
|
async function setupAlgrafMonacoOnce(options) {
|
|
942
940
|
if (options.configureWorker !== false) {
|
|
943
|
-
configureMonacoWorker();
|
|
941
|
+
configureMonacoWorker(options);
|
|
944
942
|
}
|
|
945
943
|
registerAlgrafLanguage(options);
|
|
946
944
|
defineAlgrafTheme(options.themeName ?? ALGRAF_THEME_NAME, options.theme ?? defaultAlgrafTheme());
|
|
947
|
-
await loadOnigasmOnce(options
|
|
945
|
+
await loadOnigasmOnce(resolveOnigasmWasmUrl(options));
|
|
948
946
|
const registry = new Registry({
|
|
949
947
|
getGrammarDefinition: async () => ({
|
|
950
948
|
format: "json",
|
|
@@ -957,11 +955,27 @@ async function setupAlgrafMonacoOnce(options) {
|
|
|
957
955
|
/* @__PURE__ */ new Map([[options.languageId ?? ALGRAF_LANGUAGE_ID, options.scopeName ?? ALGRAF_SCOPE_NAME]])
|
|
958
956
|
);
|
|
959
957
|
}
|
|
960
|
-
function configureMonacoWorker() {
|
|
958
|
+
function configureMonacoWorker(options) {
|
|
961
959
|
const target = globalThis;
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
}
|
|
960
|
+
if (target.MonacoEnvironment?.getWorker) {
|
|
961
|
+
return;
|
|
962
|
+
}
|
|
963
|
+
const createEditorWorker = options.createEditorWorker;
|
|
964
|
+
if (!createEditorWorker) {
|
|
965
|
+
throw new Error(
|
|
966
|
+
"algraf-editor requires setupAlgrafMonaco({ createEditorWorker }) unless configureWorker is false."
|
|
967
|
+
);
|
|
968
|
+
}
|
|
969
|
+
target.MonacoEnvironment = {
|
|
970
|
+
...target.MonacoEnvironment,
|
|
971
|
+
getWorker: () => createEditorWorker()
|
|
972
|
+
};
|
|
973
|
+
}
|
|
974
|
+
function resolveOnigasmWasmUrl(options) {
|
|
975
|
+
if (options.onigasmWasmUrl) {
|
|
976
|
+
return options.onigasmWasmUrl;
|
|
977
|
+
}
|
|
978
|
+
throw new Error("algraf-editor requires setupAlgrafMonaco({ onigasmWasmUrl }) for TextMate grammar loading.");
|
|
965
979
|
}
|
|
966
980
|
function loadOnigasmOnce(url) {
|
|
967
981
|
onigasmPromise ?? (onigasmPromise = loadOnigasm(url).catch((error) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "algraf-editor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.68.1",
|
|
4
4
|
"description": "Monaco and React editor integration for Algraf browser hosts.",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"pack:local": "mkdir -p ../../artifacts && npm pack --pack-destination ../../artifacts"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"algraf-wasm": "0.
|
|
37
|
+
"algraf-wasm": "0.68.x",
|
|
38
38
|
"monaco-editor": "^0.55.1",
|
|
39
39
|
"monaco-editor-textmate": "^4.0.0",
|
|
40
40
|
"monaco-textmate": "^3.0.1",
|