@nocturnium/svelte-ide 1.0.0 → 1.0.2

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 (96) hide show
  1. package/README.md +43 -47
  2. package/dist/components/agents/AgentActivityPanel.svelte +3 -1
  3. package/dist/components/agents/AgentAvatar.svelte +127 -35
  4. package/dist/components/agents/AgentCursor.svelte +15 -5
  5. package/dist/components/agents/AgentPresenceBar.svelte +7 -2
  6. package/dist/components/ai/AIConversationList.svelte +39 -34
  7. package/dist/components/ai/AIInlineEdit.svelte +1 -3
  8. package/dist/components/ai/AIMessage.svelte +5 -5
  9. package/dist/components/ai/AIMessageActions.svelte +18 -3
  10. package/dist/components/ai/AIMessageContent.svelte +22 -20
  11. package/dist/components/ai/AIPanel.svelte +17 -9
  12. package/dist/components/ai/AISuggestionWidget.svelte +1 -3
  13. package/dist/components/ai/AIToolCallDisplay.svelte +10 -14
  14. package/dist/components/core/Badge.svelte +9 -1
  15. package/dist/components/core/ConnectionStatus.svelte +73 -68
  16. package/dist/components/core/ErrorBoundary.svelte +56 -56
  17. package/dist/components/core/ErrorBoundary.svelte.d.ts +5 -5
  18. package/dist/components/core/Icon.svelte +22 -11
  19. package/dist/components/core/ResizeHandle.svelte +1 -1
  20. package/dist/components/core/Tooltip.svelte +1 -7
  21. package/dist/components/editor/AIFocusLayer.svelte +15 -7
  22. package/dist/components/editor/Breadcrumbs.svelte +18 -6
  23. package/dist/components/editor/BreakpointLayer.svelte +51 -60
  24. package/dist/components/editor/CognitiveLoadMeter.svelte +4 -2
  25. package/dist/components/editor/CollaborativeEditor.svelte +1 -5
  26. package/dist/components/editor/CommandPalette.svelte +1 -4
  27. package/dist/components/editor/ComplexityLayer.svelte +8 -6
  28. package/dist/components/editor/ConflictZoneLayer.svelte +2 -8
  29. package/dist/components/editor/ContextLens.svelte +1 -4
  30. package/dist/components/editor/CustomEditor.svelte +85 -41
  31. package/dist/components/editor/DebugConsole.svelte +8 -17
  32. package/dist/components/editor/EchoCursorLayer.svelte +3 -1
  33. package/dist/components/editor/EditorGutter.svelte +8 -2
  34. package/dist/components/editor/EditorLines.svelte +6 -3
  35. package/dist/components/editor/EditorPane.svelte +1 -6
  36. package/dist/components/editor/EditorSelections.svelte +29 -11
  37. package/dist/components/editor/FileExplorer.svelte +26 -4
  38. package/dist/components/editor/FileIcon.svelte +3 -1
  39. package/dist/components/editor/FindReplace.svelte +16 -4
  40. package/dist/components/editor/GhostBracketLayer.svelte +2 -2
  41. package/dist/components/editor/GitBlameLayer.svelte +2 -1
  42. package/dist/components/editor/InlineDiagnosticsLayer.svelte +4 -13
  43. package/dist/components/editor/InlineDiffLayer.svelte +18 -9
  44. package/dist/components/editor/Minimap.svelte +16 -9
  45. package/dist/components/editor/PluginPreviewSandbox.svelte +3 -2
  46. package/dist/components/editor/ProblemsPanel.svelte +11 -35
  47. package/dist/components/editor/QuickActionsMenu.svelte +5 -14
  48. package/dist/components/editor/SnippetPalette.svelte +11 -12
  49. package/dist/components/editor/StructureMap.svelte +2 -1
  50. package/dist/components/editor/SymbolOutline.svelte +14 -19
  51. package/dist/components/editor/TimelineScrubber.svelte +7 -6
  52. package/dist/components/editor/core/complexity-analyzer.js +42 -12
  53. package/dist/components/editor/core/conflict-predictor.js +2 -4
  54. package/dist/components/editor/core/folding.d.ts +9 -0
  55. package/dist/components/editor/core/folding.js +40 -5
  56. package/dist/components/editor/core/multi-cursor.js +4 -8
  57. package/dist/components/editor/core/navigation.js +2 -6
  58. package/dist/components/editor/core/quick-actions.js +22 -17
  59. package/dist/components/editor/core/search.js +2 -6
  60. package/dist/components/editor/core/semantic-analyzer.js +1 -3
  61. package/dist/components/editor/core/snippet-manager.js +4 -3
  62. package/dist/components/editor/core/state.js +2 -2
  63. package/dist/components/editor/core/timeline.js +1 -3
  64. package/dist/components/editor/editor-input.js +9 -6
  65. package/dist/components/editor/editor-multicursor.js +2 -2
  66. package/dist/components/editor/tokenizer/languages/css.js +146 -24
  67. package/dist/components/editor/tokenizer/languages/go.js +76 -13
  68. package/dist/components/editor/tokenizer/languages/javascript.d.ts +13 -2
  69. package/dist/components/editor/tokenizer/languages/javascript.js +278 -84
  70. package/dist/components/editor/tokenizer/languages/python.js +116 -19
  71. package/dist/components/editor/tokenizer/languages/svelte.js +20 -7
  72. package/dist/components/layout/IDELayout.svelte +6 -2
  73. package/dist/components/layout/StatusBar.svelte +32 -20
  74. package/dist/components/lsp/AutocompleteWidget.svelte +19 -19
  75. package/dist/components/lsp/DiagnosticMarker.svelte +61 -52
  76. package/dist/components/lsp/DiagnosticsPanel.svelte +45 -27
  77. package/dist/components/lsp/HoverTooltip.svelte +56 -61
  78. package/dist/components/lsp/LSPEditor.svelte +7 -18
  79. package/dist/components/lsp/SignatureHelpWidget.svelte +12 -9
  80. package/dist/components/plugins/PluginCard.svelte +3 -13
  81. package/dist/components/plugins/PluginProposalForm.svelte +19 -31
  82. package/dist/components/vfs/LockConflictDialog.svelte +112 -45
  83. package/dist/components/vfs/LockIndicator.svelte +0 -1
  84. package/dist/components/vfs/LockOverlay.svelte +53 -53
  85. package/dist/components/vfs/LockOverlay.svelte.d.ts +5 -5
  86. package/dist/components/vfs/VersionConflictDialog.svelte +107 -77
  87. package/dist/services/error-handling.js +1 -7
  88. package/dist/services/mock-ai.js +9 -7
  89. package/dist/stores/agents.svelte.js +50 -10
  90. package/dist/stores/ai.svelte.js +66 -18
  91. package/dist/stores/collaboration.svelte.js +70 -14
  92. package/dist/stores/editor.svelte.js +50 -10
  93. package/dist/stores/plugin.svelte.js +60 -12
  94. package/dist/stores/vfs.svelte.js +77 -19
  95. package/dist/styles/theme.css +16 -7
  96. package/package.json +186 -1
