windmill-components 1.511.1 → 1.522.0
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/package/components/AppConnectInner.svelte.d.ts +1 -1
- package/package/components/ArgInput.svelte +42 -14
- package/package/components/ArgInput.svelte.d.ts +2 -10
- package/package/components/AssignableTagsInner.svelte +5 -0
- package/package/components/AuthSettings.svelte +4 -2
- package/package/components/AuthSettings.svelte.d.ts +1 -0
- package/package/components/DBManagerDrawer.svelte +154 -151
- package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
- package/package/components/DBTable.svelte +3 -3
- package/package/components/DBTable.svelte.d.ts +1 -0
- package/package/components/DBTableEditor.svelte +7 -7
- package/package/components/DBTableEditor.svelte.d.ts +1 -1
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/DisplayResult.svelte +34 -8
- package/package/components/DisplayResult.svelte.d.ts +4 -1
- package/package/components/DynSelect.svelte +58 -34
- package/package/components/DynSelect.svelte.d.ts +3 -11
- package/package/components/EditableSchemaForm.svelte +126 -6
- package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
- package/package/components/Editor.svelte +1 -1
- package/package/components/EditorBar.svelte +82 -4
- package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
- package/package/components/ExploreAssetButton.svelte +14 -4
- package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
- package/package/components/FlowJobResult.svelte +3 -3
- package/package/components/FlowJobResult.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +9 -1
- package/package/components/FlowPreviewResult.svelte +4 -1
- package/package/components/FlowPreviewResult.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewerInner.svelte +21 -3
- package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -1
- package/package/components/FolderEditor.svelte +1 -1
- package/package/components/GitDiffPreview.svelte +14 -18
- package/package/components/GitDiffPreview.svelte.d.ts +2 -8
- package/package/components/GitHubAppIntegration.svelte +3 -1
- package/package/components/IdEditorInput.svelte +25 -22
- package/package/components/IdEditorInput.svelte.d.ts +11 -23
- package/package/components/InstanceSetting.svelte +7 -2
- package/package/components/InstanceSettings.svelte +1 -0
- package/package/components/JobLoader.svelte +48 -5
- package/package/components/JobLoader.svelte.d.ts +7 -2
- package/package/components/Login.svelte +8 -2
- package/package/components/MemoryFootprintViewer.svelte +1 -1
- package/package/components/ModulePreviewResultViewer.svelte +2 -2
- package/package/components/MoveDrawer.svelte.d.ts +2 -2
- package/package/components/NextcloudSetting.svelte +84 -0
- package/package/components/NextcloudSetting.svelte.d.ts +7 -0
- package/package/components/ObjectResourceInput.svelte +3 -2
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ParqetCsvTableRenderer.svelte +1 -1
- package/package/components/ResourceEditor.svelte +1 -1
- package/package/components/ResourcePicker.svelte +8 -1
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultStreamDisplay.svelte +5 -0
- package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
- package/package/components/RunForm.svelte +9 -1
- package/package/components/SchemaForm.svelte +2 -2
- package/package/components/SchemaForm.svelte.d.ts +2 -10
- package/package/components/ScriptBuilder.svelte +13 -8
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ScriptWrapper.svelte +1 -1
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleAgTable.svelte +2 -0
- package/package/components/SimpleAgTable.svelte.d.ts +2 -0
- package/package/components/SqlRepl.svelte +21 -7
- package/package/components/SqlRepl.svelte.d.ts +2 -2
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/WorkerTagSelect.svelte +70 -1
- package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
- package/package/components/apps/components/display/AppText.svelte +2 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
- package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
- package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
- package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
- package/package/components/apps/components/display/dbtable/utils.js +52 -28
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +5 -4
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/utils.js +7 -4
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -2
- package/package/components/apps/components/helpers/RunnableComponent.svelte +4 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
- package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
- package/package/components/apps/components/layout/AppStepper.svelte +1 -1
- package/package/components/apps/components/layout/AppTabs.svelte +1 -1
- package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
- package/package/components/apps/editor/GridViewer.svelte +1 -0
- package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +8 -12
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +3 -3
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/assets/JobAssetsViewer.svelte +2 -2
- package/package/components/assets/lib.js +4 -0
- package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
- package/package/components/common/button/Button.svelte +4 -3
- package/package/components/common/button/Button.svelte.d.ts +1 -0
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
- package/package/components/common/modal/Modal.svelte +2 -5
- package/package/components/common/tabs/TabsV2.svelte +2 -1
- package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +61 -7
- package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
- package/package/components/copilot/chat/script/core.js +28 -29
- package/package/components/copilot/chat/shared.d.ts +1 -1
- package/package/components/copilot/chat/shared.js +8 -2
- package/package/components/custom_ui.d.ts +2 -0
- package/package/components/dbOps.d.ts +20 -8
- package/package/components/dbOps.js +85 -40
- package/package/components/details/DetailPageHeader.svelte +0 -2
- package/package/components/flows/content/FlowInput.svelte +5 -0
- package/package/components/flows/content/FlowModuleScript.svelte +0 -1
- package/package/components/flows/idUtils.js +2 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +3 -3
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -0
- package/package/components/flows/map/InsertModuleButton.svelte +4 -1
- package/package/components/flows/propPicker/OutputBadge.svelte +5 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +9 -5
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
- package/package/components/flows/propPicker/StepHistory.svelte +4 -1
- package/package/components/git_sync/DetectionFlow.svelte +202 -0
- package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
- package/package/components/git_sync/GitSyncContext.svelte.js +461 -0
- package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
- package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncSection.svelte +89 -0
- package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
- package/package/components/graph/FlowGraphV2.svelte +5 -1
- package/package/components/graph/graphBuilder.svelte.js +1 -1
- package/package/components/graph/renderers/nodes/AssetNode.svelte +4 -4
- package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
- package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
- package/package/components/icons/AssetGenericIcon.svelte +3 -0
- package/package/components/icons/DucklakeIcon.svelte +18 -0
- package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
- package/package/components/instanceSettings.js +11 -3
- package/package/components/runs/JobPreview.svelte +2 -2
- package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +3 -2
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +0 -2
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +2 -1
- package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
- package/package/components/scriptEditor/LogPanel.svelte +5 -3
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
- package/package/components/select/Select.svelte +7 -4
- package/package/components/select/Select.svelte.d.ts +5 -0
- package/package/components/select/SelectDropdown.svelte +2 -1
- package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
- package/package/components/sidebar/changelogs.js +5 -0
- package/package/components/table/AutoDataTable.svelte +6 -4
- package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
- package/package/components/table/DataTable.svelte +12 -10
- package/package/components/table/DataTable.svelte.d.ts +1 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
- package/package/components/triggers/gcp/utils.js +1 -0
- package/package/components/triggers/http/utils.js +1 -1
- package/package/components/triggers/kafka/utils.js +1 -1
- package/package/components/triggers/mqtt/utils.js +1 -1
- package/package/components/triggers/nats/utils.js +1 -1
- package/package/components/triggers/postgres/utils.js +1 -1
- package/package/components/triggers/sqs/utils.js +1 -1
- package/package/components/triggers/utils.js +2 -1
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
- package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
- package/package/components/triggers/websocket/utils.js +1 -1
- package/package/components/workspaceSettings/AISettings.svelte +52 -36
- package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
- package/package/consts.js +2 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +7 -6
- package/package/gen/schemas.gen.js +7 -6
- package/package/gen/services.gen.d.ts +19 -1
- package/package/gen/services.gen.js +38 -0
- package/package/gen/types.gen.d.ts +78 -3
- package/package/git-sync.d.ts +36 -0
- package/package/git-sync.js +1 -0
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +5 -2
- package/package/infer.js +3 -2
- package/package/script_helpers.d.ts +2 -2
- package/package/script_helpers.js +29 -11
- package/package/services/JobManager.d.ts +28 -0
- package/package/services/JobManager.js +114 -0
- package/package/stores.d.ts +1 -1
- package/package/utils.d.ts +18 -1
- package/package/utils.js +55 -2
- package/package.json +5 -4
- package/package/components/InitGitRepoPopover.svelte +0 -410
- package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
- package/package/components/PullGitRepoPopover.svelte +0 -355
- package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
- package/package/inferArgSig.d.ts +0 -42
- package/package/inferArgSig.js +0 -198
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface JobStatus {
|
|
2
|
+
status: 'running' | 'success' | 'failure';
|
|
3
|
+
result?: any;
|
|
4
|
+
error?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface JobOptions {
|
|
7
|
+
onProgress?: (status: JobStatus) => void;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
workspace: string;
|
|
10
|
+
interval?: number;
|
|
11
|
+
timeoutMessage?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class JobManager {
|
|
14
|
+
private activeJobs;
|
|
15
|
+
private cleanupInterval;
|
|
16
|
+
private readonly STALE_TIMEOUT;
|
|
17
|
+
private readonly CLEANUP_INTERVAL;
|
|
18
|
+
constructor();
|
|
19
|
+
private startCleanupTimer;
|
|
20
|
+
private cleanup;
|
|
21
|
+
runWithProgress<T>(jobRunner: () => Promise<string>, options: JobOptions): Promise<T>;
|
|
22
|
+
cancel(jobId: string): void;
|
|
23
|
+
cancelAll(): void;
|
|
24
|
+
isActive(jobId: string): boolean;
|
|
25
|
+
get activeJobCount(): number;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
}
|
|
28
|
+
export declare const jobManager: JobManager;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { JobService } from '../gen';
|
|
2
|
+
import { tryEvery } from '../utils';
|
|
3
|
+
export class JobManager {
|
|
4
|
+
activeJobs = new Map();
|
|
5
|
+
cleanupInterval = null;
|
|
6
|
+
STALE_TIMEOUT = 300000; // 5 minutes
|
|
7
|
+
CLEANUP_INTERVAL = 60000; // 1 minute
|
|
8
|
+
constructor() {
|
|
9
|
+
this.startCleanupTimer();
|
|
10
|
+
}
|
|
11
|
+
startCleanupTimer() {
|
|
12
|
+
if (typeof window !== 'undefined') {
|
|
13
|
+
this.cleanupInterval = setInterval(() => {
|
|
14
|
+
this.cleanup();
|
|
15
|
+
}, this.CLEANUP_INTERVAL);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
cleanup() {
|
|
19
|
+
const now = Date.now();
|
|
20
|
+
const staleJobs = [];
|
|
21
|
+
for (const [jobId, entry] of this.activeJobs.entries()) {
|
|
22
|
+
if (now - entry.startTime > this.STALE_TIMEOUT) {
|
|
23
|
+
entry.controller.abort();
|
|
24
|
+
staleJobs.push(jobId);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
staleJobs.forEach(jobId => {
|
|
28
|
+
this.activeJobs.delete(jobId);
|
|
29
|
+
});
|
|
30
|
+
if (staleJobs.length > 0) {
|
|
31
|
+
console.warn(`Cleaned up ${staleJobs.length} stale job controllers`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async runWithProgress(jobRunner, options) {
|
|
35
|
+
const { onProgress, timeout = 60000, workspace, interval = 500, timeoutMessage = `Job timed out after ${timeout / 1000}s` } = options;
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
const jobId = await jobRunner();
|
|
38
|
+
this.activeJobs.set(jobId, {
|
|
39
|
+
controller,
|
|
40
|
+
startTime: Date.now()
|
|
41
|
+
});
|
|
42
|
+
try {
|
|
43
|
+
onProgress?.({ status: 'running' });
|
|
44
|
+
const result = await tryEvery({
|
|
45
|
+
tryCode: async () => {
|
|
46
|
+
if (controller.signal.aborted) {
|
|
47
|
+
throw new Error('Job was cancelled');
|
|
48
|
+
}
|
|
49
|
+
const jobResult = await JobService.getCompletedJob({
|
|
50
|
+
workspace,
|
|
51
|
+
id: jobId
|
|
52
|
+
});
|
|
53
|
+
const success = !!jobResult.success;
|
|
54
|
+
const status = {
|
|
55
|
+
status: success ? 'success' : 'failure',
|
|
56
|
+
result: jobResult.result,
|
|
57
|
+
error: success ? undefined : jobResult.result?.error?.message || 'Job failed'
|
|
58
|
+
};
|
|
59
|
+
onProgress?.(status);
|
|
60
|
+
if (!success) {
|
|
61
|
+
throw new Error(status.error);
|
|
62
|
+
}
|
|
63
|
+
return jobResult.result;
|
|
64
|
+
},
|
|
65
|
+
timeoutCode: async () => {
|
|
66
|
+
try {
|
|
67
|
+
await JobService.cancelQueuedJob({
|
|
68
|
+
workspace,
|
|
69
|
+
id: jobId,
|
|
70
|
+
requestBody: { reason: timeoutMessage }
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
console.error('Failed to cancel job:', err);
|
|
75
|
+
}
|
|
76
|
+
onProgress?.({ status: 'failure', error: timeoutMessage });
|
|
77
|
+
throw new Error(timeoutMessage);
|
|
78
|
+
},
|
|
79
|
+
interval,
|
|
80
|
+
timeout
|
|
81
|
+
});
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
this.activeJobs.delete(jobId);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
cancel(jobId) {
|
|
89
|
+
const entry = this.activeJobs.get(jobId);
|
|
90
|
+
if (entry) {
|
|
91
|
+
entry.controller.abort();
|
|
92
|
+
this.activeJobs.delete(jobId);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
cancelAll() {
|
|
96
|
+
this.activeJobs.forEach(entry => entry.controller.abort());
|
|
97
|
+
this.activeJobs.clear();
|
|
98
|
+
}
|
|
99
|
+
isActive(jobId) {
|
|
100
|
+
return this.activeJobs.has(jobId);
|
|
101
|
+
}
|
|
102
|
+
get activeJobCount() {
|
|
103
|
+
return this.activeJobs.size;
|
|
104
|
+
}
|
|
105
|
+
destroy() {
|
|
106
|
+
if (this.cleanupInterval) {
|
|
107
|
+
clearInterval(this.cleanupInterval);
|
|
108
|
+
this.cleanupInterval = null;
|
|
109
|
+
}
|
|
110
|
+
this.cancelAll();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Singleton instance for global usage
|
|
114
|
+
export const jobManager = new JobManager();
|
package/package/stores.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ type SQLBaseSchema = {
|
|
|
77
77
|
};
|
|
78
78
|
export declare const SQLSchemaLanguages: readonly ["mysql", "bigquery", "postgresql", "snowflake", "mssql", "oracledb"];
|
|
79
79
|
export interface SQLSchema {
|
|
80
|
-
lang: (typeof SQLSchemaLanguages)[number];
|
|
80
|
+
lang: (typeof SQLSchemaLanguages)[number] | 'ducklake';
|
|
81
81
|
schema: SQLBaseSchema;
|
|
82
82
|
publicOnly: boolean | undefined;
|
|
83
83
|
stringified: string;
|
package/package/utils.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export declare function isJobCancelable(j: Job): boolean;
|
|
|
33
33
|
export declare function isJobReRunnable(j: Job): boolean;
|
|
34
34
|
export declare const WORKER_NAME_PREFIX = "wk";
|
|
35
35
|
export declare function isJobSelectable(selectionType: RunsSelectionMode): (j: Job) => boolean;
|
|
36
|
+
export declare function escapeHtml(unsafe: string): string;
|
|
36
37
|
export declare function validateUsername(username: string): string;
|
|
37
38
|
export declare function parseQueryParams(url: string | undefined): Record<string, string>;
|
|
38
39
|
export declare function displayDateOnly(dateString: string | Date | undefined): string;
|
|
@@ -97,6 +98,21 @@ export declare function truncate(s: string, n: number, suffix?: string): string;
|
|
|
97
98
|
export declare function truncateRev(s: string, n: number, prefix?: string): string;
|
|
98
99
|
export declare function isString(value: any): value is string | String;
|
|
99
100
|
export type InputCat = 'string' | 'email' | 'number' | 'boolean' | 'list' | 'resource-object' | 'enum' | 'date' | 'base64' | 'resource-string' | 'object' | 'sql' | 'yaml' | 'currency' | 'oneOf' | 'dynselect';
|
|
101
|
+
export declare namespace DynamicSelect {
|
|
102
|
+
type HelperScript = {
|
|
103
|
+
type: 'inline';
|
|
104
|
+
path?: string;
|
|
105
|
+
lang: Script['language'];
|
|
106
|
+
code: string;
|
|
107
|
+
} | {
|
|
108
|
+
type: 'hash';
|
|
109
|
+
hash: string;
|
|
110
|
+
};
|
|
111
|
+
const generatePythonFnTemplate: (functionName: string) => string;
|
|
112
|
+
const generateJsFnTemplate: (functionName: string) => string;
|
|
113
|
+
const generateDefaultTemplateFn: (functionName: string, lang: ScriptLang) => string;
|
|
114
|
+
const getGenerateTemplateFn: (lang: ScriptLang) => (functionName: string) => string;
|
|
115
|
+
}
|
|
100
116
|
export declare function setInputCat(type: string | undefined, format: string | undefined, itemsType: string | undefined, enum_: any, contentEncoding: string | undefined): InputCat;
|
|
101
117
|
export declare function formatCron(inp: string): string;
|
|
102
118
|
export declare function scriptLangArrayToCommaList(languages: ScriptLang[]): string;
|
|
@@ -209,4 +225,5 @@ export declare function parseS3Object(s3Object: S3Object): {
|
|
|
209
225
|
export declare function formatS3Object(s3Object: S3Object): S3Uri;
|
|
210
226
|
export declare function isS3Uri(uri: string): uri is S3Uri;
|
|
211
227
|
export declare function uniqueBy<T>(array: T[], key: (t: T) => any): T[];
|
|
212
|
-
export declare function
|
|
228
|
+
export declare function pruneNullishArray<T>(array: (T | null | undefined)[]): T[];
|
|
229
|
+
export declare function assert(msg: string, condition: boolean, value?: any): void;
|
package/package/utils.js
CHANGED
|
@@ -82,6 +82,14 @@ export function isJobSelectable(selectionType) {
|
|
|
82
82
|
}[selectionType];
|
|
83
83
|
return f;
|
|
84
84
|
}
|
|
85
|
+
export function escapeHtml(unsafe) {
|
|
86
|
+
return unsafe
|
|
87
|
+
.replace(/&/g, '&')
|
|
88
|
+
.replace(/</g, '<')
|
|
89
|
+
.replace(/>/g, '>')
|
|
90
|
+
.replace(/"/g, '"')
|
|
91
|
+
.replace(/'/g, ''');
|
|
92
|
+
}
|
|
85
93
|
export function validateUsername(username) {
|
|
86
94
|
if (username != '' && !/^[a-zA-Z]\w+$/.test(username)) {
|
|
87
95
|
return 'username can only contain letters and numbers and must start with a letter';
|
|
@@ -474,6 +482,40 @@ export function truncateRev(s, n, prefix = '...') {
|
|
|
474
482
|
export function isString(value) {
|
|
475
483
|
return typeof value === 'string' || value instanceof String;
|
|
476
484
|
}
|
|
485
|
+
export var DynamicSelect;
|
|
486
|
+
(function (DynamicSelect) {
|
|
487
|
+
DynamicSelect.generatePythonFnTemplate = (functionName) => {
|
|
488
|
+
return `
|
|
489
|
+
def ${functionName}():
|
|
490
|
+
return [
|
|
491
|
+
{ "label": "Foo", "value": "foo" },
|
|
492
|
+
{ "label": "Bar", "value": "bar" }
|
|
493
|
+
]
|
|
494
|
+
|
|
495
|
+
`;
|
|
496
|
+
};
|
|
497
|
+
DynamicSelect.generateJsFnTemplate = (functionName) => {
|
|
498
|
+
return `
|
|
499
|
+
// you can use filterText to filter the results from the backend
|
|
500
|
+
// you can refer to other args directly as parameters (e.g. foobar: string)
|
|
501
|
+
export function ${functionName}(filterText: string) {
|
|
502
|
+
return [
|
|
503
|
+
{ label: 'Foo', value: 'foo' },
|
|
504
|
+
{ label: 'Bar', value: 'bar' }
|
|
505
|
+
];
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
`;
|
|
509
|
+
};
|
|
510
|
+
DynamicSelect.generateDefaultTemplateFn = (functionName, lang) => {
|
|
511
|
+
return lang === 'bun'
|
|
512
|
+
? DynamicSelect.generateJsFnTemplate(functionName)
|
|
513
|
+
: DynamicSelect.generatePythonFnTemplate(functionName);
|
|
514
|
+
};
|
|
515
|
+
DynamicSelect.getGenerateTemplateFn = (lang) => {
|
|
516
|
+
return lang === 'bun' ? DynamicSelect.generateJsFnTemplate : DynamicSelect.generatePythonFnTemplate;
|
|
517
|
+
};
|
|
518
|
+
})(DynamicSelect || (DynamicSelect = {}));
|
|
477
519
|
export function setInputCat(type, format, itemsType, enum_, contentEncoding) {
|
|
478
520
|
if (type === 'number' || type === 'integer') {
|
|
479
521
|
return 'number';
|
|
@@ -487,7 +529,8 @@ export function setInputCat(type, format, itemsType, enum_, contentEncoding) {
|
|
|
487
529
|
else if (type == 'object' && format?.startsWith('resource')) {
|
|
488
530
|
return 'resource-object';
|
|
489
531
|
}
|
|
490
|
-
else if (type == 'object' &&
|
|
532
|
+
else if (type == 'object' &&
|
|
533
|
+
(format?.startsWith('dynselect-') || format?.startsWith('dynselect_'))) {
|
|
491
534
|
return 'dynselect';
|
|
492
535
|
}
|
|
493
536
|
else if (!type || type == 'object' || type == 'array') {
|
|
@@ -1236,6 +1279,16 @@ export function uniqueBy(array, key) {
|
|
|
1236
1279
|
}
|
|
1237
1280
|
});
|
|
1238
1281
|
}
|
|
1239
|
-
export function
|
|
1282
|
+
export function pruneNullishArray(array) {
|
|
1240
1283
|
return array.filter((item) => item !== null && item !== undefined);
|
|
1241
1284
|
}
|
|
1285
|
+
export function assert(msg, condition, value) {
|
|
1286
|
+
if (!condition) {
|
|
1287
|
+
let m = 'Assertion failed: ' + msg;
|
|
1288
|
+
if (value)
|
|
1289
|
+
m += '\nValue: ' + JSON.stringify(value, null, 2);
|
|
1290
|
+
m += '\nPlease alert the Windmill team about this';
|
|
1291
|
+
sendUserToast(m, true);
|
|
1292
|
+
console.error(m);
|
|
1293
|
+
}
|
|
1294
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "windmill-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.522.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "vite dev",
|
|
6
6
|
"build": "vite build",
|
|
@@ -147,11 +147,12 @@
|
|
|
147
147
|
"windmill-parser-wasm-nu": "1.510.1",
|
|
148
148
|
"windmill-parser-wasm-php": "1.510.1",
|
|
149
149
|
"windmill-parser-wasm-py": "1.510.1",
|
|
150
|
-
"windmill-parser-wasm-regex": "1.
|
|
150
|
+
"windmill-parser-wasm-regex": "1.512.0",
|
|
151
151
|
"windmill-parser-wasm-rust": "1.510.1",
|
|
152
|
-
"windmill-parser-wasm-ts": "1.
|
|
152
|
+
"windmill-parser-wasm-ts": "1.514.1",
|
|
153
153
|
"windmill-parser-wasm-yaml": "1.510.1",
|
|
154
|
-
"windmill-sql-datatype-parser-wasm": "1.
|
|
154
|
+
"windmill-sql-datatype-parser-wasm": "1.512.0",
|
|
155
|
+
"windmill-utils-internal": "^1.0.0",
|
|
155
156
|
"xterm": "^5.3.0",
|
|
156
157
|
"xterm-readline": "^1.1.2",
|
|
157
158
|
"y-monaco": "^0.1.4",
|