@powerhousedao/builder-tools 5.0.3 → 5.0.4

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 (85) hide show
  1. package/dist/connect-utils/env-config.d.ts +110 -22
  2. package/dist/connect-utils/env-config.d.ts.map +1 -1
  3. package/dist/connect-utils/env-config.js +54 -11
  4. package/dist/connect-utils/env-config.js.map +1 -1
  5. package/dist/connect-utils/helpers.d.ts +1 -0
  6. package/dist/connect-utils/helpers.d.ts.map +1 -1
  7. package/dist/connect-utils/helpers.js +11 -0
  8. package/dist/connect-utils/helpers.js.map +1 -1
  9. package/dist/connect-utils/types.d.ts +1 -0
  10. package/dist/connect-utils/types.d.ts.map +1 -1
  11. package/dist/connect-utils/vite-config.d.ts.map +1 -1
  12. package/dist/connect-utils/vite-config.js +61 -22
  13. package/dist/connect-utils/vite-config.js.map +1 -1
  14. package/dist/connect-utils/vite-plugins/ph-external-packages.d.ts +1 -1
  15. package/dist/connect-utils/vite-plugins/ph-external-packages.d.ts.map +1 -1
  16. package/dist/connect-utils/vite-plugins/ph-external-packages.js +75 -69
  17. package/dist/connect-utils/vite-plugins/ph-external-packages.js.map +1 -1
  18. package/dist/document-model-editor/components/code-editors/constants.d.ts +3 -0
  19. package/dist/document-model-editor/components/code-editors/constants.d.ts.map +1 -0
  20. package/dist/document-model-editor/components/code-editors/constants.js +38 -0
  21. package/dist/document-model-editor/components/code-editors/constants.js.map +1 -0
  22. package/dist/document-model-editor/components/code-editors/factories.d.ts +4 -0
  23. package/dist/document-model-editor/components/code-editors/factories.d.ts.map +1 -0
  24. package/dist/document-model-editor/components/code-editors/factories.js +47 -0
  25. package/dist/document-model-editor/components/code-editors/factories.js.map +1 -0
  26. package/dist/document-model-editor/components/code-editors/graphql-editor.d.ts +2 -2
  27. package/dist/document-model-editor/components/code-editors/graphql-editor.d.ts.map +1 -1
  28. package/dist/document-model-editor/components/code-editors/graphql-editor.js +6 -2
  29. package/dist/document-model-editor/components/code-editors/graphql-editor.js.map +1 -1
  30. package/dist/document-model-editor/components/code-editors/hooks.d.ts +23 -0
  31. package/dist/document-model-editor/components/code-editors/hooks.d.ts.map +1 -0
  32. package/dist/document-model-editor/components/code-editors/hooks.js +59 -0
  33. package/dist/document-model-editor/components/code-editors/hooks.js.map +1 -0
  34. package/dist/document-model-editor/components/code-editors/json-editor.d.ts +2 -2
  35. package/dist/document-model-editor/components/code-editors/json-editor.d.ts.map +1 -1
  36. package/dist/document-model-editor/components/code-editors/json-editor.js +7 -4
  37. package/dist/document-model-editor/components/code-editors/json-editor.js.map +1 -1
  38. package/dist/document-model-editor/components/code-editors/linting.d.ts +6 -0
  39. package/dist/document-model-editor/components/code-editors/linting.d.ts.map +1 -0
  40. package/dist/document-model-editor/components/code-editors/linting.js +59 -0
  41. package/dist/document-model-editor/components/code-editors/linting.js.map +1 -0
  42. package/dist/document-model-editor/components/divider.js +1 -1
  43. package/dist/document-model-editor/components/divider.js.map +1 -1
  44. package/dist/document-model-editor/components/model-metadata-form.d.ts +3 -3
  45. package/dist/document-model-editor/components/model-metadata-form.d.ts.map +1 -1
  46. package/dist/document-model-editor/components/model-metadata-form.js +3 -3
  47. package/dist/document-model-editor/components/model-metadata-form.js.map +1 -1
  48. package/dist/document-model-editor/components/modules.d.ts +1 -1
  49. package/dist/document-model-editor/components/modules.d.ts.map +1 -1
  50. package/dist/document-model-editor/components/modules.js +1 -1
  51. package/dist/document-model-editor/components/modules.js.map +1 -1
  52. package/dist/document-model-editor/components/operation.d.ts.map +1 -1
  53. package/dist/document-model-editor/components/operation.js +2 -2
  54. package/dist/document-model-editor/components/operation.js.map +1 -1
  55. package/dist/document-model-editor/components/state-schemas.d.ts +1 -1
  56. package/dist/document-model-editor/components/state-schemas.d.ts.map +1 -1
  57. package/dist/document-model-editor/components/state-schemas.js +5 -5
  58. package/dist/document-model-editor/components/state-schemas.js.map +1 -1
  59. package/dist/document-model-editor/document-model-editor.stories.d.ts +2 -2
  60. package/dist/document-model-editor/document-model-editor.stories.d.ts.map +1 -1
  61. package/dist/document-model-editor/document-model-editor.stories.js +4 -4
  62. package/dist/document-model-editor/document-model-editor.stories.js.map +1 -1
  63. package/dist/document-model-editor/editor.d.ts +1 -1
  64. package/dist/document-model-editor/editor.d.ts.map +1 -1
  65. package/dist/document-model-editor/editor.js +6 -6
  66. package/dist/document-model-editor/editor.js.map +1 -1
  67. package/dist/document-model-editor/hooks/index.d.ts +3 -0
  68. package/dist/document-model-editor/hooks/index.d.ts.map +1 -0
  69. package/dist/document-model-editor/hooks/index.js +3 -0
  70. package/dist/document-model-editor/hooks/index.js.map +1 -0
  71. package/dist/document-model-editor/index.d.ts +1 -3
  72. package/dist/document-model-editor/index.d.ts.map +1 -1
  73. package/dist/document-model-editor/index.js +1 -3
  74. package/dist/document-model-editor/index.js.map +1 -1
  75. package/dist/document-model-editor/module.d.ts.map +1 -1
  76. package/dist/document-model-editor/module.js +2 -2
  77. package/dist/document-model-editor/module.js.map +1 -1
  78. package/dist/document-model-editor/schemas/inputs.d.ts +1 -1
  79. package/dist/style.css +1 -1
  80. package/dist/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +16 -7
  82. package/dist/document-model-editor/components/code-editors/utils.d.ts +0 -33
  83. package/dist/document-model-editor/components/code-editors/utils.d.ts.map +0 -1
  84. package/dist/document-model-editor/components/code-editors/utils.js +0 -193
  85. package/dist/document-model-editor/components/code-editors/utils.js.map +0 -1
