@prefecthq/prefect-ui-library 2.9.18 → 2.10.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 (1068) hide show
  1. package/dist/{FlowRunsPageWithDefaultFilter-69VsEaxY.mjs → FlowRunsPageWithDefaultFilter-C6ZDBABX.mjs} +2 -2
  2. package/dist/{FlowRunsPageWithDefaultFilter-69VsEaxY.mjs.map → FlowRunsPageWithDefaultFilter-C6ZDBABX.mjs.map} +1 -1
  3. package/dist/{index-CsOfQPaS.mjs → index-CIX59mKM.mjs} +225 -189
  4. package/dist/{index-CsOfQPaS.mjs.map → index-CIX59mKM.mjs.map} +1 -1
  5. package/dist/prefect-ui-library.mjs +1 -1
  6. package/dist/prefect-ui-library.umd.js +2 -2
  7. package/dist/prefect-ui-library.umd.js.map +1 -1
  8. package/dist/style.css +1 -1
  9. package/dist/types/src/automations/components/AutomationTriggerCustomInput.vue.d.ts +5 -6
  10. package/dist/types/src/automations/components/AutomationTriggerDeploymentStatusInput.vue.d.ts +5 -6
  11. package/dist/types/src/automations/components/AutomationTriggerEventInput.vue.d.ts +9 -10
  12. package/dist/types/src/automations/components/AutomationTriggerFlowRunStateInput.vue.d.ts +5 -6
  13. package/dist/types/src/automations/components/AutomationTriggerWorkPoolStatusInput.vue.d.ts +5 -6
  14. package/dist/types/src/automations/components/AutomationTriggerWorkQueueStatusInput.vue.d.ts +5 -6
  15. package/dist/types/src/automations/components/AutomationWithinInput.vue.d.ts +9 -10
  16. package/dist/types/src/components/EventResourceCombobox.vue.d.ts +9 -12
  17. package/dist/types/src/components/FlowRunJobVariableOverridesLabeledInput.vue.d.ts +5 -6
  18. package/dist/types/src/components/FlowRunResumeModal.vue.d.ts +7 -9
  19. package/dist/types/src/components/FlowRunStateTypeCount.vue.d.ts +2 -2
  20. package/dist/types/src/components/FlowRunStateTypeEmpty.vue.d.ts +2 -2
  21. package/dist/types/src/components/FlowRunStateTypeTabDescription.vue.d.ts +2 -2
  22. package/dist/types/src/components/FlowRunsAccordion.vue.d.ts +2 -2
  23. package/dist/types/src/components/JobVariableOverridesInput.vue.d.ts +5 -6
  24. package/dist/types/src/components/LogLevelLabel.vue.d.ts +2 -2
  25. package/dist/types/src/components/LogLevelSelect.vue.d.ts +4 -4
  26. package/dist/types/src/components/NotificationStatusSelect.vue.d.ts +4 -4
  27. package/dist/types/src/components/SearchInput.vue.d.ts +3 -3
  28. package/dist/types/src/components/StateIcon.vue.d.ts +2 -2
  29. package/dist/types/src/components/StateListItem.vue.d.ts +2 -2
  30. package/dist/types/src/index.d.ts +1 -1
  31. package/dist/types/src/maps/index.d.ts +2 -2
  32. package/dist/types/src/mocks/index.d.ts +3 -3
  33. package/dist/types/src/models/StateType.d.ts +1 -1
  34. package/dist/types/src/schemas/components/SchemaForm.vue.d.ts +6 -6
  35. package/dist/types/src/schemas/components/SchemaFormProperty.vue.d.ts +1 -1
  36. package/dist/types/src/schemas/components/SchemaFormPropertyBoolean.vue.d.ts +8 -13
  37. package/dist/types/src/schemas/components/SchemaFormPropertyMenu.vue.d.ts +12 -15
  38. package/dist/types/src/schemas/components/SchemaInput.vue.d.ts +6 -6
  39. package/dist/types/src/schemas/types/schemaValues.d.ts +1 -1
  40. package/dist/types/src/services/Mapper.d.ts +2 -2
  41. package/dist/types/src/services/Mocker.d.ts +3 -3
  42. package/dist/types/src/tailwind.config.d.ts +14 -0
  43. package/dist/types/tailwind.config.d.ts +100 -0
  44. package/dist/types/vite.config.d.mts +2 -0
  45. package/package.json +11 -9
  46. package/src/automations/components/AutomationActionChangeFlowRunStateInput.vue +71 -0
  47. package/src/automations/components/AutomationActionDescription.vue +78 -0
  48. package/src/automations/components/AutomationActionDescriptionChangeFlowRunState.vue +36 -0
  49. package/src/automations/components/AutomationActionDescriptionDefault.vue +13 -0
  50. package/src/automations/components/AutomationActionDescriptionPauseResumeAutomation.vue +32 -0
  51. package/src/automations/components/AutomationActionDescriptionPauseResumeDeployment.vue +32 -0
  52. package/src/automations/components/AutomationActionDescriptionPauseResumeWorkPool.vue +37 -0
  53. package/src/automations/components/AutomationActionDescriptionPauseResumeWorkQueue.vue +36 -0
  54. package/src/automations/components/AutomationActionDescriptionRunDeployment.vue +73 -0
  55. package/src/automations/components/AutomationActionDescriptionSuspendCancelFlowRun.vue +16 -0
  56. package/src/automations/components/AutomationActionInput.vue +112 -0
  57. package/src/automations/components/AutomationActionPauseAutomationInput.vue +32 -0
  58. package/src/automations/components/AutomationActionPauseDeploymentInput.vue +32 -0
  59. package/src/automations/components/AutomationActionPauseWorkPoolInput.vue +32 -0
  60. package/src/automations/components/AutomationActionPauseWorkQueueInput.vue +32 -0
  61. package/src/automations/components/AutomationActionResumeAutomationInput.vue +32 -0
  62. package/src/automations/components/AutomationActionResumeDeploymentInput.vue +32 -0
  63. package/src/automations/components/AutomationActionResumeWorkPoolInput.vue +32 -0
  64. package/src/automations/components/AutomationActionResumeWorkQueueInput.vue +32 -0
  65. package/src/automations/components/AutomationActionRunDeploymentInput.vue +99 -0
  66. package/src/automations/components/AutomationActionRunDeploymentParameters.vue +82 -0
  67. package/src/automations/components/AutomationActionSendNotificationInput.vue +108 -0
  68. package/src/automations/components/AutomationAutomationCombobox.vue +31 -0
  69. package/src/automations/components/AutomationCombobox.vue +67 -0
  70. package/src/automations/components/AutomationDeploymentCombobox.vue +31 -0
  71. package/src/automations/components/AutomationIconText.vue +22 -0
  72. package/src/automations/components/AutomationMenu.vue +67 -0
  73. package/src/automations/components/AutomationToggle.vue +52 -0
  74. package/src/automations/components/AutomationTriggerCustomInput.vue +183 -0
  75. package/src/automations/components/AutomationTriggerDeploymentStatusInput.vue +64 -0
  76. package/src/automations/components/AutomationTriggerDescription.vue +27 -0
  77. package/src/automations/components/AutomationTriggerEventInput.vue +62 -0
  78. package/src/automations/components/AutomationTriggerEventPostureSelect.vue +35 -0
  79. package/src/automations/components/AutomationTriggerFlowRunStateInput.vue +83 -0
  80. package/src/automations/components/AutomationTriggerWorkPoolStatusInput.vue +64 -0
  81. package/src/automations/components/AutomationTriggerWorkQueueStatusInput.vue +72 -0
  82. package/src/automations/components/AutomationWithinInput.vue +77 -0
  83. package/src/automations/components/AutomationWorkPoolCombobox.vue +79 -0
  84. package/src/automations/components/AutomationWorkQueueCombobox.vue +40 -0
  85. package/src/automations/components/AutomationsPageEmptyState.vue +33 -0
  86. package/src/automations/components/index.ts +10 -0
  87. package/src/automations/compositions/index.ts +1 -0
  88. package/src/automations/compositions/useCreateAutomationQueryParams.ts +94 -0
  89. package/src/automations/defaultActionValues.ts +89 -0
  90. package/src/automations/defaultTriggerValues.ts +56 -0
  91. package/src/automations/index.ts +5 -0
  92. package/src/automations/maps/actions.ts +243 -0
  93. package/src/automations/maps/automations.ts +7 -0
  94. package/src/automations/maps/createAutomationQuery.ts +60 -0
  95. package/src/automations/maps/deploymentStatusTrigger.ts +95 -0
  96. package/src/automations/maps/event.ts +62 -0
  97. package/src/automations/maps/flowRunStateTrigger.ts +73 -0
  98. package/src/automations/maps/triggers.ts +94 -0
  99. package/src/automations/maps/utilities.ts +132 -0
  100. package/src/automations/maps/workPoolStatusTrigger.ts +106 -0
  101. package/src/automations/maps/workQueueStatusTrigger.ts +106 -0
  102. package/src/automations/types/actions.ts +325 -0
  103. package/src/automations/types/api/actions.ts +194 -0
  104. package/src/automations/types/api/automation.ts +6 -0
  105. package/src/automations/types/api/triggers.ts +54 -0
  106. package/src/automations/types/automation.ts +20 -0
  107. package/src/automations/types/automationTriggerEvent.ts +47 -0
  108. package/src/automations/types/createAutomationQuery.ts +50 -0
  109. package/src/automations/types/deploymentStatusTrigger.ts +27 -0
  110. package/src/automations/types/filter.ts +7 -0
  111. package/src/automations/types/flowRunStateTrigger.ts +51 -0
  112. package/src/automations/types/index.ts +63 -0
  113. package/src/automations/types/triggerTemplates.ts +47 -0
  114. package/src/automations/types/triggers.ts +12 -0
  115. package/src/automations/types/workPoolStatusTrigger.ts +24 -0
  116. package/src/automations/types/workQueueStatusTrigger.ts +26 -0
  117. package/src/components/.eslintrc.json +5 -0
  118. package/src/components/ActivityChart.vue +79 -0
  119. package/src/components/ArtifactCard.vue +231 -0
  120. package/src/components/ArtifactCollections.vue +127 -0
  121. package/src/components/ArtifactCollectionsEmptyState.vue +25 -0
  122. package/src/components/ArtifactDataMarkdown.vue +21 -0
  123. package/src/components/ArtifactDataRaw.vue +51 -0
  124. package/src/components/ArtifactDataResult.vue +25 -0
  125. package/src/components/ArtifactDataTable.vue +129 -0
  126. package/src/components/ArtifactDataUnknown.vue +23 -0
  127. package/src/components/ArtifactDataView.vue +36 -0
  128. package/src/components/ArtifactDescription.vue +22 -0
  129. package/src/components/ArtifactDetails.vue +142 -0
  130. package/src/components/ArtifactKeyIconText.vue +25 -0
  131. package/src/components/ArtifactMenu.vue +23 -0
  132. package/src/components/ArtifactResultCard.vue +81 -0
  133. package/src/components/ArtifactTimeline.vue +184 -0
  134. package/src/components/ArtifactTimelineItemContent.vue +180 -0
  135. package/src/components/ArtifactTimelineItemDate.vue +58 -0
  136. package/src/components/ArtifactTypeSelect.vue +32 -0
  137. package/src/components/BetaBadge.vue +18 -0
  138. package/src/components/BlockCapabilityBlockDocumentInput.vue +170 -0
  139. package/src/components/BlockCreateModal.vue +102 -0
  140. package/src/components/BlockDocument.vue +21 -0
  141. package/src/components/BlockDocumentCard.vue +49 -0
  142. package/src/components/BlockDocumentCombobox.vue +49 -0
  143. package/src/components/BlockDocumentInput.vue +69 -0
  144. package/src/components/BlockDocumentKeyValue.vue +27 -0
  145. package/src/components/BlockDocumentMenu.vue +58 -0
  146. package/src/components/BlockDocumentsTable.vue +233 -0
  147. package/src/components/BlockIconText.vue +22 -0
  148. package/src/components/BlockSchemaCapabilities.vue +16 -0
  149. package/src/components/BlockSchemaCapabilitySelect.vue +53 -0
  150. package/src/components/BlockSchemaCreateForm.vue +90 -0
  151. package/src/components/BlockSchemaEditForm.vue +48 -0
  152. package/src/components/BlockTypeCard.vue +79 -0
  153. package/src/components/BlockTypeCardLayout.vue +48 -0
  154. package/src/components/BlockTypeCardPreview.vue +81 -0
  155. package/src/components/BlockTypeList.vue +135 -0
  156. package/src/components/BlockTypeSelect.vue +52 -0
  157. package/src/components/BlockTypeSnippet.vue +22 -0
  158. package/src/components/BlocksDeleteButton.vue +52 -0
  159. package/src/components/BlocksPageEmptyState.vue +34 -0
  160. package/src/components/CodeBanner.vue +64 -0
  161. package/src/components/CollectionCardPreview.vue +68 -0
  162. package/src/components/CollectionItemCard.vue +53 -0
  163. package/src/components/CollectionsList.vue +99 -0
  164. package/src/components/ColorModeSelect.vue +41 -0
  165. package/src/components/ColorModeSelectOption.vue +86 -0
  166. package/src/components/ConcurrencyLimitActiveRuns.vue +31 -0
  167. package/src/components/ConcurrencyLimitDetails.vue +36 -0
  168. package/src/components/ConcurrencyLimitMenu.vue +51 -0
  169. package/src/components/ConcurrencyLimitResetModal.vue +61 -0
  170. package/src/components/ConcurrencyLimitV2Menu.vue +51 -0
  171. package/src/components/ConcurrencyLimitV2Toggle.vue +59 -0
  172. package/src/components/ConcurrencyLimitsCreateModal.vue +78 -0
  173. package/src/components/ConcurrencyLimitsPageEmptyState.vue +37 -0
  174. package/src/components/ConcurrencyLimitsTable.vue +65 -0
  175. package/src/components/ConcurrencyLimitsV2CreateModal.vue +114 -0
  176. package/src/components/ConcurrencyLimitsV2EmptyState.vue +36 -0
  177. package/src/components/ConcurrencyLimitsV2Table.vue +78 -0
  178. package/src/components/ConcurrencyLimitsV2UpdateModal.vue +119 -0
  179. package/src/components/ConcurrencyTableActiveSlots.vue +18 -0
  180. package/src/components/ConfirmDeleteModal.vue +71 -0
  181. package/src/components/ConfirmDeleteModalWithSlot.vue +30 -0
  182. package/src/components/ConfirmStateChangeModal.vue +92 -0
  183. package/src/components/CopyOverflowMenuItem.vue +13 -0
  184. package/src/components/CopyableWrapper.vue +38 -0
  185. package/src/components/CronScheduleForm.vue +168 -0
  186. package/src/components/CumulativeTaskRunsCard.vue +275 -0
  187. package/src/components/DashboardWorkPoolCard.vue +116 -0
  188. package/src/components/DashboardWorkPoolCardDetail.vue +28 -0
  189. package/src/components/DashboardWorkPoolFlowRunCompleteness.vue +118 -0
  190. package/src/components/DashboardWorkPoolFlowRunsTotal.vue +35 -0
  191. package/src/components/DashboardWorkPoolLateCount.vue +48 -0
  192. package/src/components/DashboardWorkPoolsCard.vue +72 -0
  193. package/src/components/DateInput.vue +57 -0
  194. package/src/components/DateRangeInput.vue +54 -0
  195. package/src/components/DateRangeInputWithFlowRunHistory.vue +125 -0
  196. package/src/components/DateRangeSelect.vue +47 -0
  197. package/src/components/DayOrDescriptionModal.vue +10 -0
  198. package/src/components/DeploymentCombobox.vue +83 -0
  199. package/src/components/DeploymentComboboxOption.vue +35 -0
  200. package/src/components/DeploymentConfiguration.vue +32 -0
  201. package/src/components/DeploymentCustomRunOverflowMenuItem.vue +20 -0
  202. package/src/components/DeploymentDeprecatedMessage.vue +31 -0
  203. package/src/components/DeploymentDescription.vue +9 -0
  204. package/src/components/DeploymentDescriptionEmptyState.vue +37 -0
  205. package/src/components/DeploymentDetails.vue +138 -0
  206. package/src/components/DeploymentForm.vue +160 -0
  207. package/src/components/DeploymentFormV2.vue +166 -0
  208. package/src/components/DeploymentIconText.vue +24 -0
  209. package/src/components/DeploymentList.vue +309 -0
  210. package/src/components/DeploymentMenu.vue +63 -0
  211. package/src/components/DeploymentQuickRunOverflowMenuItem.vue +61 -0
  212. package/src/components/DeploymentRelationships.vue +38 -0
  213. package/src/components/DeploymentScheduleCard.vue +72 -0
  214. package/src/components/DeploymentScheduleMenu.vue +83 -0
  215. package/src/components/DeploymentScheduleTags.vue +52 -0
  216. package/src/components/DeploymentScheduleToggle.vue +52 -0
  217. package/src/components/DeploymentSchedulesFieldset.vue +41 -0
  218. package/src/components/DeploymentStatusBadge.vue +42 -0
  219. package/src/components/DeploymentStatusIcon.vue +36 -0
  220. package/src/components/DeploymentStatusSelect.vue +35 -0
  221. package/src/components/DeploymentTagsInput.vue +45 -0
  222. package/src/components/DeploymentToggle.vue +57 -0
  223. package/src/components/DeploymentsCount.vue +35 -0
  224. package/src/components/DeploymentsDeleteButton.vue +60 -0
  225. package/src/components/DeploymentsList.vue +274 -0
  226. package/src/components/DeploymentsPageEmptyState.vue +29 -0
  227. package/src/components/DocumentationButton.vue +13 -0
  228. package/src/components/DurationIconText.vue +16 -0
  229. package/src/components/DurationInput.vue +78 -0
  230. package/src/components/EventResourceCombobox.vue +100 -0
  231. package/src/components/EventsCombobox.vue +87 -0
  232. package/src/components/ExtraInfoModal.vue +48 -0
  233. package/src/components/ExtraInfoTooltip.vue +22 -0
  234. package/src/components/FlowActivityChart.vue +46 -0
  235. package/src/components/FlowCombobox.vue +75 -0
  236. package/src/components/FlowDetails.vue +28 -0
  237. package/src/components/FlowIconText.vue +24 -0
  238. package/src/components/FlowList.vue +215 -0
  239. package/src/components/FlowMenu.vue +44 -0
  240. package/src/components/FlowPopover.vue +74 -0
  241. package/src/components/FlowRouterLink.vue +62 -0
  242. package/src/components/FlowRunArtifacts.vue +130 -0
  243. package/src/components/FlowRunBreadCrumbs.vue +56 -0
  244. package/src/components/FlowRunCancelButton.vue +52 -0
  245. package/src/components/FlowRunCancelModal.vue +87 -0
  246. package/src/components/FlowRunCreateFormTags.vue +29 -0
  247. package/src/components/FlowRunCreateFormV2.vue +196 -0
  248. package/src/components/FlowRunCreateFormWhen.vue +38 -0
  249. package/src/components/FlowRunCreateFormWorkQueueCombobox.vue +33 -0
  250. package/src/components/FlowRunDeployment.vue +22 -0
  251. package/src/components/FlowRunDetails.vue +82 -0
  252. package/src/components/FlowRunFilteredList.vue +92 -0
  253. package/src/components/FlowRunFlow.vue +20 -0
  254. package/src/components/FlowRunGraph.vue +192 -0
  255. package/src/components/FlowRunGraphArtifactCard.vue +23 -0
  256. package/src/components/FlowRunGraphArtifactDrawer.vue +118 -0
  257. package/src/components/FlowRunGraphArtifactsPopover.vue +48 -0
  258. package/src/components/FlowRunGraphConfirmation.vue +57 -0
  259. package/src/components/FlowRunGraphPopover.vue +66 -0
  260. package/src/components/FlowRunGraphSelectionPanel.vue +40 -0
  261. package/src/components/FlowRunGraphStatePopover.vue +53 -0
  262. package/src/components/FlowRunHistoryCard.vue +49 -0
  263. package/src/components/FlowRunIconText.vue +21 -0
  264. package/src/components/FlowRunJobVariableOverridesLabeledInput.vue +39 -0
  265. package/src/components/FlowRunList.vue +42 -0
  266. package/src/components/FlowRunListItem.vue +100 -0
  267. package/src/components/FlowRunLogs.vue +93 -0
  268. package/src/components/FlowRunMenu.vue +159 -0
  269. package/src/components/FlowRunName.vue +40 -0
  270. package/src/components/FlowRunNameInput.vue +39 -0
  271. package/src/components/FlowRunParentFlowRun.vue +36 -0
  272. package/src/components/FlowRunPopOver.vue +88 -0
  273. package/src/components/FlowRunPopOverContent.vue +71 -0
  274. package/src/components/FlowRunResults.vue +110 -0
  275. package/src/components/FlowRunResumeButton.vue +35 -0
  276. package/src/components/FlowRunResumeModal.vue +100 -0
  277. package/src/components/FlowRunRetryButton.vue +40 -0
  278. package/src/components/FlowRunRetryModal.vue +72 -0
  279. package/src/components/FlowRunStartTime.vue +24 -0
  280. package/src/components/FlowRunStateTypeCount.vue +72 -0
  281. package/src/components/FlowRunStateTypeEmpty.vue +83 -0
  282. package/src/components/FlowRunStateTypeEmptyAwaitingImage.vue +247 -0
  283. package/src/components/FlowRunStateTypeEmptyBadTerminalImage.vue +292 -0
  284. package/src/components/FlowRunStateTypeEmptyGoodTerminalImage.vue +292 -0
  285. package/src/components/FlowRunStateTypeEmptyLiveImage.vue +337 -0
  286. package/src/components/FlowRunStateTypeTabDescription.vue +63 -0
  287. package/src/components/FlowRunStateTypeTabs.vue +81 -0
  288. package/src/components/FlowRunSuspendButton.vue +36 -0
  289. package/src/components/FlowRunSuspendModal.vue +91 -0
  290. package/src/components/FlowRunTagsInput.vue +45 -0
  291. package/src/components/FlowRunTaskCounts.vue +48 -0
  292. package/src/components/FlowRunTaskRuns.vue +97 -0
  293. package/src/components/FlowRunTimelineSubFlowRunDetails.vue +85 -0
  294. package/src/components/FlowRunTimelineTaskDetails.vue +61 -0
  295. package/src/components/FlowRunWorkPool.vue +19 -0
  296. package/src/components/FlowRunWorkQueue.vue +49 -0
  297. package/src/components/FlowRunsAccordion.vue +69 -0
  298. package/src/components/FlowRunsAccordionContent.vue +49 -0
  299. package/src/components/FlowRunsAccordionHeader.vue +93 -0
  300. package/src/components/FlowRunsBarChart.vue +217 -0
  301. package/src/components/FlowRunsDeleteButton.vue +66 -0
  302. package/src/components/FlowRunsFilterGroup.vue +110 -0
  303. package/src/components/FlowRunsPageEmptyState.vue +29 -0
  304. package/src/components/FlowRunsPageWithDefaultFilter.vue +55 -0
  305. package/src/components/FlowRunsScatterPlot.vue +92 -0
  306. package/src/components/FlowRunsSort.vue +33 -0
  307. package/src/components/FlowsDeleteButton.vue +60 -0
  308. package/src/components/FlowsFilterGroup.vue +118 -0
  309. package/src/components/FlowsPageEmptyState.vue +45 -0
  310. package/src/components/FormattedDate.vue +59 -0
  311. package/src/components/FourZeroFour.vue +384 -0
  312. package/src/components/IconTextCount.vue +34 -0
  313. package/src/components/IntervalScheduleForm.vue +161 -0
  314. package/src/components/JobVariableOverridesInput.vue +24 -0
  315. package/src/components/JsonInput.vue +75 -0
  316. package/src/components/LastFlowRun.vue +18 -0
  317. package/src/components/LogLevelLabel.vue +66 -0
  318. package/src/components/LogLevelSelect.vue +38 -0
  319. package/src/components/LogRow.vue +105 -0
  320. package/src/components/LogoImage.vue +46 -0
  321. package/src/components/LogsContainer.vue +91 -0
  322. package/src/components/LogsSort.vue +30 -0
  323. package/src/components/MarketingBanner.vue +88 -0
  324. package/src/components/MiniDeploymentHistory.vue +25 -0
  325. package/src/components/MiniFlowHistory.vue +26 -0
  326. package/src/components/NextFlowRun.vue +18 -0
  327. package/src/components/NotificationDetails.vue +104 -0
  328. package/src/components/NotificationForm.vue +241 -0
  329. package/src/components/NotificationMenu.vue +53 -0
  330. package/src/components/NotificationStatusSelect.vue +31 -0
  331. package/src/components/NotificationToggle.vue +59 -0
  332. package/src/components/NotificationsPageEmptyState.vue +41 -0
  333. package/src/components/NotificationsTable.vue +119 -0
  334. package/src/components/PageHeading.vue +89 -0
  335. package/src/components/PageHeadingAccountSettings.vue +9 -0
  336. package/src/components/PageHeadingApiKeys.vue +14 -0
  337. package/src/components/PageHeadingArtifact.vue +62 -0
  338. package/src/components/PageHeadingArtifactKey.vue +41 -0
  339. package/src/components/PageHeadingArtifacts.vue +11 -0
  340. package/src/components/PageHeadingBlock.vue +30 -0
  341. package/src/components/PageHeadingBlockEdit.vue +22 -0
  342. package/src/components/PageHeadingBlocks.vue +18 -0
  343. package/src/components/PageHeadingBlocksCatalog.vue +27 -0
  344. package/src/components/PageHeadingBlocksCatalogCreate.vue +24 -0
  345. package/src/components/PageHeadingBlocksCatalogView.vue +23 -0
  346. package/src/components/PageHeadingConcurrencyLimit.vue +32 -0
  347. package/src/components/PageHeadingConcurrencyLimits.vue +18 -0
  348. package/src/components/PageHeadingDeployment.vue +41 -0
  349. package/src/components/PageHeadingDeploymentEdit.vue +22 -0
  350. package/src/components/PageHeadingDeployments.vue +13 -0
  351. package/src/components/PageHeadingFlow.vue +34 -0
  352. package/src/components/PageHeadingFlowCollection.vue +22 -0
  353. package/src/components/PageHeadingFlowCollections.vue +15 -0
  354. package/src/components/PageHeadingFlowRun.vue +134 -0
  355. package/src/components/PageHeadingFlowRunCreate.vue +28 -0
  356. package/src/components/PageHeadingFlowRuns.vue +34 -0
  357. package/src/components/PageHeadingFlows.vue +8 -0
  358. package/src/components/PageHeadingNotificationCreate.vue +9 -0
  359. package/src/components/PageHeadingNotificationEdit.vue +15 -0
  360. package/src/components/PageHeadingNotifications.vue +18 -0
  361. package/src/components/PageHeadingTaskRun.vue +106 -0
  362. package/src/components/PageHeadingVariables.vue +23 -0
  363. package/src/components/PageHeadingWorkPool.vue +39 -0
  364. package/src/components/PageHeadingWorkPoolCreate.vue +15 -0
  365. package/src/components/PageHeadingWorkPoolEdit.vue +22 -0
  366. package/src/components/PageHeadingWorkPoolQueue.vue +40 -0
  367. package/src/components/PageHeadingWorkPoolQueueCreate.vue +21 -0
  368. package/src/components/PageHeadingWorkPoolQueueEdit.vue +23 -0
  369. package/src/components/PageHeadingWorkPools.vue +22 -0
  370. package/src/components/PageHeadingWorkQueue.vue +42 -0
  371. package/src/components/PageHeadingWorkQueueCreate.vue +15 -0
  372. package/src/components/PageHeadingWorkQueueEdit.vue +22 -0
  373. package/src/components/PageHeadingWorkQueues.vue +18 -0
  374. package/src/components/PageHeadingWorkspaceSettings.vue +9 -0
  375. package/src/components/ParametersTable.vue +96 -0
  376. package/src/components/ProcessTypeBadge.vue +19 -0
  377. package/src/components/QuickRunParametersModal.vue +91 -0
  378. package/src/components/ResultsCount.vue +25 -0
  379. package/src/components/RowGridLayoutList.vue +53 -0
  380. package/src/components/RunMenu.vue +68 -0
  381. package/src/components/SaveFilterModal.vue +83 -0
  382. package/src/components/SavedFilters.vue +90 -0
  383. package/src/components/SavedFiltersDeleteModal.vue +54 -0
  384. package/src/components/SavedFiltersMenu.vue +110 -0
  385. package/src/components/ScheduleFieldset.vue +80 -0
  386. package/src/components/ScheduleFormModal.vue +129 -0
  387. package/src/components/SchemaForm.vue +42 -0
  388. package/src/components/SchemaFormFields.vue +31 -0
  389. package/src/components/SchemaFormFieldsWithValues.vue +47 -0
  390. package/src/components/SchemaFormInput.vue +72 -0
  391. package/src/components/SchemaFormProperties.vue +29 -0
  392. package/src/components/SchemaFormProperty.vue +45 -0
  393. package/src/components/SchemaFormPropertyAllOf.vue +17 -0
  394. package/src/components/SchemaFormPropertyAnyOf.vue +71 -0
  395. package/src/components/SchemaInput.vue +152 -0
  396. package/src/components/SchemaPropertiesKeyValues.vue +28 -0
  397. package/src/components/SchemaPropertyBlockKeyValue.vue +39 -0
  398. package/src/components/SchemaPropertyKeyValue.vue +58 -0
  399. package/src/components/SearchInput.vue +60 -0
  400. package/src/components/SelectedCount.vue +33 -0
  401. package/src/components/SeparatedList.vue +57 -0
  402. package/src/components/StateBadge.vue +56 -0
  403. package/src/components/StateIcon.vue +32 -0
  404. package/src/components/StateListItem.vue +200 -0
  405. package/src/components/StateNameSelect.vue +146 -0
  406. package/src/components/StateSelect.vue +87 -0
  407. package/src/components/StatisticKeyValue.vue +48 -0
  408. package/src/components/StatusIcon.vue +26 -0
  409. package/src/components/SubmitButton.vue +15 -0
  410. package/src/components/TaskRunArtifacts.vue +87 -0
  411. package/src/components/TaskRunDetails.vue +107 -0
  412. package/src/components/TaskRunIconText.vue +22 -0
  413. package/src/components/TaskRunList.vue +38 -0
  414. package/src/components/TaskRunListItem.vue +80 -0
  415. package/src/components/TaskRunLogs.vue +82 -0
  416. package/src/components/TaskRunTagsInput.vue +44 -0
  417. package/src/components/TaskRunsSort.vue +31 -0
  418. package/src/components/TimeSpanFilter.vue +29 -0
  419. package/src/components/TimezoneSelect.vue +80 -0
  420. package/src/components/ToastFlowRunCreate.vue +59 -0
  421. package/src/components/ToastParameterValidationError.vue +7 -0
  422. package/src/components/UseDeploymentSlot.vue +13 -0
  423. package/src/components/UseFlowSlot.vue +13 -0
  424. package/src/components/VariableCreateModal.vue +135 -0
  425. package/src/components/VariableEditModal.vue +134 -0
  426. package/src/components/VariableMenu.vue +69 -0
  427. package/src/components/VariableTagsInput.vue +44 -0
  428. package/src/components/VariablesDeleteButton.vue +54 -0
  429. package/src/components/VariablesPageEmptyState.vue +45 -0
  430. package/src/components/VariablesTable.vue +203 -0
  431. package/src/components/ViewModeButtonGroup.vue +13 -0
  432. package/src/components/WorkPoolAverageLateTime.vue +41 -0
  433. package/src/components/WorkPoolBaseJobTemplateFormSection.vue +121 -0
  434. package/src/components/WorkPoolCard.vue +121 -0
  435. package/src/components/WorkPoolCombobox.vue +68 -0
  436. package/src/components/WorkPoolCreateWizard.vue +78 -0
  437. package/src/components/WorkPoolCreateWizardStepInformation.vue +62 -0
  438. package/src/components/WorkPoolCreateWizardStepInfrastructureConfiguration.vue +66 -0
  439. package/src/components/WorkPoolCreateWizardStepInfrastructureType.vue +117 -0
  440. package/src/components/WorkPoolDetails.vue +72 -0
  441. package/src/components/WorkPoolEditForm.vue +101 -0
  442. package/src/components/WorkPoolIconText.vue +22 -0
  443. package/src/components/WorkPoolLastPolled.vue +30 -0
  444. package/src/components/WorkPoolLateIndicator.vue +31 -0
  445. package/src/components/WorkPoolList.vue +26 -0
  446. package/src/components/WorkPoolMenu.vue +55 -0
  447. package/src/components/WorkPoolQueueCombobox.vue +77 -0
  448. package/src/components/WorkPoolQueueCreateForm.vue +116 -0
  449. package/src/components/WorkPoolQueueDetails.vue +77 -0
  450. package/src/components/WorkPoolQueueEditForm.vue +115 -0
  451. package/src/components/WorkPoolQueueHealthIcon.vue +79 -0
  452. package/src/components/WorkPoolQueueMenu.vue +59 -0
  453. package/src/components/WorkPoolQueuePriorityLabel.vue +12 -0
  454. package/src/components/WorkPoolQueueStatusArray.vue +74 -0
  455. package/src/components/WorkPoolQueueStatusBadge.vue +70 -0
  456. package/src/components/WorkPoolQueueStatusIcon.vue +63 -0
  457. package/src/components/WorkPoolQueueToggle.vue +61 -0
  458. package/src/components/WorkPoolQueueUpcomingFlowRunsList.vue +55 -0
  459. package/src/components/WorkPoolQueuesDeleteButton.vue +67 -0
  460. package/src/components/WorkPoolQueuesTable.vue +127 -0
  461. package/src/components/WorkPoolStatusBadge.vue +18 -0
  462. package/src/components/WorkPoolStatusIcon.vue +51 -0
  463. package/src/components/WorkPoolStatusSelect.vue +36 -0
  464. package/src/components/WorkPoolToggle.vue +56 -0
  465. package/src/components/WorkPoolTypeSelect.vue +46 -0
  466. package/src/components/WorkPools.vue +63 -0
  467. package/src/components/WorkPoolsPageEmptyState.vue +40 -0
  468. package/src/components/WorkQueueCombobox.vue +120 -0
  469. package/src/components/WorkQueueCreateForm.vue +95 -0
  470. package/src/components/WorkQueueDetails.vue +90 -0
  471. package/src/components/WorkQueueEditForm.vue +101 -0
  472. package/src/components/WorkQueueFlowRunsList.vue +44 -0
  473. package/src/components/WorkQueueIconText.vue +62 -0
  474. package/src/components/WorkQueueLastPolled.vue +19 -0
  475. package/src/components/WorkQueueLateIndicator.vue +29 -0
  476. package/src/components/WorkQueueMenu.vue +69 -0
  477. package/src/components/WorkQueueStatusBadge.vue +48 -0
  478. package/src/components/WorkQueueStatusIcon.vue +43 -0
  479. package/src/components/WorkQueueStatusSelect.vue +35 -0
  480. package/src/components/WorkQueueToggle.vue +69 -0
  481. package/src/components/WorkQueuesDeleteButton.vue +66 -0
  482. package/src/components/WorkQueuesPageEmptyState.vue +42 -0
  483. package/src/components/WorkQueuesTable.vue +146 -0
  484. package/src/components/WorkerStatusBadge.vue +21 -0
  485. package/src/components/WorkersLateIndicator.vue +52 -0
  486. package/src/components/WorkersTable.vue +151 -0
  487. package/src/components/WorkspaceDashboardFlowRunsCard.vue +53 -0
  488. package/src/components/WorkspaceVariableCombobox.vue +64 -0
  489. package/src/components/index.ts +332 -0
  490. package/src/compositions/filters.ts +700 -0
  491. package/src/compositions/index.ts +63 -0
  492. package/src/compositions/useArtifact.ts +37 -0
  493. package/src/compositions/useArtifactCollection.ts +37 -0
  494. package/src/compositions/useBlockDocument.ts +37 -0
  495. package/src/compositions/useBlockDocuments.ts +45 -0
  496. package/src/compositions/useBlockSchema.ts +53 -0
  497. package/src/compositions/useBlockType.ts +54 -0
  498. package/src/compositions/useCan.ts +6 -0
  499. package/src/compositions/useComponent.ts +12 -0
  500. package/src/compositions/useDashboardSubscriptionOptions.ts +7 -0
  501. package/src/compositions/useDateRangeSelectValue.ts +135 -0
  502. package/src/compositions/useDefaultSavedSearchFilter.ts +40 -0
  503. package/src/compositions/useDeployment.ts +37 -0
  504. package/src/compositions/useDeployments.ts +45 -0
  505. package/src/compositions/useDeploymentsCount.ts +41 -0
  506. package/src/compositions/useFavicon.ts +42 -0
  507. package/src/compositions/useFilterPagination.ts +22 -0
  508. package/src/compositions/useFlow.ts +37 -0
  509. package/src/compositions/useFlowRun.ts +39 -0
  510. package/src/compositions/useFlowRunCompleteness.ts +62 -0
  511. package/src/compositions/useFlowRunFavicon.ts +20 -0
  512. package/src/compositions/useFlowRuns.ts +46 -0
  513. package/src/compositions/useFlowRunsAverageLateness.ts +35 -0
  514. package/src/compositions/useFlowRunsCount.ts +45 -0
  515. package/src/compositions/useFlows.ts +45 -0
  516. package/src/compositions/useFlowsCount.ts +41 -0
  517. package/src/compositions/useForm.ts +29 -0
  518. package/src/compositions/useInterval.ts +10 -0
  519. package/src/compositions/useJsonRecord.ts +47 -0
  520. package/src/compositions/useLastFlowRun.ts +39 -0
  521. package/src/compositions/useLogsSort.ts +34 -0
  522. package/src/compositions/useNextFlowRun.ts +41 -0
  523. package/src/compositions/useOptionalPropertiesSchema.ts +23 -0
  524. package/src/compositions/useOptionalRules.ts +9 -0
  525. package/src/compositions/usePaginatedSubscription.ts +102 -0
  526. package/src/compositions/usePagination.spec.ts +8 -0
  527. package/src/compositions/usePagination.ts +213 -0
  528. package/src/compositions/useReactiveField.ts +21 -0
  529. package/src/compositions/useReactiveForm.ts +23 -0
  530. package/src/compositions/useSavedFlowRunsSearches.ts +66 -0
  531. package/src/compositions/useScrollLinking.ts +63 -0
  532. package/src/compositions/useShowModal.ts +29 -0
  533. package/src/compositions/useStatePolling.ts +33 -0
  534. package/src/compositions/useSubscriptions.ts +52 -0
  535. package/src/compositions/useTabs.ts +38 -0
  536. package/src/compositions/useTaskRun.ts +37 -0
  537. package/src/compositions/useTaskRunFavicon.ts +20 -0
  538. package/src/compositions/useTaskRunResult.ts +47 -0
  539. package/src/compositions/useTaskRuns.ts +46 -0
  540. package/src/compositions/useTaskRunsCount.ts +58 -0
  541. package/src/compositions/useTaskRunsHistory.ts +45 -0
  542. package/src/compositions/useThemeTokens.ts +119 -0
  543. package/src/compositions/useVariable.ts +37 -0
  544. package/src/compositions/useVariables.ts +62 -0
  545. package/src/compositions/useWorkPool.ts +38 -0
  546. package/src/compositions/useWorkPoolById.ts +38 -0
  547. package/src/compositions/useWorkPoolLastPolled.ts +60 -0
  548. package/src/compositions/useWorkPoolQueue.ts +37 -0
  549. package/src/compositions/useWorkPoolsCount.ts +34 -0
  550. package/src/compositions/useWorkQueueStatus.ts +37 -0
  551. package/src/compositions/useWorkspaceApi.ts +6 -0
  552. package/src/compositions/useWorkspaceDashboardFilter.ts +26 -0
  553. package/src/compositions/useWorkspaceEvent.ts +32 -0
  554. package/src/compositions/useWorkspaceEventsSubscription.ts +73 -0
  555. package/src/compositions/useWorkspaceFlowRunDashboardFilter.ts +59 -0
  556. package/src/compositions/useWorkspaceRoutes.ts +7 -0
  557. package/src/date.d.ts +3 -0
  558. package/src/formatters/BlockDocumentSortValuesParam.ts +21 -0
  559. package/src/formatters/DateRangeSelectAroundPeriodParam.ts +21 -0
  560. package/src/formatters/DateRangeSelectAroundUnitParam.ts +21 -0
  561. package/src/formatters/DateRangeSelectTypeParam.ts +21 -0
  562. package/src/formatters/DeploymentSortValuesSortParam.ts +21 -0
  563. package/src/formatters/DeploymentStatusRouteParam.ts +17 -0
  564. package/src/formatters/FlowRunSortValuesSortParam.ts +21 -0
  565. package/src/formatters/FlowSortValuesSortParam.ts +21 -0
  566. package/src/formatters/JsonRouteParam.ts +13 -0
  567. package/src/formatters/OperatorRouteParam.ts +17 -0
  568. package/src/formatters/TaskRunSortValuesSortParam.ts +21 -0
  569. package/src/formatters/index.ts +7 -0
  570. package/src/index.ts +45 -0
  571. package/src/intl.d.ts +7 -0
  572. package/src/localization/index.ts +10 -0
  573. package/src/localization/locale/en.ts +214 -0
  574. package/src/maps/.eslintrc.json +5 -0
  575. package/src/maps/README.md +62 -0
  576. package/src/maps/artifact.ts +37 -0
  577. package/src/maps/blockDocument.ts +31 -0
  578. package/src/maps/blockDocumentCreate.ts +26 -0
  579. package/src/maps/blockDocumentReferences.ts +22 -0
  580. package/src/maps/blockDocumentUpdate.ts +14 -0
  581. package/src/maps/blockSchema.ts +16 -0
  582. package/src/maps/blockSchemaReferences.ts +11 -0
  583. package/src/maps/blockType.ts +17 -0
  584. package/src/maps/collectionItem.ts +28 -0
  585. package/src/maps/concurrencyLimit.ts +16 -0
  586. package/src/maps/concurrencyLimitCreate.ts +12 -0
  587. package/src/maps/concurrencyV2Limit.ts +27 -0
  588. package/src/maps/concurrencyV2LimitCreate.ts +20 -0
  589. package/src/maps/concurrencyV2LimitUpdate.ts +20 -0
  590. package/src/maps/createdOrUpdatedBy.ts +11 -0
  591. package/src/maps/dashboard.ts +64 -0
  592. package/src/maps/date.ts +9 -0
  593. package/src/maps/dateRangeSelectValue.ts +15 -0
  594. package/src/maps/deployment.ts +126 -0
  595. package/src/maps/deploymentSchedule.ts +14 -0
  596. package/src/maps/deploymentScheduleCreate.ts +11 -0
  597. package/src/maps/deploymentScheduleUpdate.ts +11 -0
  598. package/src/maps/deploymentStatsFilter.ts +35 -0
  599. package/src/maps/deploymentStatus.ts +10 -0
  600. package/src/maps/divergingBarChartItem.ts +14 -0
  601. package/src/maps/empiricalPolicy.ts +31 -0
  602. package/src/maps/filters.ts +539 -0
  603. package/src/maps/flow.ts +39 -0
  604. package/src/maps/flowRun.ts +41 -0
  605. package/src/maps/flowRunHistory.ts +19 -0
  606. package/src/maps/flowStatsFilter.ts +34 -0
  607. package/src/maps/index.ts +283 -0
  608. package/src/maps/logs.ts +31 -0
  609. package/src/maps/mapFlowRunInputKeysetResponseToFlowRunInputKeyset.ts +19 -0
  610. package/src/maps/notification.ts +16 -0
  611. package/src/maps/notificationCreate.ts +12 -0
  612. package/src/maps/notificationUpdate.ts +12 -0
  613. package/src/maps/number.ts +9 -0
  614. package/src/maps/orchestrationResult.ts +10 -0
  615. package/src/maps/runGraphData.ts +65 -0
  616. package/src/maps/savedSearch.ts +143 -0
  617. package/src/maps/savedSearchCreate.ts +68 -0
  618. package/src/maps/savedSearchFilter.ts +34 -0
  619. package/src/maps/scatterPlotItem.ts +19 -0
  620. package/src/maps/schedule.ts +84 -0
  621. package/src/maps/schema.ts +53 -0
  622. package/src/maps/schemaValuesRequest.ts +12 -0
  623. package/src/maps/schemaValuesResponse.ts +23 -0
  624. package/src/maps/state.ts +39 -0
  625. package/src/maps/stateDetails.ts +58 -0
  626. package/src/maps/stateHistory.ts +24 -0
  627. package/src/maps/stateType.ts +10 -0
  628. package/src/maps/stateUpdate.ts +14 -0
  629. package/src/maps/taskInput.ts +40 -0
  630. package/src/maps/taskRun.ts +62 -0
  631. package/src/maps/taskRunHistory.ts +46 -0
  632. package/src/maps/uiFlowRunHistory.ts +14 -0
  633. package/src/maps/uiTaskRunCountsByState.ts +13 -0
  634. package/src/maps/variable.ts +32 -0
  635. package/src/maps/workPool.ts +70 -0
  636. package/src/maps/workPoolQueue.ts +66 -0
  637. package/src/maps/workPoolStatus.ts +22 -0
  638. package/src/maps/workPoolWorker.ts +15 -0
  639. package/src/maps/workPoolWorkerStatus.ts +10 -0
  640. package/src/maps/workQueue.ts +52 -0
  641. package/src/maps/workQueueFilter.ts +18 -0
  642. package/src/maps/workQueueHealthPolicy.ts +9 -0
  643. package/src/maps/workQueueStatus.ts +11 -0
  644. package/src/maps/workerCollection.ts +58 -0
  645. package/src/maps/workerScheduledFlowRun.ts +19 -0
  646. package/src/maps/workspaceEvent.ts +77 -0
  647. package/src/maps/workspaceEvents.ts +11 -0
  648. package/src/maps/workspaceEventsCount.ts +22 -0
  649. package/src/maps/workspaceEventsFilter.ts +92 -0
  650. package/src/maps/workspaceEventsHistory.ts +13 -0
  651. package/src/mocks/README.md +62 -0
  652. package/src/mocks/UiFlowRunHistory.ts +13 -0
  653. package/src/mocks/any.ts +13 -0
  654. package/src/mocks/artifact.ts +42 -0
  655. package/src/mocks/blockDocument.ts +26 -0
  656. package/src/mocks/blockDocumentData.ts +24 -0
  657. package/src/mocks/blockSchema.ts +18 -0
  658. package/src/mocks/blockSchemaCapabilities.ts +5 -0
  659. package/src/mocks/blockSchemaCapability.ts +5 -0
  660. package/src/mocks/blockType.ts +19 -0
  661. package/src/mocks/blockTypeSnippet.ts +14 -0
  662. package/src/mocks/boolean.ts +5 -0
  663. package/src/mocks/collectionItem.ts +25 -0
  664. package/src/mocks/concurrencyLimit.ts +14 -0
  665. package/src/mocks/concurrencyV2Limit.ts +13 -0
  666. package/src/mocks/createdOrUpdatedBy.ts +12 -0
  667. package/src/mocks/date.ts +18 -0
  668. package/src/mocks/deployment.ts +51 -0
  669. package/src/mocks/deploymentSchedule.ts +22 -0
  670. package/src/mocks/deploymentStatus.ts +8 -0
  671. package/src/mocks/email.ts +5 -0
  672. package/src/mocks/flow.ts +13 -0
  673. package/src/mocks/flowResponse.ts +13 -0
  674. package/src/mocks/flowRun.ts +43 -0
  675. package/src/mocks/flowRunGraph.ts +108 -0
  676. package/src/mocks/flowRunHistory.ts +13 -0
  677. package/src/mocks/flowRunStateHistory.ts +14 -0
  678. package/src/mocks/id.ts +6 -0
  679. package/src/mocks/image.ts +14 -0
  680. package/src/mocks/index.ts +123 -0
  681. package/src/mocks/log.ts +22 -0
  682. package/src/mocks/markdown.ts +158 -0
  683. package/src/mocks/notification.ts +15 -0
  684. package/src/mocks/notificationCreate.ts +14 -0
  685. package/src/mocks/number.ts +7 -0
  686. package/src/mocks/parameters.ts +69 -0
  687. package/src/mocks/schedule.ts +46 -0
  688. package/src/mocks/schemas.ts +68 -0
  689. package/src/mocks/sentences/generateText.ts +103 -0
  690. package/src/mocks/sentences/sample.ts +94 -0
  691. package/src/mocks/sentences/utils.ts +64 -0
  692. package/src/mocks/starnames/generateStarName.ts +14 -0
  693. package/src/mocks/starnames/index.ts +4 -0
  694. package/src/mocks/starnames/names.ts +2 -0
  695. package/src/mocks/starnames/prefixes.ts +2 -0
  696. package/src/mocks/starnames/suffixes.ts +2 -0
  697. package/src/mocks/state.ts +30 -0
  698. package/src/mocks/stateType.ts +6 -0
  699. package/src/mocks/string.ts +40 -0
  700. package/src/mocks/table.ts +34 -0
  701. package/src/mocks/taskRun.ts +33 -0
  702. package/src/mocks/url.ts +14 -0
  703. package/src/mocks/workPool.ts +26 -0
  704. package/src/mocks/workPoolQueue.ts +19 -0
  705. package/src/mocks/workPoolStatus.ts +8 -0
  706. package/src/mocks/workQueue.ts +30 -0
  707. package/src/mocks/workQueueCreate.ts +14 -0
  708. package/src/mocks/workQueueHealthPolicy.ts +11 -0
  709. package/src/mocks/workQueueStatus.ts +14 -0
  710. package/src/mocks/worker.ts +15 -0
  711. package/src/mocks/workerStatus.ts +6 -0
  712. package/src/models/Artifact.ts +85 -0
  713. package/src/models/ArtifactCollection.ts +34 -0
  714. package/src/models/BatchLookupError.ts +5 -0
  715. package/src/models/BlockDocument.ts +58 -0
  716. package/src/models/BlockDocumentCreate.ts +18 -0
  717. package/src/models/BlockDocumentUpdate.ts +8 -0
  718. package/src/models/BlockSchema.ts +35 -0
  719. package/src/models/BlockType.ts +35 -0
  720. package/src/models/CloudConfigMissingParamsError.ts +5 -0
  721. package/src/models/CollectionItem.ts +16 -0
  722. package/src/models/ConcurrencyLimit.ts +8 -0
  723. package/src/models/ConcurrencyLimitCreate.ts +4 -0
  724. package/src/models/ConcurrencyV2ActiveSlots.ts +5 -0
  725. package/src/models/ConcurrencyV2Create.ts +8 -0
  726. package/src/models/ConcurrencyV2DecrementActiveSlots.ts +5 -0
  727. package/src/models/ConcurrencyV2IncrementActiveSlots.ts +5 -0
  728. package/src/models/ConcurrencyV2Limit.ts +12 -0
  729. package/src/models/ConcurrencyV2Update.ts +8 -0
  730. package/src/models/CreatedOrUpdatedBy.ts +7 -0
  731. package/src/models/CronSchedule.ts +235 -0
  732. package/src/models/CronStringLengthError.ts +5 -0
  733. package/src/models/Deployment.ts +123 -0
  734. package/src/models/DeploymentFlowRunCreate.ts +38 -0
  735. package/src/models/DeploymentSchedule.ts +30 -0
  736. package/src/models/DeploymentScheduleCompatible.ts +7 -0
  737. package/src/models/DeploymentScheduleCreate.ts +7 -0
  738. package/src/models/DeploymentScheduleUpdate.ts +7 -0
  739. package/src/models/DeploymentStatus.ts +6 -0
  740. package/src/models/DeploymentUpdate.ts +48 -0
  741. package/src/models/EmpiricalPolicy.ts +20 -0
  742. package/src/models/FilterDateError.ts +5 -0
  743. package/src/models/FilterPrefixError.ts +5 -0
  744. package/src/models/FilterRelativeDateUnitError.ts +5 -0
  745. package/src/models/Filters.ts +273 -0
  746. package/src/models/Flow.ts +23 -0
  747. package/src/models/FlowRun.ts +131 -0
  748. package/src/models/FlowRunHistoryMap.ts +23 -0
  749. package/src/models/FlowRunInputKeyset.ts +5 -0
  750. package/src/models/GraphNode.ts +39 -0
  751. package/src/models/ISchedule.ts +8 -0
  752. package/src/models/IntervalSchedule.ts +127 -0
  753. package/src/models/InvalidSchemaValueError.ts +5 -0
  754. package/src/models/Log.ts +39 -0
  755. package/src/models/NoSchemaPropertyDefaultValueError.ts +5 -0
  756. package/src/models/Notification.ts +32 -0
  757. package/src/models/NotificationCreate.ts +8 -0
  758. package/src/models/NotificationUpdate.ts +6 -0
  759. package/src/models/ObjectLevelCan.ts +25 -0
  760. package/src/models/PublicCron.ts +87 -0
  761. package/src/models/RRuleSchedule.ts +38 -0
  762. package/src/models/RunHistory.ts +19 -0
  763. package/src/models/SavedSearch.ts +34 -0
  764. package/src/models/Schedule.ts +40 -0
  765. package/src/models/State.ts +12 -0
  766. package/src/models/StateCreate.ts +10 -0
  767. package/src/models/StateDetails.ts +13 -0
  768. package/src/models/StateDetailsCreate.ts +8 -0
  769. package/src/models/StateHistory.ts +25 -0
  770. package/src/models/StateType.ts +56 -0
  771. package/src/models/StateUpdate.ts +13 -0
  772. package/src/models/TaskInput.ts +48 -0
  773. package/src/models/TaskRun.ts +89 -0
  774. package/src/models/TaskRunHistory.ts +13 -0
  775. package/src/models/UiFlowRunHistory.ts +10 -0
  776. package/src/models/UiTaskRunCountsByState.ts +5 -0
  777. package/src/models/Variable.ts +32 -0
  778. package/src/models/VariableCreate.ts +5 -0
  779. package/src/models/VariableEdit.ts +5 -0
  780. package/src/models/WorkPool.ts +67 -0
  781. package/src/models/WorkPoolCreate.ts +11 -0
  782. package/src/models/WorkPoolEdit.ts +9 -0
  783. package/src/models/WorkPoolQueue.ts +43 -0
  784. package/src/models/WorkPoolQueueCreate.ts +7 -0
  785. package/src/models/WorkPoolQueueEdit.ts +7 -0
  786. package/src/models/WorkPoolQueueTableData.ts +11 -0
  787. package/src/models/WorkPoolStatus.ts +7 -0
  788. package/src/models/WorkPoolWorker.ts +31 -0
  789. package/src/models/WorkPoolWorkerStatus.ts +4 -0
  790. package/src/models/WorkQueue.ts +53 -0
  791. package/src/models/WorkQueueCreate.ts +6 -0
  792. package/src/models/WorkQueueEdit.ts +5 -0
  793. package/src/models/WorkQueueFilter.ts +15 -0
  794. package/src/models/WorkQueueHealthPolicy.ts +4 -0
  795. package/src/models/WorkQueueStatus.ts +22 -0
  796. package/src/models/WorkQueueTableData.ts +11 -0
  797. package/src/models/WorkerCollectionItem.ts +27 -0
  798. package/src/models/WorkerScheduledFlowRun.ts +7 -0
  799. package/src/models/WorkerScheduledFlowRuns.ts +6 -0
  800. package/src/models/api/ArtifactCollectionResponse.ts +6 -0
  801. package/src/models/api/ArtifactResponse.ts +15 -0
  802. package/src/models/api/BlockDocumentCreateRequest.ts +35 -0
  803. package/src/models/api/BlockDocumentResponse.ts +29 -0
  804. package/src/models/api/BlockDocumentUpdateRequest.ts +4 -0
  805. package/src/models/api/BlockSchemaResponse.ts +13 -0
  806. package/src/models/api/BlockTypeResponse.ts +11 -0
  807. package/src/models/api/CollectionItemResponse.ts +19 -0
  808. package/src/models/api/ConcurrencyLimitCreateRequest.ts +4 -0
  809. package/src/models/api/ConcurrencyLimitResponse.ts +8 -0
  810. package/src/models/api/ConcurrencyV2ActiveSlotsResponse.ts +5 -0
  811. package/src/models/api/ConcurrencyV2CreateRequest.ts +8 -0
  812. package/src/models/api/ConcurrencyV2DecrementActiveSlotsRequest.ts +5 -0
  813. package/src/models/api/ConcurrencyV2IncrementActiveSlotsRequest.ts +5 -0
  814. package/src/models/api/ConcurrencyV2Response.ts +12 -0
  815. package/src/models/api/ConcurrencyV2UpdateRequest.ts +8 -0
  816. package/src/models/api/CreatedOrUpdatedByResponse.ts +7 -0
  817. package/src/models/api/DeploymentFlowRunRequest.ts +16 -0
  818. package/src/models/api/DeploymentResponse.ts +39 -0
  819. package/src/models/api/DeploymentScheduleCreateRequest.ts +7 -0
  820. package/src/models/api/DeploymentScheduleResponse.ts +12 -0
  821. package/src/models/api/DeploymentScheduleUpdateRequest.ts +7 -0
  822. package/src/models/api/DeploymentUpdateRequest.ts +18 -0
  823. package/src/models/api/EmpiricalPolicyRequest.ts +6 -0
  824. package/src/models/api/EmpiricalPolicyResponse.ts +6 -0
  825. package/src/models/api/Filters.ts +261 -0
  826. package/src/models/api/FlowResponse.ts +7 -0
  827. package/src/models/api/FlowRunGraphResponse.ts +18 -0
  828. package/src/models/api/FlowRunHistoryResponse.ts +7 -0
  829. package/src/models/api/FlowRunInputKeysetResponse.ts +5 -0
  830. package/src/models/api/FlowRunResponse.ts +43 -0
  831. package/src/models/api/LogResponse.ts +13 -0
  832. package/src/models/api/NotificationCreateRequest.ts +6 -0
  833. package/src/models/api/NotificationResponse.ts +9 -0
  834. package/src/models/api/NotificationUpdateRequest.ts +6 -0
  835. package/src/models/api/OrchestrationResult.ts +9 -0
  836. package/src/models/api/OrchestrationResultResponse.ts +9 -0
  837. package/src/models/api/RunGraphDataResponse.ts +39 -0
  838. package/src/models/api/SavedSearchResponse.ts +94 -0
  839. package/src/models/api/ScheduleRequest.ts +33 -0
  840. package/src/models/api/ScheduleResponse.ts +33 -0
  841. package/src/models/api/SchemaResponse.ts +52 -0
  842. package/src/models/api/StateDetailsRequest.ts +12 -0
  843. package/src/models/api/StateDetailsResponse.ts +14 -0
  844. package/src/models/api/StateHistoryResponse.ts +9 -0
  845. package/src/models/api/StateRequest.ts +10 -0
  846. package/src/models/api/StateResponse.ts +12 -0
  847. package/src/models/api/StateUpdateRequest.ts +13 -0
  848. package/src/models/api/TaskInputResponse.ts +28 -0
  849. package/src/models/api/TaskRunHistoryResponse.ts +13 -0
  850. package/src/models/api/TaskRunResponse.ts +32 -0
  851. package/src/models/api/UiFlowRunHistoryResponse.ts +10 -0
  852. package/src/models/api/UiTaskRunCountsByStateResponse.ts +5 -0
  853. package/src/models/api/VariableRequest.ts +11 -0
  854. package/src/models/api/VariableResponse.ts +10 -0
  855. package/src/models/api/WorkPoolQueueRequest.ts +15 -0
  856. package/src/models/api/WorkPoolQueueResponse.ts +17 -0
  857. package/src/models/api/WorkPoolRequest.ts +22 -0
  858. package/src/models/api/WorkPoolResponse.ts +24 -0
  859. package/src/models/api/WorkPoolWorkerResponse.ts +13 -0
  860. package/src/models/api/WorkQueueFilterResponse.ts +4 -0
  861. package/src/models/api/WorkQueueHealthPolicyResponse.ts +4 -0
  862. package/src/models/api/WorkQueueRequest.ts +12 -0
  863. package/src/models/api/WorkQueueResponse.ts +17 -0
  864. package/src/models/api/WorkQueueStatusResponse.ts +10 -0
  865. package/src/models/api/WorkerCollectionItemResponse.ts +23 -0
  866. package/src/models/api/WorkerScheduledFlowRunResponse.ts +7 -0
  867. package/src/models/api/WorkerScheduledFlowRunsRequest.ts +6 -0
  868. package/src/models/api/index.ts +47 -0
  869. package/src/models/api/workspaceEvents.ts +37 -0
  870. package/src/models/api/workspaceEventsFilterRequest.ts +20 -0
  871. package/src/models/api/workspaceEventsHistoryRequest.ts +9 -0
  872. package/src/models/index.ts +82 -0
  873. package/src/models/workspaceEvent.ts +119 -0
  874. package/src/models/workspaceEvents.ts +36 -0
  875. package/src/models/workspaceEventsCount.ts +31 -0
  876. package/src/router/index.ts +409 -0
  877. package/src/router/routes.ts +69 -0
  878. package/src/schemas/components/SchemaForm.vue +94 -0
  879. package/src/schemas/components/SchemaFormProperties.vue +112 -0
  880. package/src/schemas/components/SchemaFormProperty.vue +202 -0
  881. package/src/schemas/components/SchemaFormPropertyAllOf.vue +51 -0
  882. package/src/schemas/components/SchemaFormPropertyAnyOf.vue +144 -0
  883. package/src/schemas/components/SchemaFormPropertyArray.vue +69 -0
  884. package/src/schemas/components/SchemaFormPropertyArrayItem.vue +93 -0
  885. package/src/schemas/components/SchemaFormPropertyArrayList.vue +136 -0
  886. package/src/schemas/components/SchemaFormPropertyBlockDocument.vue +39 -0
  887. package/src/schemas/components/SchemaFormPropertyBoolean.vue +20 -0
  888. package/src/schemas/components/SchemaFormPropertyDate.vue +44 -0
  889. package/src/schemas/components/SchemaFormPropertyDateTime.vue +43 -0
  890. package/src/schemas/components/SchemaFormPropertyErrors.vue +41 -0
  891. package/src/schemas/components/SchemaFormPropertyInput.vue +124 -0
  892. package/src/schemas/components/SchemaFormPropertyInteger.vue +42 -0
  893. package/src/schemas/components/SchemaFormPropertyKindJinja.vue +36 -0
  894. package/src/schemas/components/SchemaFormPropertyKindJson.vue +47 -0
  895. package/src/schemas/components/SchemaFormPropertyKindWorkspaceVariable.vue +30 -0
  896. package/src/schemas/components/SchemaFormPropertyMenu.vue +96 -0
  897. package/src/schemas/components/SchemaFormPropertyNull.vue +28 -0
  898. package/src/schemas/components/SchemaFormPropertyObject.vue +59 -0
  899. package/src/schemas/components/SchemaFormPropertyString.vue +90 -0
  900. package/src/schemas/components/SchemaFormPropertyUnknown.vue +64 -0
  901. package/src/schemas/components/SchemaInput.vue +62 -0
  902. package/src/schemas/compositions/usePrefectKindValue.ts +95 -0
  903. package/src/schemas/compositions/useSchema.ts +16 -0
  904. package/src/schemas/compositions/useSchemaFormKinds.ts +8 -0
  905. package/src/schemas/compositions/useSchemaProperty.ts +48 -0
  906. package/src/schemas/compositions/useSchemaPropertyInput.ts +73 -0
  907. package/src/schemas/compositions/useSchemaValidation.ts +57 -0
  908. package/src/schemas/index.ts +20 -0
  909. package/src/schemas/mapper.ts +67 -0
  910. package/src/schemas/maps/index.ts +10 -0
  911. package/src/schemas/maps/schema.ts +111 -0
  912. package/src/schemas/maps/schemaValue.ts +117 -0
  913. package/src/schemas/symbols.ts +3 -0
  914. package/src/schemas/types/schema.ts +78 -0
  915. package/src/schemas/types/schemaResponse.ts +45 -0
  916. package/src/schemas/types/schemaValues.ts +97 -0
  917. package/src/schemas/types/schemaValuesValidationResponse.ts +30 -0
  918. package/src/schemas/utilities/definitions.ts +23 -0
  919. package/src/schemas/utilities/errors.ts +49 -0
  920. package/src/schemas/utilities/properties.ts +154 -0
  921. package/src/services/Api.ts +134 -0
  922. package/src/services/BatchProcessor/BatchProcessor.ts +156 -0
  923. package/src/services/BatchProcessor/README.md +36 -0
  924. package/src/services/BatchProcessor/index.ts +1 -0
  925. package/src/services/CollectionsApi.ts +17 -0
  926. package/src/services/HealthApi.ts +17 -0
  927. package/src/services/Mapper.ts +67 -0
  928. package/src/services/Mocker.ts +42 -0
  929. package/src/services/RouteGuardExecutioner.ts +44 -0
  930. package/src/services/SimpleIdManager.ts +7 -0
  931. package/src/services/UiApi.ts +29 -0
  932. package/src/services/WorkspaceApi.ts +29 -0
  933. package/src/services/WorkspaceArtifactsApi.ts +75 -0
  934. package/src/services/WorkspaceAutomationsApi.ts +66 -0
  935. package/src/services/WorkspaceBlockCapabilitiesApi.ts +13 -0
  936. package/src/services/WorkspaceBlockDocumentsApi.ts +71 -0
  937. package/src/services/WorkspaceBlockSchemasApi.ts +37 -0
  938. package/src/services/WorkspaceBlockTypesApi.ts +38 -0
  939. package/src/services/WorkspaceConcurrencyLimitsApi.ts +46 -0
  940. package/src/services/WorkspaceConcurrencyLimitsV2API.ts +47 -0
  941. package/src/services/WorkspaceDeploymentScheduleApi.ts +23 -0
  942. package/src/services/WorkspaceDeploymentsApi.ts +99 -0
  943. package/src/services/WorkspaceFlowRunsApi.ts +140 -0
  944. package/src/services/WorkspaceFlowsApi.ts +51 -0
  945. package/src/services/WorkspaceLogsApi.ts +18 -0
  946. package/src/services/WorkspaceNotificationsApi.ts +39 -0
  947. package/src/services/WorkspaceSavedSearchesApi.ts +46 -0
  948. package/src/services/WorkspaceSchemasWorkspaceApi.ts +52 -0
  949. package/src/services/WorkspaceTaskRunsApi.ts +67 -0
  950. package/src/services/WorkspaceVariablesApi.ts +51 -0
  951. package/src/services/WorkspaceWorkPoolQueuesApi.ts +51 -0
  952. package/src/services/WorkspaceWorkPoolWorkersApi.ts +27 -0
  953. package/src/services/WorkspaceWorkPoolsApi.ts +88 -0
  954. package/src/services/WorkspaceWorkQueuesApi.ts +98 -0
  955. package/src/services/can.ts +110 -0
  956. package/src/services/index.ts +33 -0
  957. package/src/services/schemas/constants.spec.ts +9 -0
  958. package/src/services/schemas/constants.ts +1 -0
  959. package/src/services/schemas/index.ts +4 -0
  960. package/src/services/schemas/properties/SchemaPropertyAny.ts +113 -0
  961. package/src/services/schemas/properties/SchemaPropertyArray.ts +62 -0
  962. package/src/services/schemas/properties/SchemaPropertyBlock.ts +54 -0
  963. package/src/services/schemas/properties/SchemaPropertyBoolean.ts +49 -0
  964. package/src/services/schemas/properties/SchemaPropertyInteger.ts +36 -0
  965. package/src/services/schemas/properties/SchemaPropertyNull.ts +16 -0
  966. package/src/services/schemas/properties/SchemaPropertyNumber.ts +42 -0
  967. package/src/services/schemas/properties/SchemaPropertyObject.ts +68 -0
  968. package/src/services/schemas/properties/SchemaPropertyService.ts +179 -0
  969. package/src/services/schemas/properties/SchemaPropertyString.ts +142 -0
  970. package/src/services/schemas/properties/factory.ts +46 -0
  971. package/src/services/schemas/properties/index.ts +10 -0
  972. package/src/services/schemas/resolvers/blockReferenceDefaults.ts +44 -0
  973. package/src/services/schemas/resolvers/blockReferences.ts +28 -0
  974. package/src/services/schemas/resolvers/definitions.ts +94 -0
  975. package/src/services/schemas/resolvers/index.ts +3 -0
  976. package/src/services/schemas/resolvers/meta.ts +50 -0
  977. package/src/services/schemas/resolvers/schemas.ts +19 -0
  978. package/src/services/schemas/utilities.ts +295 -0
  979. package/src/services/storage/Storage.ts +83 -0
  980. package/src/services/storage/StorageItem.ts +5 -0
  981. package/src/services/storage/flowRunStorage.ts +7 -0
  982. package/src/services/storage/index.ts +4 -0
  983. package/src/services/storage/useStorage.ts +53 -0
  984. package/src/services/workspaceEventsApi.ts +69 -0
  985. package/src/shims-svg.d.ts +11 -0
  986. package/src/styles/colors.css +682 -0
  987. package/src/styles/index.css +5 -0
  988. package/src/styles/states.css +94 -0
  989. package/src/tailwind.config.ts +37 -0
  990. package/src/types/ColorMode.ts +11 -0
  991. package/src/types/RouteGuard.ts +9 -0
  992. package/src/types/SortOptionTypes.ts +114 -0
  993. package/src/types/any.ts +2 -0
  994. package/src/types/artifact.ts +30 -0
  995. package/src/types/buttons.ts +1 -0
  996. package/src/types/cron.ts +99 -0
  997. package/src/types/css.ts +1 -0
  998. package/src/types/dashboard.ts +8 -0
  999. package/src/types/dates.ts +7 -0
  1000. package/src/types/debug.ts +6 -0
  1001. package/src/types/deployment.ts +5 -0
  1002. package/src/types/flow.ts +7 -0
  1003. package/src/types/flowRunResults.ts +1 -0
  1004. package/src/types/index.ts +37 -0
  1005. package/src/types/reactivity.ts +16 -0
  1006. package/src/types/schemaInput.ts +6 -0
  1007. package/src/types/schemas.ts +98 -0
  1008. package/src/types/size.ts +1 -0
  1009. package/src/types/stateBadge.ts +3 -0
  1010. package/src/types/states.ts +54 -0
  1011. package/src/types/tabs.ts +25 -0
  1012. package/src/types/tailwind.ts +1 -0
  1013. package/src/types/useEntitySubscription.ts +8 -0
  1014. package/src/types/utilities.ts +39 -0
  1015. package/src/types/workspaceEventsFilter.ts +40 -0
  1016. package/src/types/workspaceEventsHistory.ts +8 -0
  1017. package/src/utilities/activeViewMode.ts +18 -0
  1018. package/src/utilities/api.ts +67 -0
  1019. package/src/utilities/arrays.ts +175 -0
  1020. package/src/utilities/boolean.ts +3 -0
  1021. package/src/utilities/cache.ts +35 -0
  1022. package/src/utilities/colorMode.ts +36 -0
  1023. package/src/utilities/components.ts +34 -0
  1024. package/src/utilities/copy.ts +7 -0
  1025. package/src/utilities/dates.ts +129 -0
  1026. package/src/utilities/delete.ts +24 -0
  1027. package/src/utilities/errors.ts +64 -0
  1028. package/src/utilities/eventTarget.ts +8 -0
  1029. package/src/utilities/events.ts +21 -0
  1030. package/src/utilities/formValidation.ts +18 -0
  1031. package/src/utilities/functions.ts +4 -0
  1032. package/src/utilities/httpStatus.ts +173 -0
  1033. package/src/utilities/index.ts +35 -0
  1034. package/src/utilities/inject.ts +25 -0
  1035. package/src/utilities/json.ts +28 -0
  1036. package/src/utilities/jsonSafe.spec.ts +59 -0
  1037. package/src/utilities/jsonSafeParse.ts +28 -0
  1038. package/src/utilities/jsonSafeStringify.ts +22 -0
  1039. package/src/utilities/languageDefinitions/json.ts +28 -0
  1040. package/src/utilities/languageDefinitions/python.ts +67 -0
  1041. package/src/utilities/logs.ts +20 -0
  1042. package/src/utilities/math.ts +27 -0
  1043. package/src/utilities/numbers.ts +14 -0
  1044. package/src/utilities/object.ts +178 -0
  1045. package/src/utilities/parameters.ts +57 -0
  1046. package/src/utilities/parseUnknownJson.spec.ts +26 -0
  1047. package/src/utilities/parseUnknownJson.ts +22 -0
  1048. package/src/utilities/processTypes.ts +12 -0
  1049. package/src/utilities/reactivity.ts +61 -0
  1050. package/src/utilities/routes.ts +19 -0
  1051. package/src/utilities/savedFilters.ts +59 -0
  1052. package/src/utilities/seconds.ts +74 -0
  1053. package/src/utilities/state.ts +64 -0
  1054. package/src/utilities/stringifyUnknownJson.spec.ts +27 -0
  1055. package/src/utilities/stringifyUnknownJson.ts +12 -0
  1056. package/src/utilities/strings.ts +81 -0
  1057. package/src/utilities/subscriptions.ts +16 -0
  1058. package/src/utilities/time.ts +14 -0
  1059. package/src/utilities/timeIntervals.ts +60 -0
  1060. package/src/utilities/timeline.ts +41 -0
  1061. package/src/utilities/timezone.ts +141 -0
  1062. package/src/utilities/tryOnScopeDispose.ts +11 -0
  1063. package/src/utilities/tuples.ts +24 -0
  1064. package/src/utilities/types.ts +30 -0
  1065. package/src/utilities/urls.ts +1 -0
  1066. package/src/utilities/validation.ts +278 -0
  1067. package/src/utilities/variables.ts +19 -0
  1068. package/dist/types/vite.config.d.ts +0 -31
