@d34dman/flowdrop 0.0.28 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,69 +1,34 @@
1
1
  /**
2
2
  * FlowDrop - Visual Workflow Editor Library
3
- * A Svelte 5 component library built on @xyflow/svelte for creating node-based workflow editors
3
+ *
4
+ * A Svelte 5 component library built on @xyflow/svelte for creating node-based workflow editors.
5
+ *
6
+ * ## Module Structure (Tree-Shakable)
7
+ *
8
+ * For optimal bundle size, import from specific sub-modules:
9
+ *
10
+ * - `@d34dman/flowdrop/core` - Types and utilities only (no heavy deps)
11
+ * - `@d34dman/flowdrop/editor` - WorkflowEditor with @xyflow/svelte
12
+ * - `@d34dman/flowdrop/form` - SchemaForm with basic fields
13
+ * - `@d34dman/flowdrop/form/code` - Code editor support (adds CodeMirror)
14
+ * - `@d34dman/flowdrop/form/markdown` - Markdown editor support (adds EasyMDE)
15
+ * - `@d34dman/flowdrop/display` - MarkdownDisplay (adds marked)
16
+ * - `@d34dman/flowdrop/styles` - CSS styles
17
+ *
18
+ * ## Legacy Import (Full Bundle)
19
+ *
20
+ * Importing from the main entry point includes everything:
21
+ *
22
+ * ```typescript
23
+ * import { WorkflowEditor, SchemaForm } from "@d34dman/flowdrop";
24
+ * ```
25
+ *
26
+ * **Note**: This will bundle ALL dependencies including @xyflow/svelte,
27
+ * CodeMirror, EasyMDE, and marked. For smaller bundles, use sub-modules.
28
+ *
29
+ * @module flowdrop
4
30
  */
