@d34dman/flowdrop 0.0.56 → 0.0.58

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 (83) hide show
  1. package/README.md +4 -4
  2. package/dist/adapters/WorkflowAdapter.d.ts +2 -1
  3. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +96 -0
  4. package/dist/adapters/agentspec/AgentSpecAdapter.js +663 -0
  5. package/dist/adapters/agentspec/agentAdapter.d.ts +59 -0
  6. package/dist/adapters/agentspec/agentAdapter.js +91 -0
  7. package/dist/adapters/agentspec/autoLayout.d.ts +34 -0
  8. package/dist/adapters/agentspec/autoLayout.js +127 -0
  9. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +73 -0
  10. package/dist/adapters/agentspec/componentTypeDefaults.js +238 -0
  11. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +53 -0
  12. package/dist/adapters/agentspec/defaultNodeTypes.js +561 -0
  13. package/dist/adapters/agentspec/index.d.ts +37 -0
  14. package/dist/adapters/agentspec/index.js +39 -0
  15. package/dist/adapters/agentspec/validator.d.ts +34 -0
  16. package/dist/adapters/agentspec/validator.js +169 -0
  17. package/dist/components/App.svelte +57 -13
  18. package/dist/components/ConfigForm.svelte +46 -12
  19. package/dist/components/ConfigForm.svelte.d.ts +8 -0
  20. package/dist/components/NodeSidebar.svelte +20 -8
  21. package/dist/components/NodeSidebar.svelte.d.ts +2 -1
  22. package/dist/components/SchemaForm.svelte +34 -12
  23. package/dist/components/SchemaForm.svelte.d.ts +8 -0
  24. package/dist/components/WorkflowEditor.svelte +14 -13
  25. package/dist/components/form/FormFieldset.svelte +142 -0
  26. package/dist/components/form/FormFieldset.svelte.d.ts +11 -0
  27. package/dist/components/form/FormMarkdownEditor.svelte +546 -422
  28. package/dist/components/form/FormMarkdownEditor.svelte.d.ts +2 -0
  29. package/dist/components/form/FormUISchemaRenderer.svelte +136 -0
  30. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +32 -0
  31. package/dist/components/form/index.d.ts +2 -0
  32. package/dist/components/form/index.js +3 -0
  33. package/dist/components/form/types.d.ts +1 -1
  34. package/dist/components/nodes/WorkflowNode.svelte +1 -2
  35. package/dist/config/agentSpecEndpoints.d.ts +70 -0
  36. package/dist/config/agentSpecEndpoints.js +65 -0
  37. package/dist/config/endpoints.d.ts +6 -0
  38. package/dist/core/index.d.ts +29 -3
  39. package/dist/core/index.js +31 -1
  40. package/dist/form/code.js +6 -1
  41. package/dist/form/fieldRegistry.d.ts +79 -15
  42. package/dist/form/fieldRegistry.js +104 -49
  43. package/dist/form/full.d.ts +2 -2
  44. package/dist/form/full.js +2 -2
  45. package/dist/form/index.d.ts +5 -3
  46. package/dist/form/index.js +9 -2
  47. package/dist/form/markdown.d.ts +3 -3
  48. package/dist/form/markdown.js +8 -4
  49. package/dist/helpers/workflowEditorHelper.d.ts +24 -0
  50. package/dist/helpers/workflowEditorHelper.js +55 -0
  51. package/dist/index.d.ts +2 -2
  52. package/dist/index.js +2 -2
  53. package/dist/registry/BaseRegistry.d.ts +92 -0
  54. package/dist/registry/BaseRegistry.js +124 -0
  55. package/dist/registry/builtinFormats.d.ts +23 -0
  56. package/dist/registry/builtinFormats.js +70 -0
  57. package/dist/registry/builtinNodes.js +4 -0
  58. package/dist/registry/index.d.ts +2 -1
  59. package/dist/registry/index.js +2 -0
  60. package/dist/registry/nodeComponentRegistry.d.ts +26 -57
  61. package/dist/registry/nodeComponentRegistry.js +29 -82
  62. package/dist/registry/workflowFormatRegistry.d.ts +122 -0
  63. package/dist/registry/workflowFormatRegistry.js +96 -0
  64. package/dist/schema/index.d.ts +23 -0
  65. package/dist/schema/index.js +23 -0
  66. package/dist/services/agentSpecExecutionService.d.ts +106 -0
  67. package/dist/services/agentSpecExecutionService.js +333 -0
  68. package/dist/stores/portCoordinateStore.js +1 -4
  69. package/dist/stores/workflowStore.d.ts +3 -0
  70. package/dist/stores/workflowStore.js +3 -0
  71. package/dist/svelte-app.d.ts +4 -0
  72. package/dist/svelte-app.js +9 -1
  73. package/dist/types/agentspec.d.ts +318 -0
  74. package/dist/types/agentspec.js +48 -0
  75. package/dist/types/events.d.ts +28 -1
  76. package/dist/types/index.d.ts +31 -0
  77. package/dist/types/index.js +5 -0
  78. package/dist/types/uischema.d.ts +144 -0
  79. package/dist/types/uischema.js +51 -0
  80. package/dist/utils/uischema.d.ts +52 -0
  81. package/dist/utils/uischema.js +88 -0
  82. package/package.json +231 -225
  83. package/schemas/v1/workflow.schema.json +952 -0
