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.
Files changed (215) hide show
  1. package/common.js +1 -5
  2. package/components/AppConnect.svelte +281 -0
  3. package/components/AppConnect.svelte.d.ts +22 -0
  4. package/components/ArgInfo.svelte +11 -16
  5. package/components/ArgInput.svelte +73 -70
  6. package/components/ArgInput.svelte.d.ts +6 -1
  7. package/components/AutosizedTextarea.svelte +6 -8
  8. package/components/Badge.svelte +4 -10
  9. package/components/Button.svelte +22 -18
  10. package/components/ButtonAndDropdown.svelte +6 -12
  11. package/components/CenteredModal.svelte +30 -0
  12. package/components/CenteredModal.svelte.d.ts +19 -0
  13. package/components/ChevronButton.svelte +4 -9
  14. package/components/DisplayResult.svelte +58 -57
  15. package/components/Dropdown.svelte +8 -13
  16. package/components/Editor.svelte +108 -149
  17. package/components/Editor.svelte.d.ts +3 -1
  18. package/components/FieldHeader.svelte +7 -12
  19. package/components/FlowBuilder.svelte +72 -121
  20. package/components/FlowBuilder.svelte.d.ts +0 -2
  21. package/components/FlowEditor.svelte +185 -73
  22. package/components/FlowEditor.svelte.d.ts +4 -4
  23. package/components/FlowJobResult.svelte +23 -0
  24. package/components/FlowJobResult.svelte.d.ts +17 -0
  25. package/components/FlowPreview.svelte +36 -51
  26. package/components/FlowPreview.svelte.d.ts +7 -1
  27. package/components/FlowStatusViewer.svelte +66 -40
  28. package/components/FlowStatusViewer.svelte.d.ts +1 -1
  29. package/components/FlowViewer.svelte +100 -0
  30. package/components/FlowViewer.svelte.d.ts +24 -0
  31. package/components/GroupModal.svelte +13 -20
  32. package/components/IconedResourceType.svelte +15 -18
  33. package/components/InviteGlobalUser.svelte +8 -15
  34. package/components/InviteUser.svelte +9 -16
  35. package/components/ItemPicker.svelte +11 -14
  36. package/components/JobStatus.svelte +6 -11
  37. package/components/Modal.svelte +14 -17
  38. package/components/ModuleStep.svelte +125 -64
  39. package/components/ModuleStep.svelte.d.ts +4 -8
  40. package/components/ObjectResourceInput.svelte +15 -20
  41. package/components/ObjectTypeNarrowing.svelte +7 -12
  42. package/components/PageHeader.svelte +4 -9
  43. package/components/Password.svelte +6 -8
  44. package/components/Path.svelte +78 -38
  45. package/components/Path.svelte.d.ts +2 -0
  46. package/components/RadioButton.svelte +7 -8
  47. package/components/RadioButtonV2.svelte +33 -0
  48. package/components/RadioButtonV2.svelte.d.ts +20 -0
  49. package/components/Required.svelte +2 -4
  50. package/components/ResourceEditor.svelte +44 -48
  51. package/components/ResourcePicker.svelte +6 -7
  52. package/components/ResourcePicker.svelte.d.ts +2 -2
  53. package/components/ResourceTypePicker.svelte +8 -13
  54. package/components/RunForm.svelte +15 -20
  55. package/components/SchemaEditor.svelte +31 -61
  56. package/components/SchemaForm.svelte +126 -134
  57. package/components/SchemaForm.svelte.d.ts +6 -4
  58. package/components/SchemaModal.svelte +25 -40
  59. package/components/SchemaModal.svelte.d.ts +1 -1
  60. package/components/SchemaViewer.svelte +6 -12
  61. package/components/ScriptBuilder.svelte +76 -101
  62. package/components/ScriptEditor.svelte +55 -60
  63. package/components/ScriptPicker.svelte +28 -34
  64. package/components/ScriptPicker.svelte.d.ts +1 -0
  65. package/components/ScriptSchema.svelte +13 -17
  66. package/components/ShareModal.svelte +23 -29
  67. package/components/SharedBadge.svelte +11 -16
  68. package/components/StringTypeNarrowing.svelte +8 -11
  69. package/components/Switch.svelte.d.ts +2 -2
  70. package/components/TableCustom.svelte +5 -8
  71. package/components/TableSimple.svelte +9 -8
  72. package/components/Tabs.svelte +6 -8
  73. package/components/Toggle.svelte +34 -0
  74. package/components/Toggle.svelte.d.ts +28 -0
  75. package/components/Tooltip.svelte +56 -89
  76. package/components/Tooltip.svelte.d.ts +1 -5
  77. package/components/VariableEditor.svelte +30 -29
  78. package/components/flows/CopyFirstStepSchema.svelte +10 -0
  79. package/components/flows/CopyFirstStepSchema.svelte.d.ts +14 -0
  80. package/components/flows/DynamicInputHelpBox.svelte +72 -0
  81. package/components/flows/DynamicInputHelpBox.svelte.d.ts +14 -0
  82. package/components/flows/FlowInputs.svelte +27 -0
  83. package/components/flows/FlowInputs.svelte.d.ts +19 -0
  84. package/components/flows/FlowModuleHeader.svelte +91 -0
  85. package/components/flows/FlowModuleHeader.svelte.d.ts +22 -0
  86. package/components/flows/flowStore.d.ts +17 -0
  87. package/components/flows/flowStore.js +161 -0
  88. package/components/flows/pickers/FlowScriptPicker.svelte +11 -0
  89. package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +22 -0
  90. package/components/flows/pickers/PickHubScript.svelte +30 -0
  91. package/components/flows/pickers/PickHubScript.svelte.d.ts +18 -0
  92. package/components/flows/pickers/PickScript.svelte +38 -0
  93. package/components/flows/pickers/PickScript.svelte.d.ts +18 -0
  94. package/components/flows/utils.d.ts +21 -0
  95. package/components/flows/utils.js +164 -0
  96. package/components/icons/DbIcon.svelte +2 -5
  97. package/components/icons/Mail.svelte +2 -5
  98. package/components/icons/Mysql.svelte +2 -5
  99. package/components/icons/PostgresIcon.svelte +2 -5
  100. package/components/icons/Slack.svelte +2 -5
  101. package/components/propertyPicker/ObjectViewer.svelte +113 -0
  102. package/components/propertyPicker/ObjectViewer.svelte.d.ts +21 -0
  103. package/components/propertyPicker/OverlayPropertyPicker.svelte +69 -0
  104. package/components/propertyPicker/OverlayPropertyPicker.svelte.d.ts +21 -0
  105. package/components/propertyPicker/PropPicker.svelte +24 -0
  106. package/components/propertyPicker/PropPicker.svelte.d.ts +18 -0
  107. package/components/propertyPicker/WarningMessage.svelte +43 -0
  108. package/components/propertyPicker/WarningMessage.svelte.d.ts +16 -0
  109. package/components/propertyPicker/utils.d.ts +2 -0
  110. package/components/propertyPicker/utils.js +40 -0
  111. package/gen/core/ApiError.d.ts +3 -1
  112. package/gen/core/ApiError.js +4 -6
  113. package/gen/core/ApiRequestOptions.js +1 -2
  114. package/gen/core/ApiResult.js +1 -2
  115. package/gen/core/CancelablePromise.js +2 -7
  116. package/gen/core/OpenAPI.js +2 -5
  117. package/gen/core/request.js +8 -13
  118. package/gen/index.d.ts +3 -0
  119. package/gen/index.js +28 -58
  120. package/gen/models/AuditLog.js +2 -5
  121. package/gen/models/CompletedJob.d.ts +3 -1
  122. package/gen/models/CompletedJob.js +3 -5
  123. package/gen/models/ContextualVariable.js +1 -2
  124. package/gen/models/CreateResource.d.ts +1 -0
  125. package/gen/models/CreateResource.js +1 -2
  126. package/gen/models/CreateVariable.d.ts +2 -0
  127. package/gen/models/CreateVariable.js +1 -2
  128. package/gen/models/CreateWorkspace.js +1 -2
  129. package/gen/models/EditResource.js +1 -2
  130. package/gen/models/EditResourceType.js +1 -2
  131. package/gen/models/EditSchedule.js +1 -2
  132. package/gen/models/EditVariable.js +1 -2
  133. package/gen/models/EditWorkspaceUser.js +1 -2
  134. package/gen/models/Flow.js +1 -2
  135. package/gen/models/FlowModule.d.ts +2 -0
  136. package/gen/models/FlowModule.js +1 -2
  137. package/gen/models/FlowModuleValue.d.ts +14 -2
  138. package/gen/models/FlowModuleValue.js +9 -5
  139. package/gen/models/FlowPreview.js +1 -2
  140. package/gen/models/FlowStatus.js +1 -2
  141. package/gen/models/FlowStatusModule.d.ts +6 -0
  142. package/gen/models/FlowStatusModule.js +2 -5
  143. package/gen/models/FlowValue.js +1 -2
  144. package/gen/models/GlobalUserInfo.js +2 -5
  145. package/gen/models/Group.js +1 -2
  146. package/gen/models/InputTransform.js +2 -5
  147. package/gen/models/Job.js +2 -5
  148. package/gen/models/ListableVariable.d.ts +2 -0
  149. package/gen/models/ListableVariable.js +1 -2
  150. package/gen/models/Login.js +1 -2
  151. package/gen/models/MainArgSignature.js +1 -2
  152. package/gen/models/NewSchedule.js +1 -2
  153. package/gen/models/NewToken.js +1 -2
  154. package/gen/models/NewUser.js +1 -2
  155. package/gen/models/Preview.js +2 -5
  156. package/gen/models/QueuedJob.d.ts +2 -1
  157. package/gen/models/QueuedJob.js +3 -5
  158. package/gen/models/Resource.d.ts +1 -0
  159. package/gen/models/Resource.js +1 -2
  160. package/gen/models/ResourceType.js +1 -2
  161. package/gen/models/Schedule.js +1 -2
  162. package/gen/models/Script.d.ts +1 -0
  163. package/gen/models/Script.js +2 -5
  164. package/gen/models/ScriptArgs.js +1 -2
  165. package/gen/models/SlackToken.d.ts +8 -0
  166. package/gen/models/SlackToken.js +4 -0
  167. package/gen/models/TokenResponse.d.ts +6 -0
  168. package/gen/models/TokenResponse.js +4 -0
  169. package/gen/models/TruncatedToken.js +1 -2
  170. package/gen/models/User.js +1 -2
  171. package/gen/models/UserWorkspaceList.js +1 -2
  172. package/gen/models/WorkerPing.js +1 -2
  173. package/gen/models/Workspace.js +1 -2
  174. package/gen/models/WorkspaceInvite.js +1 -2
  175. package/gen/services/AdminService.d.ts +6 -2
  176. package/gen/services/AdminService.js +6 -10
  177. package/gen/services/AuditService.d.ts +24 -8
  178. package/gen/services/AuditService.js +5 -9
  179. package/gen/services/FlowService.d.ts +37 -10
  180. package/gen/services/FlowService.js +23 -12
  181. package/gen/services/GranularAclService.d.ts +6 -2
  182. package/gen/services/GranularAclService.js +6 -10
  183. package/gen/services/GroupService.d.ts +18 -6
  184. package/gen/services/GroupService.js +11 -15
  185. package/gen/services/JobService.d.ts +167 -46
  186. package/gen/services/JobService.js +42 -22
  187. package/gen/services/OauthService.d.ts +104 -0
  188. package/gen/services/OauthService.js +133 -0
  189. package/gen/services/ResourceService.d.ts +39 -7
  190. package/gen/services/ResourceService.js +44 -18
  191. package/gen/services/ScheduleService.d.ts +36 -6
  192. package/gen/services/ScheduleService.js +39 -13
  193. package/gen/services/ScriptService.d.ts +66 -19
  194. package/gen/services/ScriptService.js +32 -20
  195. package/gen/services/SettingsService.js +5 -9
  196. package/gen/services/UserService.d.ts +49 -11
  197. package/gen/services/UserService.js +42 -29
  198. package/gen/services/VariableService.d.ts +19 -4
  199. package/gen/services/VariableService.js +24 -13
  200. package/gen/services/WorkerService.d.ts +6 -2
  201. package/gen/services/WorkerService.js +4 -8
  202. package/gen/services/WorkspaceService.d.ts +29 -24
  203. package/gen/services/WorkspaceService.js +23 -42
  204. package/infer.js +5 -9
  205. package/logout.js +20 -18
  206. package/package.json +51 -24
  207. package/script_helpers.d.ts +4 -0
  208. package/script_helpers.js +70 -0
  209. package/scripts.d.ts +2 -1
  210. package/scripts.js +11 -15
  211. package/stores.d.ts +6 -0
  212. package/stores.js +30 -22
  213. package/user.js +10 -15
  214. package/utils.d.ts +15 -1
  215. 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