5
- import './styles/base.css';
6
- import './registry/builtinNodes.js';
7
- export type { NodeCategory, NodeDataType, NodePort, DynamicPort, Branch, NodeMetadata, NodeExtensions, NodeUIExtensions, ConfigValues, WorkflowNode, WorkflowEdge, Workflow, ApiResponse, NodesResponse, WorkflowResponse, WorkflowsResponse, ExecutionStatus, ExecutionResult, FlowDropConfig, WorkflowEvents, BuiltinNodeType, HttpMethod, DynamicSchemaEndpoint, ExternalEditLink, ConfigEditOptions } from './types/index.js';
8
- export type { WorkflowEditorConfig, EditorFeatures, UIConfig, APIConfig, ExecutionConfig, StorageConfig } from './types/config.js';
9
- export type { AuthProvider, StaticAuthConfig, CallbackAuthConfig } from './types/auth.js';
10
- export { StaticAuthProvider, CallbackAuthProvider, NoAuthProvider } from './types/auth.js';
11
- export type { WorkflowChangeType, FlowDropEventHandlers, FlowDropFeatures } from './types/events.js';
12
- export { DEFAULT_FEATURES, mergeFeatures } from './types/events.js';
13
- export { FlowDropApiClient } from './api/client.js';
14
- export { EnhancedFlowDropApiClient } from './api/enhanced-client.js';
15
- export { default as WorkflowEditor } from './components/WorkflowEditor.svelte';
16
- export { default as NodeSidebar } from './components/NodeSidebar.svelte';
17
- export { default as WorkflowNodeComponent } from './components/nodes/WorkflowNode.svelte';
18
- export { default as SimpleNodeComponent } from './components/nodes/SimpleNode.svelte';
19
- export { default as ToolNodeComponent } from './components/nodes/ToolNode.svelte';
20
- export { default as NotesNodeComponent } from './components/nodes/NotesNode.svelte';
21
- export { default as CanvasBanner } from './components/CanvasBanner.svelte';
22
- export { default as UniversalNode } from './components/UniversalNode.svelte';
23
- export { default as GatewayNode } from './components/nodes/GatewayNode.svelte';
24
- export { default as SquareNode } from './components/nodes/SquareNode.svelte';
25
- export { default as LoadingSpinner } from './components/LoadingSpinner.svelte';
26
- export { default as StatusIcon } from './components/StatusIcon.svelte';
27
- export { default as StatusLabel } from './components/StatusLabel.svelte';
28
- export { default as NodeStatusOverlay } from './components/NodeStatusOverlay.svelte';
29
- export { default as MarkdownDisplay } from './components/MarkdownDisplay.svelte';
30
- export { default as ConfigForm } from './components/ConfigForm.svelte';
31
- export { default as ConfigModal } from './components/ConfigModal.svelte';
32
- export { default as ConfigPanel } from './components/ConfigPanel.svelte';
33
- export { default as SchemaForm } from './components/SchemaForm.svelte';
34
- export type { SchemaFormProps, FieldSchema, FieldType, FieldFormat, FieldOption } from './components/form/types.js';
35
- export { default as ReadOnlyDetails } from './components/ReadOnlyDetails.svelte';
36
- export { default as ConnectionLine } from './components/ConnectionLine.svelte';
37
- export { default as LogsSidebar } from './components/LogsSidebar.svelte';
38
- export { default as PipelineStatus } from './components/PipelineStatus.svelte';
39
- export { default as Navbar } from './components/Navbar.svelte';
40
- export { default as Logo } from './components/Logo.svelte';
41
- export * from './utils/icons.js';
42
- export * from './utils/colors.js';
43
- export * from './utils/connections.js';
44
- export * from './utils/config.js';
45
- export * from './utils/nodeTypes.js';
46
- export { getStatusColor, getStatusIcon, getStatusLabel, getStatusBackgroundColor, getStatusTextColor, createDefaultExecutionInfo, updateExecutionStart, updateExecutionComplete, updateExecutionFailed, resetExecutionInfo, formatExecutionDuration, formatLastExecuted } from './utils/nodeStatus.js';
47
- export { createNodeWrapperConfig, shouldShowNodeStatus, getOptimalStatusPosition, getOptimalStatusSize, DEFAULT_NODE_STATUS_CONFIG } from './utils/nodeWrapper.js';
48
- export type { NodeStatusConfig } from './utils/nodeWrapper.js';
49
- export { nodeComponentRegistry, createNamespacedType, parseNamespacedType, BUILTIN_NODE_COMPONENTS, BUILTIN_NODE_TYPES, FLOWDROP_SOURCE, registerBuiltinNodes, areBuiltinsRegistered, isBuiltinType, getBuiltinTypes, resolveBuiltinAlias, registerFlowDropPlugin, unregisterFlowDropPlugin, registerCustomNode, createPlugin, isValidNamespace, getRegisteredPlugins, getPluginNodeCount } from './registry/index.js';
50
- export type { NodeComponentProps, NodeComponentRegistration, NodeComponentCategory, StatusPosition, StatusSize, NodeRegistrationFilter, FlowDropPluginConfig, PluginNodeDefinition, PluginRegistrationResult } from './registry/index.js';
51
- export * from './services/api.js';
52
- export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from './services/toastService.js';
53
- export type { ToastType, ToastOptions } from './services/toastService.js';
54
- export { NodeExecutionService, nodeExecutionService } from './services/nodeExecutionService.js';
55
- export { saveWorkflow, updateWorkflow, getWorkflow, getWorkflows, deleteWorkflow, getWorkflowCount, initializeSampleWorkflows } from './services/workflowStorage.js';
56
- export { globalSaveWorkflow, globalExportWorkflow, initializeGlobalSave } from './services/globalSave.js';
57
- export { fetchPortConfig, validatePortConfig } from './services/portConfigApi.js';
58
- export { fetchDynamicSchema, resolveExternalEditUrl, getEffectiveConfigEditOptions, clearSchemaCache, invalidateSchemaCache, hasConfigEditOptions, shouldShowExternalEdit, shouldUseDynamicSchema } from './services/dynamicSchemaService.js';
59
- export type { DynamicSchemaResult } from './services/dynamicSchemaService.js';
60
- export { getDraftStorageKey, saveDraft, loadDraft, deleteDraft, hasDraft, getDraftMetadata, DraftAutoSaveManager } from './services/draftStorage.js';
61
- export { EdgeStylingHelper, NodeOperationsHelper, WorkflowOperationsHelper, ConfigurationHelper } from './helpers/workflowEditorHelper.js';
62
- export { workflowStore, workflowActions, workflowId, workflowName, workflowNodes, workflowEdges, workflowMetadata, workflowChanged, workflowValidation, workflowMetadataChanged, connectedHandles, isDirtyStore, isDirty, markAsSaved, getWorkflow as getWorkflowFromStore, setOnDirtyStateChange, setOnWorkflowChange } from './stores/workflowStore.js';
63
- export * from './config/endpoints.js';
64
- export { DEFAULT_PORT_CONFIG } from './config/defaultPortConfig.js';
65
- export * from './config/runtimeConfig.js';
66
- export * from './adapters/WorkflowAdapter.js';
67
- export { mountWorkflowEditor, mountFlowDropApp, unmountFlowDropApp } from './svelte-app.js';
68
- export type { FlowDropMountOptions, MountedFlowDropApp, NavbarAction } from './svelte-app.js';
69
- export { ApiError } from './api/enhanced-client.js';
31
+ export * from "./core/index.js";
32
+ export * from "./form/index.js";
33
+ export * from "./display/index.js";
34
+ export * from "./editor/index.js";
package/dist/index.js CHANGED
@@ -1,83 +1,52 @@
1
1
  /**
2
2
  * FlowDrop - Visual Workflow Editor Library
3
- * A Svelte 5 component library built on @xyflow/svelte for creating node-based workflow editors
3
+ *
4
+ * A Svelte 5 component library built on @xyflow/svelte for creating node-based workflow editors.
5
+ *
6
+ * ## Module Structure (Tree-Shakable)
7
+ *
8
+ * For optimal bundle size, import from specific sub-modules:
9
+ *
10
+ * - `@d34dman/flowdrop/core` - Types and utilities only (no heavy deps)
11
+ * - `@d34dman/flowdrop/editor` - WorkflowEditor with @xyflow/svelte
12
+ * - `@d34dman/flowdrop/form` - SchemaForm with basic fields
13
+ * - `@d34dman/flowdrop/form/code` - Code editor support (adds CodeMirror)
14
+ * - `@d34dman/flowdrop/form/markdown` - Markdown editor support (adds EasyMDE)
15
+ * - `@d34dman/flowdrop/display` - MarkdownDisplay (adds marked)
16
+ * - `@d34dman/flowdrop/styles` - CSS styles
17
+ *
18
+ * ## Legacy Import (Full Bundle)
19
+ *
20
+ * Importing from the main entry point includes everything:
21
+ *
22
+ * ```typescript
23
+ * import { WorkflowEditor, SchemaForm } from "@d34dman/flowdrop";
24
+ * ```
25
+ *
26
+ * **Note**: This will bundle ALL dependencies including @xyflow/svelte,
27
+ * CodeMirror, EasyMDE, and marked. For smaller bundles, use sub-modules.
28
+ *
29
+ * @module flowdrop
4
30
  */