@@ -1,14 +1,16 @@
1
- import { phExternalPackagesPlugin, stripVersionFromPackage, } from "@powerhousedao/builder-tools";
2
1
  import { getConfig } from "@powerhousedao/config/node";
3
2
  import { sentryVitePlugin } from "@sentry/vite-plugin";
4
3
  import tailwind from "@tailwindcss/vite";
5
4
  import react from "@vitejs/plugin-react";
6
5
  import { join } from "node:path";
6
+ import { readPackageSync } from "read-pkg";
7
7
  import { createLogger, loadEnv, } from "vite";
8
8
  import { createHtmlPlugin } from "vite-plugin-html";
9
9
  import { nodePolyfills } from "vite-plugin-node-polyfills";
10
10
  import svgr from "vite-plugin-svgr";
11
11
  import { loadConnectEnv, normalizeBasePath, setConnectEnv, } from "./env-config.js";
12
+ import { resolveConnectPackageJson, stripVersionFromPackage, } from "./helpers.js";
13
+ import { phExternalPackagesPlugin } from "./vite-plugins/ph-external-packages.js";
12
14
  export const connectClientConfig = {
13
15
  meta: [
14
16
  {
@@ -88,17 +90,30 @@ function viteOptionsToEnv(options) {
88
90
  }
89
91
  return optionsEnv;
90
92
  }
91
- function viteLogger(warningsToSilence) {
93
+ function viteLogger({ silence, }) {
92
94
  const logger = createLogger();
93
95
  const loggerWarn = logger.warn.bind(logger);
96
+ const loggerError = logger.error.bind(logger);
94
97
  logger.warn = (msg, options) => {
95
- if (warningsToSilence.some((warning) => msg.includes(warning))) {
98
+ if (silence?.warnings?.some((warning) => msg.includes(warning))) {
96
99
  return;
97
100
  }
98
101
  loggerWarn(msg, options);
99
102
  };
103
+ logger.error = (msg, options) => {
104
+ if (silence?.errors?.some((error) => msg.includes(error))) {
105
+ return;
106
+ }
107
+ loggerError(msg, options);
108
+ };
100
109
  return logger;
101
110
  }
111
+ function resolveConnectVersion() {
112
+ const connectPackageJson = resolveConnectPackageJson();
113
+ return connectPackageJson && "version" in connectPackageJson
114
+ ? connectPackageJson.version
115
+ : null;
116
+ }
102
117
  export function getConnectBaseViteConfig(options) {
103
118
  const mode = options.mode;
104
119
  const envDir = options.envDir ?? options.dirname;
@@ -111,8 +126,17 @@ export function getConnectBaseViteConfig(options) {
111
126
  optionsEnv,
112
127
  fileEnv,
113
128
  });
129
+ // if PH_CONNECT_VERSION is unknown, try to resolve it from the package.json
130
+ if (env.PH_CONNECT_VERSION === "unknown") {
131
+ const connectVersion = resolveConnectVersion();
132
+ if (connectVersion) {
133
+ env.PH_CONNECT_VERSION = connectVersion;
134
+ }
135
+ }
114
136
  // set the resolved env to process.env so it's loaded by vite
115
137
  setConnectEnv(env);
138
+ // load package.json
139
+ const packageJson = readPackageSync({ cwd: options.dirname });
116
140
  // load powerhouse config
117
141
  const phConfigPath = env.PH_CONFIG_PATH ?? join(options.dirname, "powerhouse.config.json");
118
142
  const phConfig = options.powerhouseConfig ?? getConfig(phConfigPath);
@@ -127,13 +151,9 @@ export function getConnectBaseViteConfig(options) {
127
151
  .map(stripVersionFromPackage)
128
152
  .filter((p) => p.length)),
129
153
  ];
130
- // if local package is provided and not disabled, add it to the packages to be loaded
131
- if (!env.PH_DISABLE_LOCAL_PACKAGE) {
132
- const localPackage = env.PH_LOCAL_PACKAGE ?? options.dirname;
133
- if (localPackage) {
134
- allPackages.push(localPackage);
135
- }
136
- }
154
+ const localPackage = !env.PH_DISABLE_LOCAL_PACKAGE
155
+ ? (env.PH_LOCAL_PACKAGE ?? options.dirname)
156
+ : undefined;
137
157
  // remove duplicates and empty strings
138
158
  const phPackages = [...new Set(allPackages.filter((p) => p.trim().length))];
139
159
  const authToken = env.PH_SENTRY_AUTH_TOKEN;
@@ -153,7 +173,7 @@ export function getConnectBaseViteConfig(options) {
153
173
  tailwind(),
154
174
  svgr(),
155
175
  react(),
156
- phExternalPackagesPlugin(phPackages),
176
+ phExternalPackagesPlugin(phPackages, localPackage),
157
177
  createHtmlPlugin({
158
178
  minify: false,
159
179
  inject: {
@@ -169,7 +189,7 @@ export function getConnectBaseViteConfig(options) {
169
189
  if (uploadSentrySourcemaps) {
170
190
  plugins.push(sentryVitePlugin({
171
191
  release: {
172
- name: release,
192
+ name: release ?? "unknown",
173
193
  inject: false, // prevent it from injecting the release id in the service worker code, this is done in 'src/app/sentry.ts' instead
174
194
  },
175
195
  authToken,
@@ -188,10 +208,15 @@ export function getConnectBaseViteConfig(options) {
188
208
  const isDebug = process.env.LOG_LEVEL === "debug" || env.PH_CONNECT_LOG_LEVEL === "debug";
189
209
  const customLogger = isDebug
190
210
  ? undefined
191
- : viteLogger([
192
- "@import must precede all other statements (besides @charset or empty @layer)",
193
- "hmr update",
194
- ]);
211
+ : viteLogger({
212
+ silence: {
213
+ warnings: [
214
+ "@import must precede all other statements (besides @charset or empty @layer)", // tailwindcss error when importing font file
215
+ ],
216
+ errors: ["Unterminated string literal"],
217
+ },
218
+ });
219
+ const watchTimeout = options.watchTimeout ?? env.PH_WATCH_TIMEOUT;
195
220
  const config = {
196
221
  base: basePath,
197
222
  customLogger,
@@ -201,15 +226,32 @@ export function getConnectBaseViteConfig(options) {
201
226
  exclude: ["@electric-sql/pglite"],
202
227
  },
203
228
  plugins,
229
+ resolve: {
230
+ alias: localPackage
231
+ ? {
232
+ [packageJson.name]: localPackage,
233
+ }
234
+ : undefined,
235
+ dedupe: ["react", "react-dom", "react/jsx-runtime"],
236
+ },
204
237
  build: {
205
- minify: false,
206
- sourcemap: true,
238
+ minify: true,
239
+ sourcemap: false,
207
240
  },
208
241
  server: {
209
242
  watch: env.PH_DISABLE_LOCAL_PACKAGE
210
243
  ? null
211
244
  : {
212
- ignored: ["**/.ph/**"],
245
+ ignored: [
246
+ "**/.ph/**",
247
+ "**/dist/**",
248
+ "**/node_modules/**",
249
+ "**/backup-documents/**",
250
+ ],
251
+ awaitWriteFinish: {
252
+ stabilityThreshold: watchTimeout,
253
+ pollInterval: 100,
254
+ },
213
255
  },
214
256
  fs: {
215
257
  strict: false,
@@ -219,9 +261,6 @@ export function getConnectBaseViteConfig(options) {
219
261
  worker: {
220
262
  format: "es",
221
263
  },
222
- resolve: {
223
- dedupe: ["react", "react-dom"], // needed when linked to the monorepo
224
- },
225
264
  };
226
265
  return config;
227
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../connect-utils/vite-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../connect-utils/vite-config.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function phExternalPackagesPlugin(phPackages: string[]): import("vite").Plugin<any>;
1
+ export declare function phExternalPackagesPlugin(phPackages: string[], localPackage?: string): import("vite").Plugin<any>;
2
2
  //# sourceMappingURL=ph-external-packages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ph-external-packages.d.ts","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/ph-external-packages.ts"],"names":[],"mappings":"AA8CA,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,8BA0E5D"}
1
+ {"version":3,"file":"ph-external-packages.d.ts","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/ph-external-packages.ts"],"names":[],"mappings":"AAgDA,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,CAAC,EAAE,MAAM,8BAoFtB"}
@@ -1,40 +1,61 @@
1
+ import { join } from "path";
1
2
  /**
2
3
  * Takes a list of Powerhouse project packages, by name or path and
3
4
  * returns a js module that exports those packages for use in Connect.
4
5
  */
5
- function makeImportScriptFromPackages(packages) {
6
- const imports = [];
7
- const moduleNames = [];
8
- let counter = 0;
9
- for (const packageName of packages) {
10
- const moduleName = `module${counter}`;
11
- moduleNames.push(moduleName);
12
- imports.push(`import * as ${moduleName} from '${packageName}';`);
13
- imports.push(`import '${packageName}/style.css';`);
14
- counter++;
6
+ function makeImportScriptFromPackages(packages, localPackage) {
7
+ const packageImports = packages.map((pkg) => ({
8
+ name: pkg,
9
+ js: pkg,
10
+ css: pkg + "/style.css",
11
+ }));
12
+ if (localPackage) {
13
+ packageImports.push({
14
+ name: localPackage,
15
+ js: join(localPackage, "/index.ts"),
16
+ css: join(localPackage, "/style.css"),
17
+ });
15
18
  }
16
- const exports = moduleNames.map((name, index) => `{
17
- id: "${packages[index]}",
18
- ...${name},
19
- }`);
20
- const exportsString = exports.length
21
- ? `
22
- ${exports.join(",\n")}
23
- `
24
- : "";
25
- const exportStatement = `export default [${exportsString}];`;
26
- // Add HMR boundary to prevent page reload
27
- const hmrCode = `
28
- // HMR boundary - accept updates to prevent full page reload
29
- if (import.meta.hot) {
30
- import.meta.hot.accept();
31
- }`;
32
- const fileContent = `${imports.join("\n")}\n\n${exportStatement}\n${hmrCode}`;
33
- return fileContent;
19
+ return `
20
+ export async function loadExternalPackages() {
21
+ const modules = [];
22
+ ${packageImports
23
+ .map((pkg, index) => `try {
24
+ const module = await import('${pkg.js}');
25
+ await import('${pkg.css}');
26
+ modules.push({
27
+ id: 'module${index}',
28
+ ...module,
29
+ });
30
+ } catch (error) {
31
+ console.error("Error loading package: '${pkg.name}'", error);
32
+ }`)
33
+ .join("\n")}
34
+ return modules;
35
+ }
36
+ `;
34
37
  }
35
- export function phExternalPackagesPlugin(phPackages) {
38
+ export function phExternalPackagesPlugin(phPackages, localPackage) {
36
39
  const virtualModuleId = "virtual:ph:external-packages";
37
40
  const resolvedVirtualModuleId = "\0" + virtualModuleId;
41
+ function isSameModule(moduleA, moduleB) {
42
+ return (moduleA === moduleB ||
43
+ moduleA.id === moduleB.id ||
44
+ moduleA.url === moduleB.url ||
45
+ (moduleA.file && moduleA.file === moduleB.file));
46
+ }
47
+ function isImported(module, rootModule) {
48
+ if (isSameModule(module, rootModule))
49
+ return true;
50
+ const importers = module.importers
51
+ .values()
52
+ .filter((m) => m.file && !m.file.endsWith(".html") && !m.file.endsWith(".css"));
53
+ if (importers.some((m) => isImported(m, rootModule)))
54
+ return true;
55
+ if (importers.some((m) => isImported(m, rootModule)))
56
+ return true;
57
+ return false;
58
+ }
38
59
  const plugin = {
39
60
  name: "ph-external-packages",
40
61
  enforce: "pre",
@@ -45,51 +66,36 @@ export function phExternalPackagesPlugin(phPackages) {
45
66
  },
46
67
  load(id) {
47
68
  if (id === resolvedVirtualModuleId) {
48
- return makeImportScriptFromPackages(phPackages);
69
+ return makeImportScriptFromPackages(phPackages, localPackage);
49
70
  }
50
71
  },
51
- handleHotUpdate({ file, server, modules }) {
52
- // Check if the changed file is part of any local package
53
- const isLocalPackageFile = phPackages.some((pkg) => {
54
- if (pkg.startsWith("/") || pkg.startsWith(".")) {
55
- return file.startsWith(pkg);
72
+ handleHotUpdate({ file, server, modules, timestamp }) {
73
+ const virtualModule = server.moduleGraph.getModuleById(resolvedVirtualModuleId);
74
+ if (!virtualModule) {
75
+ return [];
76
+ }
77
+ let refreshVirtualModule = false;
78
+ const modulesToRefresh = [];
79
+ for (const module of modules) {
80
+ if (!isImported(module, virtualModule)) {
81
+ // returns only modules that are actually imported by Connect
82
+ continue;
83
+ }
84
+ // lets react modules be handled by react-refresh
85
+ if (module.file?.endsWith(".tsx") || module.file?.endsWith(".jsx")) {
86
+ modulesToRefresh.push(module);
56
87
  }
57
- return false;
58
- });
59
- if (isLocalPackageFile) {
60
- const virtualModule = server.moduleGraph.getModuleById(resolvedVirtualModuleId);
61
- if (virtualModule) {
62
- // Invalidate the virtual module so it re-executes with new imports
63
- server.moduleGraph.invalidateModule(virtualModule);
64
- // Notify clients about package updates via WebSocket
65
- const clientUrl = `/@id/${resolvedVirtualModuleId}`;
66
- server.ws.send("studio:external-packages-updated", {
67
- url: clientUrl,
68
- timestamp: Date.now().toString(),
69
- });
70
- // Deduplicate modules by file path, preferring modules with defined IDs
71
- const modulesByFile = new Map();
72
- for (const module of modules) {
73
- if (module.file) {
74
- const existing = modulesByFile.get(module.file);
75
- // Prefer modules with defined IDs over ones without IDs
76
- if (!existing || (module.id && !existing.id)) {
77
- modulesByFile.set(module.file, module);
78
- }
79
- }
80
- }
81
- const deduplicatedModules = Array.from(modulesByFile.values()).filter((m) => m.id && m.id !== resolvedVirtualModuleId);
82
- // For React components (.tsx, .jsx), let Fast Refresh handle them
83
- const isReactComponent = file.endsWith(".tsx") || file.endsWith(".jsx");
84
- if (isReactComponent) {
85
- return [...deduplicatedModules, virtualModule];
86
- }
87
- else {
88
- return [virtualModule];
89
- }
88
+ else {
89
+ // invalidates non-react modules to trigger HMR
90
+ server.moduleGraph.invalidateModule(module, new Set(), timestamp, true);
90
91
  }
92
+ refreshVirtualModule = true;
93
+ }
94
+ // if a module was invalidated then triggers HMR on the external packages module
95
+ if (refreshVirtualModule) {
96
+ modulesToRefresh.push(virtualModule);
91
97
  }
92
- return undefined;
98
+ return modulesToRefresh;
93
99
  },
94
100
  };
95
101
  return plugin;
@@ -1 +1 @@
1
- {"version":3,"file":"ph-external-packages.js","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/ph-external-packages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ph-external-packages.js","sourceRoot":"","sources":["../../../connect-utils/vite-plugins/ph-external-packages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const baseKeymap: import("@codemirror/view").KeyBinding[];
2
+ export declare const baseEditorExtensions: import("@codemirror/state").Extension[];
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/constants.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,UAAU,yCAStB,CAAC;AAEF,eAAO,MAAM,oBAAoB,yCAmBhC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { autocompletion, closeBrackets, closeBracketsKeymap, completionKeymap, } from "@codemirror/autocomplete";
2
+ import { defaultKeymap, history, historyKeymap, indentWithTab, } from "@codemirror/commands";
3
+ import { bracketMatching, defaultHighlightStyle, foldGutter, foldKeymap, indentOnInput, syntaxHighlighting, } from "@codemirror/language";
4
+ import { lintKeymap } from "@codemirror/lint";
5
+ import { highlightSelectionMatches, searchKeymap } from "@codemirror/search";
6
+ import { EditorState } from "@codemirror/state";
7
+ import { crosshairCursor, drawSelection, dropCursor, EditorView, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, lineNumbers, rectangularSelection, } from "@codemirror/view";
8
+ export const baseKeymap = [
9
+ ...closeBracketsKeymap,
10
+ ...defaultKeymap,
11
+ ...searchKeymap,
12
+ ...historyKeymap,
13
+ ...foldKeymap,
14
+ ...completionKeymap,
15
+ ...lintKeymap,
16
+ indentWithTab,
17
+ ];
18
+ export const baseEditorExtensions = [
19
+ lineNumbers(),
20
+ highlightActiveLineGutter(),
21
+ highlightSpecialChars(),
22
+ history(),
23
+ foldGutter(),
24
+ drawSelection(),
25
+ dropCursor(),
26
+ EditorState.allowMultipleSelections.of(true),
27
+ indentOnInput(),
28
+ syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
29
+ bracketMatching(),
30
+ closeBrackets(),
31
+ autocompletion(),
32
+ rectangularSelection(),
33
+ crosshairCursor(),
34
+ highlightActiveLine(),
35
+ highlightSelectionMatches(),
36
+ EditorView.lineWrapping,
37
+ ];
38
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,aAAa,EACb,OAAO,EACP,aAAa,EACb,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,mBAAmB;IACtB,GAAG,aAAa;IAChB,GAAG,YAAY;IACf,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,gBAAgB;IACnB,GAAG,UAAU;IACb,aAAa;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE;IACb,yBAAyB,EAAE;IAC3B,qBAAqB,EAAE;IACvB,OAAO,EAAE;IACT,UAAU,EAAE;IACZ,aAAa,EAAE;IACf,UAAU,EAAE;IACZ,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC;IAC5C,aAAa,EAAE;IACf,kBAAkB,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7D,eAAe,EAAE;IACjB,aAAa,EAAE;IACf,cAAc,EAAE;IAChB,oBAAoB,EAAE;IACtB,eAAe,EAAE;IACjB,mBAAmB,EAAE;IACrB,yBAAyB,EAAE;IAC3B,UAAU,CAAC,YAAY;CACxB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function makeUpdateHandler(readonly: boolean | undefined, timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>, updateDocumentInModel?: (newDoc: string) => void): import("@codemirror/state").Extension;
2
+ export declare function makeFocusHandler(readonly: boolean | undefined, timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>, updateDocumentInModel?: (newDoc: string) => void): import("@codemirror/state").Extension;
3
+ export declare function makePasteHandler(readonly: boolean | undefined, timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>, updateDocumentInModel?: (newDoc: string) => void): import("@codemirror/state").Extension;
4
+ //# sourceMappingURL=factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/factories.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EACzD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,yCAoBjD;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EACzD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,yCAWjD;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EACzD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,yCAcjD"}
@@ -0,0 +1,47 @@
1
+ import { forceLinting } from "@codemirror/lint";
2
+ import { Transaction } from "@codemirror/state";
3
+ import { EditorView } from "@codemirror/view";
4
+ import { updateTimeout } from "../../constants/documents.js";
5
+ export function makeUpdateHandler(readonly, timeoutRef, updateDocumentInModel) {
6
+ return EditorView.updateListener.of((update) => {
7
+ if (!!readonly || !update.docChanged)
8
+ return;
9
+ if (update.transactions.some((tr) => tr.annotation(Transaction.userEvent) === "external"))
10
+ return;
11
+ const newDoc = update.state.doc.toString();
12
+ if (timeoutRef.current) {
13
+ clearTimeout(timeoutRef.current);
14
+ }
15
+ timeoutRef.current = setTimeout(() => {
16
+ updateDocumentInModel?.(newDoc);
17
+ }, updateTimeout);
18
+ });
19
+ }
20
+ export function makeFocusHandler(readonly, timeoutRef, updateDocumentInModel) {
21
+ return EditorView.focusChangeEffect.of((state, focusing) => {
22
+ if (!!readonly || focusing)
23
+ return null;
24
+ if (timeoutRef.current) {
25
+ clearTimeout(timeoutRef.current);
26
+ }
27
+ const newDoc = state.doc.toString();
28
+ updateDocumentInModel?.(newDoc);
29
+ return null;
30
+ });
31
+ }
32
+ export function makePasteHandler(readonly, timeoutRef, updateDocumentInModel) {
33
+ return EditorView.domEventHandlers({
34
+ paste: (event, view) => {
35
+ if (readonly)
36
+ return false;
37
+ const newDoc = view.state.doc.toString();
38
+ if (timeoutRef.current) {
39
+ clearTimeout(timeoutRef.current);
40
+ }
41
+ updateDocumentInModel?.(newDoc);
42
+ forceLinting(view);
43
+ return false;
44
+ },
45
+ });
46
+ }
47
+ //# sourceMappingURL=factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,UAAU,iBAAiB,CAC/B,QAA6B,EAC7B,UAAyD,EACzD,qBAAgD;IAEhD,OAAO,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAkB,EAAE,EAAE;QACzD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QAC7C,IACE,MAAM,CAAC,YAAY,CAAC,IAAI,CACtB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,UAAU,CAC5D;YAED,OAAO;QAET,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAE3C,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAA6B,EAC7B,UAAyD,EACzD,qBAAgD;IAEhD,OAAO,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACzD,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAA6B,EAC7B,UAAyD,EACzD,qBAAgD;IAEhD,OAAO,UAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,IAAI,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YACD,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -5,6 +5,6 @@ type Props = {
5
5
  updateDocumentInModel?: (newDoc: string) => void;
6
6
  customLinter?: (doc: string) => Diagnostic[];
7
7
  };
8
- export declare const GraphqlEditor: import("react").NamedExoticComponent<Props>;
9
- export {};
8
+ declare const GraphqlEditor: import("react").NamedExoticComponent<Props>;
9
+ export default GraphqlEditor;
10
10
  //# sourceMappingURL=graphql-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-editor.d.ts","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/graphql-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAsBnD,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,aAAa,6CAoFxB,CAAC"}
1
+ {"version":3,"file":"graphql-editor.d.ts","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/graphql-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAuBnD,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;CAC9C,CAAC;AAEF,QAAA,MAAM,aAAa,6CAoFjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -7,8 +7,11 @@ import { buildSchema } from "graphql";
7
7
  import { memo, useEffect, useRef } from "react";
8
8
  import { ayuLight } from "thememirror";
9
9
  import { useSchemaContext } from "../../context/schema-context.js";
10
- import { baseEditorExtensions, baseKeymap, makeFocusHandler, makeLinter, makePasteHandler, makeUpdateHandler, useDocumentSync, useEditorCleanup, useEditorRefs, useHandlerReconfiguration, } from "./utils.js";
11
- export const GraphqlEditor = memo(function GraphqlEditor(props) {
10
+ import { baseEditorExtensions, baseKeymap } from "./constants.js";
11
+ import { makeFocusHandler, makePasteHandler, makeUpdateHandler, } from "./factories.js";
12
+ import { useDocumentSync, useEditorCleanup, useEditorRefs, useHandlerReconfiguration, } from "./hooks.js";
13
+ import { makeLinter } from "./linting.js";
14
+ const GraphqlEditor = memo(function GraphqlEditor(props) {
12
15
  const { doc, readonly = false, updateDocumentInModel, customLinter } = props;
13
16
  const { editorRef, viewRef, updateListenerCompartment, focusHandlerCompartment, pasteHandlerCompartment, timeoutRef, } = useEditorRefs();
14
17
  // GraphQL-specific refs
@@ -66,4 +69,5 @@ export const GraphqlEditor = memo(function GraphqlEditor(props) {
66
69
  useDocumentSync(viewRef.current, doc);
67
70
  return _jsx("div", { ref: editorRef });
68
71
  });
72
+ export default GraphqlEditor;
69
73
  //# sourceMappingURL=graphql-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-editor.js","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/graphql-editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql-editor.js","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/graphql-editor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Compartment } from "@codemirror/state";
2
+ import type { EditorView } from "@codemirror/view";
3
+ export type EditorConfig = {
4
+ doc: string;
5
+ readonly?: boolean;
6
+ updateDocumentInModel?: (newDoc: string) => void;
7
+ };
8
+ export declare function useEditorRefs(): {
9
+ editorRef: import("react").RefObject<HTMLDivElement | null>;
10
+ viewRef: import("react").RefObject<EditorView | null>;
11
+ updateListenerCompartment: import("react").RefObject<Compartment>;
12
+ focusHandlerCompartment: import("react").RefObject<Compartment>;
13
+ pasteHandlerCompartment: import("react").RefObject<Compartment>;
14
+ timeoutRef: import("react").RefObject<NodeJS.Timeout | null>;
15
+ };
16
+ export declare function useEditorCleanup(viewRef: React.MutableRefObject<EditorView | null>): void;
17
+ export declare function useHandlerReconfiguration(view: EditorView | null, readonly: boolean | undefined, timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>, updateDocumentInModel: ((newDoc: string) => void) | undefined, compartments: {
18
+ updateListener: Compartment;
19
+ focusHandler: Compartment;
20
+ pasteHandler: Compartment;
21
+ }): void;
22
+ export declare function useDocumentSync(view: EditorView | null, doc: string): void;
23
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../document-model-editor/components/code-editors/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,wBAAgB,aAAa;;;;;;;EAgB5B;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,QAUnD;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EACzD,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,EAC7D,YAAY,EAAE;IACZ,cAAc,EAAE,WAAW,CAAC;IAC5B,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,WAAW,CAAC;CAC3B,QAmBF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,QAYnE"}