@morscherlab/mint-sdk 1.3.11 → 1.4.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -177
- package/dist/AlertBox-B2Bgr3ei.js +276 -0
- package/dist/AlertBox-B2Bgr3ei.js.map +1 -0
- package/dist/AppSidebar-mvm--GxN.js +3565 -0
- package/dist/AppSidebar-mvm--GxN.js.map +1 -0
- package/dist/ConfirmDialog-nbJj51is.js +102 -0
- package/dist/ConfirmDialog-nbJj51is.js.map +1 -0
- package/dist/ExperimentPopover-5T1fAq2L.js +337 -0
- package/dist/ExperimentPopover-5T1fAq2L.js.map +1 -0
- package/dist/ExperimentSelectorModal-65peG4Up.js +544 -0
- package/dist/ExperimentSelectorModal-65peG4Up.js.map +1 -0
- package/dist/SegmentedControl-BtnnjWzs.js +129 -0
- package/dist/SegmentedControl-BtnnjWzs.js.map +1 -0
- package/dist/SettingsModal-DO3IZ7qz.js +666 -0
- package/dist/SettingsModal-DO3IZ7qz.js.map +1 -0
- package/dist/analysisArtifactTypes-Cy3D0Ipg.js.map +1 -1
- package/dist/auth-SliLnFre.js +65 -0
- package/dist/auth-SliLnFre.js.map +1 -0
- package/dist/components/ActionMenu.vue.d.ts +1 -1
- package/dist/components/AdductText.vue.d.ts +1 -1
- package/dist/components/AlertBox.vue.d.ts +3 -3
- package/dist/components/AppContainer.vue.d.ts +1 -1
- package/dist/components/AppSidebar.vue.d.ts +15 -95
- package/dist/components/AppTopBar.vue.d.ts +16 -70
- package/dist/components/ArtifactSaveDialog.vue.d.ts +13 -5
- package/dist/components/ArtifactSelectorModal.vue.d.ts +4 -4
- package/dist/components/AuditTrail.vue.d.ts +2 -2
- package/dist/components/BaseButton.vue.d.ts +11 -4
- package/dist/components/BaseCheckbox.vue.d.ts +9 -3
- package/dist/components/BaseInput.vue.d.ts +13 -9
- package/dist/components/BaseModal.vue.d.ts +4 -4
- package/dist/components/BasePill.vue.d.ts +15 -8
- package/dist/components/BaseRadioGroup.vue.d.ts +2 -2
- package/dist/components/BaseSelect.vue.d.ts +51 -19
- package/dist/components/BaseTabs.vue.d.ts +6 -5
- package/dist/components/BatchProgressList.vue.d.ts +2 -2
- package/dist/components/ChartContainer.vue.d.ts +4 -2
- package/dist/components/ChemicalFormula.vue.d.ts +2 -2
- package/dist/components/CollapsibleCard.vue.d.ts +3 -3
- package/dist/components/ComponentBindingRenderer.vue.d.ts +2 -3
- package/dist/components/ConcentrationInput.vue.d.ts +2 -2
- package/dist/components/ConfirmDialog.vue.d.ts +8 -7
- package/dist/components/DataFrame.vue.d.ts +32 -74
- package/dist/components/DatePicker.vue.d.ts +24 -2
- package/dist/components/DoseCalculator.vue.d.ts +1 -1
- package/dist/components/DoseCalculatorVolumeField.vue.d.ts +1 -1
- package/dist/components/EmptyState.vue.d.ts +3 -2
- package/dist/components/ExperimentPopover.vue.d.ts +18 -0
- package/dist/components/ExperimentSelectorModal.vue.d.ts +3 -7
- package/dist/components/FilePicker.vue.d.ts +1 -1
- package/dist/components/FileUploader.vue.d.ts +2 -2
- package/dist/components/FormBuilder.vue.d.ts +17 -74
- package/dist/components/FormulaInput.vue.d.ts +2 -2
- package/dist/components/GeneratedPluginView.vue.d.ts +1 -1
- package/dist/components/GeneratedResultRenderer.vue.d.ts +5 -1
- package/dist/components/{StatusIndicator.vue.d.ts → InstrumentStatusPanels.vue.d.ts} +8 -9
- package/dist/components/JobsStatusTray.vue.d.ts +2 -9
- package/dist/components/LoadingSpinner.vue.d.ts +3 -3
- package/dist/components/MoleculeInput.vue.d.ts +2 -2
- package/dist/components/NumberInput.vue.d.ts +19 -5
- package/dist/components/PlateEditor.vue.d.ts +11 -61
- package/dist/components/PlotlyChart.vue.d.ts +2 -2
- package/dist/components/PluginIcon.vue.d.ts +5 -1
- package/dist/components/PluginWorkspaceView.controls.d.ts +2 -9
- package/dist/components/PluginWorkspaceView.navigation.d.ts +1 -7
- package/dist/components/PluginWorkspaceView.props.d.ts +18 -137
- package/dist/components/PluginWorkspaceView.shell.d.ts +2 -10
- package/dist/components/PluginWorkspaceView.vue.d.ts +14 -84
- package/dist/components/PresenceAvatars.vue.d.ts +31 -0
- package/dist/components/ProgressBar.vue.d.ts +3 -2
- package/dist/components/ProtocolStep.presentation.d.ts +0 -1
- package/dist/components/SampleHierarchyTree.vue.d.ts +3 -3
- package/dist/components/SampleSelector.vue.d.ts +8 -8
- package/dist/components/ScheduleCalendar.vue.d.ts +1 -1
- package/dist/components/ScientificNumber.vue.d.ts +1 -1
- package/dist/components/SecretInput.vue.d.ts +2 -2
- package/dist/components/SegmentedControl.vue.d.ts +2 -2
- package/dist/components/SequenceInput.vue.d.ts +2 -2
- package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
- package/dist/components/SettingsModal.vue.d.ts +12 -20
- package/dist/components/SmartGroup.types.d.ts +0 -1
- package/dist/components/SmartGroupFieldRecipe.vue.d.ts +1 -1
- package/dist/components/StaleFormBanner.vue.d.ts +20 -0
- package/dist/components/StepWizard.vue.d.ts +3 -0
- package/dist/components/TagsInput.vue.d.ts +4 -3
- package/dist/components/TimeRangeInput.vue.d.ts +2 -2
- package/dist/components/VersionConflictDialog.vue.d.ts +24 -0
- package/dist/components/WellPlate.geometry.d.ts +0 -6
- package/dist/components/WellPlate.rendering.d.ts +0 -2
- package/dist/components/WellPlate.vue.d.ts +7 -52
- package/dist/components/index.d.ts +0 -90
- package/dist/components/{AutoGroupModal.adapter.d.ts → internal/AutoGroupModalInternal.adapter.d.ts} +6 -6
- package/dist/components/{AutoGroupModal.vue.d.ts → internal/AutoGroupModalInternal.vue.d.ts} +6 -6
- package/dist/components/{BaseToggle.vue.d.ts → internal/CheckboxSwitchInternal.vue.d.ts} +2 -2
- package/dist/components/{MultiSelect.vue.d.ts → internal/DatePickerDateInternal.vue.d.ts} +11 -9
- package/dist/components/{DateTimePicker.vue.d.ts → internal/DatePickerDateTimeInternal.vue.d.ts} +2 -2
- package/dist/components/{TimePicker.vue.d.ts → internal/DatePickerTimeInternal.vue.d.ts} +4 -4
- package/dist/components/internal/FilePickerListInternal.vue.d.ts +2 -2
- package/dist/components/internal/FormSchemaInternal.vue.d.ts +95 -0
- package/dist/components/{UnitInput.vue.d.ts → internal/NumberUnitInputInternal.vue.d.ts} +6 -14
- package/dist/components/internal/PlateEditorBindingInternal.vue.d.ts +3 -2
- package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +5 -10
- package/dist/components/internal/SelectMultipleInternal.vue.d.ts +27 -0
- package/dist/components/{SearchableSelect.vue.d.ts → internal/SelectSearchableInternal.vue.d.ts} +5 -2
- package/dist/components/internal/WorkspaceShellInternal.vue.d.ts +1 -15
- package/dist/components/internal/WorkspaceSidebarInternal.vue.d.ts +4 -4
- package/dist/{composables → components/internal}/autoGroup/classKey.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/classify.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/columns.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/compose.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/cooccurrence.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/csv-shim.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/fingerprint.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/template.d.ts +1 -1
- package/dist/{composables → components/internal}/autoGroup/tokenLength.d.ts +1 -1
- package/dist/components/internal/generatedJobsApi.d.ts +1 -1
- package/dist/{composables → components/internal}/useAutoGroup.d.ts +9 -18
- package/dist/composables/componentSpecs.d.ts +41 -0
- package/dist/composables/controlComponentBindings.d.ts +6 -0
- package/dist/composables/controlSchemaAdapters.d.ts +28 -2
- package/dist/composables/controlSchemaDoseDesign.d.ts +1 -1
- package/dist/composables/controlSchemaModel.d.ts +1 -1
- package/dist/composables/controlSchemaTypes.d.ts +35 -23
- package/dist/composables/{usePluginClient.d.ts → createClient.d.ts} +22 -49
- package/dist/composables/{useEventStream.d.ts → eventStream.d.ts} +2 -2
- package/dist/composables/experiment-utils.d.ts +1 -6
- package/dist/composables/index.d.ts +7 -59
- package/dist/composables/platformContextHelpers.d.ts +0 -11
- package/dist/composables/pluginEndpointBuilder.d.ts +2 -2
- package/dist/composables/pluginIdentity.d.ts +24 -0
- package/dist/composables/pluginWorkspaceModel.d.ts +16 -99
- package/dist/composables/useApi.d.ts +1 -3
- package/dist/composables/useAppExperiment.d.ts +9 -1
- package/dist/composables/{useAnalysisArtifacts.d.ts → useArtifacts.d.ts} +6 -6
- package/dist/composables/useCalendarGrid.d.ts +1 -1
- package/dist/composables/useExperiment.d.ts +30 -0
- package/dist/composables/useExperimentSelector.d.ts +6 -2
- package/dist/composables/useFilePicker.d.ts +2 -2
- package/dist/composables/useJobCenter.d.ts +63 -0
- package/dist/composables/{useGeneratedAnalysis.d.ts → useJobsEndpoint.d.ts} +22 -23
- package/dist/composables/useMenuKeyboard.d.ts +1 -1
- package/dist/composables/usePlatform.d.ts +64 -0
- package/dist/composables/usePluginWorkspace.d.ts +6 -11
- package/dist/composables/usePresence.d.ts +41 -0
- package/dist/composables/useRackEditor.d.ts +2 -2
- package/dist/composables/useRealtime.d.ts +71 -0
- package/dist/composables/{useRequestSyncState.d.ts → useRequest.d.ts} +12 -17
- package/dist/composables/useToast.d.ts +7 -5
- package/dist/composables/useVersionedSave.d.ts +76 -0
- package/dist/controlSchemaModel-B8CTXagP.js +95 -0
- package/dist/controlSchemaModel-B8CTXagP.js.map +1 -0
- package/dist/data-CgILxDLW.js +3865 -0
- package/dist/data-CgILxDLW.js.map +1 -0
- package/dist/data.d.ts +32 -0
- package/dist/data.js +10 -0
- package/dist/deprecatedRootExports.d.ts +191 -0
- package/dist/experiment-43OJtH7R.js +673 -0
- package/dist/experiment-43OJtH7R.js.map +1 -0
- package/dist/experimentStatus-Cqp6qNrR.js +60 -0
- package/dist/experimentStatus-Cqp6qNrR.js.map +1 -0
- package/dist/host.d.ts +10 -0
- package/dist/host.js +26 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +1 -12
- package/dist/index.js +65 -277
- package/dist/index.js.map +1 -1
- package/dist/install-CsPFJSx3.js +669 -0
- package/dist/install-CsPFJSx3.js.map +1 -0
- package/dist/install.d.ts +2 -1
- package/dist/install.js +1 -21
- package/dist/instrument.d.ts +0 -6
- package/dist/lab-MHzp-_J8.js +7494 -0
- package/dist/lab-MHzp-_J8.js.map +1 -0
- package/dist/lab.d.ts +42 -0
- package/dist/lab.js +5 -0
- package/dist/permissions.d.ts +0 -4
- package/dist/permissions.js +1 -20
- package/dist/permissions.js.map +1 -1
- package/dist/records-B6gpM_3e.js +3268 -0
- package/dist/records-B6gpM_3e.js.map +1 -0
- package/dist/runtime-8bs8EogX.js +1491 -0
- package/dist/runtime-8bs8EogX.js.map +1 -0
- package/dist/runtime.d.ts +25 -0
- package/dist/runtime.js +8 -0
- package/dist/shell-CywENwBT.js +197 -0
- package/dist/shell-CywENwBT.js.map +1 -0
- package/dist/shell.d.ts +16 -0
- package/dist/shell.js +8 -0
- package/dist/stores/auth.d.ts +13 -35
- package/dist/stores/experiment.d.ts +4 -0
- package/dist/stores/index.js +2 -2
- package/dist/styles.css +12161 -15036
- package/dist/types/analysisArtifactTypes.d.ts +1 -1
- package/dist/types/auth.d.ts +0 -8
- package/dist/types/componentLabTypes.d.ts +98 -34
- package/dist/types/componentWorkflowTypes.d.ts +2 -27
- package/dist/types/components.d.ts +145 -74
- package/dist/types/form-builder.d.ts +4 -0
- package/dist/types/generated/platformContext.d.ts +53 -0
- package/dist/types/generated-ui.d.ts +6 -2
- package/dist/types/index.d.ts +4 -5
- package/dist/types/instrument.d.ts +41 -0
- package/dist/types/platform.d.ts +20 -58
- package/dist/useDebouncedWatch-BPwyl6eS.js +73 -0
- package/dist/useDebouncedWatch-BPwyl6eS.js.map +1 -0
- package/dist/{experiment-utils-DTANyVKV.js → useDropdownState-8yWMu-7_.js} +127 -144
- package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
- package/dist/useExpansionSet-CvoNMZJi.js +68 -0
- package/dist/useExpansionSet-CvoNMZJi.js.map +1 -0
- package/dist/useExperimentSamples-DHnxKFAF.js +366 -0
- package/dist/useExperimentSamples-DHnxKFAF.js.map +1 -0
- package/dist/useListReorder-BitdUhxn.js +5294 -0
- package/dist/useListReorder-BitdUhxn.js.map +1 -0
- package/dist/useRackEditor-DiwCt77M.js +5930 -0
- package/dist/useRackEditor-DiwCt77M.js.map +1 -0
- package/dist/useRealtime-C3iy9QkU.js +699 -0
- package/dist/useRealtime-C3iy9QkU.js.map +1 -0
- package/dist/useRequest-D506eHi8.js +244 -0
- package/dist/useRequest-D506eHi8.js.map +1 -0
- package/dist/utils/color.d.ts +0 -5
- package/dist/{composables/useDoseCalculator.d.ts → utils/dose.d.ts} +10 -13
- package/dist/utils/experimentStatus.d.ts +9 -0
- package/dist/{composables/useChemicalFormula.d.ts → utils/formula.d.ts} +3 -6
- package/dist/utils/integrationHost.d.ts +18 -0
- package/dist/utils/plotlyTemplate.d.ts +2 -0
- package/dist/utils/pluginSecrets.d.ts +12 -12
- package/dist/utils/presenceAvatars.d.ts +30 -0
- package/dist/utils/records.d.ts +0 -2
- package/dist/{composables/useTimeUtils.d.ts → utils/time.d.ts} +7 -18
- package/package.json +20 -17
- package/src/__tests__/components/ActionMenu.test.ts +0 -13
- package/src/__tests__/components/AlertBox.test.ts +1 -1
- package/src/__tests__/components/AppSidebar.test.ts +119 -167
- package/src/__tests__/components/AppToastContainer.test.ts +2 -2
- package/src/__tests__/components/AppTopBar.test.ts +230 -176
- package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
- package/src/__tests__/components/ArtifactSaveDialog.test.ts +83 -3
- package/src/__tests__/components/ArtifactSelectorModal.test.ts +6 -4
- package/src/__tests__/components/AuditTrail.test.ts +1 -1
- package/src/__tests__/components/AutoGroupModal.adapter.test.ts +1 -1
- package/src/__tests__/components/AutoGroupModal.anatomy.test.ts +2 -2
- package/src/__tests__/components/AutoGroupModal.wiring.test.ts +2 -2
- package/src/__tests__/components/BaseButton.test.ts +51 -0
- package/src/__tests__/components/{BaseToggle.test.ts → BaseCheckbox.switch.test.ts} +8 -6
- package/src/__tests__/components/BaseInput.test.ts +13 -34
- package/src/__tests__/components/BaseModal.test.ts +6 -6
- package/src/__tests__/components/BasePill.test.ts +33 -39
- package/src/__tests__/components/BaseSelect.multiple.test.ts +118 -0
- package/src/__tests__/components/{SearchableSelect.test.ts → BaseSelect.searchable.test.ts} +19 -9
- package/src/__tests__/components/BaseSelect.test.ts +11 -0
- package/src/__tests__/components/BaseTabs.test.ts +13 -13
- package/src/__tests__/components/BatchProgressList.test.ts +16 -0
- package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
- package/src/__tests__/components/ChartContainer.test.ts +11 -0
- package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
- package/src/__tests__/components/CollapsibleCard.test.ts +1 -1
- package/src/__tests__/components/ComponentBindingRenderer.test.ts +25 -73
- package/src/__tests__/components/ConcentrationInput.test.ts +3 -3
- package/src/__tests__/components/ConfirmDialog.test.ts +23 -0
- package/src/__tests__/components/DataFrame.test.ts +140 -142
- package/src/__tests__/components/DataStates.test.ts +6 -22
- package/src/__tests__/components/{DateTimePicker.test.ts → DatePicker.datetime.test.ts} +15 -7
- package/src/__tests__/components/DatePicker.test.ts +21 -0
- package/src/__tests__/components/{TimePicker.test.ts → DatePicker.time.test.ts} +20 -19
- package/src/__tests__/components/DoseCalculator.test.ts +12 -7
- package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +6 -6
- package/src/__tests__/components/EmptyState.test.ts +1 -1
- package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
- package/src/__tests__/components/ExperimentSelectorModal.test.ts +134 -28
- package/src/__tests__/components/FormBuilder.test.ts +49 -167
- package/src/__tests__/components/FormSchemaInternal.test.ts +91 -0
- package/src/__tests__/components/GeneratedPathInput.test.ts +18 -13
- package/src/__tests__/components/GeneratedPluginView.test.ts +60 -25
- package/src/__tests__/components/GeneratedResultRenderer.test.ts +6 -4
- package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
- package/src/__tests__/components/InstrumentStatusPanels.test.ts +79 -0
- package/src/__tests__/components/JobsStatusTray.test.ts +4 -4
- package/src/__tests__/components/NumberInput.test.ts +28 -0
- package/src/__tests__/components/{UnitInput.test.ts → NumberInput.units.test.ts} +6 -6
- package/src/__tests__/components/PlateEditor.test.ts +108 -108
- package/src/__tests__/components/PlateEditorBindingInternal.test.ts +13 -13
- package/src/__tests__/components/PlotlyChart.test.ts +1 -1
- package/src/__tests__/components/PluginIcon.test.ts +9 -4
- package/src/__tests__/components/PluginWorkspaceView.controls.test.ts +16 -29
- package/src/__tests__/components/PluginWorkspaceView.internal.test.ts +28 -34
- package/src/__tests__/components/PluginWorkspaceView.navigation.test.ts +4 -19
- package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +1 -6
- package/src/__tests__/components/PluginWorkspaceView.test.ts +183 -155
- package/src/__tests__/components/PresenceAvatars.test.ts +90 -0
- package/src/__tests__/components/ProtocolStep.presentation.test.ts +1 -3
- package/src/__tests__/components/ProtocolStepEditor.test.ts +10 -11
- package/src/__tests__/components/ProtocolStepParameterField.test.ts +8 -7
- package/src/__tests__/components/ResourcePickerListInternal.test.ts +2 -22
- package/src/__tests__/components/RetiredStyles.test.ts +0 -18
- package/src/__tests__/components/SampleSelector.test.ts +30 -25
- package/src/__tests__/components/SecretInput.test.ts +14 -19
- package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
- package/src/__tests__/components/SettingsModal.test.ts +76 -84
- package/src/__tests__/components/StaleFormBanner.test.ts +48 -0
- package/src/__tests__/components/StepWizard.test.ts +11 -0
- package/src/__tests__/components/ThemeToggle.test.ts +1 -1
- package/src/__tests__/components/WellPlate.decoration.test.ts +20 -11
- package/src/__tests__/components/WellPlate.interaction.test.ts +6 -7
- package/src/__tests__/components/WellPlate.keyboard.test.ts +2 -2
- package/src/__tests__/components/deprecationTags.test.ts +90 -0
- package/src/__tests__/composables/analysisArtifactTarget.test.ts +1 -12
- package/src/__tests__/composables/autoGroup/classKey.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/classify.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/columns.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/compose.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/cooccurrence.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/fieldEdits.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/fingerprint.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/golden.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/groupByOrder.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/groupTree.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/integration.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/template.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/tokenLength.test.ts +1 -1
- package/src/__tests__/composables/autoGroup/tokenize.test.ts +1 -1
- package/src/__tests__/composables/{usePluginClient.test.ts → createClient.test.ts} +84 -222
- package/src/__tests__/composables/{useEventStream.test.ts → eventStream.test.ts} +6 -6
- package/src/__tests__/composables/experiment-utils.test.ts +13 -14
- package/src/__tests__/composables/useApi.test.ts +32 -21
- package/src/__tests__/composables/useAppExperiment.test.ts +46 -3
- package/src/__tests__/composables/{useAnalysisArtifacts.test.ts → useArtifacts.test.ts} +19 -27
- package/src/__tests__/composables/useAutoGroup.test.ts +3 -13
- package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
- package/src/__tests__/composables/useControlSchema.test.ts +41 -99
- package/src/__tests__/composables/useExperiment.test.ts +63 -0
- package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
- package/src/__tests__/composables/useFileBrowser.test.ts +4 -6
- package/src/__tests__/composables/{useJobsStatusTray.test.ts → useJobCenter.test.ts} +31 -31
- package/src/__tests__/composables/{useGeneratedAnalysis.test.ts → useJobsEndpoint.test.ts} +213 -139
- package/src/__tests__/composables/usePlatform.test.ts +102 -0
- package/src/__tests__/composables/usePresence.test.ts +164 -0
- package/src/__tests__/composables/useRackEditor.test.ts +2 -2
- package/src/__tests__/composables/useRealtime.test.ts +196 -0
- package/src/__tests__/composables/{useRequestSyncState.test.ts → useRequest.test.ts} +32 -47
- package/src/__tests__/composables/useVersionedSave.test.ts +194 -0
- package/src/__tests__/docs/extractDocsComponents.test.ts +36 -0
- package/src/__tests__/docs/extractDocsParsing.test.ts +2 -2
- package/src/__tests__/docs/extractDocsTheme.test.ts +1 -46
- package/src/__tests__/docs/frontendDocsCatalog.test.ts +164 -84
- package/src/__tests__/styles/baseControlsRules.test.ts +7 -3
- package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
- package/src/__tests__/styles/cssTokens.test.ts +2 -2
- package/src/__tests__/styles/darkModeRules.test.ts +0 -6
- package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
- package/src/__tests__/{composables/useChemicalFormula.test.ts → utils/formula.test.ts} +3 -5
- package/src/__tests__/utils/permissions.test.ts +1 -36
- package/src/__tests__/utils/plotlyTemplate.test.ts +20 -5
- package/src/__tests__/{composables/useTimeUtils.test.ts → utils/time.test.ts} +18 -8
- package/src/components/ActionMenu.vue +7 -13
- package/src/components/AdductText.story.vue +7 -0
- package/src/components/AdductText.vue +1 -1
- package/src/components/AlertBox.story.vue +27 -27
- package/src/components/AlertBox.vue +22 -20
- package/src/components/AppLayout.story.vue +33 -44
- package/src/components/AppLayout.vue +1 -1
- package/src/components/AppSidebar.story.vue +40 -101
- package/src/components/AppSidebar.vue +66 -147
- package/src/components/AppToastContainer.story.vue +1 -1
- package/src/components/AppTopBar.story.vue +97 -111
- package/src/components/AppTopBar.vue +170 -290
- package/src/components/ArtifactSaveDialog.story.vue +32 -9
- package/src/components/ArtifactSaveDialog.vue +125 -38
- package/src/components/ArtifactSelectorModal.story.vue +4 -4
- package/src/components/ArtifactSelectorModal.vue +10 -10
- package/src/components/AuditTrail.story.vue +6 -5
- package/src/components/AuditTrail.vue +5 -24
- package/src/components/Avatar.story.vue +2 -3
- package/src/components/Avatar.vue +11 -16
- package/src/components/BaseButton.story.vue +25 -0
- package/src/components/BaseButton.vue +39 -10
- package/src/components/BaseCheckbox.story.vue +2 -2
- package/src/components/{BaseToggle.story.vue → BaseCheckbox.switch.story.vue} +22 -19
- package/src/components/BaseCheckbox.vue +39 -7
- package/src/components/BaseInput.story.vue +3 -15
- package/src/components/{BaseTextarea.story.vue → BaseInput.textarea.story.vue} +14 -10
- package/src/components/BaseInput.vue +53 -26
- package/src/components/BaseModal.story.vue +11 -11
- package/src/components/BaseModal.vue +8 -8
- package/src/components/BasePill.story.vue +48 -28
- package/src/components/BasePill.vue +22 -11
- package/src/components/BaseRadioGroup.story.vue +4 -4
- package/src/components/BaseRadioGroup.vue +3 -3
- package/src/components/{MultiSelect.story.vue → BaseSelect.multiple.story.vue} +33 -16
- package/src/components/{SearchableSelect.story.vue → BaseSelect.searchable.story.vue} +4 -4
- package/src/components/BaseSelect.story.vue +2 -2
- package/src/components/BaseSelect.vue +118 -22
- package/src/components/BaseTabs.story.vue +20 -20
- package/src/components/BaseTabs.vue +17 -9
- package/src/components/BatchProgressList.vue +38 -28
- package/src/components/ChartContainer.story.vue +9 -13
- package/src/components/ChartContainer.vue +10 -8
- package/src/components/ChemicalFormula.vue +1 -2
- package/src/components/CollapsibleCard.vue +5 -4
- package/src/components/ComponentBindingRenderer.story.vue +0 -29
- package/src/components/ComponentBindingRenderer.vue +15 -39
- package/src/components/ConcentrationInput.story.vue +2 -2
- package/src/components/ConcentrationInput.vue +9 -9
- package/src/components/ConfirmDialog.story.vue +22 -22
- package/src/components/ConfirmDialog.vue +15 -14
- package/src/components/DataFrame.story.vue +28 -40
- package/src/components/DataFrame.vue +112 -128
- package/src/components/{DateTimePicker.story.vue → DatePicker.datetime.story.vue} +19 -14
- package/src/components/DatePicker.story.vue +2 -2
- package/src/components/{TimePicker.story.vue → DatePicker.time.story.vue} +15 -12
- package/src/components/DatePicker.vue +82 -220
- package/src/components/DoseCalculator.vue +13 -19
- package/src/components/DoseCalculatorVolumeField.vue +6 -6
- package/src/components/EmptyState.story.vue +17 -17
- package/src/components/EmptyState.vue +6 -5
- package/src/components/ExperimentPopover.story.vue +165 -53
- package/src/components/ExperimentPopover.vue +172 -190
- package/src/components/ExperimentSelectorModal.story.vue +43 -39
- package/src/components/ExperimentSelectorModal.vue +134 -122
- package/src/components/FilePicker.vue +1 -1
- package/src/components/FormBuilder.story.vue +9 -4
- package/src/components/FormBuilder.vue +46 -253
- package/src/components/FormField.story.vue +9 -50
- package/src/components/FormulaInput.story.vue +2 -2
- package/src/components/FormulaInput.vue +5 -6
- package/src/components/GeneratedPathInput.vue +8 -9
- package/src/components/GeneratedPluginView.story.vue +1 -1
- package/src/components/GeneratedPluginView.vue +29 -22
- package/src/components/GeneratedResultRenderer.vue +16 -17
- package/src/components/InstrumentStateBadge.vue +1 -1
- package/src/components/InstrumentStatusPanels.story.vue +64 -0
- package/src/components/InstrumentStatusPanels.vue +133 -0
- package/src/components/JobsStatusTray.story.vue +2 -2
- package/src/components/JobsStatusTray.vue +5 -20
- package/src/components/LoadingSpinner.story.vue +11 -11
- package/src/components/LoadingSpinner.vue +7 -5
- package/src/components/MoleculeInput.story.vue +2 -2
- package/src/components/MoleculeInput.vue +3 -3
- package/src/components/NumberInput.story.vue +55 -15
- package/src/components/NumberInput.vue +83 -24
- package/src/components/PlateEditor.story.vue +51 -43
- package/src/components/PlateEditor.vue +97 -128
- package/src/components/PlotlyChart.story.vue +1 -1
- package/src/components/PlotlyChart.vue +6 -4
- package/src/components/PluginIcon.story.vue +6 -11
- package/src/components/PluginIcon.vue +7 -2
- package/src/components/PluginWorkspaceView.controls.ts +9 -29
- package/src/components/PluginWorkspaceView.navigation.ts +2 -23
- package/src/components/PluginWorkspaceView.props.ts +17 -151
- package/src/components/PluginWorkspaceView.shell.ts +13 -24
- package/src/components/PluginWorkspaceView.story.vue +65 -63
- package/src/components/PluginWorkspaceView.vue +21 -78
- package/src/components/PresenceAvatars.story.vue +75 -0
- package/src/components/PresenceAvatars.vue +114 -0
- package/src/components/ProgressBar.story.vue +7 -7
- package/src/components/ProgressBar.vue +4 -3
- package/src/components/ProtocolStep.presentation.ts +0 -11
- package/src/components/ProtocolStepEditor.vue +6 -5
- package/src/components/ProtocolStepParameterField.vue +15 -12
- package/src/components/RuntimeUpdateNotice.vue +1 -1
- package/src/components/SampleSelector.colors.ts +1 -1
- package/src/components/SampleSelector.story.vue +1 -1
- package/src/components/SampleSelector.vue +33 -43
- package/src/components/SampleSelectorGroupNode.vue +1 -1
- package/src/components/ScheduleCalendar.vue +4 -4
- package/src/components/SecretInput.story.vue +1 -1
- package/src/components/SecretInput.vue +16 -25
- package/src/components/SectionCard.story.vue +2 -2
- package/src/components/SegmentedControl.story.vue +7 -7
- package/src/components/SegmentedControl.vue +5 -3
- package/src/components/SequenceInput.story.vue +2 -2
- package/src/components/SequenceInput.vue +3 -3
- package/src/components/SequenceProgressBar.story.vue +9 -0
- package/src/components/SequenceProgressBar.vue +6 -1
- package/src/components/SettingsModal.schema.ts +1 -1
- package/src/components/SettingsModal.story.vue +13 -14
- package/src/components/SettingsModal.vue +31 -49
- package/src/components/SmartGroup.types.ts +4 -6
- package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
- package/src/components/SmartGroupFieldRecipe.vue +7 -5
- package/src/components/SmartGroupManual.story.vue +1 -1
- package/src/components/StaleFormBanner.story.vue +90 -0
- package/src/components/StaleFormBanner.vue +83 -0
- package/src/components/StepWizard.story.vue +33 -0
- package/src/components/StepWizard.vue +8 -1
- package/src/components/TagsInput.story.vue +7 -7
- package/src/components/TagsInput.vue +7 -6
- package/src/components/ThemeToggle.vue +5 -30
- package/src/components/TimeRangeInput.story.vue +1 -1
- package/src/components/TimeRangeInput.vue +10 -8
- package/src/components/VersionConflictDialog.story.vue +60 -0
- package/src/components/VersionConflictDialog.vue +79 -0
- package/src/components/WellPlate.geometry.ts +0 -38
- package/src/components/WellPlate.rendering.ts +0 -13
- package/src/components/WellPlate.story.vue +64 -51
- package/src/components/WellPlate.vue +68 -87
- package/src/components/index.ts +3 -105
- package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
- package/src/components/{AutoGroupModal.adapter.ts → internal/AutoGroupModalInternal.adapter.ts} +8 -8
- package/src/components/{AutoGroupModal.vue → internal/AutoGroupModalInternal.vue} +23 -23
- package/src/components/{BaseToggle.vue → internal/CheckboxSwitchInternal.vue} +8 -8
- package/src/components/internal/DataStateInternal.vue +1 -1
- package/src/components/internal/DatePickerDateInternal.vue +219 -0
- package/src/components/{DateTimePicker.vue → internal/DatePickerDateTimeInternal.vue} +12 -22
- package/src/components/{TimePicker.vue → internal/DatePickerTimeInternal.vue} +12 -15
- package/src/components/internal/FilePickerListInternal.vue +8 -14
- package/src/components/{FormActions.vue → internal/FormActionsInternal.vue} +2 -2
- package/src/components/internal/FormFieldRendererInternal.vue +1 -1
- package/src/components/internal/FormSchemaInternal.vue +253 -0
- package/src/components/{UnitInput.vue → internal/NumberUnitInputInternal.vue} +28 -28
- package/src/components/internal/PlateEditorBindingInternal.vue +8 -7
- package/src/components/internal/ResourcePickerListInternal.vue +48 -88
- package/src/components/internal/SelectMultipleInternal.vue +242 -0
- package/src/components/{SearchableSelect.vue → internal/SelectSearchableInternal.vue} +26 -11
- package/src/components/internal/WellEditPopupInternal.vue +4 -9
- package/src/components/internal/WorkspaceShellInternal.vue +3 -36
- package/src/components/internal/WorkspaceSidebarInternal.vue +4 -25
- package/src/{composables → components/internal}/autoGroup/classKey.ts +1 -1
- package/src/{composables → components/internal}/autoGroup/classify.ts +1 -1
- package/src/{composables → components/internal}/autoGroup/columns.ts +1 -1
- package/src/{composables → components/internal}/autoGroup/compose.ts +3 -3
- package/src/{composables → components/internal}/autoGroup/cooccurrence.ts +1 -1
- package/src/{composables → components/internal}/autoGroup/csv-shim.ts +1 -1
- package/src/{composables → components/internal}/autoGroup/fingerprint.ts +1 -1
- package/src/{composables → components/internal}/autoGroup/index.ts +1 -2
- package/src/{composables → components/internal}/autoGroup/template.ts +1 -1
- package/src/{composables → components/internal}/autoGroup/tokenLength.ts +1 -1
- package/src/components/internal/generatedJobsApi.ts +1 -1
- package/src/{composables → components/internal}/useAutoGroup.ts +3 -57
- package/src/composables/componentSpecs.ts +62 -0
- package/src/composables/controlComponentBindings.ts +7 -0
- package/src/composables/controlSchemaAdapters.ts +45 -7
- package/src/composables/controlSchemaDoseDesign.ts +16 -5
- package/src/composables/controlSchemaModel.ts +1 -1
- package/src/composables/controlSchemaTypes.ts +31 -22
- package/src/composables/{usePluginClient.ts → createClient.ts} +54 -190
- package/src/composables/{useEventStream.ts → eventStream.ts} +3 -3
- package/src/composables/experiment-utils.ts +1 -39
- package/src/composables/formBuilderRegistry.ts +6 -12
- package/src/composables/index.ts +17 -480
- package/src/composables/platformContextHelpers.ts +0 -57
- package/src/composables/pluginEndpointBuilder.ts +8 -10
- package/src/composables/pluginIdentity.ts +31 -0
- package/src/composables/pluginWorkspaceModel.ts +16 -107
- package/src/composables/useApi.ts +18 -30
- package/src/composables/useAppExperiment.ts +26 -5
- package/src/composables/{useAnalysisArtifacts.ts → useArtifacts.ts} +18 -19
- package/src/composables/useCalendarGrid.ts +4 -3
- package/src/composables/useControlSchema.ts +5 -9
- package/src/composables/useControlWorkspace.ts +4 -7
- package/src/composables/useExperiment.ts +49 -0
- package/src/composables/useExperimentData.ts +4 -4
- package/src/composables/useExperimentSelector.ts +82 -36
- package/src/composables/useFileBrowser.ts +5 -13
- package/src/composables/useFilePicker.ts +2 -2
- package/src/composables/useFormBuilder.ts +3 -4
- package/src/composables/useJobCenter.ts +324 -0
- package/src/composables/{useGeneratedAnalysis.ts → useJobsEndpoint.ts} +53 -67
- package/src/composables/useMenuKeyboard.ts +1 -1
- package/src/composables/usePlatform.ts +95 -0
- package/src/composables/usePlatformFilePickerAdapter.ts +2 -1
- package/src/composables/usePluginWorkspace.ts +62 -107
- package/src/composables/usePresence.ts +110 -0
- package/src/composables/useRackEditor.ts +3 -3
- package/src/composables/useRealtime.ts +194 -0
- package/src/composables/{useRequestSyncState.ts → useRequest.ts} +25 -48
- package/src/composables/useScheduleCalendarLayout.ts +1 -1
- package/src/composables/useToast.ts +14 -11
- package/src/composables/useVersionedSave.ts +165 -0
- package/src/data.ts +130 -0
- package/src/deprecatedRootExports.ts +226 -0
- package/src/generated/schema.ts +1 -0
- package/src/host.ts +27 -0
- package/src/index.ts +2 -71
- package/src/install.ts +15 -2
- package/src/instrument.ts +1 -6
- package/src/lab.ts +128 -0
- package/src/permissions.ts +0 -27
- package/src/runtime.ts +145 -0
- package/src/shell.ts +103 -0
- package/src/stores/auth.ts +26 -162
- package/src/stores/experiment.ts +27 -1
- package/src/styles/components/action-menu.css +0 -5
- package/src/styles/components/adduct-text.css +13 -5
- package/src/styles/components/alert-box.css +39 -40
- package/src/styles/components/app-layout.css +6 -5
- package/src/styles/components/app-page-selector.css +3 -1
- package/src/styles/components/app-pill-nav.css +11 -12
- package/src/styles/components/app-sidebar.css +9 -18
- package/src/styles/components/app-top-bar.css +64 -103
- package/src/styles/components/artifact-save-dialog.css +153 -2
- package/src/styles/components/audit-trail.css +16 -19
- package/src/styles/components/avatar.css +6 -4
- package/src/styles/components/batch-progress-list.css +38 -36
- package/src/styles/components/button.css +40 -59
- package/src/styles/components/calendar.css +12 -12
- package/src/styles/components/chart-container.css +34 -23
- package/src/styles/components/checkbox.css +3 -13
- package/src/styles/components/collapsible-card.css +28 -30
- package/src/styles/components/confirm-dialog.css +31 -16
- package/src/styles/components/dataframe.css +12 -4
- package/src/styles/components/date-picker.css +80 -92
- package/src/styles/components/datetime-picker.css +31 -43
- package/src/styles/components/divider.css +20 -20
- package/src/styles/components/dose-calculator.css +3 -3
- package/src/styles/components/empty-state.css +23 -18
- package/src/styles/components/experiment-code-badge.css +2 -0
- package/src/styles/components/experiment-popover.css +174 -329
- package/src/styles/components/experiment-selector-modal.css +75 -56
- package/src/styles/components/file-picker.css +4 -4
- package/src/styles/components/file-uploader.css +38 -49
- package/src/styles/components/form-builder.css +3 -3
- package/src/styles/components/formula-input.css +1 -1
- package/src/styles/components/icon-button.css +19 -25
- package/src/styles/components/input.css +5 -4
- package/src/styles/components/instrument-monitor.css +13 -15
- package/src/styles/components/jobs-status-tray.css +31 -25
- package/src/styles/components/loading-spinner.css +9 -12
- package/src/styles/components/modal.css +2 -4
- package/src/styles/components/molecule-input.css +2 -2
- package/src/styles/components/multi-select.css +65 -112
- package/src/styles/components/number-input.css +26 -19
- package/src/styles/components/pill.css +43 -37
- package/src/styles/components/plate-editor.css +0 -1
- package/src/styles/components/plugin-icon.css +34 -22
- package/src/styles/components/popover.css +2 -2
- package/src/styles/components/presence-avatars.css +194 -0
- package/src/styles/components/progress-bar.css +2 -0
- package/src/styles/components/protocol-step-editor.css +1 -3
- package/src/styles/components/resource-card.css +2 -2
- package/src/styles/components/resource-picker-list.css +6 -57
- package/src/styles/components/sample-hierarchy-tree.css +4 -4
- package/src/styles/components/sample-selector.css +95 -79
- package/src/styles/components/schedule-calendar.css +8 -8
- package/src/styles/components/searchable-select.css +15 -12
- package/src/styles/components/section-card.css +28 -47
- package/src/styles/components/segmented-control.css +18 -15
- package/src/styles/components/select.css +3 -3
- package/src/styles/components/sequence-input.css +2 -2
- package/src/styles/components/sequence-progress-bar.css +17 -8
- package/src/styles/components/smart-group.css +19 -24
- package/src/styles/components/step-wizard.css +52 -16
- package/src/styles/components/tabs.css +2 -2
- package/src/styles/components/textarea.css +4 -4
- package/src/styles/components/time-picker.css +36 -21
- package/src/styles/components/toast.css +12 -10
- package/src/styles/components/toggle.css +3 -13
- package/src/styles/components/tooltip.css +10 -9
- package/src/styles/components/unit-input.css +8 -7
- package/src/styles/components/version-conflict.css +122 -0
- package/src/styles/components/well-plate.css +8 -8
- package/src/styles/index.css +2 -11
- package/src/styles/variables.css +107 -602
- package/src/types/analysisArtifactTypes.ts +1 -1
- package/src/types/auth.ts +0 -10
- package/src/types/componentLabTypes.ts +103 -53
- package/src/types/componentWorkflowTypes.ts +4 -33
- package/src/types/components.ts +148 -114
- package/src/types/form-builder.ts +4 -0
- package/src/types/generated/platformContext.ts +60 -0
- package/src/types/generated-ui.ts +6 -2
- package/src/types/index.ts +15 -53
- package/src/types/instrument.ts +27 -0
- package/src/types/platform.ts +25 -89
- package/src/utils/color.ts +1 -12
- package/src/utils/dose.ts +335 -0
- package/src/utils/experimentStatus.ts +43 -0
- package/src/utils/formula.ts +292 -0
- package/src/utils/integrationHost.ts +27 -0
- package/src/utils/plotlyTemplate.ts +6 -0
- package/src/utils/pluginSecrets.ts +23 -23
- package/src/utils/presenceAvatars.ts +53 -0
- package/src/utils/records.ts +0 -5
- package/src/{composables/useTimeUtils.ts → utils/time.ts} +21 -21
- package/dist/ResourcePickerListInternal-CFAw4vTZ.js +0 -605
- package/dist/ResourcePickerListInternal-CFAw4vTZ.js.map +0 -1
- package/dist/__tests__/composables/useBioTemplatePackWorkspace.test.d.ts +0 -1
- package/dist/__tests__/composables/useBioTemplatePresetWorkspace.test.d.ts +0 -1
- package/dist/__tests__/composables/useBioTemplateWorkspace.test.d.ts +0 -1
- package/dist/__tests__/composables/useChemicalFormula.test.d.ts +0 -1
- package/dist/__tests__/composables/useEventStream.test.d.ts +0 -1
- package/dist/__tests__/composables/useExperimentSave.test.d.ts +0 -1
- package/dist/__tests__/composables/useGeneratedAnalysis.test.d.ts +0 -1
- package/dist/__tests__/composables/useGroupAssignment.test.d.ts +0 -1
- package/dist/__tests__/composables/useJobsStatusTray.test.d.ts +0 -1
- package/dist/__tests__/composables/useMobileSupportGate.test.d.ts +0 -1
- package/dist/__tests__/composables/usePlatformContext.test.d.ts +0 -1
- package/dist/__tests__/composables/usePluginClient.test.d.ts +0 -1
- package/dist/__tests__/composables/usePresenceHeartbeat.test.d.ts +0 -1
- package/dist/__tests__/composables/useRequestSyncState.test.d.ts +0 -1
- package/dist/__tests__/composables/useRuntimeAlignment.test.d.ts +0 -1
- package/dist/__tests__/composables/useTemplateCollection.test.d.ts +0 -1
- package/dist/__tests__/composables/useTimeUtils.test.d.ts +0 -1
- package/dist/__tests__/docs/extractDocsTemplates.test.d.ts +0 -1
- package/dist/__tests__/templates/templates.test.d.ts +0 -1
- package/dist/__tests__/templates/templatesDeprecation.test.d.ts +0 -1
- package/dist/__tests__/utils/lcms.test.d.ts +0 -1
- package/dist/__tests__/utils/rack.test.d.ts +0 -1
- package/dist/components/AppAvatarMenu.vue.d.ts +0 -47
- package/dist/components/AppTopBar.navigation.d.ts +0 -10
- package/dist/components/BaseTextarea.vue.d.ts +0 -31
- package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +0 -112
- package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +0 -86
- package/dist/components/BioTemplatePresetWorkspaceView.vue.d.ts +0 -80
- package/dist/components/BioTemplateRenderer.vue.d.ts +0 -30
- package/dist/components/ControlWorkspaceView.vue.d.ts +0 -138
- package/dist/components/DoseDesignWorkspaceView.vue.d.ts +0 -140
- package/dist/components/ExperimentDataViewer.vue.d.ts +0 -54
- package/dist/components/ExperimentTimeline.vue.d.ts +0 -70
- package/dist/components/FitPanel.vue.d.ts +0 -56
- package/dist/components/GroupAssigner.vue.d.ts +0 -26
- package/dist/components/IconButton.vue.d.ts +0 -30
- package/dist/components/MobileSupportGate.vue.d.ts +0 -32
- package/dist/components/ReagentEditor.vue.d.ts +0 -31
- package/dist/components/ReagentList.presentation.d.ts +0 -17
- package/dist/components/ReagentList.vue.d.ts +0 -58
- package/dist/components/SampleLegend.vue.d.ts +0 -33
- package/dist/components/SmartGroupModal.vue.d.ts +0 -29
- package/dist/components/index.js +0 -5
- package/dist/components-BOA5e7kb.js +0 -23137
- package/dist/components-BOA5e7kb.js.map +0 -1
- package/dist/composables/flattenWorkspaceBindings.d.ts +0 -61
- package/dist/composables/index.js +0 -7
- package/dist/composables/useBioTemplateComponents.d.ts +0 -34
- package/dist/composables/useBioTemplateControls.d.ts +0 -10
- package/dist/composables/useBioTemplatePackWorkspace.d.ts +0 -56
- package/dist/composables/useBioTemplatePresetWorkspace.d.ts +0 -79
- package/dist/composables/useBioTemplateWorkspace.d.ts +0 -39
- package/dist/composables/useExperimentSave.d.ts +0 -69
- package/dist/composables/useGroupAssignment.d.ts +0 -35
- package/dist/composables/useJobsStatusTray.d.ts +0 -87
- package/dist/composables/useMobileSupportGate.d.ts +0 -14
- package/dist/composables/usePlatformContext.d.ts +0 -218
- package/dist/composables/usePresenceHeartbeat.d.ts +0 -49
- package/dist/composables/useRuntimeAlignment.d.ts +0 -44
- package/dist/composables/useTemplateCollection.d.ts +0 -62
- package/dist/composables/workspaceRecipes.d.ts +0 -189
- package/dist/composables-izSQH8Ky.js +0 -591
- package/dist/composables-izSQH8Ky.js.map +0 -1
- package/dist/experiment-D49y_Kro.js +0 -459
- package/dist/experiment-D49y_Kro.js.map +0 -1
- package/dist/experiment-utils-DTANyVKV.js.map +0 -1
- package/dist/install.js.map +0 -1
- package/dist/lcms.d.ts +0 -38
- package/dist/settings-BG6v13Zq.js +0 -341
- package/dist/settings-BG6v13Zq.js.map +0 -1
- package/dist/tailwind.preset.d.ts +0 -63
- package/dist/tailwind.preset.js +0 -71
- package/dist/tailwind.preset.js.map +0 -1
- package/dist/templates/adapters.d.ts +0 -19
- package/dist/templates/assayLookups.d.ts +0 -3
- package/dist/templates/assayMatrixAdapters.d.ts +0 -13
- package/dist/templates/assayMatrixBuilder.d.ts +0 -3
- package/dist/templates/assayNormalizers.d.ts +0 -4
- package/dist/templates/builderIdUtils.d.ts +0 -4
- package/dist/templates/builderPresetControls.d.ts +0 -11
- package/dist/templates/builderReadUtils.d.ts +0 -8
- package/dist/templates/builders.d.ts +0 -26
- package/dist/templates/calibrationCurveAdapters.d.ts +0 -7
- package/dist/templates/calibrationCurveBuilder.d.ts +0 -3
- package/dist/templates/calibrationNormalizers.d.ts +0 -5
- package/dist/templates/catalog.d.ts +0 -192
- package/dist/templates/componentBindingCatalog.d.ts +0 -25
- package/dist/templates/componentBindingHelpers.d.ts +0 -17
- package/dist/templates/componentBindings.d.ts +0 -97
- package/dist/templates/componentDoseResponseProps.d.ts +0 -3
- package/dist/templates/componentGenericProps.d.ts +0 -8
- package/dist/templates/componentPlateHelpers.d.ts +0 -11
- package/dist/templates/componentPlateMapProps.d.ts +0 -3
- package/dist/templates/componentPropsFactory.d.ts +0 -3
- package/dist/templates/componentQpcrPlateProps.d.ts +0 -3
- package/dist/templates/componentTargetResolvers.d.ts +0 -5
- package/dist/templates/componentTemplateProps.d.ts +0 -3
- package/dist/templates/controlSchemaClone.d.ts +0 -4
- package/dist/templates/controlSchemaConstants.d.ts +0 -10
- package/dist/templates/controlSchemaMerge.d.ts +0 -3
- package/dist/templates/controlSchemaTargets.d.ts +0 -17
- package/dist/templates/controlSchemaTypes.d.ts +0 -4
- package/dist/templates/controlSchemas.d.ts +0 -34
- package/dist/templates/defaultBioTemplateBuilder.d.ts +0 -3
- package/dist/templates/doseResponseAdapters.d.ts +0 -6
- package/dist/templates/doseResponseBuilder.d.ts +0 -3
- package/dist/templates/elisaAssayCollectionBuilder.d.ts +0 -3
- package/dist/templates/flowCytometryAssayCollectionBuilder.d.ts +0 -3
- package/dist/templates/flowCytometryPanelBuilder.d.ts +0 -3
- package/dist/templates/flowNormalizers.d.ts +0 -8
- package/dist/templates/flowPanelAdapters.d.ts +0 -7
- package/dist/templates/index.d.ts +0 -15
- package/dist/templates/index.js +0 -2
- package/dist/templates/instrumentRunAdapterHelpers.d.ts +0 -8
- package/dist/templates/instrumentRunAdapters.d.ts +0 -19
- package/dist/templates/instrumentRunBuilder.d.ts +0 -3
- package/dist/templates/lcmsBatchCollectionBuilder.d.ts +0 -3
- package/dist/templates/lookup.d.ts +0 -4
- package/dist/templates/packs.d.ts +0 -21
- package/dist/templates/plateMapAdapters.d.ts +0 -5
- package/dist/templates/plateMapBuilder.d.ts +0 -3
- package/dist/templates/presetControlSchemas.d.ts +0 -534
- package/dist/templates/presets.d.ts +0 -106
- package/dist/templates/protocolAdapters.d.ts +0 -9
- package/dist/templates/protocolNormalizers.d.ts +0 -6
- package/dist/templates/protocolStepsBuilder.d.ts +0 -3
- package/dist/templates/qpcrAdapters.d.ts +0 -9
- package/dist/templates/qpcrExpressionCollectionBuilder.d.ts +0 -3
- package/dist/templates/qpcrPlateBuilder.d.ts +0 -3
- package/dist/templates/reagentAdapters.d.ts +0 -9
- package/dist/templates/reagentListBuilder.d.ts +0 -3
- package/dist/templates/runNormalizers.d.ts +0 -10
- package/dist/templates/sampleNormalizers.d.ts +0 -4
- package/dist/templates/samplePrepAdapters.d.ts +0 -7
- package/dist/templates/samplePrepBuilder.d.ts +0 -3
- package/dist/templates/sampleSheetAdapters.d.ts +0 -9
- package/dist/templates/sampleSheetBuilder.d.ts +0 -3
- package/dist/templates/targetedMetabolomicsCollectionBuilder.d.ts +0 -3
- package/dist/templates/targetedMetabolomicsHelpers.d.ts +0 -5
- package/dist/templates/templateAdapterTypes.d.ts +0 -48
- package/dist/templates/templateControlSchemas.d.ts +0 -400
- package/dist/templates/templateCreateOptions.d.ts +0 -165
- package/dist/templates/templateEnvelopes.d.ts +0 -17
- package/dist/templates/templatePackCollectionBuilder.d.ts +0 -3
- package/dist/templates/templatePresetCollectionBuilder.d.ts +0 -20
- package/dist/templates/templateQpcrTypes.d.ts +0 -42
- package/dist/templates/templateValidators.d.ts +0 -25
- package/dist/templates/timeCourseAdapters.d.ts +0 -9
- package/dist/templates/timeCourseBuilder.d.ts +0 -3
- package/dist/templates/types.d.ts +0 -304
- package/dist/templates/wellPlateScreenCollectionBuilder.d.ts +0 -3
- package/dist/templates/westernBlotAssayCollectionBuilder.d.ts +0 -3
- package/dist/templates-B2DB0MCM.js +0 -12304
- package/dist/templates-B2DB0MCM.js.map +0 -1
- package/dist/utils/rack.d.ts +0 -63
- package/dist/validation-C_eH_vIg.js +0 -7999
- package/dist/validation-C_eH_vIg.js.map +0 -1
- package/src/__tests__/components/AppAvatarMenu.test.ts +0 -186
- package/src/__tests__/components/AppTopBar.navigation.test.ts +0 -68
- package/src/__tests__/components/AppTopBarPresence.test.ts +0 -47
- package/src/__tests__/components/BioTemplateExperimentWorkspaceView.test.ts +0 -159
- package/src/__tests__/components/BioTemplatePackWorkspaceView.test.ts +0 -192
- package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +0 -307
- package/src/__tests__/components/BioTemplateRenderer.test.ts +0 -96
- package/src/__tests__/components/ControlWorkspaceView.test.ts +0 -1100
- package/src/__tests__/components/DoseDesignWorkspaceView.test.ts +0 -183
- package/src/__tests__/components/ExperimentTimeline.test.ts +0 -108
- package/src/__tests__/components/FitPanel.test.ts +0 -96
- package/src/__tests__/components/GroupAssigner.test.ts +0 -101
- package/src/__tests__/components/MobileSupportGate.test.ts +0 -120
- package/src/__tests__/components/MultiSelect.test.ts +0 -54
- package/src/__tests__/components/ReagentList.presentation.test.ts +0 -73
- package/src/__tests__/components/ReagentList.test.ts +0 -167
- package/src/__tests__/components/SampleLegend.test.ts +0 -18
- package/src/__tests__/components/SmartGroupModal.test.ts +0 -69
- package/src/__tests__/components/WellPlate.sampleTypeIndicator.test.ts +0 -58
- package/src/__tests__/components/iconButtonIconSizing.test.ts +0 -18
- package/src/__tests__/composables/useBioTemplatePackWorkspace.test.ts +0 -125
- package/src/__tests__/composables/useBioTemplatePresetWorkspace.test.ts +0 -199
- package/src/__tests__/composables/useBioTemplateWorkspace.test.ts +0 -104
- package/src/__tests__/composables/useExperimentSave.test.ts +0 -542
- package/src/__tests__/composables/useGroupAssignment.test.ts +0 -73
- package/src/__tests__/composables/useMobileSupportGate.test.ts +0 -74
- package/src/__tests__/composables/usePlatformContext.test.ts +0 -148
- package/src/__tests__/composables/usePresenceHeartbeat.test.ts +0 -164
- package/src/__tests__/composables/useRuntimeAlignment.test.ts +0 -145
- package/src/__tests__/composables/useTemplateCollection.test.ts +0 -147
- package/src/__tests__/docs/extractDocsTemplates.test.ts +0 -53
- package/src/__tests__/fixtures/templates/dose-response.json +0 -81
- package/src/__tests__/fixtures/templates/plate-map.json +0 -54
- package/src/__tests__/fixtures/templates/qpcr-plate.json +0 -96
- package/src/__tests__/fixtures/templates/sample-sheet.json +0 -71
- package/src/__tests__/templates/templates.test.ts +0 -1235
- package/src/__tests__/templates/templatesDeprecation.test.ts +0 -78
- package/src/__tests__/utils/lcms.test.ts +0 -73
- package/src/__tests__/utils/rack.test.ts +0 -120
- package/src/components/AppAvatarMenu.story.vue +0 -155
- package/src/components/AppAvatarMenu.vue +0 -154
- package/src/components/AppTopBar.navigation.ts +0 -60
- package/src/components/AutoGroupModal.story.vue +0 -458
- package/src/components/BaseTextarea.vue +0 -58
- package/src/components/BioTemplateExperimentWorkspaceView.story.vue +0 -123
- package/src/components/BioTemplateExperimentWorkspaceView.vue +0 -339
- package/src/components/BioTemplatePackWorkspaceView.story.vue +0 -107
- package/src/components/BioTemplatePackWorkspaceView.vue +0 -180
- package/src/components/BioTemplatePresetWorkspaceView.story.vue +0 -163
- package/src/components/BioTemplatePresetWorkspaceView.vue +0 -403
- package/src/components/BioTemplateRenderer.story.vue +0 -57
- package/src/components/BioTemplateRenderer.vue +0 -64
- package/src/components/ControlWorkspaceView.story.vue +0 -347
- package/src/components/ControlWorkspaceView.vue +0 -370
- package/src/components/DoseDesignWorkspaceView.story.vue +0 -77
- package/src/components/DoseDesignWorkspaceView.vue +0 -243
- package/src/components/ExperimentDataViewer.story.vue +0 -177
- package/src/components/ExperimentDataViewer.vue +0 -313
- package/src/components/ExperimentTimeline.story.vue +0 -208
- package/src/components/ExperimentTimeline.vue +0 -383
- package/src/components/FitPanel.story.vue +0 -191
- package/src/components/FitPanel.vue +0 -168
- package/src/components/FormActions.story.vue +0 -96
- package/src/components/GroupAssigner.story.vue +0 -83
- package/src/components/GroupAssigner.vue +0 -319
- package/src/components/IconButton.story.vue +0 -140
- package/src/components/IconButton.vue +0 -69
- package/src/components/MobileSupportGate.story.vue +0 -52
- package/src/components/MobileSupportGate.vue +0 -111
- package/src/components/MultiSelect.vue +0 -119
- package/src/components/ReagentEditor.story.vue +0 -153
- package/src/components/ReagentEditor.vue +0 -414
- package/src/components/ReagentList.presentation.ts +0 -106
- package/src/components/ReagentList.story.vue +0 -155
- package/src/components/ReagentList.vue +0 -438
- package/src/components/SampleLegend.story.vue +0 -91
- package/src/components/SampleLegend.vue +0 -121
- package/src/components/SmartGroupModal.story.vue +0 -61
- package/src/components/SmartGroupModal.vue +0 -61
- package/src/components/StatusIndicator.story.vue +0 -99
- package/src/components/StatusIndicator.vue +0 -36
- package/src/components/UnitInput.story.vue +0 -194
- package/src/composables/flattenWorkspaceBindings.ts +0 -104
- package/src/composables/useBioTemplateComponents.ts +0 -117
- package/src/composables/useBioTemplateControls.ts +0 -45
- package/src/composables/useBioTemplatePackWorkspace.ts +0 -201
- package/src/composables/useBioTemplatePresetWorkspace.ts +0 -329
- package/src/composables/useBioTemplateWorkspace.ts +0 -120
- package/src/composables/useChemicalFormula.ts +0 -301
- package/src/composables/useDoseCalculator.ts +0 -370
- package/src/composables/useExperimentSave.ts +0 -348
- package/src/composables/useGroupAssignment.ts +0 -152
- package/src/composables/useJobsStatusTray.ts +0 -493
- package/src/composables/useMobileSupportGate.ts +0 -80
- package/src/composables/usePlatformContext.ts +0 -299
- package/src/composables/usePresenceHeartbeat.ts +0 -201
- package/src/composables/useRuntimeAlignment.ts +0 -184
- package/src/composables/useTemplateCollection.ts +0 -233
- package/src/composables/workspaceRecipes.ts +0 -268
- package/src/lcms.ts +0 -119
- package/src/styles/components/app-avatar-menu.css +0 -121
- package/src/styles/components/experiment-data-viewer.css +0 -138
- package/src/styles/components/experiment-timeline.css +0 -572
- package/src/styles/components/fit-panel.css +0 -153
- package/src/styles/components/group-assigner.css +0 -198
- package/src/styles/components/mobile-support-gate.css +0 -117
- package/src/styles/components/reagent-editor.css +0 -501
- package/src/styles/components/reagent-list.css +0 -408
- package/src/styles/components/sample-legend.css +0 -212
- package/src/styles/components/status-indicator.css +0 -66
- package/src/styles/components/theme-toggle.css +0 -6
- package/src/tailwind.preset.ts +0 -66
- package/src/templates/adapters.ts +0 -141
- package/src/templates/assayLookups.ts +0 -33
- package/src/templates/assayMatrixAdapters.ts +0 -85
- package/src/templates/assayMatrixBuilder.ts +0 -60
- package/src/templates/assayNormalizers.ts +0 -34
- package/src/templates/builderIdUtils.ts +0 -20
- package/src/templates/builderPresetControls.ts +0 -166
- package/src/templates/builderReadUtils.ts +0 -55
- package/src/templates/builders.ts +0 -122
- package/src/templates/calibrationCurveAdapters.ts +0 -62
- package/src/templates/calibrationCurveBuilder.ts +0 -100
- package/src/templates/calibrationNormalizers.ts +0 -60
- package/src/templates/catalog.ts +0 -249
- package/src/templates/componentBindingCatalog.ts +0 -90
- package/src/templates/componentBindingHelpers.ts +0 -93
- package/src/templates/componentBindings.ts +0 -279
- package/src/templates/componentDoseResponseProps.ts +0 -41
- package/src/templates/componentGenericProps.ts +0 -77
- package/src/templates/componentPlateHelpers.ts +0 -52
- package/src/templates/componentPlateMapProps.ts +0 -34
- package/src/templates/componentPropsFactory.ts +0 -21
- package/src/templates/componentQpcrPlateProps.ts +0 -27
- package/src/templates/componentTargetResolvers.ts +0 -67
- package/src/templates/componentTemplateProps.ts +0 -78
- package/src/templates/controlSchemaClone.ts +0 -32
- package/src/templates/controlSchemaConstants.ts +0 -11
- package/src/templates/controlSchemaMerge.ts +0 -40
- package/src/templates/controlSchemaTargets.ts +0 -85
- package/src/templates/controlSchemaTypes.ts +0 -20
- package/src/templates/controlSchemas.ts +0 -113
- package/src/templates/defaultBioTemplateBuilder.ts +0 -125
- package/src/templates/doseResponseAdapters.ts +0 -36
- package/src/templates/doseResponseBuilder.ts +0 -45
- package/src/templates/elisaAssayCollectionBuilder.ts +0 -63
- package/src/templates/flowCytometryAssayCollectionBuilder.ts +0 -42
- package/src/templates/flowCytometryPanelBuilder.ts +0 -54
- package/src/templates/flowNormalizers.ts +0 -58
- package/src/templates/flowPanelAdapters.ts +0 -61
- package/src/templates/index.ts +0 -330
- package/src/templates/instrumentRunAdapterHelpers.ts +0 -94
- package/src/templates/instrumentRunAdapters.ts +0 -174
- package/src/templates/instrumentRunBuilder.ts +0 -98
- package/src/templates/lcmsBatchCollectionBuilder.ts +0 -39
- package/src/templates/lookup.ts +0 -18
- package/src/templates/packs.ts +0 -166
- package/src/templates/plateMapAdapters.ts +0 -38
- package/src/templates/plateMapBuilder.ts +0 -44
- package/src/templates/presetControlSchemas.ts +0 -258
- package/src/templates/presets.ts +0 -183
- package/src/templates/protocolAdapters.ts +0 -73
- package/src/templates/protocolNormalizers.ts +0 -37
- package/src/templates/protocolStepsBuilder.ts +0 -37
- package/src/templates/qpcrAdapters.ts +0 -108
- package/src/templates/qpcrExpressionCollectionBuilder.ts +0 -34
- package/src/templates/qpcrPlateBuilder.ts +0 -97
- package/src/templates/reagentAdapters.ts +0 -81
- package/src/templates/reagentListBuilder.ts +0 -31
- package/src/templates/runNormalizers.ts +0 -63
- package/src/templates/sampleNormalizers.ts +0 -58
- package/src/templates/samplePrepAdapters.ts +0 -66
- package/src/templates/samplePrepBuilder.ts +0 -52
- package/src/templates/sampleSheetAdapters.ts +0 -79
- package/src/templates/sampleSheetBuilder.ts +0 -24
- package/src/templates/targetedMetabolomicsCollectionBuilder.ts +0 -80
- package/src/templates/targetedMetabolomicsHelpers.ts +0 -102
- package/src/templates/templateAdapterTypes.ts +0 -58
- package/src/templates/templateControlSchemas.ts +0 -320
- package/src/templates/templateCreateOptions.ts +0 -208
- package/src/templates/templateEnvelopes.ts +0 -145
- package/src/templates/templatePackCollectionBuilder.ts +0 -24
- package/src/templates/templatePresetCollectionBuilder.ts +0 -141
- package/src/templates/templateQpcrTypes.ts +0 -48
- package/src/templates/templateValidators.ts +0 -426
- package/src/templates/timeCourseAdapters.ts +0 -77
- package/src/templates/timeCourseBuilder.ts +0 -65
- package/src/templates/types.ts +0 -493
- package/src/templates/wellPlateScreenCollectionBuilder.ts +0 -37
- package/src/templates/westernBlotAssayCollectionBuilder.ts +0 -69
- package/src/utils/rack.ts +0 -225
- /package/dist/__tests__/components/{AppAvatarMenu.test.d.ts → BaseButton.test.d.ts} +0 -0
- /package/dist/__tests__/components/{AppTopBar.navigation.test.d.ts → BaseCheckbox.switch.test.d.ts} +0 -0
- /package/dist/__tests__/components/{AppTopBarPresence.test.d.ts → BaseSelect.multiple.test.d.ts} +0 -0
- /package/dist/__tests__/components/{BaseToggle.test.d.ts → BaseSelect.searchable.test.d.ts} +0 -0
- /package/dist/__tests__/components/{BioTemplateExperimentWorkspaceView.test.d.ts → ConfirmDialog.test.d.ts} +0 -0
- /package/dist/__tests__/components/{BioTemplatePackWorkspaceView.test.d.ts → DatePicker.datetime.test.d.ts} +0 -0
- /package/dist/__tests__/components/{BioTemplatePresetWorkspaceView.test.d.ts → DatePicker.time.test.d.ts} +0 -0
- /package/dist/__tests__/components/{BioTemplateRenderer.test.d.ts → FormSchemaInternal.test.d.ts} +0 -0
- /package/dist/__tests__/components/{ControlWorkspaceView.test.d.ts → InstrumentStatusPanels.test.d.ts} +0 -0
- /package/dist/__tests__/components/{DateTimePicker.test.d.ts → NumberInput.units.test.d.ts} +0 -0
- /package/dist/__tests__/components/{DoseDesignWorkspaceView.test.d.ts → PresenceAvatars.test.d.ts} +0 -0
- /package/dist/__tests__/components/{ExperimentTimeline.test.d.ts → StaleFormBanner.test.d.ts} +0 -0
- /package/dist/__tests__/components/{FitPanel.test.d.ts → deprecationTags.test.d.ts} +0 -0
- /package/dist/__tests__/{components/GroupAssigner.test.d.ts → composables/createClient.test.d.ts} +0 -0
- /package/dist/__tests__/{components/MobileSupportGate.test.d.ts → composables/eventStream.test.d.ts} +0 -0
- /package/dist/__tests__/{components/MultiSelect.test.d.ts → composables/useArtifacts.test.d.ts} +0 -0
- /package/dist/__tests__/{components/ReagentList.presentation.test.d.ts → composables/useExperiment.test.d.ts} +0 -0
- /package/dist/__tests__/{components/ReagentList.test.d.ts → composables/useJobCenter.test.d.ts} +0 -0
- /package/dist/__tests__/{components/SampleLegend.test.d.ts → composables/useJobsEndpoint.test.d.ts} +0 -0
- /package/dist/__tests__/{components/SearchableSelect.test.d.ts → composables/usePlatform.test.d.ts} +0 -0
- /package/dist/__tests__/{components/SmartGroupModal.test.d.ts → composables/usePresence.test.d.ts} +0 -0
- /package/dist/__tests__/{components/TimePicker.test.d.ts → composables/useRealtime.test.d.ts} +0 -0
- /package/dist/__tests__/{components/UnitInput.test.d.ts → composables/useRequest.test.d.ts} +0 -0
- /package/dist/__tests__/{components/WellPlate.sampleTypeIndicator.test.d.ts → composables/useVersionedSave.test.d.ts} +0 -0
- /package/dist/__tests__/{components/iconButtonIconSizing.test.d.ts → utils/formula.test.d.ts} +0 -0
- /package/dist/__tests__/{composables/useAnalysisArtifacts.test.d.ts → utils/time.test.d.ts} +0 -0
- /package/dist/components/{FormActions.vue.d.ts → internal/FormActionsInternal.vue.d.ts} +0 -0
- /package/dist/{composables → components/internal}/autoGroup/colors.d.ts +0 -0
- /package/dist/{composables → components/internal}/autoGroup/index.d.ts +0 -0
- /package/dist/{composables → components/internal}/autoGroup/tokenize.d.ts +0 -0
- /package/src/{composables → components/internal}/autoGroup/colors.ts +0 -0
- /package/src/{composables → components/internal}/autoGroup/tokenize.ts +0 -0
- /package/src/{composables → components/internal}/autoGroup/vocab.json +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { effectScope } from 'vue'
|
|
2
2
|
import { describe, expect, it, vi } from 'vitest'
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { useJobsEndpoint } from '../../composables/useJobsEndpoint'
|
|
5
5
|
import { MintApiError } from '../../apiErrors'
|
|
6
6
|
import {
|
|
7
7
|
createGeneratedAnalysisTransport,
|
|
8
8
|
type GeneratedAnalysisTransport,
|
|
9
|
-
} from '../../composables/
|
|
10
|
-
import type { PluginJobCenterSource } from '../../composables/
|
|
9
|
+
} from '../../composables/useJobsEndpoint'
|
|
10
|
+
import type { PluginJobCenterSource } from '../../composables/useJobCenter'
|
|
11
11
|
import type {
|
|
12
12
|
GeneratedAnalysisJob,
|
|
13
13
|
GeneratedAnalysisManifest,
|
|
@@ -149,10 +149,11 @@ function streamingJobTransport(): ReturnType<typeof vi.fn<GeneratedAnalysisTrans
|
|
|
149
149
|
})
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
describe('
|
|
152
|
+
describe('useJobsEndpoint', () => {
|
|
153
153
|
it('is directly usable as a job center source', () => {
|
|
154
154
|
const scope = effectScope()
|
|
155
|
-
const generated = scope.run(() =>
|
|
155
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
156
|
+
manifest: true,
|
|
156
157
|
baseUrl: '/api/demo',
|
|
157
158
|
transport: vi.fn<GeneratedAnalysisTransport>(),
|
|
158
159
|
storage: memoryStorage(),
|
|
@@ -166,7 +167,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
166
167
|
|
|
167
168
|
it('should report an immediate initialization failure without an unhandled rejection', async () => {
|
|
168
169
|
const scope = effectScope()
|
|
169
|
-
const generated = scope.run(() =>
|
|
170
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
171
|
+
manifest: true,
|
|
170
172
|
baseUrl: '/api/demo',
|
|
171
173
|
transport: vi.fn<GeneratedAnalysisTransport>()
|
|
172
174
|
.mockRejectedValue(new TypeError('offline')),
|
|
@@ -200,7 +202,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
200
202
|
}))
|
|
201
203
|
.mockResolvedValueOnce(response({ jobs: [] }))
|
|
202
204
|
const scope = effectScope()
|
|
203
|
-
const generated = scope.run(() =>
|
|
205
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
206
|
+
manifest: true,
|
|
204
207
|
baseUrl: '/api/demo',
|
|
205
208
|
transport,
|
|
206
209
|
storage: unavailableStorage,
|
|
@@ -209,7 +212,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
209
212
|
}))!
|
|
210
213
|
|
|
211
214
|
try {
|
|
212
|
-
await generated.
|
|
215
|
+
await generated.refresh()
|
|
213
216
|
|
|
214
217
|
expect(generated.session.value?.id).toBe('session-1')
|
|
215
218
|
} finally {
|
|
@@ -217,6 +220,39 @@ describe('useGeneratedAnalysis', () => {
|
|
|
217
220
|
}
|
|
218
221
|
})
|
|
219
222
|
|
|
223
|
+
it('should open one job session when runtimes for the same plugin start together', async () => {
|
|
224
|
+
const storage = memoryStorage()
|
|
225
|
+
let created = 0
|
|
226
|
+
const transport = vi.fn<GeneratedAnalysisTransport>(async (input, init) => {
|
|
227
|
+
const url = String(input)
|
|
228
|
+
if (url.endsWith('/jobs/sessions') && init?.method === 'GET') return response({ sessions: [] })
|
|
229
|
+
if (url.endsWith('/jobs/sessions') && init?.method === 'POST') {
|
|
230
|
+
created += 1
|
|
231
|
+
return response({
|
|
232
|
+
id: `session-${created}`, tab_id: 'tab-1', created_at: '', last_seen_at: '', active_job_ids: [],
|
|
233
|
+
})
|
|
234
|
+
}
|
|
235
|
+
if (url.endsWith('/jobs')) return response({ jobs: [] })
|
|
236
|
+
throw new Error(`Unexpected request: ${url}`)
|
|
237
|
+
})
|
|
238
|
+
const scope = effectScope()
|
|
239
|
+
const runtimes = scope.run(() => [1, 2].map(() => useJobsEndpoint({
|
|
240
|
+
baseUrl: '/api/demo',
|
|
241
|
+
transport,
|
|
242
|
+
storage,
|
|
243
|
+
createId: () => 'tab-1',
|
|
244
|
+
stream: false,
|
|
245
|
+
})))!
|
|
246
|
+
|
|
247
|
+
try {
|
|
248
|
+
await Promise.all(runtimes.map(runtime => runtime.refresh()))
|
|
249
|
+
|
|
250
|
+
expect(runtimes.map(runtime => runtime.session.value?.id)).toEqual(['session-1', 'session-1'])
|
|
251
|
+
} finally {
|
|
252
|
+
scope.stop()
|
|
253
|
+
}
|
|
254
|
+
})
|
|
255
|
+
|
|
220
256
|
it('should add the current bearer token to JSON and event-stream requests', async () => {
|
|
221
257
|
const fetcher = vi.fn().mockResolvedValue(response({ ok: true }))
|
|
222
258
|
const transport = createGeneratedAnalysisTransport({
|
|
@@ -269,7 +305,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
269
305
|
})
|
|
270
306
|
vi.stubGlobal('EventSource', eventSource)
|
|
271
307
|
const scope = effectScope()
|
|
272
|
-
const generated = scope.run(() =>
|
|
308
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
309
|
+
manifest: true,
|
|
273
310
|
baseUrl: '/api/demo',
|
|
274
311
|
transport,
|
|
275
312
|
storage,
|
|
@@ -278,12 +315,12 @@ describe('useGeneratedAnalysis', () => {
|
|
|
278
315
|
}))!
|
|
279
316
|
|
|
280
317
|
try {
|
|
281
|
-
await generated.
|
|
318
|
+
await generated.refresh()
|
|
282
319
|
await vi.waitFor(() => expect(generated.jobs.value[0]?.status).toBe('completed'))
|
|
283
320
|
|
|
284
321
|
expect(transport.mock.calls.some(call => String(call[0]).endsWith('/result'))).toBe(false)
|
|
285
322
|
|
|
286
|
-
await generated.
|
|
323
|
+
await generated.result(generated.jobs.value[0]!)
|
|
287
324
|
|
|
288
325
|
const streamCall = transport.mock.calls.find(call => String(call[0]).endsWith('/jobs/events'))
|
|
289
326
|
const resultCall = transport.mock.calls.find(call => String(call[0]).endsWith('/jobs/job-1/result'))
|
|
@@ -310,17 +347,18 @@ describe('useGeneratedAnalysis', () => {
|
|
|
310
347
|
vi.useFakeTimers()
|
|
311
348
|
const transport = streamingJobTransport()
|
|
312
349
|
const scope = effectScope()
|
|
313
|
-
const generated = scope.run(() =>
|
|
350
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
351
|
+
manifest: true,
|
|
314
352
|
baseUrl: '/api/demo',
|
|
315
353
|
transport,
|
|
316
354
|
storage: memoryStorage(),
|
|
317
355
|
createId: () => 'tab-1',
|
|
318
|
-
|
|
356
|
+
poll: 5,
|
|
319
357
|
streamReconnectDelay: 1_000,
|
|
320
358
|
}))!
|
|
321
359
|
|
|
322
360
|
try {
|
|
323
|
-
await generated.
|
|
361
|
+
await generated.refresh()
|
|
324
362
|
await vi.advanceTimersByTimeAsync(5)
|
|
325
363
|
|
|
326
364
|
expect(transport.mock.calls.filter(([input]) => String(input).endsWith('/jobs'))).toHaveLength(2)
|
|
@@ -335,17 +373,18 @@ describe('useGeneratedAnalysis', () => {
|
|
|
335
373
|
vi.useFakeTimers()
|
|
336
374
|
const transport = streamingJobTransport()
|
|
337
375
|
const scope = effectScope()
|
|
338
|
-
const generated = scope.run(() =>
|
|
376
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
377
|
+
manifest: true,
|
|
339
378
|
baseUrl: '/api/demo',
|
|
340
379
|
transport,
|
|
341
380
|
storage: memoryStorage(),
|
|
342
381
|
createId: () => 'tab-1',
|
|
343
|
-
|
|
382
|
+
poll: 5,
|
|
344
383
|
streamReconnectDelay: 10,
|
|
345
384
|
}))!
|
|
346
385
|
|
|
347
386
|
try {
|
|
348
|
-
await generated.
|
|
387
|
+
await generated.refresh()
|
|
349
388
|
await vi.advanceTimersByTimeAsync(0)
|
|
350
389
|
generated.pause()
|
|
351
390
|
await vi.advanceTimersByTimeAsync(20)
|
|
@@ -365,16 +404,17 @@ describe('useGeneratedAnalysis', () => {
|
|
|
365
404
|
vi.useFakeTimers()
|
|
366
405
|
const transport = streamingJobTransport()
|
|
367
406
|
const scope = effectScope()
|
|
368
|
-
const generated = scope.run(() =>
|
|
407
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
408
|
+
manifest: true,
|
|
369
409
|
baseUrl: '/api/demo',
|
|
370
410
|
transport,
|
|
371
411
|
storage: memoryStorage(),
|
|
372
412
|
createId: () => 'tab-1',
|
|
373
|
-
|
|
413
|
+
poll: 5,
|
|
374
414
|
streamReconnectDelay: 10,
|
|
375
415
|
}))!
|
|
376
416
|
|
|
377
|
-
await generated.
|
|
417
|
+
await generated.refresh()
|
|
378
418
|
await vi.advanceTimersByTimeAsync(0)
|
|
379
419
|
generated.dispose()
|
|
380
420
|
await vi.advanceTimersByTimeAsync(20)
|
|
@@ -402,7 +442,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
402
442
|
))
|
|
403
443
|
.mockResolvedValueOnce(response(lateQueued))
|
|
404
444
|
const scope = effectScope()
|
|
405
|
-
const generated = scope.run(() =>
|
|
445
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
446
|
+
manifest: true,
|
|
406
447
|
baseUrl: '/api/demo',
|
|
407
448
|
transport,
|
|
408
449
|
storage: memoryStorage(),
|
|
@@ -411,7 +452,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
411
452
|
}))!
|
|
412
453
|
|
|
413
454
|
try {
|
|
414
|
-
await generated.
|
|
455
|
+
await generated.refresh()
|
|
415
456
|
await vi.waitFor(() => expect(generated.jobs.value[0]?.status).toBe('completed'))
|
|
416
457
|
|
|
417
458
|
const submitted = await generated.submit('run', {})
|
|
@@ -440,19 +481,20 @@ describe('useGeneratedAnalysis', () => {
|
|
|
440
481
|
}))
|
|
441
482
|
.mockResolvedValueOnce(response({ kind: 'text', text: 'done' }))
|
|
442
483
|
const scope = effectScope()
|
|
443
|
-
const generated = scope.run(() =>
|
|
484
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
485
|
+
manifest: true,
|
|
444
486
|
baseUrl: '/api/demo',
|
|
445
487
|
transport: fetcher,
|
|
446
488
|
storage,
|
|
447
489
|
createId: () => 'tab-1',
|
|
448
|
-
|
|
490
|
+
poll: 60_000,
|
|
449
491
|
stream: false,
|
|
450
492
|
}))!
|
|
451
493
|
|
|
452
|
-
await generated.
|
|
494
|
+
await generated.refresh()
|
|
453
495
|
await generated.submit('run', { threshold: 2.5 })
|
|
454
|
-
await generated.
|
|
455
|
-
await generated.
|
|
496
|
+
await generated.refresh()
|
|
497
|
+
await generated.result(generated.jobs.value[0]!)
|
|
456
498
|
scope.stop()
|
|
457
499
|
|
|
458
500
|
expect({
|
|
@@ -486,7 +528,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
486
528
|
.mockResolvedValueOnce(response({ token: 'upload-token', kind: 'file', name: 'data.csv', size: 4 }))
|
|
487
529
|
.mockResolvedValueOnce(response(activeJob('job-1')))
|
|
488
530
|
const scope = effectScope()
|
|
489
|
-
const generated = scope.run(() =>
|
|
531
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
532
|
+
manifest: true,
|
|
490
533
|
baseUrl: '/api/demo',
|
|
491
534
|
transport,
|
|
492
535
|
storage: memoryStorage(),
|
|
@@ -495,7 +538,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
495
538
|
}))!
|
|
496
539
|
|
|
497
540
|
try {
|
|
498
|
-
await generated.
|
|
541
|
+
await generated.refresh()
|
|
499
542
|
await generated.submit('run', {
|
|
500
543
|
source: {
|
|
501
544
|
kind: 'path',
|
|
@@ -540,7 +583,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
540
583
|
.mockResolvedValueOnce(response({ token: 'artifact-token', kind: 'file', name: 'matrix.csv', size: 4 }))
|
|
541
584
|
.mockResolvedValueOnce(response(activeJob('job-1')))
|
|
542
585
|
const scope = effectScope()
|
|
543
|
-
const generated = scope.run(() =>
|
|
586
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
587
|
+
manifest: true,
|
|
544
588
|
baseUrl: '/api/demo',
|
|
545
589
|
transport,
|
|
546
590
|
storage: memoryStorage(),
|
|
@@ -549,7 +593,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
549
593
|
}))!
|
|
550
594
|
|
|
551
595
|
try {
|
|
552
|
-
await generated.
|
|
596
|
+
await generated.refresh()
|
|
553
597
|
await generated.submit('run', {
|
|
554
598
|
source: {
|
|
555
599
|
kind: 'artifact-path',
|
|
@@ -618,7 +662,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
618
662
|
.mockResolvedValueOnce(response(staging))
|
|
619
663
|
.mockResolvedValueOnce(response(sealedJob))
|
|
620
664
|
const scope = effectScope()
|
|
621
|
-
const generated = scope.run(() =>
|
|
665
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
666
|
+
manifest: true,
|
|
622
667
|
baseUrl: '/api/demo',
|
|
623
668
|
transport,
|
|
624
669
|
storage: memoryStorage(),
|
|
@@ -627,7 +672,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
627
672
|
}))!
|
|
628
673
|
|
|
629
674
|
try {
|
|
630
|
-
await generated.
|
|
675
|
+
await generated.refresh()
|
|
631
676
|
const uploaded = await generated.uploadStagedPart({
|
|
632
677
|
job: 'staged/job',
|
|
633
678
|
key: 'sample one/chunk#1',
|
|
@@ -701,7 +746,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
701
746
|
.mockReturnValueOnce(sealRequest.promise)
|
|
702
747
|
.mockResolvedValueOnce(response({ jobs: [awaiting] }))
|
|
703
748
|
const scope = effectScope()
|
|
704
|
-
const generated = scope.run(() =>
|
|
749
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
750
|
+
manifest: true,
|
|
705
751
|
baseUrl: '/api/demo',
|
|
706
752
|
transport,
|
|
707
753
|
storage: memoryStorage(),
|
|
@@ -710,10 +756,10 @@ describe('useGeneratedAnalysis', () => {
|
|
|
710
756
|
}))!
|
|
711
757
|
|
|
712
758
|
try {
|
|
713
|
-
await generated.
|
|
759
|
+
await generated.refresh()
|
|
714
760
|
const sealing = generated.sealJob('seal-race')
|
|
715
761
|
await vi.waitFor(() => expect(transport).toHaveBeenCalledTimes(5))
|
|
716
|
-
await generated.
|
|
762
|
+
await generated.refresh()
|
|
717
763
|
sealRequest.resolve(response(queued))
|
|
718
764
|
|
|
719
765
|
await expect(sealing).resolves.toMatchObject({ status: 'queued' })
|
|
@@ -736,7 +782,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
736
782
|
}))
|
|
737
783
|
.mockResolvedValueOnce(response({ jobs: [] }))
|
|
738
784
|
const scope = effectScope()
|
|
739
|
-
const generated = scope.run(() =>
|
|
785
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
786
|
+
manifest: true,
|
|
740
787
|
baseUrl: '/api/demo',
|
|
741
788
|
transport: fetcher,
|
|
742
789
|
storage,
|
|
@@ -744,7 +791,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
744
791
|
stream: false,
|
|
745
792
|
}))!
|
|
746
793
|
|
|
747
|
-
await generated.
|
|
794
|
+
await generated.refresh()
|
|
748
795
|
scope.stop()
|
|
749
796
|
|
|
750
797
|
expect(fetcher.mock.calls.map(call => [call[0], call[1]?.method])).toEqual([
|
|
@@ -776,7 +823,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
776
823
|
}))
|
|
777
824
|
.mockResolvedValueOnce(response({ ...activeJob('job-1'), session_id: 'session-2' }))
|
|
778
825
|
const scope = effectScope()
|
|
779
|
-
const generated = scope.run(() =>
|
|
826
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
827
|
+
manifest: true,
|
|
780
828
|
baseUrl: '/api/demo',
|
|
781
829
|
transport,
|
|
782
830
|
storage,
|
|
@@ -785,7 +833,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
785
833
|
}))!
|
|
786
834
|
|
|
787
835
|
try {
|
|
788
|
-
await generated.
|
|
836
|
+
await generated.refresh()
|
|
789
837
|
const job = await generated.submit('run', { threshold: 2.5 })
|
|
790
838
|
const jobBodies = transport.mock.calls
|
|
791
839
|
.filter(call => String(call[0]).endsWith('/jobs') && call[1]?.method === 'POST')
|
|
@@ -834,7 +882,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
834
882
|
.mockResolvedValueOnce(response({ jobs: [] }))
|
|
835
883
|
.mockResolvedValueOnce(response({ detail }, status))
|
|
836
884
|
const scope = effectScope()
|
|
837
|
-
const generated = scope.run(() =>
|
|
885
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
886
|
+
manifest: true,
|
|
838
887
|
baseUrl: '/api/demo',
|
|
839
888
|
transport,
|
|
840
889
|
storage,
|
|
@@ -844,7 +893,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
844
893
|
let caught: unknown
|
|
845
894
|
|
|
846
895
|
try {
|
|
847
|
-
await generated.
|
|
896
|
+
await generated.refresh()
|
|
848
897
|
await generated.submit('run', {})
|
|
849
898
|
} catch (error) {
|
|
850
899
|
caught = error
|
|
@@ -883,17 +932,18 @@ describe('useGeneratedAnalysis', () => {
|
|
|
883
932
|
.mockResolvedValueOnce(response({ jobs: [completedJob('job-1')] }))
|
|
884
933
|
.mockResolvedValueOnce(response({ kind: 'text', text: 'done' }))
|
|
885
934
|
const scope = effectScope()
|
|
886
|
-
const generated = scope.run(() =>
|
|
935
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
936
|
+
manifest: true,
|
|
887
937
|
baseUrl: '/api/demo',
|
|
888
938
|
transport: fetcher,
|
|
889
939
|
storage,
|
|
890
940
|
createId: () => 'tab-1',
|
|
891
|
-
|
|
941
|
+
poll: 10,
|
|
892
942
|
stream: false,
|
|
893
943
|
}))!
|
|
894
944
|
|
|
895
945
|
try {
|
|
896
|
-
await generated.
|
|
946
|
+
await generated.refresh()
|
|
897
947
|
await vi.advanceTimersByTimeAsync(20)
|
|
898
948
|
|
|
899
949
|
expect({
|
|
@@ -928,7 +978,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
928
978
|
.mockResolvedValueOnce(response({ jobs: [newJob, oldJob] }))
|
|
929
979
|
.mockReturnValueOnce(newResult.promise)
|
|
930
980
|
const scope = effectScope()
|
|
931
|
-
const generated = scope.run(() =>
|
|
981
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
982
|
+
manifest: true,
|
|
932
983
|
baseUrl: '/api/demo',
|
|
933
984
|
transport,
|
|
934
985
|
storage,
|
|
@@ -937,13 +988,13 @@ describe('useGeneratedAnalysis', () => {
|
|
|
937
988
|
}))!
|
|
938
989
|
|
|
939
990
|
try {
|
|
940
|
-
await generated.
|
|
941
|
-
await generated.
|
|
942
|
-
const oldLoad = generated.
|
|
943
|
-
const duplicateOldLoad = generated.
|
|
991
|
+
await generated.refresh()
|
|
992
|
+
await generated.refresh()
|
|
993
|
+
const oldLoad = generated.result(oldJob)
|
|
994
|
+
const duplicateOldLoad = generated.result(oldJob)
|
|
944
995
|
await vi.waitFor(() => expect(transport).toHaveBeenCalledTimes(6))
|
|
945
|
-
await generated.
|
|
946
|
-
const newLoad = generated.
|
|
996
|
+
await generated.refresh()
|
|
997
|
+
const newLoad = generated.result(newJob)
|
|
947
998
|
await vi.waitFor(() => expect(transport).toHaveBeenCalledTimes(8))
|
|
948
999
|
|
|
949
1000
|
newResult.resolve(response({ kind: 'text', text: 'new' }))
|
|
@@ -1001,7 +1052,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1001
1052
|
download_expires_at: '2026-07-21T10:09:30Z',
|
|
1002
1053
|
}))
|
|
1003
1054
|
const scope = effectScope()
|
|
1004
|
-
const generated = scope.run(() =>
|
|
1055
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1056
|
+
manifest: true,
|
|
1005
1057
|
baseUrl: '/api/demo',
|
|
1006
1058
|
transport,
|
|
1007
1059
|
storage: memoryStorage(),
|
|
@@ -1010,8 +1062,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1010
1062
|
}))!
|
|
1011
1063
|
|
|
1012
1064
|
try {
|
|
1013
|
-
await generated.
|
|
1014
|
-
await generated.
|
|
1065
|
+
await generated.refresh()
|
|
1066
|
+
await generated.result(completed)
|
|
1015
1067
|
await vi.advanceTimersByTimeAsync(270_000)
|
|
1016
1068
|
|
|
1017
1069
|
expect({
|
|
@@ -1053,7 +1105,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1053
1105
|
}))
|
|
1054
1106
|
.mockResolvedValueOnce(response({ detail: 'Job result expired' }, 410))
|
|
1055
1107
|
const scope = effectScope()
|
|
1056
|
-
const generated = scope.run(() =>
|
|
1108
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1109
|
+
manifest: true,
|
|
1057
1110
|
baseUrl: '/api/demo',
|
|
1058
1111
|
transport,
|
|
1059
1112
|
storage: memoryStorage(),
|
|
@@ -1062,8 +1115,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1062
1115
|
}))!
|
|
1063
1116
|
|
|
1064
1117
|
try {
|
|
1065
|
-
await generated.
|
|
1066
|
-
await generated.
|
|
1118
|
+
await generated.refresh()
|
|
1119
|
+
await generated.result(completed)
|
|
1067
1120
|
await vi.advanceTimersByTimeAsync(270_000)
|
|
1068
1121
|
await vi.advanceTimersByTimeAsync(60_000)
|
|
1069
1122
|
|
|
@@ -1106,7 +1159,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1106
1159
|
}))
|
|
1107
1160
|
.mockResolvedValueOnce(response({ detail: 'Job result expired' }, 410))
|
|
1108
1161
|
const scope = effectScope()
|
|
1109
|
-
const generated = scope.run(() =>
|
|
1162
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1163
|
+
manifest: true,
|
|
1110
1164
|
baseUrl: '/api/demo',
|
|
1111
1165
|
transport,
|
|
1112
1166
|
storage: memoryStorage(),
|
|
@@ -1115,8 +1169,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1115
1169
|
}))!
|
|
1116
1170
|
|
|
1117
1171
|
try {
|
|
1118
|
-
await generated.
|
|
1119
|
-
await generated.
|
|
1172
|
+
await generated.refresh()
|
|
1173
|
+
await generated.result(completed)
|
|
1120
1174
|
await vi.advanceTimersByTimeAsync(19_999)
|
|
1121
1175
|
expect(transport.mock.calls.filter(call => String(call[0]).endsWith('/result'))).toHaveLength(1)
|
|
1122
1176
|
|
|
@@ -1152,7 +1206,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1152
1206
|
.mockResolvedValueOnce(response(managedResult('token-1', '2026-07-21T10:05:00Z')))
|
|
1153
1207
|
.mockResolvedValueOnce(response(managedResult('token-2', '2026-07-21T10:10:01Z')))
|
|
1154
1208
|
const scope = effectScope()
|
|
1155
|
-
const generated = scope.run(() =>
|
|
1209
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1210
|
+
manifest: true,
|
|
1156
1211
|
baseUrl: '/api/demo',
|
|
1157
1212
|
transport,
|
|
1158
1213
|
storage: memoryStorage(),
|
|
@@ -1161,8 +1216,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1161
1216
|
}))!
|
|
1162
1217
|
|
|
1163
1218
|
try {
|
|
1164
|
-
await generated.
|
|
1165
|
-
await generated.
|
|
1219
|
+
await generated.refresh()
|
|
1220
|
+
await generated.result(completed)
|
|
1166
1221
|
generated.pause()
|
|
1167
1222
|
await vi.advanceTimersByTimeAsync(301_000)
|
|
1168
1223
|
expect(transport.mock.calls.filter(call => String(call[0]).endsWith('/result'))).toHaveLength(1)
|
|
@@ -1193,18 +1248,19 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1193
1248
|
.mockRejectedValueOnce(new TypeError('temporary result failure'))
|
|
1194
1249
|
.mockResolvedValueOnce(response({ kind: 'text', text: 'recovered' }))
|
|
1195
1250
|
const scope = effectScope()
|
|
1196
|
-
const generated = scope.run(() =>
|
|
1251
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1252
|
+
manifest: true,
|
|
1197
1253
|
baseUrl: '/api/demo',
|
|
1198
1254
|
transport,
|
|
1199
1255
|
storage,
|
|
1200
1256
|
createId: () => 'tab-1',
|
|
1201
|
-
|
|
1257
|
+
poll: 10,
|
|
1202
1258
|
stream: false,
|
|
1203
1259
|
}))!
|
|
1204
1260
|
|
|
1205
1261
|
try {
|
|
1206
|
-
await generated.
|
|
1207
|
-
await generated.
|
|
1262
|
+
await generated.refresh()
|
|
1263
|
+
await generated.result(completed)
|
|
1208
1264
|
|
|
1209
1265
|
expect(generated.error.value).toBe('temporary result failure')
|
|
1210
1266
|
|
|
@@ -1240,7 +1296,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1240
1296
|
.mockResolvedValueOnce(response({ jobs: [sharedJob] }))
|
|
1241
1297
|
.mockResolvedValueOnce(response({ kind: 'text', text: 'shared' }))
|
|
1242
1298
|
const scope = effectScope()
|
|
1243
|
-
const generated = scope.run(() =>
|
|
1299
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1300
|
+
manifest: true,
|
|
1244
1301
|
baseUrl: '/api/demo',
|
|
1245
1302
|
transport,
|
|
1246
1303
|
storage,
|
|
@@ -1249,8 +1306,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1249
1306
|
}))!
|
|
1250
1307
|
|
|
1251
1308
|
try {
|
|
1252
|
-
await generated.
|
|
1253
|
-
const result = await generated.
|
|
1309
|
+
await generated.refresh()
|
|
1310
|
+
const result = await generated.result(sharedJob)
|
|
1254
1311
|
|
|
1255
1312
|
expect(result).toEqual({ kind: 'text', text: 'shared' })
|
|
1256
1313
|
} finally {
|
|
@@ -1278,22 +1335,23 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1278
1335
|
.mockRejectedValueOnce(new TypeError('failure-after-return'))
|
|
1279
1336
|
.mockResolvedValueOnce(response({ kind: 'text', text: 'recovered' }))
|
|
1280
1337
|
const scope = effectScope()
|
|
1281
|
-
const generated = scope.run(() =>
|
|
1338
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1339
|
+
manifest: true,
|
|
1282
1340
|
baseUrl: '/api/demo',
|
|
1283
1341
|
transport,
|
|
1284
1342
|
storage,
|
|
1285
1343
|
createId: () => 'tab-1',
|
|
1286
|
-
|
|
1344
|
+
poll: 10,
|
|
1287
1345
|
stream: false,
|
|
1288
1346
|
}))!
|
|
1289
1347
|
|
|
1290
1348
|
try {
|
|
1291
|
-
await generated.
|
|
1292
|
-
await generated.
|
|
1349
|
+
await generated.refresh()
|
|
1350
|
+
await generated.result(completed)
|
|
1293
1351
|
await vi.advanceTimersByTimeAsync(70)
|
|
1294
|
-
await generated.
|
|
1295
|
-
await generated.
|
|
1296
|
-
await generated.
|
|
1352
|
+
await generated.refresh()
|
|
1353
|
+
await generated.refresh()
|
|
1354
|
+
await generated.result(completed)
|
|
1297
1355
|
await vi.advanceTimersByTimeAsync(10)
|
|
1298
1356
|
|
|
1299
1357
|
expect(generated.resultForJob('retry-job')).toEqual({
|
|
@@ -1321,7 +1379,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1321
1379
|
.mockResolvedValueOnce(response({ jobs: completedJobs }))
|
|
1322
1380
|
.mockImplementation(async input => response({ kind: 'text', text: String(input) }))
|
|
1323
1381
|
const scope = effectScope()
|
|
1324
|
-
const generated = scope.run(() =>
|
|
1382
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1383
|
+
manifest: true,
|
|
1325
1384
|
baseUrl: '/api/demo',
|
|
1326
1385
|
transport,
|
|
1327
1386
|
storage,
|
|
@@ -1330,8 +1389,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1330
1389
|
}))!
|
|
1331
1390
|
|
|
1332
1391
|
try {
|
|
1333
|
-
await generated.
|
|
1334
|
-
for (const job of completedJobs) await generated.
|
|
1392
|
+
await generated.refresh()
|
|
1393
|
+
for (const job of completedJobs) await generated.result(job)
|
|
1335
1394
|
|
|
1336
1395
|
expect({
|
|
1337
1396
|
evicted: generated.resultForJob('job-0'),
|
|
@@ -1362,26 +1421,27 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1362
1421
|
.mockResolvedValueOnce(response(running))
|
|
1363
1422
|
.mockResolvedValueOnce(response({ jobs: [completed] }))
|
|
1364
1423
|
const scope = effectScope()
|
|
1365
|
-
const generated = scope.run(() =>
|
|
1424
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1425
|
+
manifest: true,
|
|
1366
1426
|
baseUrl: '/api/demo',
|
|
1367
1427
|
transport,
|
|
1368
1428
|
storage: memoryStorage(),
|
|
1369
1429
|
createId: () => 'tab-1',
|
|
1370
|
-
|
|
1430
|
+
poll: 60_000,
|
|
1371
1431
|
stream: false,
|
|
1372
1432
|
}))!
|
|
1373
1433
|
|
|
1374
1434
|
try {
|
|
1375
|
-
await generated.
|
|
1376
|
-
const waiting = generated.
|
|
1435
|
+
await generated.refresh()
|
|
1436
|
+
const waiting = generated.wait('wait-job')
|
|
1377
1437
|
await vi.waitFor(() => expect(generated.jobs.value[0]?.status).toBe('running'))
|
|
1378
|
-
await generated.
|
|
1438
|
+
await generated.refresh()
|
|
1379
1439
|
|
|
1380
1440
|
await expect(waiting).resolves.toMatchObject({
|
|
1381
1441
|
job_id: 'wait-job',
|
|
1382
1442
|
status: 'completed',
|
|
1383
1443
|
})
|
|
1384
|
-
await expect(generated.
|
|
1444
|
+
await expect(generated.wait(completed)).resolves.toEqual(completed)
|
|
1385
1445
|
expect(transport).toHaveBeenCalledTimes(6)
|
|
1386
1446
|
} finally {
|
|
1387
1447
|
scope.stop()
|
|
@@ -1405,7 +1465,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1405
1465
|
}))
|
|
1406
1466
|
.mockResolvedValueOnce(response({ jobs: [failed] }))
|
|
1407
1467
|
const scope = effectScope()
|
|
1408
|
-
const generated = scope.run(() =>
|
|
1468
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1469
|
+
manifest: true,
|
|
1409
1470
|
baseUrl: '/api/demo',
|
|
1410
1471
|
transport,
|
|
1411
1472
|
storage: memoryStorage(),
|
|
@@ -1414,14 +1475,14 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1414
1475
|
}))!
|
|
1415
1476
|
|
|
1416
1477
|
try {
|
|
1417
|
-
await generated.
|
|
1418
|
-
await expect(generated.
|
|
1419
|
-
await expect(generated.
|
|
1478
|
+
await generated.refresh()
|
|
1479
|
+
await expect(generated.wait(failed)).resolves.toMatchObject({ status: 'failed' })
|
|
1480
|
+
await expect(generated.wait(failed, { rejectOnFailure: true }))
|
|
1420
1481
|
.rejects.toThrow('analysis exploded')
|
|
1421
1482
|
|
|
1422
1483
|
const controller = new AbortController()
|
|
1423
1484
|
controller.abort()
|
|
1424
|
-
await expect(generated.
|
|
1485
|
+
await expect(generated.wait(failed, { signal: controller.signal }))
|
|
1425
1486
|
.rejects.toMatchObject({ name: 'AbortError' })
|
|
1426
1487
|
expect(transport).toHaveBeenCalledTimes(4)
|
|
1427
1488
|
} finally {
|
|
@@ -1441,19 +1502,20 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1441
1502
|
.mockResolvedValueOnce(response({ jobs: [queued] }))
|
|
1442
1503
|
.mockReturnValueOnce(jobRequest.promise)
|
|
1443
1504
|
const scope = effectScope()
|
|
1444
|
-
const generated = scope.run(() =>
|
|
1505
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1506
|
+
manifest: true,
|
|
1445
1507
|
baseUrl: '/api/demo',
|
|
1446
1508
|
transport,
|
|
1447
1509
|
storage: memoryStorage(),
|
|
1448
1510
|
createId: () => 'tab-1',
|
|
1449
|
-
|
|
1511
|
+
poll: 60_000,
|
|
1450
1512
|
stream: false,
|
|
1451
1513
|
}))!
|
|
1452
1514
|
|
|
1453
1515
|
try {
|
|
1454
|
-
await generated.
|
|
1516
|
+
await generated.refresh()
|
|
1455
1517
|
const controller = new AbortController()
|
|
1456
|
-
const waiting = generated.
|
|
1518
|
+
const waiting = generated.wait('abort-job', { signal: controller.signal })
|
|
1457
1519
|
expect(transport.mock.calls[4]?.[1]?.signal).toBe(controller.signal)
|
|
1458
1520
|
controller.abort()
|
|
1459
1521
|
|
|
@@ -1478,20 +1540,21 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1478
1540
|
.mockResolvedValueOnce(response({ detail: 'temporarily unavailable' }, 503))
|
|
1479
1541
|
.mockResolvedValueOnce(response({ jobs: [completed] }))
|
|
1480
1542
|
const scope = effectScope()
|
|
1481
|
-
const generated = scope.run(() =>
|
|
1543
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1544
|
+
manifest: true,
|
|
1482
1545
|
baseUrl: '/api/demo',
|
|
1483
1546
|
transport,
|
|
1484
1547
|
storage: memoryStorage(),
|
|
1485
1548
|
createId: () => 'tab-1',
|
|
1486
|
-
|
|
1549
|
+
poll: 60_000,
|
|
1487
1550
|
stream: false,
|
|
1488
1551
|
}))!
|
|
1489
1552
|
|
|
1490
1553
|
try {
|
|
1491
|
-
await generated.
|
|
1492
|
-
const waiting = generated.
|
|
1554
|
+
await generated.refresh()
|
|
1555
|
+
const waiting = generated.wait('retry-wait-job')
|
|
1493
1556
|
await vi.waitFor(() => expect(transport).toHaveBeenCalledTimes(5))
|
|
1494
|
-
await generated.
|
|
1557
|
+
await generated.refresh()
|
|
1495
1558
|
await expect(waiting).resolves.toMatchObject({
|
|
1496
1559
|
job_id: 'retry-wait-job',
|
|
1497
1560
|
status: 'completed',
|
|
@@ -1511,7 +1574,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1511
1574
|
}))
|
|
1512
1575
|
.mockResolvedValueOnce(response({ jobs: [queued] }))
|
|
1513
1576
|
const scope = effectScope()
|
|
1514
|
-
const generated = scope.run(() =>
|
|
1577
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1578
|
+
manifest: true,
|
|
1515
1579
|
baseUrl: '/api/demo',
|
|
1516
1580
|
transport,
|
|
1517
1581
|
storage: memoryStorage(),
|
|
@@ -1520,9 +1584,9 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1520
1584
|
}))!
|
|
1521
1585
|
|
|
1522
1586
|
try {
|
|
1523
|
-
await generated.
|
|
1587
|
+
await generated.refresh()
|
|
1524
1588
|
generated.pause()
|
|
1525
|
-
await expect(generated.
|
|
1589
|
+
await expect(generated.wait('paused-wait-job')).rejects.toThrow(
|
|
1526
1590
|
'Plugin jobs runtime is paused',
|
|
1527
1591
|
)
|
|
1528
1592
|
expect(transport).toHaveBeenCalledTimes(4)
|
|
@@ -1545,22 +1609,23 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1545
1609
|
.mockResolvedValueOnce(response({ status: 'deleted' }))
|
|
1546
1610
|
.mockReturnValueOnce(disposeJobRequest.promise)
|
|
1547
1611
|
const scope = effectScope()
|
|
1548
|
-
const generated = scope.run(() =>
|
|
1612
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1613
|
+
manifest: true,
|
|
1549
1614
|
baseUrl: '/api/demo',
|
|
1550
1615
|
transport,
|
|
1551
1616
|
storage: memoryStorage(),
|
|
1552
1617
|
createId: () => 'tab-1',
|
|
1553
|
-
|
|
1618
|
+
poll: 60_000,
|
|
1554
1619
|
stream: false,
|
|
1555
1620
|
}))!
|
|
1556
1621
|
|
|
1557
|
-
await generated.
|
|
1558
|
-
const deletedWait = generated.
|
|
1622
|
+
await generated.refresh()
|
|
1623
|
+
const deletedWait = generated.wait('delete-wait-job')
|
|
1559
1624
|
await vi.waitFor(() => expect(transport).toHaveBeenCalledTimes(5))
|
|
1560
|
-
await generated.
|
|
1625
|
+
await generated.delete('delete-wait-job')
|
|
1561
1626
|
await expect(deletedWait).rejects.toThrow('was deleted')
|
|
1562
1627
|
|
|
1563
|
-
const disposeWait = generated.
|
|
1628
|
+
const disposeWait = generated.wait(activeJob('dispose-wait-job'))
|
|
1564
1629
|
scope.stop()
|
|
1565
1630
|
await expect(disposeWait).rejects.toThrow('runtime is disposed')
|
|
1566
1631
|
disposeJobRequest.resolve(response(activeJob('dispose-wait-job')))
|
|
@@ -1578,7 +1643,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1578
1643
|
.mockResolvedValueOnce(response({ jobs: [] }))
|
|
1579
1644
|
.mockReturnValueOnce(refreshRequest.promise)
|
|
1580
1645
|
const scope = effectScope()
|
|
1581
|
-
const generated = scope.run(() =>
|
|
1646
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1647
|
+
manifest: true,
|
|
1582
1648
|
baseUrl: '/api/demo',
|
|
1583
1649
|
transport,
|
|
1584
1650
|
storage: memoryStorage(),
|
|
@@ -1586,13 +1652,13 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1586
1652
|
stream: false,
|
|
1587
1653
|
}))!
|
|
1588
1654
|
|
|
1589
|
-
const firstInitialize = generated.
|
|
1590
|
-
const secondInitialize = generated.
|
|
1655
|
+
const firstInitialize = generated.refresh()
|
|
1656
|
+
const secondInitialize = generated.refresh()
|
|
1591
1657
|
expect(firstInitialize).toBe(secondInitialize)
|
|
1592
1658
|
manifestRequest.resolve(response(manifest))
|
|
1593
1659
|
await firstInitialize
|
|
1594
1660
|
|
|
1595
|
-
const firstRefresh = generated.
|
|
1661
|
+
const firstRefresh = generated.refresh()
|
|
1596
1662
|
const secondRefresh = generated.refresh()
|
|
1597
1663
|
expect(firstRefresh).toBe(secondRefresh)
|
|
1598
1664
|
refreshRequest.resolve(response({ jobs: [completedJob('coalesced')] }))
|
|
@@ -1611,7 +1677,7 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1611
1677
|
requests: 5,
|
|
1612
1678
|
filtered: ['coalesced'],
|
|
1613
1679
|
})
|
|
1614
|
-
await expect(generated.
|
|
1680
|
+
await expect(generated.submit('run', {})).rejects.toThrow('disposed')
|
|
1615
1681
|
})
|
|
1616
1682
|
|
|
1617
1683
|
it('does not let a late list response overwrite a newer canonical job update', async () => {
|
|
@@ -1628,7 +1694,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1628
1694
|
.mockReturnValueOnce(staleRefresh.promise)
|
|
1629
1695
|
.mockResolvedValueOnce(response(completed))
|
|
1630
1696
|
const scope = effectScope()
|
|
1631
|
-
const generated = scope.run(() =>
|
|
1697
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1698
|
+
manifest: true,
|
|
1632
1699
|
baseUrl: '/api/demo',
|
|
1633
1700
|
transport,
|
|
1634
1701
|
storage: memoryStorage(),
|
|
@@ -1637,9 +1704,9 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1637
1704
|
}))!
|
|
1638
1705
|
|
|
1639
1706
|
try {
|
|
1640
|
-
await generated.
|
|
1641
|
-
const refresh = generated.
|
|
1642
|
-
await generated.
|
|
1707
|
+
await generated.refresh()
|
|
1708
|
+
const refresh = generated.refresh()
|
|
1709
|
+
await generated.get('live-job')
|
|
1643
1710
|
staleRefresh.resolve(response({ jobs: [queued] }))
|
|
1644
1711
|
await refresh
|
|
1645
1712
|
|
|
@@ -1667,19 +1734,20 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1667
1734
|
.mockReturnValueOnce(staleRefresh.promise)
|
|
1668
1735
|
.mockResolvedValueOnce(response({ jobs: [completed] }))
|
|
1669
1736
|
const scope = effectScope()
|
|
1670
|
-
const generated = scope.run(() =>
|
|
1737
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1738
|
+
manifest: true,
|
|
1671
1739
|
baseUrl: '/api/demo',
|
|
1672
1740
|
transport,
|
|
1673
1741
|
storage: memoryStorage(),
|
|
1674
1742
|
createId: () => 'tab-1',
|
|
1675
|
-
|
|
1743
|
+
poll: 10,
|
|
1676
1744
|
stream: false,
|
|
1677
1745
|
}))!
|
|
1678
1746
|
let waiting: Promise<GeneratedAnalysisJob> | undefined
|
|
1679
1747
|
|
|
1680
1748
|
try {
|
|
1681
|
-
await generated.
|
|
1682
|
-
waiting = generated.
|
|
1749
|
+
await generated.refresh()
|
|
1750
|
+
waiting = generated.wait('live-job')
|
|
1683
1751
|
void waiting.catch(() => undefined)
|
|
1684
1752
|
|
|
1685
1753
|
vi.advanceTimersByTime(10)
|
|
@@ -1719,7 +1787,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1719
1787
|
.mockResolvedValueOnce(response({ jobs: [completed] }))
|
|
1720
1788
|
.mockResolvedValueOnce(response({ jobs: [staleQueued] }))
|
|
1721
1789
|
const scope = effectScope()
|
|
1722
|
-
const generated = scope.run(() =>
|
|
1790
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1791
|
+
manifest: true,
|
|
1723
1792
|
baseUrl: '/api/demo',
|
|
1724
1793
|
transport,
|
|
1725
1794
|
storage: memoryStorage(),
|
|
@@ -1728,8 +1797,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1728
1797
|
}))!
|
|
1729
1798
|
|
|
1730
1799
|
try {
|
|
1731
|
-
await generated.
|
|
1732
|
-
await generated.
|
|
1800
|
+
await generated.refresh()
|
|
1801
|
+
await generated.refresh()
|
|
1733
1802
|
|
|
1734
1803
|
expect(generated.jobs.value[0]?.status).toBe('completed')
|
|
1735
1804
|
} finally {
|
|
@@ -1746,7 +1815,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1746
1815
|
}))
|
|
1747
1816
|
.mockResolvedValueOnce(response({ jobs: [completedJob('initial-refresh')] }))
|
|
1748
1817
|
const scope = effectScope()
|
|
1749
|
-
const generated = scope.run(() =>
|
|
1818
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1819
|
+
manifest: true,
|
|
1750
1820
|
baseUrl: '/api/demo',
|
|
1751
1821
|
transport,
|
|
1752
1822
|
storage: memoryStorage(),
|
|
@@ -1788,7 +1858,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1788
1858
|
.mockResolvedValueOnce(response({ jobs: [running] }))
|
|
1789
1859
|
.mockResolvedValueOnce(response(cancelled))
|
|
1790
1860
|
const scope = effectScope()
|
|
1791
|
-
const generated = scope.run(() =>
|
|
1861
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1862
|
+
manifest: true,
|
|
1792
1863
|
baseUrl: '/api/demo',
|
|
1793
1864
|
transport,
|
|
1794
1865
|
storage: memoryStorage(),
|
|
@@ -1797,8 +1868,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1797
1868
|
}))!
|
|
1798
1869
|
|
|
1799
1870
|
try {
|
|
1800
|
-
await generated.
|
|
1801
|
-
const updated = await generated.
|
|
1871
|
+
await generated.refresh()
|
|
1872
|
+
const updated = await generated.cancel('cancel-me')
|
|
1802
1873
|
|
|
1803
1874
|
expect({
|
|
1804
1875
|
updated,
|
|
@@ -1844,7 +1915,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1844
1915
|
.mockResolvedValueOnce(response({ jobs: [legacyActive] }))
|
|
1845
1916
|
.mockResolvedValueOnce(response(legacyCompleted))
|
|
1846
1917
|
const scope = effectScope()
|
|
1847
|
-
const generated = scope.run(() =>
|
|
1918
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1919
|
+
manifest: true,
|
|
1848
1920
|
baseUrl: '/api/demo',
|
|
1849
1921
|
transport,
|
|
1850
1922
|
storage: memoryStorage(),
|
|
@@ -1853,8 +1925,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1853
1925
|
}))!
|
|
1854
1926
|
|
|
1855
1927
|
try {
|
|
1856
|
-
await generated.
|
|
1857
|
-
const fetched = await generated.
|
|
1928
|
+
await generated.refresh()
|
|
1929
|
+
const fetched = await generated.get('legacy-completed')
|
|
1858
1930
|
|
|
1859
1931
|
expect(generated.jobs.value[1]).toMatchObject({
|
|
1860
1932
|
job_id: 'legacy-active',
|
|
@@ -1892,7 +1964,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1892
1964
|
.mockResolvedValueOnce(response({ jobs: [completed] }))
|
|
1893
1965
|
.mockResolvedValueOnce(response({ status: 'deleted' }))
|
|
1894
1966
|
const scope = effectScope()
|
|
1895
|
-
const generated = scope.run(() =>
|
|
1967
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
1968
|
+
manifest: true,
|
|
1896
1969
|
baseUrl: '/api/demo',
|
|
1897
1970
|
transport,
|
|
1898
1971
|
storage: memoryStorage(),
|
|
@@ -1901,8 +1974,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1901
1974
|
}))!
|
|
1902
1975
|
|
|
1903
1976
|
try {
|
|
1904
|
-
await generated.
|
|
1905
|
-
const deleted = await generated.
|
|
1977
|
+
await generated.refresh()
|
|
1978
|
+
const deleted = await generated.delete(completed)
|
|
1906
1979
|
|
|
1907
1980
|
expect({
|
|
1908
1981
|
deleted,
|
|
@@ -1935,7 +2008,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1935
2008
|
.mockResolvedValueOnce(response({ deleted: 1 }))
|
|
1936
2009
|
.mockResolvedValueOnce(response({ jobs: [otherJob] }))
|
|
1937
2010
|
const scope = effectScope()
|
|
1938
|
-
const generated = scope.run(() =>
|
|
2011
|
+
const generated = scope.run(() => useJobsEndpoint({
|
|
2012
|
+
manifest: true,
|
|
1939
2013
|
baseUrl: '/api/demo',
|
|
1940
2014
|
transport,
|
|
1941
2015
|
storage: memoryStorage(),
|
|
@@ -1944,8 +2018,8 @@ describe('useGeneratedAnalysis', () => {
|
|
|
1944
2018
|
}))!
|
|
1945
2019
|
|
|
1946
2020
|
try {
|
|
1947
|
-
await generated.
|
|
1948
|
-
const deleted = await generated.
|
|
2021
|
+
await generated.refresh()
|
|
2022
|
+
const deleted = await generated.clear('run')
|
|
1949
2023
|
|
|
1950
2024
|
expect(deleted).toBe(1)
|
|
1951
2025
|
expect(generated.jobs.value.map(job => job.job_id)).toEqual(['keep-other'])
|