5
- // Import CSS to ensure styles are included in the library build
6
- import './styles/base.css';
7
- // Initialize built-in node components in the registry
8
- // This import has a side effect of registering all built-in nodes
9
- import './registry/builtinNodes.js';
10
- export { StaticAuthProvider, CallbackAuthProvider, NoAuthProvider } from './types/auth.js';
11
- export { DEFAULT_FEATURES, mergeFeatures } from './types/events.js';
12
- // Export API clients
13
- export { FlowDropApiClient } from './api/client.js';
14
- export { EnhancedFlowDropApiClient } from './api/enhanced-client.js';
15
- // Export components
16
- export { default as WorkflowEditor } from './components/WorkflowEditor.svelte';
17
- export { default as NodeSidebar } from './components/NodeSidebar.svelte';
18
- export { default as WorkflowNodeComponent } from './components/nodes/WorkflowNode.svelte';
19
- export { default as SimpleNodeComponent } from './components/nodes/SimpleNode.svelte';
20
- export { default as ToolNodeComponent } from './components/nodes/ToolNode.svelte';
21
- export { default as NotesNodeComponent } from './components/nodes/NotesNode.svelte';
22
- export { default as CanvasBanner } from './components/CanvasBanner.svelte';
23
- export { default as UniversalNode } from './components/UniversalNode.svelte';
24
- export { default as GatewayNode } from './components/nodes/GatewayNode.svelte';
25
- export { default as SquareNode } from './components/nodes/SquareNode.svelte';
26
- export { default as LoadingSpinner } from './components/LoadingSpinner.svelte';
27
- export { default as StatusIcon } from './components/StatusIcon.svelte';
28
- export { default as StatusLabel } from './components/StatusLabel.svelte';
29
- export { default as NodeStatusOverlay } from './components/NodeStatusOverlay.svelte';
30
- export { default as MarkdownDisplay } from './components/MarkdownDisplay.svelte';
31
- export { default as ConfigForm } from './components/ConfigForm.svelte';
32
- export { default as ConfigModal } from './components/ConfigModal.svelte';
33
- export { default as ConfigPanel } from './components/ConfigPanel.svelte';
34
- export { default as SchemaForm } from './components/SchemaForm.svelte';
35
- export { default as ReadOnlyDetails } from './components/ReadOnlyDetails.svelte';
36
- export { default as ConnectionLine } from './components/ConnectionLine.svelte';
37
- export { default as LogsSidebar } from './components/LogsSidebar.svelte';
38
- export { default as PipelineStatus } from './components/PipelineStatus.svelte';
39
- export { default as Navbar } from './components/Navbar.svelte';
40
- export { default as Logo } from './components/Logo.svelte';
41
- // Export utilities
42
- export * from './utils/icons.js';
43
- export * from './utils/colors.js';
44
- export * from './utils/connections.js';
45
- export * from './utils/config.js';
46
- export * from './utils/nodeTypes.js';
47
- export { getStatusColor, getStatusIcon, getStatusLabel, getStatusBackgroundColor, getStatusTextColor, createDefaultExecutionInfo, updateExecutionStart, updateExecutionComplete, updateExecutionFailed, resetExecutionInfo, formatExecutionDuration, formatLastExecuted } from './utils/nodeStatus.js';
48
- export { createNodeWrapperConfig, shouldShowNodeStatus, getOptimalStatusPosition, getOptimalStatusSize, DEFAULT_NODE_STATUS_CONFIG } from './utils/nodeWrapper.js';
49
- // Export node component registry
50
- export {
51
- // Core registry
52
- nodeComponentRegistry, createNamespacedType, parseNamespacedType,
53
- // Built-in nodes
54
- BUILTIN_NODE_COMPONENTS, BUILTIN_NODE_TYPES, FLOWDROP_SOURCE, registerBuiltinNodes, areBuiltinsRegistered, isBuiltinType, getBuiltinTypes, resolveBuiltinAlias,
55
- // Plugin system
56
- registerFlowDropPlugin, unregisterFlowDropPlugin, registerCustomNode, createPlugin, isValidNamespace, getRegisteredPlugins, getPluginNodeCount } from './registry/index.js';
57
- // Export services
58
- export * from './services/api.js';
59
- export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from './services/toastService.js';
60
- export { NodeExecutionService, nodeExecutionService } from './services/nodeExecutionService.js';
61
- export { saveWorkflow, updateWorkflow, getWorkflow, getWorkflows, deleteWorkflow, getWorkflowCount, initializeSampleWorkflows } from './services/workflowStorage.js';
62
- export { globalSaveWorkflow, globalExportWorkflow, initializeGlobalSave } from './services/globalSave.js';
63
- export { fetchPortConfig, validatePortConfig } from './services/portConfigApi.js';
64
- // Export dynamic schema service for config edit functionality
65
- export { fetchDynamicSchema, resolveExternalEditUrl, getEffectiveConfigEditOptions, clearSchemaCache, invalidateSchemaCache, hasConfigEditOptions, shouldShowExternalEdit, shouldUseDynamicSchema } from './services/dynamicSchemaService.js';
66
- // Export draft storage service
67
- export { getDraftStorageKey, saveDraft, loadDraft, deleteDraft, hasDraft, getDraftMetadata, DraftAutoSaveManager } from './services/draftStorage.js';
68
- // Export helpers
69
- export { EdgeStylingHelper, NodeOperationsHelper, WorkflowOperationsHelper, ConfigurationHelper } from './helpers/workflowEditorHelper.js';
70
- // Export stores
71
- export { workflowStore, workflowActions, workflowId, workflowName, workflowNodes, workflowEdges, workflowMetadata, workflowChanged, workflowValidation, workflowMetadataChanged, connectedHandles,
72
- // Dirty state tracking
73
- isDirtyStore, isDirty, markAsSaved, getWorkflow as getWorkflowFromStore, setOnDirtyStateChange, setOnWorkflowChange } from './stores/workflowStore.js';
74
- // Export endpoint configuration
75
- export * from './config/endpoints.js';
76
- export { DEFAULT_PORT_CONFIG } from './config/defaultPortConfig.js';
77
- export * from './config/runtimeConfig.js';
78
- // Export adapters
79
- export * from './adapters/WorkflowAdapter.js';
80
- // Export Svelte app wrapper for framework integration
81
- export { mountWorkflowEditor, mountFlowDropApp, unmountFlowDropApp } from './svelte-app.js';
82
- // Export API error class
83
- export { ApiError } from './api/enhanced-client.js';
31
+ // ============================================================================
32
+ // IMPORTANT: This module re-exports from sub-modules for backward compatibility.
33
+ // New code should import directly from sub-modules for better tree-shaking.
34
+ // ============================================================================
35
+ // ============================================================================
36
+ // Core Exports (Types & Utilities - No Heavy Dependencies)
37
+ // ============================================================================
38
+ export * from "./core/index.js";
39
+ // ============================================================================
40
+ // Form Exports
41
+ // ============================================================================
42
+ export * from "./form/index.js";
43
+ // Note: Heavy form fields (code, markdown) are NOT auto-registered.
44
+ // Users must import from form/code or form/markdown and register explicitly.
45
+ // ============================================================================
46
+ // Display Exports
47
+ // ============================================================================
48
+ export * from "./display/index.js";
49
+ // ============================================================================
50
+ // Editor Exports (includes @xyflow/svelte and auto-registers builtin nodes)
51
+ // ============================================================================
52
+ export * from "./editor/index.js";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@d34dman/flowdrop",
3
3
  "license": "MIT",