@@ -0,0 +1,52 @@
1
+ /**
2
+ * UISchema Utilities
3
+ *
4
+ * Functions for resolving JSON Pointer scope strings to property keys,
5
+ * and for generating default UISchema from a ConfigSchema.
6
+ */
7
+ import type { ConfigSchema } from '../types/index.js';
8
+ import type { UISchemaElement, UISchemaVerticalLayout } from '../types/uischema.js';
9
+ /**
10
+ * Resolve a JSON Pointer scope string to a property key.
11
+ *
12
+ * Supports the JSON Forms scope format: #/properties/<fieldName>
13
+ *
14
+ * @param scope - JSON Pointer string (e.g., "#/properties/temperature")
15
+ * @returns The property key (e.g., "temperature"), or null if invalid
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * resolveScopeToKey("#/properties/temperature") // => "temperature"
20
+ * resolveScopeToKey("#/properties/nested/deep") // => null (only single-level supported)
21
+ * resolveScopeToKey("invalid") // => null
22
+ * ```
23
+ */
24
+ export declare function resolveScopeToKey(scope: string): string | null;
25
+ /**
26
+ * Build a scope string from a property key.
27
+ * Inverse of resolveScopeToKey.
28
+ *
29
+ * @param key - Property key (e.g., "temperature")
30
+ * @returns JSON Pointer scope string (e.g., "#/properties/temperature")
31
+ */
32
+ export declare function keyToScope(key: string): string;
33
+ /**
34
+ * Generate a default UISchema from a ConfigSchema.
35
+ * Creates a flat VerticalLayout with one Control per property,
36
+ * preserving the property iteration order.
37
+ *
38
+ * This is a convenience utility for programmatically building UISchema.
39
+ *
40
+ * @param schema - The ConfigSchema to generate a UISchema from
41
+ * @returns A VerticalLayout UISchema element
42
+ */
43
+ export declare function generateDefaultUISchema(schema: ConfigSchema): UISchemaVerticalLayout;
44
+ /**
45
+ * Collect all property keys referenced by Controls in a UISchema tree.
46
+ * Useful for detecting properties that are NOT in the UISchema
47
+ * (e.g., to warn about unreferenced fields during development).
48
+ *
49
+ * @param element - Root UISchema element
50
+ * @returns Set of property keys referenced by Controls
51
+ */
52
+ export declare function collectReferencedKeys(element: UISchemaElement): Set<string>;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * UISchema Utilities
3
+ *
4
+ * Functions for resolving JSON Pointer scope strings to property keys,
5
+ * and for generating default UISchema from a ConfigSchema.
6
+ */
7
+ /**
8
+ * Resolve a JSON Pointer scope string to a property key.
9
+ *
10
+ * Supports the JSON Forms scope format: #/properties/<fieldName>
11
+ *
12
+ * @param scope - JSON Pointer string (e.g., "#/properties/temperature")
13
+ * @returns The property key (e.g., "temperature"), or null if invalid
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * resolveScopeToKey("#/properties/temperature") // => "temperature"
18
+ * resolveScopeToKey("#/properties/nested/deep") // => null (only single-level supported)
19
+ * resolveScopeToKey("invalid") // => null
20
+ * ```
21
+ */
22
+ export function resolveScopeToKey(scope) {
23
+ const prefix = '#/properties/';
24
+ if (!scope.startsWith(prefix)) {
25
+ return null;
26
+ }
27
+ const key = scope.slice(prefix.length);
28
+ // Only support single-level property references (no nested paths)
29
+ if (key.includes('/') || key.length === 0) {
30
+ return null;
31
+ }
32
+ return key;
33
+ }
34
+ /**
35
+ * Build a scope string from a property key.
36
+ * Inverse of resolveScopeToKey.
37
+ *
38
+ * @param key - Property key (e.g., "temperature")
39
+ * @returns JSON Pointer scope string (e.g., "#/properties/temperature")
40
+ */
41
+ export function keyToScope(key) {
42
+ return `#/properties/${key}`;
43
+ }
44
+ /**
45
+ * Generate a default UISchema from a ConfigSchema.
46
+ * Creates a flat VerticalLayout with one Control per property,
47
+ * preserving the property iteration order.
48
+ *
49
+ * This is a convenience utility for programmatically building UISchema.
50
+ *
51
+ * @param schema - The ConfigSchema to generate a UISchema from
52
+ * @returns A VerticalLayout UISchema element
53
+ */
54
+ export function generateDefaultUISchema(schema) {
55
+ const elements = Object.keys(schema.properties).map((key) => ({
56
+ type: 'Control',
57
+ scope: keyToScope(key)
58
+ }));
59
+ return {
60
+ type: 'VerticalLayout',
61
+ elements
62
+ };
63
+ }
64
+ /**
65
+ * Collect all property keys referenced by Controls in a UISchema tree.
66
+ * Useful for detecting properties that are NOT in the UISchema
67
+ * (e.g., to warn about unreferenced fields during development).
68
+ *
69
+ * @param element - Root UISchema element
70
+ * @returns Set of property keys referenced by Controls
71
+ */
72
+ export function collectReferencedKeys(element) {
73
+ const keys = new Set();
74
+ function walk(el) {
75
+ if (el.type === 'Control') {
76
+ const key = resolveScopeToKey(el.scope);
77
+ if (key)
78
+ keys.add(key);
79
+ }
80
+ else if (el.type === 'VerticalLayout' || el.type === 'Group') {
81
+ for (const child of el.elements) {
82
+ walk(child);
83
+ }
84
+ }
85
+ }
86
+ walk(element);
87
+ return keys;
88
+ }
package/package.json CHANGED
@@ -1,226 +1,232 @@
1
1
  {
2
- "name": "@d34dman/flowdrop",
3
- "license": "MIT",
4
- "private": false,
5
- "version": "0.0.56",
6
- "scripts": {
7
- "dev": "vite dev",
8
- "build": "vite build && npm run prepack",
9
- "build:drupal": "vite build --config vite.config.drupal.ts",
10
- "build:production": "vite build --config vite.config.production.ts",
11
- "watch:build:drupal": "npm-watch build:drupal",
12
- "watch:build:production": "npm-watch build:production",
13
- "watch:build": "npm-watch build",
14
- "preview": "vite preview",
15
- "prepare": "svelte-kit sync || echo '' && husky",
16
- "prepack": "svelte-kit sync && svelte-package && publint",
17
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
18
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
19
- "lint": "eslint . && prettier --check .",
20
- "test": "vitest run",
21
- "test:watch": "vitest",
22
- "test:ui": "vitest --ui",
23
- "test:coverage": "vitest run --coverage",
24
- "test:e2e": "playwright test",
25
- "test:e2e:ui": "playwright test --ui",
26
- "test:e2e:debug": "playwright test --debug",
27
- "test:all": "npm run test && npm run test:e2e",
28
- "format": "prettier --write .",
29
- "storybook": "storybook dev -p 6006",
30
- "build-storybook": "storybook build",
31
- "api:lint": "redocly lint api/openapi.yaml --config api/redocly.yaml",
32
- "api:bundle": "redocly bundle api/openapi.yaml -o api/bundled.yaml --config api/redocly.yaml",
33
- "api:watch": "nodemon --watch api --ext yaml --ignore api/bundled.yaml --exec 'npm run api:bundle'",
34
- "api:preview": "redocly preview-docs api/openapi.yaml --config api/redocly.yaml",
35
- "api:docs": "redocly build-docs api/bundled.yaml -o api-docs/index.html"
36
- },
37
- "watch": {
38
- "build": {
39
- "ignore": "build",
40
- "patterns": [
41
- "src"
42
- ],
43
- "extensions": "js,ts,svelte,html,css,svg",
44
- "quiet": true,
45
- "legacyWatch": true,
46
- "delay": 2500,
47
- "runOnChangeOnly": false
48
- },
49
- "build:drupal": {
50
- "ignore": "build",
51
- "patterns": [
52
- "src"
53
- ],
54
- "extensions": "js,ts,svelte,html,css,svg",
55
- "quiet": true,
56
- "legacyWatch": true,
57
- "delay": 2500,
58
- "runOnChangeOnly": false
59
- },
60
- "build:production": {
61
- "ignore": "build",
62
- "patterns": [
63
- "src"
64
- ],
65
- "extensions": "js,ts,svelte,html,css,svg",
66
- "quiet": true,
67
- "legacyWatch": true,
68
- "delay": 2500,
69
- "runOnChangeOnly": false
70
- }
71
- },
72
- "files": [
73
- "dist",
74
- "!dist/**/*.test.*",
75
- "!dist/**/*.spec.*"
76
- ],
77
- "sideEffects": [
78
- "**/*.css",
79
- "./dist/styles/base.css",
80
- "./dist/editor/index.js"
81
- ],
82
- "svelte": "./dist/index.js",
83
- "types": "./dist/index.d.ts",
84
- "type": "module",
85
- "exports": {
86
- ".": {
87
- "types": "./dist/index.d.ts",
88
- "svelte": "./dist/index.js",
89
- "default": "./dist/index.js"
90
- },
91
- "./core": {
92
- "types": "./dist/core/index.d.ts",
93
- "svelte": "./dist/core/index.js",
94
- "default": "./dist/core/index.js"
95
- },
96
- "./editor": {
97
- "types": "./dist/editor/index.d.ts",
98
- "svelte": "./dist/editor/index.js",
99
- "default": "./dist/editor/index.js"
100
- },
101
- "./form": {
102
- "types": "./dist/form/index.d.ts",
103
- "svelte": "./dist/form/index.js",
104
- "default": "./dist/form/index.js"
105
- },
106
- "./form/code": {
107
- "types": "./dist/form/code.d.ts",
108
- "svelte": "./dist/form/code.js",
109
- "default": "./dist/form/code.js"
110
- },
111
- "./form/markdown": {
112
- "types": "./dist/form/markdown.d.ts",
113
- "svelte": "./dist/form/markdown.js",
114
- "default": "./dist/form/markdown.js"
115
- },
116
- "./form/full": {
117
- "types": "./dist/form/full.d.ts",
118
- "svelte": "./dist/form/full.js",
119
- "default": "./dist/form/full.js"
120
- },
121
- "./display": {
122
- "types": "./dist/display/index.d.ts",
123
- "svelte": "./dist/display/index.js",
124
- "default": "./dist/display/index.js"
125
- },
126
- "./playground": {
127
- "types": "./dist/playground/index.d.ts",
128
- "svelte": "./dist/playground/index.js",
129
- "default": "./dist/playground/index.js"
130
- },
131
- "./settings": {
132
- "types": "./dist/settings/index.d.ts",
133
- "svelte": "./dist/settings/index.js",
134
- "default": "./dist/settings/index.js"
135
- },
136
- "./styles": "./dist/styles/base.css",
137
- "./styles/*": "./dist/styles/*"
138
- },
139
- "peerDependencies": {
140
- "@iconify/svelte": "^5.0.0",
141
- "@sveltejs/kit": "^2.0.0",
142
- "svelte": "^5.0.0"
143
- },
144
- "peerDependenciesMeta": {
145
- "@iconify/svelte": {
146
- "optional": false
147
- }
148
- },
149
- "repository": {
150
- "type": "git",
151
- "url": "git+https://github.com/flowdrop-io/flowdrop.git"
152
- },
153
- "devDependencies": {
154
- "@chromatic-com/storybook": "^4.0.1",
155
- "@eslint/compat": "^1.2.5",
156
- "@eslint/js": "^9.18.0",
157
- "@iconify/svelte": "^5.0.0",
158
- "@playwright/test": "^1.49.1",
159
- "@redocly/cli": "^1.31.0",
160
- "@storybook/addon-docs": "^9.0.15",
161
- "@storybook/addon-svelte-csf": "^5.0.4",
162
- "@storybook/addon-vitest": "^9.0.15",
163
- "@storybook/sveltekit": "^9.0.15",
164
- "@sveltejs/adapter-auto": "^6.0.0",
165
- "@sveltejs/adapter-node": "^5.4.0",
166
- "@sveltejs/kit": "^2.49.2",
167
- "@sveltejs/package": "^2.0.0",
168
- "@sveltejs/vite-plugin-svelte": "^5.0.0",
169
- "@types/marked": "^6.0.0",
170
- "@types/node": "^20",
171
- "@types/uuid": "^10.0.0",
172
- "@vitest/browser": "^3.2.3",
173
- "@vitest/coverage-v8": "^3.2.4",
174
- "@vitest/ui": "^3.2.4",
175
- "eslint": "^9.18.0",
176
- "eslint-config-prettier": "^10.0.1",
177
- "eslint-plugin-storybook": "^9.0.15",
178
- "eslint-plugin-svelte": "^3.0.0",
179
- "globals": "^16.0.0",
180
- "happy-dom": "^20.0.11",
181
- "husky": "^9.1.7",
182
- "msw": "^2.12.7",
183
- "npm-watch": "^0.13.0",
184
- "picomatch": "^4.0.3",
185
- "playwright": "^1.53.0",
186
- "prettier": "^3.4.2",
187
- "prettier-plugin-svelte": "^3.3.3",
188
- "publint": "^0.3.2",
189
- "storybook": "^9.0.15",
190
- "svelte": "^5.0.0",
191
- "svelte-check": "^4.0.0",
192
- "terser": "^5.43.1",
193
- "typescript": "^5.0.0",
194
- "typescript-eslint": "^8.20.0",
195
- "vite": "^6.2.6",
196
- "vite-plugin-devtools-json": "^0.2.1",
197
- "vitest": "^3.2.3",
198
- "vitest-browser-svelte": "^0.1.0",
199
- "yaml": "^2.8.2"
200
- },
201
- "overrides": {
202
- "@sveltejs/kit": {
203
- "cookie": "0.7.2"
204
- }
205
- },
206
- "keywords": [
207
- "svelte"
208
- ],
209
- "dependencies": {
210
- "@codemirror/autocomplete": "^6.20.0",
211
- "@codemirror/lang-json": "^6.0.2",
212
- "@codemirror/lint": "^6.9.2",
213
- "@codemirror/theme-one-dark": "^6.1.3",
214
- "@xyflow/svelte": "~1.2",
215
- "codemirror": "^6.0.2",
216
- "easymde": "^2.20.0",
217
- "marked": "^16.1.1",
218
- "svelte-5-french-toast": "^2.0.6",
219
- "uuid": "^11.1.0"
220
- },
221
- "msw": {
222
- "workerDirectory": [
223
- "static"
224
- ]
225
- }
226
- }
2
+ "name": "@d34dman/flowdrop",
3
+ "license": "MIT",
4
+ "private": false,
5
+ "version": "0.0.58",
6
+ "watch": {
7
+ "build": {
8
+ "ignore": "build",
9
+ "patterns": [
10
+ "src"
11
+ ],
12
+ "extensions": "js,ts,svelte,html,css,svg",
13
+ "quiet": true,
14
+ "legacyWatch": true,
15
+ "delay": 2500,
16
+ "runOnChangeOnly": false
17
+ },
18
+ "build:drupal": {
19
+ "ignore": "build",
20
+ "patterns": [
21
+ "src"
22
+ ],
23
+ "extensions": "js,ts,svelte,html,css,svg",
24
+ "quiet": true,
25
+ "legacyWatch": true,
26
+ "delay": 2500,
27
+ "runOnChangeOnly": false
28
+ },
29
+ "build:production": {
30
+ "ignore": "build",
31
+ "patterns": [
32
+ "src"
33
+ ],
34
+ "extensions": "js,ts,svelte,html,css,svg",
35
+ "quiet": true,
36
+ "legacyWatch": true,
37
+ "delay": 2500,
38
+ "runOnChangeOnly": false
39
+ }
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "schemas",
44
+ "!dist/**/*.test.*",
45
+ "!dist/**/*.spec.*"
46
+ ],
47
+ "sideEffects": [
48
+ "**/*.css",
49
+ "./dist/styles/base.css",
50
+ "./dist/editor/index.js"
51
+ ],
52
+ "svelte": "./dist/index.js",
53
+ "types": "./dist/index.d.ts",
54
+ "type": "module",
55
+ "exports": {
56
+ ".": {
57
+ "types": "./dist/index.d.ts",
58
+ "svelte": "./dist/index.js",
59
+ "default": "./dist/index.js"
60
+ },
61
+ "./core": {
62
+ "types": "./dist/core/index.d.ts",
63
+ "svelte": "./dist/core/index.js",
64
+ "default": "./dist/core/index.js"
65
+ },
66
+ "./editor": {
67
+ "types": "./dist/editor/index.d.ts",
68
+ "svelte": "./dist/editor/index.js",
69
+ "default": "./dist/editor/index.js"
70
+ },
71
+ "./form": {
72
+ "types": "./dist/form/index.d.ts",
73
+ "svelte": "./dist/form/index.js",
74
+ "default": "./dist/form/index.js"
75
+ },
76
+ "./form/code": {
77
+ "types": "./dist/form/code.d.ts",
78
+ "svelte": "./dist/form/code.js",
79
+ "default": "./dist/form/code.js"
80
+ },
81
+ "./form/markdown": {
82
+ "types": "./dist/form/markdown.d.ts",
83
+ "svelte": "./dist/form/markdown.js",
84
+ "default": "./dist/form/markdown.js"
85
+ },
86
+ "./form/full": {
87
+ "types": "./dist/form/full.d.ts",
88
+ "svelte": "./dist/form/full.js",
89
+ "default": "./dist/form/full.js"
90
+ },
91
+ "./display": {
92
+ "types": "./dist/display/index.d.ts",
93
+ "svelte": "./dist/display/index.js",
94
+ "default": "./dist/display/index.js"
95
+ },
96
+ "./playground": {
97
+ "types": "./dist/playground/index.d.ts",
98
+ "svelte": "./dist/playground/index.js",
99
+ "default": "./dist/playground/index.js"
100
+ },
101
+ "./settings": {
102
+ "types": "./dist/settings/index.d.ts",
103
+ "svelte": "./dist/settings/index.js",
104
+ "default": "./dist/settings/index.js"
105
+ },
106
+ "./styles": "./dist/styles/base.css",
107
+ "./styles/*": "./dist/styles/*",
108
+ "./schema": {
109
+ "default": "./schemas/v1/workflow.schema.json"
110
+ },
111
+ "./schema/v1": {
112
+ "default": "./schemas/v1/workflow.schema.json"
113
+ }
114
+ },
115
+ "peerDependencies": {
116
+ "@iconify/svelte": "^5.0.0",
117
+ "@sveltejs/kit": "^2.0.0",
118
+ "svelte": "^5.0.0"
119
+ },
120
+ "peerDependenciesMeta": {
121
+ "@iconify/svelte": {
122
+ "optional": false
123
+ }
124
+ },
125
+ "repository": {
126
+ "type": "git",
127
+ "url": "git+https://github.com/flowdrop-io/flowdrop.git"
128
+ },
129
+ "devDependencies": {
130
+ "@chromatic-com/storybook": "^4.0.1",
131
+ "@eslint/compat": "^1.2.5",
132
+ "@eslint/js": "^9.18.0",
133
+ "@iconify/svelte": "^5.0.0",
134
+ "@playwright/test": "^1.49.1",
135
+ "@storybook/addon-docs": "^9.0.15",
136
+ "@storybook/addon-svelte-csf": "^5.0.4",
137
+ "@storybook/addon-vitest": "^9.0.15",
138
+ "@storybook/sveltekit": "^9.0.15",
139
+ "@sveltejs/adapter-auto": "^6.0.0",
140
+ "@sveltejs/adapter-node": "^5.4.0",
141
+ "@sveltejs/kit": "^2.49.2",
142
+ "@sveltejs/package": "^2.0.0",
143
+ "@sveltejs/vite-plugin-svelte": "^5.0.0",
144
+ "@types/marked": "^6.0.0",
145
+ "@types/node": "^20",
146
+ "@types/uuid": "^10.0.0",
147
+ "@vitest/browser": "^3.2.3",
148
+ "@vitest/coverage-v8": "^3.2.4",
149
+ "@vitest/ui": "^3.2.4",
150
+ "eslint": "^9.18.0",
151
+ "eslint-config-prettier": "^10.0.1",
152
+ "eslint-plugin-storybook": "^9.0.15",
153
+ "eslint-plugin-svelte": "^3.0.0",
154
+ "globals": "^16.0.0",
155
+ "happy-dom": "^20.0.11",
156
+ "msw": "^2.12.7",
157
+ "npm-watch": "^0.13.0",
158
+ "picomatch": "^4.0.3",
159
+ "playwright": "^1.53.0",
160
+ "prettier": "^3.4.2",
161
+ "prettier-plugin-svelte": "^3.3.3",
162
+ "publint": "^0.3.2",
163
+ "storybook": "^9.0.15",
164
+ "svelte": "^5.0.0",
165
+ "svelte-check": "^4.0.0",
166
+ "terser": "^5.43.1",
167
+ "typescript": "^5.0.0",
168
+ "typescript-eslint": "^8.20.0",
169
+ "vite": "^6.2.6",
170
+ "vite-plugin-devtools-json": "^0.2.1",
171
+ "vitest": "^3.2.3",
172
+ "vitest-browser-svelte": "^0.1.0",
173
+ "yaml": "^2.8.2"
174
+ },
175
+ "overrides": {
176
+ "@sveltejs/kit": {
177
+ "cookie": "0.7.2"
178
+ }
179
+ },
180
+ "keywords": [
181
+ "svelte"
182
+ ],
183
+ "dependencies": {
184
+ "@codemirror/autocomplete": "^6.20.0",
185
+ "@codemirror/commands": "^6.10.2",
186
+ "@codemirror/lang-json": "^6.0.2",
187
+ "@codemirror/lang-markdown": "^6.5.0",
188
+ "@codemirror/language": "^6.12.1",
189
+ "@codemirror/lint": "^6.9.2",
190
+ "@codemirror/state": "^6.5.4",
191
+ "@codemirror/theme-one-dark": "^6.1.3",
192
+ "@codemirror/view": "^6.39.14",
193
+ "@xyflow/svelte": "~1.2",
194
+ "codemirror": "^6.0.2",
195
+ "marked": "^16.1.1",
196
+ "svelte-5-french-toast": "^2.0.6",
197
+ "uuid": "^11.1.0"
198
+ },
199
+ "msw": {
200
+ "workerDirectory": [
201
+ "static"
202
+ ]
203
+ },
204
+ "scripts": {
205
+ "dev": "vite dev",
206
+ "build": "vite build && pnpm run prepack",
207
+ "build:drupal": "vite build --config vite.config.drupal.ts",
208
+ "build:production": "vite build --config vite.config.production.ts",
209
+ "watch:build:drupal": "npm-watch build:drupal",
210
+ "watch:build:production": "npm-watch build:production",
211
+ "watch:build": "npm-watch build",
212
+ "preview": "vite preview",
213
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
214
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
215
+ "lint": "eslint . && prettier --check .",
216
+ "test": "vitest run",
217
+ "test:watch": "vitest",
218
+ "test:ui": "vitest --ui",
219
+ "test:coverage": "vitest run --coverage",
220
+ "test:e2e": "playwright test",
221
+ "test:e2e:ui": "playwright test --ui",
222
+ "test:e2e:debug": "playwright test --debug",
223
+ "test:all": "pnpm run test && pnpm run test:e2e",
224
+ "format": "prettier --write .",
225
+ "storybook": "storybook dev -p 6006",
226
+ "build-storybook": "storybook build",
227
+ "schema:generate": "node scripts/generate-schema.mjs",
228
+ "schema:check": "node scripts/generate-schema.mjs --check",
229
+ "api:lint": "pnpm --dir ../../apps/api-docs run lint",
230
+ "api:bundle": "pnpm --dir ../../apps/api-docs run bundle"
231
+ }
232
+ }