@@ -74,18 +74,66 @@ export function getDeployedProposals() {
74
74
  return state.proposals.filter((p) => p.status === 'deployed');
75
75
  }
76
76
  // Legacy aliases for backward compatibility
77
- export const proposals = { get current() { return getProposals(); } };
78
- export const instances = { get current() { return getInstances(); } };
79
- export const activeInstances = { get current() { return getActiveInstances(); } };
80
- export const commands = { get current() { return getCommands(); } };
81
- export const panels = { get current() { return getPanels(); } };
82
- export const connected = { get current() { return getConnected(); } };
83
- export const loadingProposals = { get current() { return getLoadingProposals(); } };
84
- export const loadingInstance = { get current() { return getLoadingInstance(); } };
85
- export const error = { get current() { return getError(); } };
86
- export const draftProposals = { get current() { return getDraftProposals(); } };
87
- export const reviewingProposals = { get current() { return getReviewingProposals(); } };
88
- export const deployedProposals = { get current() { return getDeployedProposals(); } };
77
+ export const proposals = {
78
+ get current() {
79
+ return getProposals();
80
+ }
81
+ };
82
+ export const instances = {
83
+ get current() {
84
+ return getInstances();
85
+ }
86
+ };
87
+ export const activeInstances = {
88
+ get current() {
89
+ return getActiveInstances();
90
+ }
91
+ };
92
+ export const commands = {
93
+ get current() {
94
+ return getCommands();
95
+ }
96
+ };
97
+ export const panels = {
98
+ get current() {
99
+ return getPanels();
100
+ }
101
+ };
102
+ export const connected = {
103
+ get current() {
104
+ return getConnected();
105
+ }
106
+ };
107
+ export const loadingProposals = {
108
+ get current() {
109
+ return getLoadingProposals();
110
+ }
111
+ };
112
+ export const loadingInstance = {
113
+ get current() {
114
+ return getLoadingInstance();
115
+ }
116
+ };
117
+ export const error = {
118
+ get current() {
119
+ return getError();
120
+ }
121
+ };
122
+ export const draftProposals = {
123
+ get current() {
124
+ return getDraftProposals();
125
+ }
126
+ };
127
+ export const reviewingProposals = {
128
+ get current() {
129
+ return getReviewingProposals();
130
+ }
131
+ };
132
+ export const deployedProposals = {
133
+ get current() {
134
+ return getDeployedProposals();
135
+ }
136
+ };
89
137
  // Event handlers