4
4
  "private": false,
5
- "version": "0.0.28",
5
+ "version": "0.0.29",
6
6
  "scripts": {
7
7
  "dev": "vite dev",
8
8
  "build": "vite build && npm run prepack",
@@ -71,7 +71,8 @@
71
71
  ],
72
72
  "sideEffects": [
73
73
  "**/*.css",
74
- "./dist/styles/base.css"
74
+ "./dist/styles/base.css",
75
+ "./dist/editor/index.js"
75
76
  ],
76
77
  "svelte": "./dist/index.js",
77
78
  "types": "./dist/index.d.ts",
@@ -82,12 +83,54 @@
82
83
  "svelte": "./dist/index.js",
83
84
  "default": "./dist/index.js"
84
85
  },
85
- "./styles/base.css": "./dist/styles/base.css"
86
+ "./core": {
87
+ "types": "./dist/core/index.d.ts",
88
+ "svelte": "./dist/core/index.js",
89
+ "default": "./dist/core/index.js"
90
+ },
91
+ "./editor": {
92
+ "types": "./dist/editor/index.d.ts",
93
+ "svelte": "./dist/editor/index.js",
94
+ "default": "./dist/editor/index.js"
95
+ },
96
+ "./form": {
97
+ "types": "./dist/form/index.d.ts",
98
+ "svelte": "./dist/form/index.js",
99
+ "default": "./dist/form/index.js"
100
+ },
101
+ "./form/code": {
102
+ "types": "./dist/form/code.d.ts",
103
+ "svelte": "./dist/form/code.js",
104
+ "default": "./dist/form/code.js"
105
+ },
106
+ "./form/markdown": {
107
+ "types": "./dist/form/markdown.d.ts",
108
+ "svelte": "./dist/form/markdown.js",
109
+ "default": "./dist/form/markdown.js"
110
+ },
111
+ "./form/full": {
112
+ "types": "./dist/form/full.d.ts",
113
+ "svelte": "./dist/form/full.js",
114
+ "default": "./dist/form/full.js"
115
+ },
116
+ "./display": {
117
+ "types": "./dist/display/index.d.ts",
118
+ "svelte": "./dist/display/index.js",
119
+ "default": "./dist/display/index.js"
120
+ },
121
+ "./styles": "./dist/styles/base.css",
122
+ "./styles/*": "./dist/styles/*"
86
123
  },
87
124
  "peerDependencies": {
125
+ "@iconify/svelte": "^5.0.0",
88
126
  "@sveltejs/kit": "^2.0.0",
89
127
  "svelte": "^5.0.0"
90
128
  },
129
+ "peerDependenciesMeta": {
130
+ "@iconify/svelte": {
131
+ "optional": false
132
+ }
133
+ },
91
134
  "repository": {
92
135
  "type": "git",
93
136
  "url": "git+https://github.com/d34dman/flowdrop.git"