- const svelte_toast_1 = require("@zerodevx/svelte-toast");
6
- function isToday(someDate) {
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
- exports.isToday = isToday;
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
- exports.daysAgo = daysAgo;
18
- function secondsAgo(date) {
14
+ export function secondsAgo(date) {
19
15
  return Math.floor((new Date().getTime() - date.getTime()) / 1000);
20
16
  }
21
- exports.secondsAgo = secondsAgo;
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
- exports.displayDaysAgo = displayDaysAgo;
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
- exports.displayDate = displayDate;
46
- function getToday() {
39
+ export function getToday() {
47
40
  var today = new Date();
48
41
  return today;
49
42
  }
50
- exports.getToday = getToday;
51
- function sendUserToast(message, error = false) {
43
+ export function sendUserToast(message, error = false) {
52
44
  if (error) {
53
- svelte_toast_1.toast.push(message, {
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
- svelte_toast_1.toast.push(message);
53
+ toast.push(message);
62
54
  }
63
- exports.sendUserToast = sendUserToast;
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
- exports.truncateHash = truncateHash;
73
- function sleep(ms) {
63
+ export function sleep(ms) {
74
64
  return new Promise((resolve) => setTimeout(resolve, ms));
75
65
  }
76
- exports.sleep = sleep;
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
- exports.clickOutside = clickOutside;
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
- exports.emptySchema = emptySchema;
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
- exports.simpleSchema = simpleSchema;
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
- exports.removeItemAll = removeItemAll;
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
- exports.canWrite = canWrite;
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
- exports.removeKeysWithEmptyValues = removeKeysWithEmptyValues;
158
- function allTrue(dict) {
140
+ export function allTrue(dict) {
159
141
  return Object.values(dict).every(Boolean);
160
142
  }
161
- exports.allTrue = allTrue;
162
- function forLater(scheduledString) {
143
+ export function forLater(scheduledString) {
163
144
  return new Date() < new Date(scheduledString);
164
145
  }
165
- exports.forLater = forLater;
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
- exports.elapsedSinceSecs = elapsedSinceSecs;
170
- function groupBy(scripts, toGroup, dflts = []) {
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
- exports.groupBy = groupBy;
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
- exports.truncate = truncate;
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
- exports.truncateRev = truncateRev;
217
- function isString(value) {
205
+ export function isString(value) {
218
206
  return typeof value === 'string' || value instanceof String;
219
207
  }
220
- exports.isString = isString;
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
+ }