@@ -0,0 +1,49 @@
1
+ import { State } from '@prefecthq/prefect-design'
2
+ import { SchemaValueError, isNotStringError, isSchemaValueIndexError, isSchemaValuePropertyError } from '@/schemas/types/schemaValuesValidationResponse'
3
+ import { isString } from '@/utilities/strings'
4
+
5
+ export function getSchemaPropertyErrors(propertyKeyOrIndex: string | number, errors: SchemaValueError[]): SchemaValueError[] {
6
+ if (isString(propertyKeyOrIndex)) {
7
+ return errors.filter(isSchemaValuePropertyError).filter(error => error.property === propertyKeyOrIndex).flatMap(error => error.errors)
8
+ }
9
+
10
+ return errors.filter(isSchemaValueIndexError).filter(error => error.index == propertyKeyOrIndex).flatMap(error => error.errors)
11
+ }
12
+
13
+ export type SchemaPropertyError = {
14
+ state: State,
15
+ message: string | undefined,
16
+ }
17
+
18
+ export function getSchemaPropertyError(errors: SchemaValueError[]): SchemaPropertyError {
19
+ const propertyErrors = errors.filter(isString)
20
+ const state: State = { pending: false, valid: true, validated: true }
21
+
22
+ if (propertyErrors.length) {
23
+ state.valid = false
24
+ return {
25
+ state,
26
+ message: propertyErrors.join(' and '),
27
+ }
28
+ }
29
+
30
+ return {
31
+ state,
32
+ message: undefined,
33
+ }
34
+ }
35
+
36
+ export function getAllSchemaPropertyErrors(errors: SchemaValueError[]): SchemaValueError[] {
37
+ const propertyErrors = getAllRootSchemaPropertyErrors(errors)
38
+ const childErrors = getAllChildSchemaPropertyErrors(errors)
39
+
40
+ return [...propertyErrors, ...childErrors]
41
+ }
42
+
43
+ export function getAllRootSchemaPropertyErrors(errors: SchemaValueError[]): SchemaValueError[] {
44
+ return errors.filter(isString)
45
+ }
46
+
47
+ export function getAllChildSchemaPropertyErrors(errors: SchemaValueError[]): SchemaValueError[] {
48
+ return errors.filter(isNotStringError)
49
+ }
@@ -0,0 +1,154 @@
1
+ import { isDefined } from '@prefecthq/prefect-design'
2
+ import { Schema, SchemaProperty, SchemaPropertyType, isPropertyWith, isSchemaPropertyType } from '@/schemas/types/schema'
3
+ import { BlockDocumentReferenceValue, SchemaValue, isBlockDocumentReferenceValue } from '@/schemas/types/schemaValues'
4
+ import { getSchemaDefinition } from '@/schemas/utilities/definitions'
5
+ import { Require } from '@/types/utilities'
6
+ import { isArray, isEmptyObject, isRecord } from '@/utilities'
7
+ import { CreateApi } from '@/utilities/api'
8
+
9
+ const schemaPropertyTypeLabelMap: Record<SchemaPropertyType, string> = {
10
+ 'null': 'None',
11
+ 'string': 'str',
12
+ 'boolean': 'bool',
13
+ 'integer': 'int',
14
+ 'number': 'float',
15
+ 'array': 'list',
16
+ 'object': 'dict',
17
+ }
18
+
19
+ export function getSchemaPropertyTypeLabel(type: SchemaPropertyType | undefined): string {
20
+ if (type) {
21
+ return schemaPropertyTypeLabelMap[type]
22
+ }
23
+
24
+ return ''
25
+ }
26
+
27
+ export function getSchemaPropertyLabel(property: SchemaProperty): string {
28
+ const type = getSchemaPropertyTypeLabel(property.type)
29
+
30
+ return property.title ?? property.format ?? type
31
+ }
32
+
33
+ /*
34
+ * This is purposefully not recursive and does not resolve definition
35
+ * Schemas can be circular so we just want to get the default value for one level
36
+ */
37
+ export function getSchemaPropertyDefaultValue(property: SchemaProperty): SchemaValue {
38
+ if (isDefined(property.default)) {
39
+ return property.default
40
+ }
41
+
42
+ if (isSchemaPropertyType(property.type, 'object') && isPropertyWith(property, 'properties')) {
43
+ return Object.entries(property.properties).reduce<Record<string, unknown>>((value, [key, property]) => {
44
+ if (isDefined(property.default)) {
45
+ value[key] = property.default
46
+ }
47
+
48
+ return value
49
+ }, {})
50
+ }
51
+
52
+ return undefined
53
+ }
54
+
55
+ export function getSchemaPropertyAllOfDefinitions(property: Require<SchemaProperty, 'anyOf'>, schema: Schema): SchemaProperty[] {
56
+ return property.anyOf.map(definition => {
57
+ if (isPropertyWith(definition, '$ref')) {
58
+ return getSchemaDefinition(schema, definition.$ref)
59
+ }
60
+
61
+ return definition
62
+ })
63
+ }
64
+
65
+ type InitialIndexContext = {
66
+ property: Require<SchemaProperty, 'anyOf'>,
67
+ value: SchemaValue,
68
+ schema: Schema,
69
+ api: CreateApi,
70
+ }
71
+
72
+ export async function getInitialIndexForSchemaPropertyAnyOfValue({ value, property, schema, api }: InitialIndexContext): Promise<number> {
73
+ const valueOrDefaultValue = isDefined(value) ? value : property.default
74
+
75
+ // if there's no value default to showing the first definition
76
+ if (!isDefined(valueOrDefaultValue)) {
77
+ return 0
78
+ }
79
+
80
+ const definitions = getSchemaPropertyAllOfDefinitions(property, schema)
81
+
82
+ // block documents are the only reason this utility is async.
83
+ // if the value is a block document reference we need to fetch the block document from the api
84
+ // to determine the block type
85
+ if (isBlockDocumentReferenceValue(valueOrDefaultValue)) {
86
+ return await getBlockDocumentReferenceDefinitionIndex(valueOrDefaultValue, definitions, api)
87
+ }
88
+
89
+ switch (typeof valueOrDefaultValue) {
90
+ case 'string':
91
+ return definitions.findIndex(definition => definition.type == 'string')
92
+ case 'number':
93
+ return definitions.findIndex(definition => definition.type == 'number' || definition.type === 'integer')
94
+ case 'boolean':
95
+ return definitions.findIndex(definition => definition.type == 'boolean')
96
+ case 'object':
97
+ return getObjectDefinitionIndex(valueOrDefaultValue, definitions)
98
+ default:
99
+ return -1
100
+ }
101
+ }
102
+
103
+ async function getBlockDocumentReferenceDefinitionIndex(value: BlockDocumentReferenceValue, definitions: SchemaProperty[], api: CreateApi): Promise<number> {
104
+ const blockDocument = await api.blockDocuments.getBlockDocument(value.$ref)
105
+
106
+ const definition = definitions.find(definition => definition.blockTypeSlug === blockDocument.blockType.slug)
107
+
108
+ if (definition) {
109
+ return definitions.indexOf(definition)
110
+ }
111
+
112
+ return -1
113
+ }
114
+
115
+ function getObjectDefinitionIndex(value: object | null, definitions: SchemaProperty[]): number {
116
+ if (isRecord(value)) {
117
+ return getRecordDefinitionIndex(value, definitions)
118
+ }
119
+
120
+ if (isArray(value)) {
121
+ return definitions.findIndex(definition => definition.type === 'array')
122
+ }
123
+
124
+ if (value === null) {
125
+ return definitions.findIndex(definition => definition.type === 'null')
126
+ }
127
+
128
+ return -1
129
+ }
130
+
131
+ function getRecordDefinitionIndex(value: Record<string, unknown>, definitions: SchemaProperty[]): number {
132
+ if (isEmptyObject(value)) {
133
+ return definitions.findIndex(definition => definition.type === 'object')
134
+ }
135
+
136
+ const valueKeys = Object.keys(value)
137
+
138
+ const [index, keysInCommon] = definitions.reduce<[number, number]>(([resultIndex, resultKeysInCommon], definition, definitionIndex) => {
139
+ const definitionKeys = Object.keys(definition.properties ?? {})
140
+ const definitionKeysInCommon = valueKeys.filter(value => definitionKeys.includes(value)).length
141
+
142
+ if (definitionKeysInCommon > resultKeysInCommon) {
143
+ return [definitionIndex, definitionKeysInCommon]
144
+ }
145
+
146
+ return [resultIndex, resultKeysInCommon]
147
+ }, [0, 0])
148
+
149
+ if (keysInCommon === 0) {
150
+ return -1
151
+ }
152
+
153
+ return index
154
+ }
@@ -0,0 +1,134 @@
1
+ import { asArray } from '@prefecthq/prefect-design'
2
+ import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from 'axios'
3
+ import { MaybeArray } from '@/types/utilities'
4
+ import { isDefined } from '@/utilities/variables'
5
+
6
+ export type AxiosInstanceSetupHook = (instance: AxiosInstance) => void
7
+
8
+ export type PrefectConfig = {
9
+ baseUrl: string,
10
+ token?: string,
11
+ }
12
+
13
+ type ConfigFunction<R, T extends PrefectConfig = PrefectConfig> = (config: T) => R
14
+ export type ApiBaseUrl<T extends PrefectConfig = PrefectConfig> = string | ConfigFunction<string, T>
15
+ export type ApiHeaders<T extends PrefectConfig = PrefectConfig> = RawAxiosRequestHeaders | ConfigFunction<RawAxiosRequestHeaders, T>
16
+
17
+ export const getPrefectBaseUrl: ApiBaseUrl = (config) => config.baseUrl
18
+
19
+ export const getPrefectUIHeaders: RawAxiosRequestHeaders = { 'X-PREFECT-UI': true }
20
+
21
+ export const getAuthorizationHeaders: ApiHeaders = (config) => {
22
+ const value: RawAxiosRequestHeaders = {}
23
+
24
+ if (config.token) {
25
+ value.Authorization = `bearer ${config.token}`
26
+ }
27
+
28
+ return value
29
+ }
30
+
31
+ export class Api<T extends PrefectConfig = PrefectConfig> {
32
+ protected readonly apiConfig: T
33
+ protected apiHeaders: MaybeArray<ApiHeaders> = [getPrefectUIHeaders, getAuthorizationHeaders]
34
+ protected apiBaseUrl: ApiBaseUrl = getPrefectBaseUrl
35
+ protected routePrefix: string | undefined
36
+ protected instanceSetupHook: AxiosInstanceSetupHook | null
37
+
38
+ public constructor(apiConfig: T, instanceSetupHook: AxiosInstanceSetupHook | null = null) {
39
+ this.apiConfig = apiConfig
40
+ this.instanceSetupHook = instanceSetupHook
41
+ }
42
+
43
+ protected composeBaseUrl(): string {
44
+ if (typeof this.apiBaseUrl === 'string') {
45
+ return this.apiBaseUrl
46
+ }
47
+
48
+ return this.apiBaseUrl(this.apiConfig)
49
+ }
50
+
51
+ protected composeHeaders(): RawAxiosRequestHeaders {
52
+ const array = asArray(this.apiHeaders)
53
+
54
+ return array.reduce<RawAxiosRequestHeaders>((headers, header) => {
55
+ const value = typeof header === 'function' ? header(this.apiConfig) : header
56
+
57
+ return {
58
+ ...headers,
59
+ ...value,
60
+ }
61
+ }, {})
62
+ }
63
+
64
+ protected combinePath(route: string | undefined): string {
65
+ const repeatingSlashes = /(\/+)/g
66
+
67
+ return [this.routePrefix, route]
68
+ .filter(isDefined)
69
+ .join('/')
70
+ .replace(repeatingSlashes, '/')
71
+ }
72
+
73
+ protected instance(): AxiosInstance {
74
+ const config: AxiosRequestConfig = {
75
+ baseURL: this.composeBaseUrl(),
76
+ headers: this.composeHeaders(),
77
+ }
78
+
79
+ const instance = axios.create(config)
80
+ if (this.instanceSetupHook) {
81
+ this.instanceSetupHook(instance)
82
+ }
83
+
84
+ return instance
85
+ }
86
+
87
+ protected get<T, R = AxiosResponse<T>>(route?: string, config?: AxiosRequestConfig): Promise<R> {
88
+ const path = this.combinePath(route)
89
+
90
+ return this.instance().get(path, config)
91
+ }
92
+
93
+ protected delete<T, R = AxiosResponse<T>>(route?: string, config?: AxiosRequestConfig): Promise<R> {
94
+ const path = this.combinePath(route)
95
+
96
+ return this.instance().delete(path, config)
97
+ }
98
+
99
+ protected head<T, R = AxiosResponse<T>>(route?: string, config?: AxiosRequestConfig): Promise<R> {
100
+ const path = this.combinePath(route)
101
+
102
+ return this.instance().head(path, config)
103
+ }
104
+
105
+ protected options<T, R = AxiosResponse<T>>(route?: string, config?: AxiosRequestConfig): Promise<R> {
106
+ const path = this.combinePath(route)
107
+
108
+ return this.instance().options(path, config)
109
+ }
110
+
111
+ // axios uses any for the data argument
112
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
+ protected post<T, R = AxiosResponse<T>>(route?: string, data?: any, config?: AxiosRequestConfig): Promise<R> {
114
+ const path = this.combinePath(route)
115
+
116
+ return this.instance().post(path, data, config)
117
+ }
118
+
119
+ // axios uses any for the data argument
120
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
121
+ protected put<T, R = AxiosResponse<T>>(route?: string, data?: any, config?: AxiosRequestConfig): Promise<R> {
122
+ const path = this.combinePath(route)
123
+
124
+ return this.instance().put(path, data, config)
125
+ }
126
+
127
+ // axios uses any for the data argument
128
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
129
+ protected patch<T, R = AxiosResponse<T>>(route?: string, data?: any, config?: AxiosRequestConfig): Promise<R> {
130
+ const path = this.combinePath(route)
131
+
132
+ return this.instance().patch(path, data, config)
133
+ }
134
+ }
@@ -0,0 +1,156 @@
1
+ import { BatchLookupError } from '@/models/BatchLookupError'
2
+ import { MaybePromise } from '@/types'
3
+
4
+ export type BatchCallbackLookup<V, R> = (value: V) => MaybePromise<R>
5
+ export type BatchCallback<V, R> = (values: V[]) => MaybePromise<Map<V, R> | BatchCallbackLookup<V, R>>
6
+ export type BatchOptions = {
7
+ maxBatchSize?: number,
8
+ maxWaitMilliseconds?: number,
9
+ }
10
+
11
+ type Timer = ReturnType<typeof setTimeout>
12
+ type Resolve<V> = (value: V) => void
13
+ type Reject = (reason?: unknown) => void
14
+ type BatchQueueValue<R> = {
15
+ response: Promise<R>,
16
+ resolve: Resolve<R>,
17
+ reject: Reject,
18
+ }
19
+
20
+ type BatchQueue<V, R> = Map<V, BatchQueueValue<R>>
21
+
22
+ export class BatchProcessor<V, R> {
23
+ private readonly callback: BatchCallback<V, R>
24
+ private readonly options: BatchOptions
25
+ private readonly queue: BatchQueue<V, R> = new Map()
26
+ private timeout: Timer | undefined = undefined
27
+ private waitingSince: number | null = null
28
+
29
+ public constructor(callback: BatchCallback<V, R>, options: BatchOptions = {}) {
30
+ this.callback = callback
31
+ this.options = options
32
+ }
33
+
34
+ public batch(value: V): Promise<R> {
35
+ if (this.queue.has(value)) {
36
+ const { response } = this.queue.get(value)!
37
+
38
+ return response
39
+ }
40
+
41
+ let resolve!: Resolve<R>
42
+ let reject!: Reject
43
+
44
+ const response = new Promise<R>((...args) => {
45
+ [resolve, reject] = args
46
+ })
47
+
48
+ this.queue.set(value, {
49
+ response,
50
+ resolve,
51
+ reject,
52
+ })
53
+
54
+ this.requestProcessQueue()
55
+
56
+ return response
57
+ }
58
+
59
+ public process(): void {
60
+ this.processQueue()
61
+ }
62
+
63
+ private requestProcessQueue(): void {
64
+ if (this.shouldProcessNow()) {
65
+ this.processQueue()
66
+ return
67
+ }
68
+
69
+ this.waitToProcessQueue()
70
+ }
71
+
72
+ private waitToProcessQueue(): void {
73
+ if (this.waitingSince === null) {
74
+ this.waitingSince = Date.now()
75
+ }
76
+
77
+ clearTimeout(this.timeout)
78
+
79
+ this.timeout = setTimeout(() => this.processQueue())
80
+ }
81
+
82
+ private shouldProcessNow(): boolean {
83
+ return this.maxBatchSizeReached() || this.maxWaitReached()
84
+ }
85
+
86
+ private maxBatchSizeReached(): boolean {
87
+ const { maxBatchSize = Infinity } = this.options
88
+
89
+ return this.queue.size >= maxBatchSize
90
+ }
91
+
92
+ private maxWaitReached(): boolean {
93
+ const { maxWaitMilliseconds = Infinity } = this.options
94
+ const now = Date.now()
95
+ const since = this.waitingSince ?? 0
96
+
97
+ return now - since >= maxWaitMilliseconds
98
+ }
99
+
100
+ private getBatchToProcess(): BatchQueue<V, R> {
101
+ const batch = new Map(this.queue)
102
+
103
+ this.queue.clear()
104
+ this.waitingSince = null
105
+
106
+ clearTimeout(this.timeout)
107
+
108
+ return batch
109
+ }
110
+
111
+ private async processQueue(): Promise<void> {
112
+ const batch = this.getBatchToProcess()
113
+ const values = Array.from(batch.keys())
114
+
115
+ try {
116
+ const response = await this.callback(values)
117
+
118
+ if (this.isBatchCallbackLookup(response)) {
119
+ return this.resolveBatchUsingLookup(batch, response)
120
+ }
121
+
122
+ return this.resolveBatchUsingMap(batch, response)
123
+
124
+ } catch (error) {
125
+ this.rejectBatch(batch, error)
126
+ }
127
+ }
128
+
129
+ private resolveBatchUsingMap(batch: BatchQueue<V, R>, map: Map<V, R>): void {
130
+ batch.forEach(({ resolve, reject }, id) => {
131
+ const value = map.get(id)
132
+
133
+ if (value === undefined) {
134
+ reject(new BatchLookupError(id))
135
+ return
136
+ }
137
+
138
+ resolve(value)
139
+ })
140
+ }
141
+
142
+ private resolveBatchUsingLookup(batch: BatchQueue<V, R>, lookup: BatchCallbackLookup<V, R>): void {
143
+ batch.forEach(async ({ resolve }, id) => {
144
+ resolve(await lookup(id))
145
+ })
146
+ }
147
+
148
+ private rejectBatch(batch: BatchQueue<V, R>, error: unknown): void {
149
+ batch.forEach(({ reject }) => reject(error))
150
+ }
151
+
152
+ private isBatchCallbackLookup(value: ReturnType<BatchCallback<V, R>>): value is BatchCallbackLookup<V, R> {
153
+ return typeof value === 'function'
154
+ }
155
+
156
+ }
@@ -0,0 +1,36 @@
1
+ # BatchProcessor
2
+ The `BatchProcessor` can be used to queue and batch the processing of values using a single callback. This is useful for repetitive tasks but also useful for combining tasks for efficiency. A common use case for this is batching individual calls to an api endpoint into a single api request.
3
+
4
+ A `BatchProcessor` can be created by passing a callback to be used for processing multiple values. The `BatchProcessor` will execute the callback automatically, passing one or more values in to be processed.
5
+
6
+ A callback can return either `Map<Value, Response>` or `(value: Value) => Response`. If a map is returned from a callback, it assumes that every value will exist as a key in the map and the response can be found using that key. If a lookup function is returned it will call the lookup function for each value being processed to get the response for each value
7
+
8
+ ## Example
9
+ ```typescript
10
+ const batcher = new BatchProcessor<string, User>(async userIds => {
11
+ const users: User[] = await getUsersArray(userIds)
12
+
13
+ // this is using a lookup function
14
+ return userId => users.find(user => user.id === userId)
15
+ })
16
+
17
+ const user1: Promise<User> = batcher.batch('userId1')
18
+ const user2: Promise<User> = batcher.batch('userId2')
19
+ const user3: Promise<User> = batcher.batch('userId3')
20
+ ```
21
+
22
+ ## Public Methods
23
+
24
+ ### Batch
25
+
26
+ ```typescript
27
+ public batch(value: V): Promise<R>
28
+ ```
29
+ This method adds a value to the queue to be processed later.
30
+
31
+
32
+ ### Process
33
+ ```typescript
34
+ public process(): void
35
+ ```
36
+ This method immediately processes the queue.
@@ -0,0 +1 @@
1
+ export * from './BatchProcessor'
@@ -0,0 +1,17 @@
1
+ import { CollectionItem, CollectionsResponse, PrefectWorkerCollectionResponse, WorkerCollectionItem } from '@/models'
2
+ import { Api } from '@/services/Api'
3
+ import { mapper } from '@/services/Mapper'
4
+
5
+ export class CollectionsApi extends Api {
6
+ protected override routePrefix = '/collections'
7
+
8
+ public getFlowCollection(): Promise<CollectionItem[]> {
9
+ return this.get<CollectionsResponse>('/views/aggregate-flow-metadata')
10
+ .then(({ data }) => mapper.map('CollectionResponse', data, 'CollectionItems'))
11
+ }
12
+
13
+ public getWorkerCollection(): Promise<WorkerCollectionItem[]> {
14
+ return this.get<PrefectWorkerCollectionResponse>('/views/aggregate-worker-metadata')
15
+ .then(({ data }) => mapper.map('PrefectWorkerCollectionResponse', data, 'WorkerCollectionItem'))
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Api } from '@/services/Api'
2
+
3
+ export class HealthApi extends Api {
4
+ protected override routePrefix = '/health'
5
+
6
+ public getHealth(): Promise<boolean> {
7
+ return this.get<boolean>().then(({ data }) => data)
8
+ }
9
+
10
+ public async isHealthy(): Promise<boolean> {
11
+ try {
12
+ return await this.getHealth()
13
+ } catch {
14
+ return false
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,67 @@
1
+ /* eslint-disable no-dupe-class-members */
2
+ import { maps } from '@/maps'
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ type Map = (...args: any) => any
6
+ type Maps = Record<string, Record<string, Map>>
7
+ type MapsMember<T extends Maps, S extends keyof T> = T[S][keyof T[S]]
8
+ type Mappers<T extends Maps, S extends keyof T> = Extract<MapsMember<T, S>, Map>
9
+ type MapperSourceType<T extends Maps, S extends keyof T> = Parameters<Mappers<T, S>>[0]
10
+ type MapperDestinationType<T extends Maps, S extends keyof T, D extends keyof T[S]> = ReturnType<T[S][D]>
11
+
12
+ export class Mapper<T extends Maps> {
13
+ private readonly mapperFunctions: T
14
+
15
+ public constructor(mapperFunctions: T) {
16
+ this.mapperFunctions = mapperFunctions
17
+ }
18
+
19
+ public map<S extends keyof T, D extends keyof T[S]>(source: S, value: MapperSourceType<T, S>, destination: D): MapperDestinationType<T, S, D>
20
+ public map<S extends keyof T, D extends keyof T[S]>(source: S, value: MapperSourceType<T, S> | null, destination: D): MapperDestinationType<T, S, D> | null
21
+ public map<S extends keyof T, D extends keyof T[S]>(source: S, value: MapperSourceType<T, S> | undefined, destination: D): MapperDestinationType<T, S, D> | undefined
22
+ public map<S extends keyof T, D extends keyof T[S]>(source: S, value: MapperSourceType<T, S> | null | undefined, destination: D): MapperDestinationType<T, S, D> | null | undefined
23
+ public map<S extends keyof T, D extends keyof T[S]>(source: S, value: MapperSourceType<T, S>[], destination: D): MapperDestinationType<T, S, D>[]
24
+ public map<S extends keyof T, D extends keyof T[S]>(source: S, value: MapperSourceType<T, S> | MapperSourceType<T, S>[] | null | undefined, destination: D): MapperDestinationType<T, S, D> | MapperDestinationType<T, S, D>[] | null | undefined {
25
+ if (value === null || value === undefined) {
26
+ return value
27
+ }
28
+
29
+ const mapper = this.bindMapper(this.mapperFunctions[source][destination])
30
+
31
+ if (Array.isArray(value)) {
32
+ return value.map(mapper)
33
+ }
34
+
35
+ return mapper(value)
36
+ }
37
+
38
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>>, destination: D): Record<string, MapperDestinationType<T, S, D>>
39
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>> | null, destination: D): Record<string, MapperDestinationType<T, S, D>> | null
40
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>> | undefined, destination: D): Record<string, MapperDestinationType<T, S, D>> | undefined
41
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>> | null | undefined, destination: D): Record<string, MapperDestinationType<T, S, D>> | null | undefined
42
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>[]>, destination: D): Record<string, MapperDestinationType<T, S, D>[]>
43
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>[]> | null, destination: D): Record<string, MapperDestinationType<T, S, D>[]> | null
44
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>[]> | undefined, destination: D): Record<string, MapperDestinationType<T, S, D>[]> | undefined
45
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S>[]> | null | undefined, destination: D): Record<string, MapperDestinationType<T, S, D>[]> | null | undefined
46
+ public mapEntries<S extends keyof T, D extends keyof T[S]>(source: S, value: Record<string, MapperSourceType<T, S> | MapperSourceType<T, S>[]> | null | undefined, destination: D): Record<string, MapperDestinationType<T, S, D> | MapperDestinationType<T, S, D>[]> | null | undefined {
47
+ if (value === null || value === undefined) {
48
+ return value
49
+ }
50
+
51
+ const response = {} as Record<string, MapperDestinationType<T, S, D>>
52
+
53
+ return Object.entries(value).reduce<Record<string, MapperDestinationType<T, S, D>>>((mapped, [key, value]) => {
54
+ mapped[key] = this.map(source, value, destination)
55
+
56
+ return mapped
57
+ }, response)
58
+ }
59
+
60
+ private bindMapper<S extends keyof T, D extends keyof T[S]>(mapper: MapsMember<T, S>): (source: MapperSourceType<T, S>) => MapperDestinationType<T, S, D> {
61
+ return mapper.bind(this)
62
+ }
63
+ }
64
+
65
+ export const mapper = new Mapper(maps)
66
+
67
+ export type MapFunction<S, D> = (this: typeof mapper, source: S) => D
@@ -0,0 +1,42 @@
1
+ import { mocks } from '@/mocks'
2
+ import { repeat } from '@/utilities'
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ type Mock = (...args: any[]) => any
6
+ type MockParams<T extends Mock> = Parameters<T>
7
+ type MockReturns<T extends Mock> = ReturnType<T>
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ type OnlyRequired<T extends any[], U extends any[] = []> = Partial<T> extends T ? U : T extends [infer F, ...infer R] ? OnlyRequired<R, [...U, F]> : U
10
+ type MockParamsRequired<T extends Mock> = OnlyRequired<MockParams<T>>
11
+
12
+ type CreateArguments<T extends Record<string, Mock>, K extends keyof T> = MockParamsRequired<T[K]> extends never[]
13
+ ? [key: K, args?: MockParams<T[K]>]
14
+ : [key: K, args: MockParams<T[K]>]
15
+
16
+ type CreateManyArguments<T extends Record<string, Mock>, K extends keyof T> = MockParamsRequired<T[K]> extends never[]
17
+ ? [key: K, count: number, args?: MockParams<T[K]>]
18
+ : [key: K, count: number, args: MockParams<T[K]>]
19
+
20
+ export class Mocker<T extends Record<string, Mock>> {
21
+ private readonly mockerFunctions: T
22
+
23
+ public constructor(mockerFunctions: T) {
24
+ this.mockerFunctions = mockerFunctions
25
+ }
26
+
27
+ public create<K extends keyof T>(...[key, args]: CreateArguments<T, K>): MockReturns<T[K]> {
28
+ const mock = this.mockerFunctions[key].bind(this, ...args ?? [])
29
+
30
+ return mock()
31
+ }
32
+
33
+ public createMany<K extends keyof T>(...[key, count, args]: CreateManyArguments<T, K>): MockReturns<T[K]>[] {
34
+ const mock = this.mockerFunctions[key].bind(this, ...args ?? [])
35
+
36
+ return repeat(count, mock)
37
+ }
38
+ }
39
+
40
+ export const mocker = new Mocker(mocks)
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ export type MockFunction<T, Args extends any[]> = (this: typeof mocker, ...args: Args) => T