90
138
  // eslint-disable-next-line svelte/prefer-svelte-reactivity -- internal non-reactive event dispatch registry, not UI state
91
139
  const eventHandlers = new Map();
@@ -150,16 +150,56 @@ export function getFilesInDirectory(dirPath) {
150
150
  return state.files.filter((f) => f.path.startsWith(prefix) && !f.path.slice(prefix.length).includes('/'));
151
151
  }
152
152
  // Legacy aliases for backward compatibility
153
- export const workspace = { get current() { return getWorkspace(); } };
154
- export const workspaceLoading = { get current() { return getWorkspaceLoading(); } };
155
- export const files = { get current() { return getFiles(); } };
156
- export const fileTree = { get current() { return getFileTree(); } };
157
- export const locks = { get current() { return getLocks(); } };
158
- export const dirtyFiles = { get current() { return getDirtyFiles(); } };
159
- export const activeTransactions = { get current() { return getActiveTransactions(); } };
160
- export const connected = { get current() { return getConnected(); } };
161
- export const syncing = { get current() { return getSyncing(); } };
162
- export const error = { get current() { return getError(); } };
153
+ export const workspace = {
154
+ get current() {
155
+ return getWorkspace();
156
+ }
157
+ };
158
+ export const workspaceLoading = {
159
+ get current() {
160
+ return getWorkspaceLoading();
161
+ }
162
+ };
163
+ export const files = {
164
+ get current() {
165
+ return getFiles();
166
+ }
167
+ };
168
+ export const fileTree = {
169
+ get current() {
170
+ return getFileTree();
171
+ }
172
+ };
173
+ export const locks = {
174
+ get current() {
175
+ return getLocks();
176
+ }
177
+ };
178
+ export const dirtyFiles = {
179
+ get current() {
180
+ return getDirtyFiles();
181
+ }
182
+ };
183
+ export const activeTransactions = {
184
+ get current() {
185
+ return getActiveTransactions();
186
+ }
187
+ };
188
+ export const connected = {
189
+ get current() {
190
+ return getConnected();
191
+ }
192
+ };
193
+ export const syncing = {
194
+ get current() {
195
+ return getSyncing();
196
+ }
197
+ };
198
+ export const error = {
199
+ get current() {
200
+ return getError();
201
+ }
202
+ };
163
203
  // ============================================================================
164
204
  // Initialization
165
205
  // ============================================================================
@@ -229,7 +269,15 @@ export async function writeFileOptimistic(path, content, _options = {}) {
229
269
  return {
230
270
  success: false,
231
271
  error,
232
- operation: { id: '', type: 'file_write', payload: { path, content }, timestamp: Date.now(), status: 'failed', retryCount: 0, maxRetries: 3 }
272
+ operation: {
273
+ id: '',
274
+ type: 'file_write',
275
+ payload: { path, content },
276
+ timestamp: Date.now(),
277
+ status: 'failed',
278
+ retryCount: 0,
279
+ maxRetries: 3
280
+ }
233
281
  };
234
282
  }
235
283
  const previousFile = state.fileMap.get(path);
