windmill-components 1.13.25 → 1.22.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/common.js +1 -5
- package/components/AppConnect.svelte +281 -0
- package/components/AppConnect.svelte.d.ts +22 -0
- package/components/ArgInfo.svelte +11 -16
- package/components/ArgInput.svelte +73 -70
- package/components/ArgInput.svelte.d.ts +6 -1
- package/components/AutosizedTextarea.svelte +6 -8
- package/components/Badge.svelte +4 -10
- package/components/Button.svelte +22 -18
- package/components/ButtonAndDropdown.svelte +6 -12
- package/components/CenteredModal.svelte +30 -0
- package/components/CenteredModal.svelte.d.ts +19 -0
- package/components/ChevronButton.svelte +4 -9
- package/components/DisplayResult.svelte +58 -57
- package/components/Dropdown.svelte +8 -13
- package/components/Editor.svelte +108 -149
- package/components/Editor.svelte.d.ts +3 -1
- package/components/FieldHeader.svelte +7 -12
- package/components/FlowBuilder.svelte +72 -121
- package/components/FlowBuilder.svelte.d.ts +0 -2
- package/components/FlowEditor.svelte +185 -73
- package/components/FlowEditor.svelte.d.ts +4 -4
- package/components/FlowJobResult.svelte +23 -0
- package/components/FlowJobResult.svelte.d.ts +17 -0
- package/components/FlowPreview.svelte +36 -51
- package/components/FlowPreview.svelte.d.ts +7 -1
- package/components/FlowStatusViewer.svelte +66 -40
- package/components/FlowStatusViewer.svelte.d.ts +1 -1
- package/components/FlowViewer.svelte +100 -0
- package/components/FlowViewer.svelte.d.ts +24 -0
- package/components/GroupModal.svelte +13 -20
- package/components/IconedResourceType.svelte +15 -18
- package/components/InviteGlobalUser.svelte +8 -15
- package/components/InviteUser.svelte +9 -16
- package/components/ItemPicker.svelte +11 -14
- package/components/JobStatus.svelte +6 -11
- package/components/Modal.svelte +14 -17
- package/components/ModuleStep.svelte +125 -64
- package/components/ModuleStep.svelte.d.ts +4 -8
- package/components/ObjectResourceInput.svelte +15 -20
- package/components/ObjectTypeNarrowing.svelte +7 -12
- package/components/PageHeader.svelte +4 -9
- package/components/Password.svelte +6 -8
- package/components/Path.svelte +78 -38
- package/components/Path.svelte.d.ts +2 -0
- package/components/RadioButton.svelte +7 -8
- package/components/RadioButtonV2.svelte +33 -0
- package/components/RadioButtonV2.svelte.d.ts +20 -0
- package/components/Required.svelte +2 -4
- package/components/ResourceEditor.svelte +44 -48
- package/components/ResourcePicker.svelte +6 -7
- package/components/ResourcePicker.svelte.d.ts +2 -2
- package/components/ResourceTypePicker.svelte +8 -13
- package/components/RunForm.svelte +15 -20
- package/components/SchemaEditor.svelte +31 -61
- package/components/SchemaForm.svelte +126 -134
- package/components/SchemaForm.svelte.d.ts +6 -4
- package/components/SchemaModal.svelte +25 -40
- package/components/SchemaModal.svelte.d.ts +1 -1
- package/components/SchemaViewer.svelte +6 -12
- package/components/ScriptBuilder.svelte +76 -101
- package/components/ScriptEditor.svelte +55 -60
- package/components/ScriptPicker.svelte +28 -34
- package/components/ScriptPicker.svelte.d.ts +1 -0
- package/components/ScriptSchema.svelte +13 -17
- package/components/ShareModal.svelte +23 -29
- package/components/SharedBadge.svelte +11 -16
- package/components/StringTypeNarrowing.svelte +8 -11
- package/components/Switch.svelte.d.ts +2 -2
- package/components/TableCustom.svelte +5 -8
- package/components/TableSimple.svelte +9 -8
- package/components/Tabs.svelte +6 -8
- package/components/Toggle.svelte +34 -0
- package/components/Toggle.svelte.d.ts +28 -0
- package/components/Tooltip.svelte +56 -89
- package/components/Tooltip.svelte.d.ts +1 -5
- package/components/VariableEditor.svelte +30 -29
- package/components/flows/CopyFirstStepSchema.svelte +10 -0
- package/components/flows/CopyFirstStepSchema.svelte.d.ts +14 -0
- package/components/flows/DynamicInputHelpBox.svelte +72 -0
- package/components/flows/DynamicInputHelpBox.svelte.d.ts +14 -0
- package/components/flows/FlowInputs.svelte +27 -0
- package/components/flows/FlowInputs.svelte.d.ts +19 -0
- package/components/flows/FlowModuleHeader.svelte +91 -0
- package/components/flows/FlowModuleHeader.svelte.d.ts +22 -0
- package/components/flows/flowStore.d.ts +17 -0
- package/components/flows/flowStore.js +161 -0
- package/components/flows/pickers/FlowScriptPicker.svelte +11 -0
- package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +22 -0
- package/components/flows/pickers/PickHubScript.svelte +30 -0
- package/components/flows/pickers/PickHubScript.svelte.d.ts +18 -0
- package/components/flows/pickers/PickScript.svelte +38 -0
- package/components/flows/pickers/PickScript.svelte.d.ts +18 -0
- package/components/flows/utils.d.ts +21 -0
- package/components/flows/utils.js +164 -0
- package/components/icons/DbIcon.svelte +2 -5
- package/components/icons/Mail.svelte +2 -5
- package/components/icons/Mysql.svelte +2 -5
- package/components/icons/PostgresIcon.svelte +2 -5
- package/components/icons/Slack.svelte +2 -5
- package/components/propertyPicker/ObjectViewer.svelte +113 -0
- package/components/propertyPicker/ObjectViewer.svelte.d.ts +21 -0
- package/components/propertyPicker/OverlayPropertyPicker.svelte +69 -0
- package/components/propertyPicker/OverlayPropertyPicker.svelte.d.ts +21 -0
- package/components/propertyPicker/PropPicker.svelte +24 -0
- package/components/propertyPicker/PropPicker.svelte.d.ts +18 -0
- package/components/propertyPicker/WarningMessage.svelte +43 -0
- package/components/propertyPicker/WarningMessage.svelte.d.ts +16 -0
- package/components/propertyPicker/utils.d.ts +2 -0
- package/components/propertyPicker/utils.js +40 -0
- package/gen/core/ApiError.d.ts +3 -1
- package/gen/core/ApiError.js +4 -6
- package/gen/core/ApiRequestOptions.js +1 -2
- package/gen/core/ApiResult.js +1 -2
- package/gen/core/CancelablePromise.js +2 -7
- package/gen/core/OpenAPI.js +2 -5
- package/gen/core/request.js +8 -13
- package/gen/index.d.ts +3 -0
- package/gen/index.js +28 -58
- package/gen/models/AuditLog.js +2 -5
- package/gen/models/CompletedJob.d.ts +3 -1
- package/gen/models/CompletedJob.js +3 -5
- package/gen/models/ContextualVariable.js +1 -2
- package/gen/models/CreateResource.d.ts +1 -0
- package/gen/models/CreateResource.js +1 -2
- package/gen/models/CreateVariable.d.ts +2 -0
- package/gen/models/CreateVariable.js +1 -2
- package/gen/models/CreateWorkspace.js +1 -2
- package/gen/models/EditResource.js +1 -2
- package/gen/models/EditResourceType.js +1 -2
- package/gen/models/EditSchedule.js +1 -2
- package/gen/models/EditVariable.js +1 -2
- package/gen/models/EditWorkspaceUser.js +1 -2
- package/gen/models/Flow.js +1 -2
- package/gen/models/FlowModule.d.ts +2 -0
- package/gen/models/FlowModule.js +1 -2
- package/gen/models/FlowModuleValue.d.ts +14 -2
- package/gen/models/FlowModuleValue.js +9 -5
- package/gen/models/FlowPreview.js +1 -2
- package/gen/models/FlowStatus.js +1 -2
- package/gen/models/FlowStatusModule.d.ts +6 -0
- package/gen/models/FlowStatusModule.js +2 -5
- package/gen/models/FlowValue.js +1 -2
- package/gen/models/GlobalUserInfo.js +2 -5
- package/gen/models/Group.js +1 -2
- package/gen/models/InputTransform.js +2 -5
- package/gen/models/Job.js +2 -5
- package/gen/models/ListableVariable.d.ts +2 -0
- package/gen/models/ListableVariable.js +1 -2
- package/gen/models/Login.js +1 -2
- package/gen/models/MainArgSignature.js +1 -2
- package/gen/models/NewSchedule.js +1 -2
- package/gen/models/NewToken.js +1 -2
- package/gen/models/NewUser.js +1 -2
- package/gen/models/Preview.js +2 -5
- package/gen/models/QueuedJob.d.ts +2 -1
- package/gen/models/QueuedJob.js +3 -5
- package/gen/models/Resource.d.ts +1 -0
- package/gen/models/Resource.js +1 -2
- package/gen/models/ResourceType.js +1 -2
- package/gen/models/Schedule.js +1 -2
- package/gen/models/Script.d.ts +1 -0
- package/gen/models/Script.js +2 -5
- package/gen/models/ScriptArgs.js +1 -2
- package/gen/models/SlackToken.d.ts +8 -0
- package/gen/models/SlackToken.js +4 -0
- package/gen/models/TokenResponse.d.ts +6 -0
- package/gen/models/TokenResponse.js +4 -0
- package/gen/models/TruncatedToken.js +1 -2
- package/gen/models/User.js +1 -2
- package/gen/models/UserWorkspaceList.js +1 -2
- package/gen/models/WorkerPing.js +1 -2
- package/gen/models/Workspace.js +1 -2
- package/gen/models/WorkspaceInvite.js +1 -2
- package/gen/services/AdminService.d.ts +6 -2
- package/gen/services/AdminService.js +6 -10
- package/gen/services/AuditService.d.ts +24 -8
- package/gen/services/AuditService.js +5 -9
- package/gen/services/FlowService.d.ts +37 -10
- package/gen/services/FlowService.js +23 -12
- package/gen/services/GranularAclService.d.ts +6 -2
- package/gen/services/GranularAclService.js +6 -10
- package/gen/services/GroupService.d.ts +18 -6
- package/gen/services/GroupService.js +11 -15
- package/gen/services/JobService.d.ts +167 -46
- package/gen/services/JobService.js +42 -22
- package/gen/services/OauthService.d.ts +104 -0
- package/gen/services/OauthService.js +133 -0
- package/gen/services/ResourceService.d.ts +39 -7
- package/gen/services/ResourceService.js +44 -18
- package/gen/services/ScheduleService.d.ts +36 -6
- package/gen/services/ScheduleService.js +39 -13
- package/gen/services/ScriptService.d.ts +66 -19
- package/gen/services/ScriptService.js +32 -20
- package/gen/services/SettingsService.js +5 -9
- package/gen/services/UserService.d.ts +49 -11
- package/gen/services/UserService.js +42 -29
- package/gen/services/VariableService.d.ts +19 -4
- package/gen/services/VariableService.js +24 -13
- package/gen/services/WorkerService.d.ts +6 -2
- package/gen/services/WorkerService.js +4 -8
- package/gen/services/WorkspaceService.d.ts +29 -24
- package/gen/services/WorkspaceService.js +23 -42
- package/infer.js +5 -9
- package/logout.js +20 -18
- package/package.json +51 -24
- package/script_helpers.d.ts +4 -0
- package/script_helpers.js +70 -0
- package/scripts.d.ts +2 -1
- package/scripts.js +11 -15
- package/stores.d.ts +6 -0
- package/stores.js +30 -22
- package/user.js +10 -15
- package/utils.d.ts +15 -1
- package/utils.js +191 -52
package/utils.js
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isString = exports.truncateRev = exports.truncate = exports.groupBy = exports.elapsedSinceSecs = exports.forLater = exports.allTrue = exports.removeKeysWithEmptyValues = exports.canWrite = exports.removeItemAll = exports.simpleSchema = exports.emptySchema = exports.clickOutside = exports.validatePassword = exports.sleep = exports.truncateHash = exports.sendUserToast = exports.getToday = exports.displayDate = exports.displayDaysAgo = exports.secondsAgo = exports.daysAgo = exports.isToday = void 0;
|
|
4
1
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { goto } from '$app/navigation';
|
|
3
|
+
import { toast } from '@zerodevx/svelte-toast';
|
|
4
|
+
export function isToday(someDate) {
|
|
7
5
|
const today = new Date();
|
|
8
6
|
return (someDate.getDate() == today.getDate() &&
|
|
9
7
|
someDate.getMonth() == today.getMonth() &&
|
|
10
8
|
someDate.getFullYear() == today.getFullYear());
|
|
11
9
|
}
|
|
12
|
-
|
|
13
|
-
function daysAgo(someDate) {
|
|
10
|
+
export function daysAgo(someDate) {
|
|
14
11
|
const today = new Date();
|
|
15
12
|
return Math.floor((today.getTime() - someDate.getTime()) / 86400000);
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
function secondsAgo(date) {
|
|
14
|
+
export function secondsAgo(date) {
|
|
19
15
|
return Math.floor((new Date().getTime() - date.getTime()) / 1000);
|
|
20
16
|
}
|
|
21
|
-
|
|
22
|
-
function displayDaysAgo(dateString) {
|
|
17
|
+
export function displayDaysAgo(dateString) {
|
|
23
18
|
const date = new Date(dateString);
|
|
24
19
|
const nbSecondsAgo = secondsAgo(date);
|
|
25
20
|
if (nbSecondsAgo < 600) {
|
|
@@ -32,8 +27,7 @@ function displayDaysAgo(dateString) {
|
|
|
32
27
|
return `${daysAgo(date) + 1} days ago`;
|
|
33
28
|
}
|
|
34
29
|
}
|
|
35
|
-
|
|
36
|
-
function displayDate(dateString) {
|
|
30
|
+
export function displayDate(dateString) {
|
|
37
31
|
const date = new Date(dateString ?? '');
|
|
38
32
|
if (date.toString() === 'Invalid Date') {
|
|
39
33
|
return '';
|
|
@@ -42,15 +36,13 @@ function displayDate(dateString) {
|
|
|
42
36
|
return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()} at ${date.toLocaleTimeString()}`;
|
|
43
37
|
}
|
|
44
38
|
}
|
|
45
|
-
|
|
46
|
-
function getToday() {
|
|
39
|
+
export function getToday() {
|
|
47
40
|
var today = new Date();
|
|
48
41
|
return today;
|
|
49
42
|
}
|
|
50
|
-
|
|
51
|
-
function sendUserToast(message, error = false) {
|
|
43
|
+
export function sendUserToast(message, error = false) {
|
|
52
44
|
if (error) {
|
|
53
|
-
|
|
45
|
+
toast.push(message, {
|
|
54
46
|
theme: {
|
|
55
47
|
'--toastBackground': '#FEE2E2',
|
|
56
48
|
'--toastBarBackground': '#FEE2E2'
|
|
@@ -58,10 +50,9 @@ function sendUserToast(message, error = false) {
|
|
|
58
50
|
});
|
|
59
51
|
}
|
|
60
52
|
else
|
|
61
|
-
|
|
53
|
+
toast.push(message);
|
|
62
54
|
}
|
|
63
|
-
|
|
64
|
-
function truncateHash(hash) {
|
|
55
|
+
export function truncateHash(hash) {
|
|
65
56
|
if (hash.length >= 6) {
|
|
66
57
|
return hash.substr(hash.length - 6);
|
|
67
58
|
}
|
|
@@ -69,18 +60,15 @@ function truncateHash(hash) {
|
|
|
69
60
|
return hash;
|
|
70
61
|
}
|
|
71
62
|
}
|
|
72
|
-
|
|
73
|
-
function sleep(ms) {
|
|
63
|
+
export function sleep(ms) {
|
|
74
64
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
75
65
|
}
|
|
76
|
-
|
|
77
|
-
function validatePassword(password) {
|
|
66
|
+
export function validatePassword(password) {
|
|
78
67
|
const re = /^(?=.*[\d])(?=.*[!@#$%^&*])[\w!@#$%^&*]{8,30}$/;
|
|
79
68
|
return re.test(password);
|
|
80
69
|
}
|
|
81
|
-
exports.validatePassword = validatePassword;
|
|
82
70
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
|
-
function clickOutside(node) {
|
|
71
|
+
export function clickOutside(node) {
|
|
84
72
|
const handleClick = (event) => {
|
|
85
73
|
if (node && !node.contains(event.target) && !event.defaultPrevented) {
|
|
86
74
|
node.dispatchEvent(new CustomEvent('click_outside', node));
|
|
@@ -93,8 +81,7 @@ function clickOutside(node) {
|
|
|
93
81
|
}
|
|
94
82
|
};
|
|
95
83
|
}
|
|
96
|
-
|
|
97
|
-
function emptySchema() {
|
|
84
|
+
export function emptySchema() {
|
|
98
85
|
return {
|
|
99
86
|
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
100
87
|
properties: {},
|
|
@@ -102,8 +89,7 @@ function emptySchema() {
|
|
|
102
89
|
type: 'object'
|
|
103
90
|
};
|
|
104
91
|
}
|
|
105
|
-
|
|
106
|
-
function simpleSchema() {
|
|
92
|
+
export function simpleSchema() {
|
|
107
93
|
return {
|
|
108
94
|
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
109
95
|
type: 'object',
|
|
@@ -116,8 +102,7 @@ function simpleSchema() {
|
|
|
116
102
|
required: []
|
|
117
103
|
};
|
|
118
104
|
}
|
|
119
|
-
|
|
120
|
-
function removeItemAll(arr, value) {
|
|
105
|
+
export function removeItemAll(arr, value) {
|
|
121
106
|
var i = 0;
|
|
122
107
|
while (i < arr.length) {
|
|
123
108
|
if (arr[i] === value) {
|
|
@@ -129,8 +114,7 @@ function removeItemAll(arr, value) {
|
|
|
129
114
|
}
|
|
130
115
|
return arr;
|
|
131
116
|
}
|
|
132
|
-
|
|
133
|
-
function canWrite(path, extra_perms, user) {
|
|
117
|
+
export function canWrite(path, extra_perms, user) {
|
|
134
118
|
let keys = Object.keys(extra_perms);
|
|
135
119
|
if (!user) {
|
|
136
120
|
return false;
|
|
@@ -150,24 +134,31 @@ function canWrite(path, extra_perms, user) {
|
|
|
150
134
|
}
|
|
151
135
|
return false;
|
|
152
136
|
}
|
|
153
|
-
|
|
154
|
-
function removeKeysWithEmptyValues(obj) {
|
|
137
|
+
export function removeKeysWithEmptyValues(obj) {
|
|
155
138
|
Object.keys(obj).forEach((key) => (obj[key] === undefined ? delete obj[key] : {}));
|
|
156
139
|
}
|
|
157
|
-
|
|
158
|
-
function allTrue(dict) {
|
|
140
|
+
export function allTrue(dict) {
|
|
159
141
|
return Object.values(dict).every(Boolean);
|
|
160
142
|
}
|
|
161
|
-
|
|
162
|
-
function forLater(scheduledString) {
|
|
143
|
+
export function forLater(scheduledString) {
|
|
163
144
|
return new Date() < new Date(scheduledString);
|
|
164
145
|
}
|
|
165
|
-
|
|
166
|
-
function elapsedSinceSecs(date) {
|
|
146
|
+
export function elapsedSinceSecs(date) {
|
|
167
147
|
return Math.round((new Date().getTime() - new Date(date).getTime()) / 1000);
|
|
168
148
|
}
|
|
169
|
-
|
|
170
|
-
|
|
149
|
+
export function pathIsEmpty(path) {
|
|
150
|
+
return path == undefined || path.split('/')[2] == '';
|
|
151
|
+
}
|
|
152
|
+
export async function setQuery(url, key, value) {
|
|
153
|
+
url.searchParams.set(key, value);
|
|
154
|
+
await goto(`?${url.searchParams.toString()}`);
|
|
155
|
+
}
|
|
156
|
+
export async function setQueryWithoutLoad(url, key, value) {
|
|
157
|
+
const nurl = new URL(url.toString());
|
|
158
|
+
nurl.searchParams.set(key, value);
|
|
159
|
+
history.replaceState(null, '', nurl.toString());
|
|
160
|
+
}
|
|
161
|
+
export function groupBy(scripts, toGroup, dflts = []) {
|
|
171
162
|
let r = {};
|
|
172
163
|
for (const dflt of dflts) {
|
|
173
164
|
r[dflt] = [];
|
|
@@ -195,8 +186,7 @@ function groupBy(scripts, toGroup, dflts = []) {
|
|
|
195
186
|
}
|
|
196
187
|
});
|
|
197
188
|
}
|
|
198
|
-
|
|
199
|
-
function truncate(s, n, suffix = '...') {
|
|
189
|
+
export function truncate(s, n, suffix = '...') {
|
|
200
190
|
if (s.length <= n) {
|
|
201
191
|
return s;
|
|
202
192
|
}
|
|
@@ -204,8 +194,7 @@ function truncate(s, n, suffix = '...') {
|
|
|
204
194
|
return s.substring(0, n) + suffix;
|
|
205
195
|
}
|
|
206
196
|
}
|
|
207
|
-
|
|
208
|
-
function truncateRev(s, n, prefix = '...') {
|
|
197
|
+
export function truncateRev(s, n, prefix = '...') {
|
|
209
198
|
if (s.length <= n) {
|
|
210
199
|
return s;
|
|
211
200
|
}
|
|
@@ -213,8 +202,158 @@ function truncateRev(s, n, prefix = '...') {
|
|
|
213
202
|
return prefix + s.substring(s.length - n, s.length);
|
|
214
203
|
}
|
|
215
204
|
}
|
|
216
|
-
|
|
217
|
-
function isString(value) {
|
|
205
|
+
export function isString(value) {
|
|
218
206
|
return typeof value === 'string' || value instanceof String;
|
|
219
207
|
}
|
|
220
|
-
|
|
208
|
+
export function mapUserToUserExt(user) {
|
|
209
|
+
return {
|
|
210
|
+
...user,
|
|
211
|
+
groups: user.groups,
|
|
212
|
+
pgroups: user.groups.map((x) => `g/${x}`)
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
export function buildExtraLib(previousResultType) {
|
|
216
|
+
return `
|
|
217
|
+
/**
|
|
218
|
+
* get variable (including secret) at path
|
|
219
|
+
* @param {string} path - path of the variable (e.g: g/all/pretty_secret)
|
|
220
|
+
*/
|
|
221
|
+
export function variable(path: string): string;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* get resource at path
|
|
225
|
+
* @param {string} path - path of the resource (e.g: g/all/my_resource)
|
|
226
|
+
*/
|
|
227
|
+
export function resource(path: string): any;
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* get result of step n.
|
|
231
|
+
* If n is negative, for instance -1, it is the step just before this one.
|
|
232
|
+
* Step 0 is flow input.
|
|
233
|
+
* @param {number} n - step number.
|
|
234
|
+
*/
|
|
235
|
+
export function step(n: number): any;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* flow input as an object
|
|
239
|
+
*/
|
|
240
|
+
export const flow_input: any;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* previous result as an object
|
|
244
|
+
*/
|
|
245
|
+
export const previous_result: ${previousResultType || 'any'};
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* static params of this same step
|
|
249
|
+
*/
|
|
250
|
+
export const params: any;`;
|
|
251
|
+
}
|
|
252
|
+
export function schemaToTsType(schema) {
|
|
253
|
+
if (!schema) {
|
|
254
|
+
return 'any';
|
|
255
|
+
}
|
|
256
|
+
const propKeys = Object.keys(schema.properties);
|
|
257
|
+
const types = propKeys
|
|
258
|
+
.map((key) => {
|
|
259
|
+
const prop = schema.properties[key];
|
|
260
|
+
const isOptional = !schema.required.includes(key);
|
|
261
|
+
const prefix = `${key}${isOptional ? '?' : ''}`;
|
|
262
|
+
let type = 'any';
|
|
263
|
+
if (prop.type === 'string') {
|
|
264
|
+
type = 'string';
|
|
265
|
+
}
|
|
266
|
+
else if (prop.type === 'number' || prop.type === 'integer') {
|
|
267
|
+
type = 'number';
|
|
268
|
+
}
|
|
269
|
+
else if (prop.type === 'boolean') {
|
|
270
|
+
type = 'boolean';
|
|
271
|
+
}
|
|
272
|
+
else if (prop.type === 'array') {
|
|
273
|
+
let type = prop.items?.type ?? 'any';
|
|
274
|
+
if (type === 'integer') {
|
|
275
|
+
type = 'number';
|
|
276
|
+
}
|
|
277
|
+
type = `${type}[]`;
|
|
278
|
+
}
|
|
279
|
+
return `${prefix}: ${type}`;
|
|
280
|
+
})
|
|
281
|
+
.join(';');
|
|
282
|
+
return `{ ${types} }`;
|
|
283
|
+
}
|
|
284
|
+
export function schemaToObject(schema) {
|
|
285
|
+
const object = {};
|
|
286
|
+
if (!schema) {
|
|
287
|
+
return object;
|
|
288
|
+
}
|
|
289
|
+
const propKeys = Object.keys(schema.properties);
|
|
290
|
+
propKeys.forEach((key) => {
|
|
291
|
+
const prop = schema.properties[key];
|
|
292
|
+
object[key] = prop.type;
|
|
293
|
+
});
|
|
294
|
+
return object;
|
|
295
|
+
}
|
|
296
|
+
export function valueToTsType(value) {
|
|
297
|
+
const typeOfValue = typeof value;
|
|
298
|
+
if (['string', 'number', 'boolean'].includes(typeOfValue)) {
|
|
299
|
+
return typeOfValue;
|
|
300
|
+
}
|
|
301
|
+
else if (Array.isArray(value)) {
|
|
302
|
+
const type = objectToTsType(value[0]);
|
|
303
|
+
return `Array<${type}>`;
|
|
304
|
+
}
|
|
305
|
+
else if (typeof value === 'object') {
|
|
306
|
+
return objectToTsType(value);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
return 'any';
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
export function objectToTsType(object) {
|
|
313
|
+
if (!object) {
|
|
314
|
+
return 'any';
|
|
315
|
+
}
|
|
316
|
+
const propKeys = Object.keys(object);
|
|
317
|
+
const types = propKeys.map((key) => `${key}: ${valueToTsType(object[key])}`).join(';');
|
|
318
|
+
return `{ ${types} }`;
|
|
319
|
+
}
|
|
320
|
+
export function setInputCat(type, format, itemsType, enum_, contentEncoding) {
|
|
321
|
+
if (type === 'number' || type === 'integer') {
|
|
322
|
+
return 'number';
|
|
323
|
+
}
|
|
324
|
+
else if (type === 'boolean') {
|
|
325
|
+
return 'boolean';
|
|
326
|
+
}
|
|
327
|
+
else if (type == 'array' && itemsType != undefined) {
|
|
328
|
+
return 'list';
|
|
329
|
+
}
|
|
330
|
+
else if (type == 'object' && format?.startsWith('resource')) {
|
|
331
|
+
return 'resource-object';
|
|
332
|
+
}
|
|
333
|
+
else if (!type || type == 'object' || type == 'array') {
|
|
334
|
+
return 'object';
|
|
335
|
+
}
|
|
336
|
+
else if (type == 'string' && enum_) {
|
|
337
|
+
return 'enum';
|
|
338
|
+
}
|
|
339
|
+
else if (type == 'string' && format == 'date-time') {
|
|
340
|
+
return 'date';
|
|
341
|
+
}
|
|
342
|
+
else if (type == 'string' && contentEncoding == 'base64') {
|
|
343
|
+
return 'base64';
|
|
344
|
+
}
|
|
345
|
+
else if (type == 'string' && format?.startsWith('resource')) {
|
|
346
|
+
return 'resource-string';
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
return 'string';
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
export function scriptPathToHref(path) {
|
|
353
|
+
if (path.startsWith('hub/')) {
|
|
354
|
+
return 'https://hub.windmill.dev/scripts/get/' + path.substring(4);
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
return `/scripts/get/${path}`;
|
|
358
|
+
}
|
|
359
|
+
}
|