@@ -290,7 +338,15 @@ export async function deleteFileOptimistic(path) {
290
338
  return {
291
339
  success: false,
292
340
  error,
293
- operation: { id: '', type: 'file_delete', payload: { path }, timestamp: Date.now(), status: 'failed', retryCount: 0, maxRetries: 3 }
341
+ operation: {
342
+ id: '',
343
+ type: 'file_delete',
344
+ payload: { path },
345
+ timestamp: Date.now(),
346
+ status: 'failed',
347
+ retryCount: 0,
348
+ maxRetries: 3
349
+ }
294
350
  };
295
351
  }
296
352
  const previousFile = state.fileMap.get(path);
@@ -331,7 +387,7 @@ export async function deleteFileOptimistic(path) {
331
387
  * Resolve a file conflict
332
388
  */
333
389
  export function resolveConflict(path, resolution, mergedContent) {
334
- const conflictIndex = state.conflictQueue.findIndex(c => c.path === path);
390
+ const conflictIndex = state.conflictQueue.findIndex((c) => c.path === path);
335
391
  if (conflictIndex === -1)
336
392
  return;
337
393
  const conflict = state.conflictQueue[conflictIndex];
@@ -340,12 +396,13 @@ export function resolveConflict(path, resolution, mergedContent) {
340
396
  case 'use_local':
341
397
  // Re-attempt write with force flag
342
398
  if (state.workspace) {
343
- vfsClient.quickWriteFile(state.workspace.id, path, conflict.localContent)
344
- .then(result => {
399
+ vfsClient
400
+ .quickWriteFile(state.workspace.id, path, conflict.localContent)
401
+ .then((result) => {
345
402
  updateFileInfo(result);
346
403
  markClean(path);
347
404
  })
348
- .catch(err => {
405
+ .catch((err) => {
349
406
  state.structuredError = parseError(err, { path });
350
407
  });
351
408
  }
@@ -357,12 +414,13 @@ export function resolveConflict(path, resolution, mergedContent) {
357
414
  case 'merge':
358
415
  // Write merged content
359
416
  if (mergedContent && state.workspace) {
360
- vfsClient.quickWriteFile(state.workspace.id, path, mergedContent)
361
- .then(result => {
417
+ vfsClient
418
+ .quickWriteFile(state.workspace.id, path, mergedContent)
419
+ .then((result) => {
362
420
  updateFileInfo(result);
363
421
  markClean(path);
364
422
  })
365
- .catch(err => {
423
+ .catch((err) => {
366
424
  state.structuredError = parseError(err, { path });
367
425
  });
368
426
  }
@@ -43,7 +43,11 @@
43
43
  --ide-bg-elevated: color-mix(in srgb, var(--ide-bg-secondary) 90%, white 10%);
44
44
  --ide-bg-hover: color-mix(in srgb, var(--ide-bg-tertiary) 50%, transparent);
45
45
  --ide-bg-active: var(--ide-bg-tertiary);
46
- --ide-bg-selection-secondary: color-mix(in srgb, var(--color-nocturnium-aurora-purple) 22%, transparent);
46
+ --ide-bg-selection-secondary: color-mix(
47
+ in srgb,
48
+ var(--color-nocturnium-aurora-purple) 22%,
49
+ transparent
50
+ );
47
51
 
48
52
  /* IDE Text Colors */
49
53
  --ide-text-primary: var(--color-nocturnium-moon);
@@ -105,7 +109,8 @@
105
109
 
106
110
  /* IDE Typography */
107
111
  --ide-font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
108
- --ide-font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, Monaco, 'Courier New', monospace;
112
+ --ide-font-mono:
113
+ 'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, Monaco, 'Courier New', monospace;
109
114
  --ide-font-size-xs: 0.75rem;
110
115
  --ide-font-size-sm: 0.875rem;
111
116
  --ide-font-size-base: 1rem;
@@ -556,7 +561,11 @@
556
561
  }
557
562
 
558
563
  .ide-agent-cursor--ai {
559
- background: linear-gradient(180deg, var(--ide-agent-ai-primary) 0%, var(--color-nocturnium-flame) 100%);
564
+ background: linear-gradient(
565
+ 180deg,
566
+ var(--ide-agent-ai-primary) 0%,
567
+ var(--color-nocturnium-flame) 100%
568
+ );
560
569
  box-shadow: var(--ide-agent-glow);
561
570
  }
562
571
 
@@ -615,9 +624,9 @@
615
624
  }
616
625
 
617
626
  /* Force default cursor on editor gutter/line numbers */
618
- [class*="gutter"],
619
- [class*="line-number"],
620
- [data-cursor-type="default"],
621
- [data-cursor-type="default"] * {
627
+ [class*='gutter'],
628
+ [class*='line-number'],
629
+ [data-cursor-type='default'],
630
+ [data-cursor-type='default'] * {
622
631
  cursor: default !important;
623
632
  }
package/package.json CHANGED
@@ -1 +1,186 @@
1
- {"name":"@nocturnium/svelte-ide","version":"1.0.0","description":"Svelte 5 code editor and IDE building blocks — custom editor, syntax highlighting, code folding, multi-cursor, LSP client, and optional realtime collaboration.","author":"Nocturnium & Jordan Dziat <hello@nocturnium.ai> (https://nocturnium.ai)","license":"MIT","type":"module","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"svelte":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js","default":"./dist/index.js"},"./theme.css":"./dist/styles/theme.css","./stores":{"types":"./dist/stores/index.d.ts","svelte":"./dist/stores/index.js","default":"./dist/stores/index.js"},"./components/editor":{"types":"./dist/components/editor/index.d.ts","svelte":"./dist/components/editor/index.js","default":"./dist/components/editor/index.js"},"./components/core":{"types":"./dist/components/core/index.d.ts","svelte":"./dist/components/core/index.js","default":"./dist/components/core/index.js"},"./components/ai":{"types":"./dist/components/ai/index.d.ts","svelte":"./dist/components/ai/index.js","default":"./dist/components/ai/index.js"},"./components/layout":{"types":"./dist/components/layout/index.d.ts","svelte":"./dist/components/layout/index.js","default":"./dist/components/layout/index.js"},"./components/lsp":{"types":"./dist/components/lsp/index.d.ts","svelte":"./dist/components/lsp/index.js","default":"./dist/components/lsp/index.js"},"./components/agents":{"types":"./dist/components/agents/index.d.ts","svelte":"./dist/components/agents/index.js","default":"./dist/components/agents/index.js"},"./components/vfs":{"types":"./dist/components/vfs/index.d.ts","svelte":"./dist/components/vfs/index.js","default":"./dist/components/vfs/index.js"},"./components/plugins":{"types":"./dist/components/plugins/index.d.ts","svelte":"./dist/components/plugins/index.js","default":"./dist/components/plugins/index.js"},"./types":{"types":"./dist/types/index.d.ts","svelte":"./dist/types/index.js","default":"./dist/types/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","svelte":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","svelte":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./crdt":{"types":"./dist/crdt/index.d.ts","svelte":"./dist/crdt/index.js","default":"./dist/crdt/index.js"}},"files":["dist"],"scripts":{"dev":"vite dev","build":"vite build","build:lib":"npm run package","preview":"vite preview","package":"svelte-kit sync && svelte-package && node scripts/strip-dist-tests.mjs && publint","prepublishOnly":"npm run check && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","test":"vitest run","test:watch":"vitest","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","lint":"eslint .","lint:fix":"eslint . --fix","format":"prettier --write .","format:check":"prettier --check .","clean":"rm -rf dist .svelte-kit node_modules/.vite"},"engines":{"node":">=18.0.0"},"peerDependencies":{"svelte":"^5.0.0","y-protocols":"^1.0.6","y-websocket":"^2.0.4","yjs":"^13.6.20"},"peerDependenciesMeta":{"yjs":{"optional":true},"y-protocols":{"optional":true},"y-websocket":{"optional":true}},"devDependencies":{"@commitlint/cli":"^21.0.2","@commitlint/config-conventional":"^21.0.2","@fontsource/inter":"^5.2.8","@fontsource/jetbrains-mono":"^5.2.8","@playwright/test":"^1.57.0","@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@sveltejs/adapter-auto":"^6.0.0","@sveltejs/adapter-static":"^3.0.10","@sveltejs/kit":"^2.21.0","@sveltejs/package":"^2.3.11","@sveltejs/vite-plugin-svelte":"^5.1.0","@tailwindcss/vite":"^4.1.0","@types/node":"^22.15.0","eslint":"^9.39.0","eslint-plugin-svelte":"^3.9.0","globals":"^16.2.0","prettier":"^3.7.0","prettier-plugin-svelte":"^3.4.0","publint":"^0.3.0","semantic-release":"^25.0.3","svelte":"^5.28.0","svelte-check":"^4.2.0","tailwindcss":"^4.1.0","typescript":"^5.8.0","typescript-eslint":"^8.32.0","vite":"^6.0.0","vitest":"^4.1.0","y-protocols":"^1.0.7","y-websocket":"^2.1.0","yjs":"^13.6.31"},"overrides":{"cookie":"^0.7.0"},"keywords":["svelte","svelte5","code-editor","syntax-highlighting","code-folding","lightweight","crdt","yjs","collaboration","codemirror-alternative"],"homepage":"https://github.com/nocturnium/svelte-ide#readme","repository":{"type":"git","url":"git+https://github.com/nocturnium/svelte-ide.git"},"bugs":{"url":"https://github.com/nocturnium/svelte-ide/issues"}}
1
+ {
2
+ "name": "@nocturnium/svelte-ide",
3
+ "version": "1.0.2",
4
+ "description": "Svelte 5 code editor and IDE building blocks — custom editor, syntax highlighting, code folding, multi-cursor, LSP client, and optional realtime collaboration.",
5
+ "author": "Nocturnium & Jordan Dziat <hello@nocturnium.ai> (https://nocturnium.ai)",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "publishConfig": {
9
+ "access": "public",
10
+ "registry": "https://registry.npmjs.org/"
11
+ },
12
+ "svelte": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "sideEffects": false,
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "svelte": "./dist/index.js",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./theme.css": "./dist/styles/theme.css",
22
+ "./stores": {
23
+ "types": "./dist/stores/index.d.ts",
24
+ "svelte": "./dist/stores/index.js",
25
+ "default": "./dist/stores/index.js"
26
+ },
27
+ "./components/editor": {
28
+ "types": "./dist/components/editor/index.d.ts",
29
+ "svelte": "./dist/components/editor/index.js",
30
+ "default": "./dist/components/editor/index.js"
31
+ },
32
+ "./components/core": {
33
+ "types": "./dist/components/core/index.d.ts",
34
+ "svelte": "./dist/components/core/index.js",
35
+ "default": "./dist/components/core/index.js"
36
+ },
37
+ "./components/ai": {
38
+ "types": "./dist/components/ai/index.d.ts",
39
+ "svelte": "./dist/components/ai/index.js",
40
+ "default": "./dist/components/ai/index.js"
41
+ },
42
+ "./components/layout": {
43
+ "types": "./dist/components/layout/index.d.ts",
44
+ "svelte": "./dist/components/layout/index.js",
45
+ "default": "./dist/components/layout/index.js"
46
+ },
47
+ "./components/lsp": {
48
+ "types": "./dist/components/lsp/index.d.ts",
49
+ "svelte": "./dist/components/lsp/index.js",
50
+ "default": "./dist/components/lsp/index.js"
51
+ },
52
+ "./components/agents": {
53
+ "types": "./dist/components/agents/index.d.ts",
54
+ "svelte": "./dist/components/agents/index.js",
55
+ "default": "./dist/components/agents/index.js"
56
+ },
57
+ "./components/vfs": {
58
+ "types": "./dist/components/vfs/index.d.ts",
59
+ "svelte": "./dist/components/vfs/index.js",
60
+ "default": "./dist/components/vfs/index.js"
61
+ },
62
+ "./components/plugins": {
63
+ "types": "./dist/components/plugins/index.d.ts",
64
+ "svelte": "./dist/components/plugins/index.js",
65
+ "default": "./dist/components/plugins/index.js"
66
+ },
67
+ "./types": {
68
+ "types": "./dist/types/index.d.ts",
69
+ "svelte": "./dist/types/index.js",
70
+ "default": "./dist/types/index.js"
71
+ },
72
+ "./utils": {
73
+ "types": "./dist/utils/index.d.ts",
74
+ "svelte": "./dist/utils/index.js",
75
+ "default": "./dist/utils/index.js"
76
+ },
77
+ "./plugins": {
78
+ "types": "./dist/plugins/index.d.ts",
79
+ "svelte": "./dist/plugins/index.js",
80
+ "default": "./dist/plugins/index.js"
81
+ },
82
+ "./crdt": {
83
+ "types": "./dist/crdt/index.d.ts",
84
+ "svelte": "./dist/crdt/index.js",
85
+ "default": "./dist/crdt/index.js"
86
+ }
87
+ },
88
+ "files": [
89
+ "dist"
90
+ ],
91
+ "scripts": {
92
+ "dev": "vite dev",
93
+ "build": "vite build",
94
+ "build:lib": "npm run package",
95
+ "preview": "vite preview",
96
+ "package": "svelte-kit sync && svelte-package && node scripts/strip-dist-tests.mjs && publint",
97
+ "prepublishOnly": "npm run check && npm run package",
98
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
99
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
100
+ "test": "vitest run",
101
+ "test:watch": "vitest",
102
+ "test:e2e": "playwright test",
103
+ "test:e2e:ui": "playwright test --ui",
104
+ "lint": "eslint .",
105
+ "lint:fix": "eslint . --fix",
106
+ "format": "prettier --write .",
107
+ "format:check": "prettier --check .",
108
+ "clean": "rm -rf dist .svelte-kit node_modules/.vite"
109
+ },
110
+ "engines": {
111
+ "node": ">=18.0.0"
112
+ },
113
+ "peerDependencies": {
114
+ "svelte": "^5.0.0",
115
+ "y-protocols": "^1.0.6",
116
+ "y-websocket": "^2.0.4",
117
+ "yjs": "^13.6.20"
118
+ },
119
+ "peerDependenciesMeta": {
120
+ "yjs": {
121
+ "optional": true
122
+ },
123
+ "y-protocols": {
124
+ "optional": true
125
+ },
126
+ "y-websocket": {
127
+ "optional": true
128
+ }
129
+ },
130
+ "devDependencies": {
131
+ "@commitlint/cli": "^21.0.2",
132
+ "@commitlint/config-conventional": "^21.0.2",
133
+ "@fontsource/inter": "^5.2.8",
134
+ "@fontsource/jetbrains-mono": "^5.2.8",
135
+ "@playwright/test": "^1.57.0",
136
+ "@semantic-release/changelog": "^6.0.3",
137
+ "@semantic-release/git": "^10.0.1",
138
+ "@sveltejs/adapter-auto": "^6.0.0",
139
+ "@sveltejs/adapter-static": "^3.0.10",
140
+ "@sveltejs/kit": "^2.21.0",
141
+ "@sveltejs/package": "^2.3.11",
142
+ "@sveltejs/vite-plugin-svelte": "^5.1.0",
143
+ "@tailwindcss/vite": "^4.1.0",
144
+ "@types/node": "^22.15.0",
145
+ "eslint": "^9.39.0",
146
+ "eslint-plugin-svelte": "^3.9.0",
147
+ "globals": "^16.2.0",
148
+ "prettier": "^3.7.0",
149
+ "prettier-plugin-svelte": "^3.4.0",
150
+ "publint": "^0.3.0",
151
+ "semantic-release": "^25.0.3",
152
+ "svelte": "^5.28.0",
153
+ "svelte-check": "^4.2.0",
154
+ "tailwindcss": "^4.1.0",
155
+ "typescript": "^5.8.0",
156
+ "typescript-eslint": "^8.32.0",
157
+ "vite": "^6.0.0",
158
+ "vitest": "^4.1.0",
159
+ "y-protocols": "^1.0.7",
160
+ "y-websocket": "^2.1.0",
161
+ "yjs": "^13.6.31"
162
+ },
163
+ "overrides": {
164
+ "cookie": "^0.7.0"
165
+ },
166
+ "keywords": [
167
+ "svelte",
168
+ "svelte5",
169
+ "code-editor",
170
+ "syntax-highlighting",
171
+ "code-folding",
172
+ "lightweight",
173
+ "crdt",
174
+ "yjs",
175
+ "collaboration",
176
+ "codemirror-alternative"
177
+ ],
178
+ "homepage": "https://github.com/nocturnium/svelte-ide#readme",
179
+ "repository": {
180
+ "type": "git",
181
+ "url": "git+https://github.com/nocturnium/svelte-ide.git"
182
+ },
183
+ "bugs": {
184
+ "url": "https://github.com/nocturnium/svelte-ide/issues"
185
+ }
186
+ }