@morscherlab/mint-sdk 1.1.0-beta.5 → 1.1.0-beta.7
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 +18 -4
- package/dist/{SettingsModal-DDaq294M.js → SettingsModal-Dpg-X1OM.js} +3 -3
- package/dist/{SettingsModal-DDaq294M.js.map → SettingsModal-Dpg-X1OM.js.map} +1 -1
- package/dist/__tests__/types/GeneratedJsonSchema.test.d.ts +1 -0
- package/dist/components/PluginWorkspaceView.props.d.ts +1 -1
- package/dist/components/index.js +3 -3
- package/dist/{components-t0iBwn5R.js → components-Ci_BTx00.js} +10 -11
- package/dist/components-Ci_BTx00.js.map +1 -0
- package/dist/composables/index.d.ts +1 -1
- package/dist/composables/index.js +5 -5
- package/dist/composables/useGeneratedAnalysis.d.ts +1 -1
- package/dist/composables/usePluginClient.d.ts +11 -5
- package/dist/{composables-CqjA4Gth.js → composables-C0VEJ73O.js} +3 -3
- package/dist/{composables-CqjA4Gth.js.map → composables-C0VEJ73O.js.map} +1 -1
- package/dist/index.js +7 -7
- package/dist/install.js +3 -3
- package/dist/styles.css +11 -11
- package/dist/templates/index.js +2 -2
- package/dist/{templates-BdArs8LL.js → templates-Cdj93S9C.js} +2 -2
- package/dist/{templates-BdArs8LL.js.map → templates-Cdj93S9C.js.map} +1 -1
- package/dist/types/generated-ui.d.ts +4 -0
- package/dist/{useControlSchema-BAqu3kqE.js → useControlSchema-B_qgU4rW.js} +16 -14
- package/dist/useControlSchema-B_qgU4rW.js.map +1 -0
- package/dist/{useFormBuilder-DvO-TrfX.js → useFormBuilder-D1G5J5Z5.js} +2 -2
- package/dist/{useFormBuilder-DvO-TrfX.js.map → useFormBuilder-D1G5J5Z5.js.map} +1 -1
- package/dist/{useProtocolTemplates-BuY_MlBP.js → useProtocolTemplates-DeaOmMaw.js} +3 -3
- package/dist/{useProtocolTemplates-BuY_MlBP.js.map → useProtocolTemplates-DeaOmMaw.js.map} +1 -1
- package/package.json +1 -1
- package/src/__tests__/components/GeneratedPluginView.test.ts +10 -0
- package/src/__tests__/components/PluginWorkspaceView.test.ts +68 -14
- package/src/__tests__/composables/useGeneratedAnalysis.test.ts +2 -0
- package/src/__tests__/composables/usePluginClient.test.ts +36 -1
- package/src/__tests__/types/GeneratedJsonSchema.test.ts +17 -0
- package/src/components/GeneratedPluginView.vue +1 -1
- package/src/components/PluginWorkspaceView.props.ts +1 -1
- package/src/components/PluginWorkspaceView.vue +1 -5
- package/src/composables/index.ts +1 -0
- package/src/composables/useGeneratedAnalysis.ts +30 -12
- package/src/composables/usePluginClient.ts +12 -5
- package/src/types/generated-ui.ts +4 -0
- package/dist/components-t0iBwn5R.js.map +0 -1
- package/dist/useControlSchema-BAqu3kqE.js.map +0 -1
|
@@ -11,6 +11,8 @@ export interface GeneratedJsonSchema {
|
|
|
11
11
|
maximum?: number;
|
|
12
12
|
minLength?: number;
|
|
13
13
|
maxLength?: number;
|
|
14
|
+
maxItems?: number;
|
|
15
|
+
writeOnly?: boolean;
|
|
14
16
|
properties?: Record<string, GeneratedJsonSchema>;
|
|
15
17
|
additionalProperties?: boolean | GeneratedJsonSchema;
|
|
16
18
|
required?: string[];
|
|
@@ -89,6 +91,8 @@ export interface GeneratedJobDefinition {
|
|
|
89
91
|
title: string;
|
|
90
92
|
description: string;
|
|
91
93
|
cpu: number;
|
|
94
|
+
/** Whether integrated submission requires a platform or current-plugin administrator. */
|
|
95
|
+
requires_admin?: boolean;
|
|
92
96
|
/** Defaults to process for manifests generated before lifecycle profiles. */
|
|
93
97
|
lifecycle?: GeneratedJobLifecycle;
|
|
94
98
|
/** Defaults to `{ kind: 'process' }` for older manifests. */
|
|
@@ -4006,11 +4006,11 @@ function createPluginJobs(options, manifestPath) {
|
|
|
4006
4006
|
try {
|
|
4007
4007
|
let jobInput;
|
|
4008
4008
|
try {
|
|
4009
|
-
jobInput = await submitToSession(session.value.id, clientRequestId, await stagePathInputs(inputs, session.value.id));
|
|
4009
|
+
jobInput = await submitToSession(session.value.id, clientRequestId, await stagePathInputs(inputs, session.value.id, definitionId));
|
|
4010
4010
|
} catch (cause) {
|
|
4011
4011
|
if (!isSessionNotFoundError(cause)) throw cause;
|
|
4012
4012
|
session.value = await resolveSession();
|
|
4013
|
-
jobInput = await submitToSession(session.value.id, clientRequestId, await stagePathInputs(inputs, session.value.id));
|
|
4013
|
+
jobInput = await submitToSession(session.value.id, clientRequestId, await stagePathInputs(inputs, session.value.id, definitionId));
|
|
4014
4014
|
}
|
|
4015
4015
|
const job = upsertJob(jobInput, definitionId);
|
|
4016
4016
|
if (!streamConnected) schedulePoll();
|
|
@@ -4033,9 +4033,9 @@ function createPluginJobs(options, manifestPath) {
|
|
|
4033
4033
|
});
|
|
4034
4034
|
}
|
|
4035
4035
|
}
|
|
4036
|
-
async function uploadPath(input) {
|
|
4036
|
+
async function uploadPath(input, definitionId) {
|
|
4037
4037
|
if (!session.value) throw new Error("Generated analysis session is not initialized");
|
|
4038
|
-
return uploadPathForSession(input, session.value.id);
|
|
4038
|
+
return uploadPathForSession(input, session.value.id, definitionId);
|
|
4039
4039
|
}
|
|
4040
4040
|
async function uploadStagedPart(input) {
|
|
4041
4041
|
const jobId = jobIdFromReference(input.job);
|
|
@@ -4067,7 +4067,7 @@ function createPluginJobs(options, manifestPath) {
|
|
|
4067
4067
|
finishJobOperation(jobId);
|
|
4068
4068
|
}
|
|
4069
4069
|
}
|
|
4070
|
-
async function uploadPathForSession(input, sessionId) {
|
|
4070
|
+
async function uploadPathForSession(input, sessionId, definitionId) {
|
|
4071
4071
|
if (!input.files.length || input.files.length !== input.relativePaths.length) throw new Error("Path upload requires one relative path for each file");
|
|
4072
4072
|
const body = new FormData();
|
|
4073
4073
|
body.append("session_id", sessionId);
|
|
@@ -4076,26 +4076,28 @@ function createPluginJobs(options, manifestPath) {
|
|
|
4076
4076
|
body.append("files", input.files[index]);
|
|
4077
4077
|
body.append("relative_paths", input.relativePaths[index]);
|
|
4078
4078
|
}
|
|
4079
|
+
const headers = { "X-Mint-Job-Session": sessionId };
|
|
4080
|
+
if (definitionId) headers["X-Mint-Job-Definition"] = definitionId;
|
|
4079
4081
|
return request("/jobs/uploads", {
|
|
4080
4082
|
method: "POST",
|
|
4081
4083
|
body,
|
|
4082
4084
|
signal: input.signal,
|
|
4083
|
-
headers
|
|
4085
|
+
headers
|
|
4084
4086
|
});
|
|
4085
4087
|
}
|
|
4086
|
-
async function stagePathInputs(inputs, sessionId) {
|
|
4087
|
-
return await stagePathValue(inputs, sessionId);
|
|
4088
|
+
async function stagePathInputs(inputs, sessionId, definitionId) {
|
|
4089
|
+
return await stagePathValue(inputs, sessionId, definitionId);
|
|
4088
4090
|
}
|
|
4089
|
-
async function stagePathValue(value, sessionId) {
|
|
4091
|
+
async function stagePathValue(value, sessionId, definitionId) {
|
|
4090
4092
|
if (typeof File !== "undefined" && value instanceof File) return { token: (await uploadPathForSession({
|
|
4091
4093
|
kind: "path",
|
|
4092
4094
|
files: [value],
|
|
4093
4095
|
relativePaths: [value.name]
|
|
4094
|
-
}, sessionId)).token };
|
|
4095
|
-
if (isPluginJobPathInput(value)) return { token: (await uploadPathForSession(value, sessionId)).token };
|
|
4096
|
-
if (Array.isArray(value)) return await Promise.all(value.map((item) => stagePathValue(item, sessionId)));
|
|
4096
|
+
}, sessionId, definitionId)).token };
|
|
4097
|
+
if (isPluginJobPathInput(value)) return { token: (await uploadPathForSession(value, sessionId, definitionId)).token };
|
|
4098
|
+
if (Array.isArray(value)) return await Promise.all(value.map((item) => stagePathValue(item, sessionId, definitionId)));
|
|
4097
4099
|
if (value && typeof value === "object") {
|
|
4098
|
-
const entries = await Promise.all(Object.entries(value).map(async ([key, child]) => [key, await stagePathValue(child, sessionId)]));
|
|
4100
|
+
const entries = await Promise.all(Object.entries(value).map(async ([key, child]) => [key, await stagePathValue(child, sessionId, definitionId)]));
|
|
4099
4101
|
return Object.fromEntries(entries);
|
|
4100
4102
|
}
|
|
4101
4103
|
return value;
|
|
@@ -7661,4 +7663,4 @@ function useControlSchema(controls, options = {}) {
|
|
|
7661
7663
|
//#endregion
|
|
7662
7664
|
export { normalizeJobState as $, useConcentrationUnits as A, BaseCheckbox_default as At, useAnalysisArtifacts as B, controlsToViewIds as C, DatePicker_default as Ct, getTypeDefault as D, BaseSlider_default as Dt, getFieldRegistryEntry as E, useSelectionLimit as Et, ATOMIC_WEIGHTS as F, resolveCurrentPluginId as G, getInjectedPlatformContext as H, useChemicalFormula as I, usePluginJobs as J, createGeneratedAnalysisTransport as K, GeneratedPathInput_default as L, SequenceInput_default as M, BaseTextarea_default as Mt, useSequenceUtils as N, ConcentrationInput_default as O, BaseRadioGroup_default as Ot, FormulaInput_default as P, normalizeJobPercent as Q, _plugin_vue_export_helper_default as R, controlsToTopBarSettingsConfig as S, useTimeUtils as St, getDefaultControlView as T, useListSelection as Tt, parseExperimentId as U, currentExperimentFromContext as V, resolveCurrentExperimentId as W, isTerminalJobStatus as X, isActiveJobStatus as Y, jobStatusLabel as Z, controlsToFormSchema as _, isTimeInRange as _t, defineDoseCalculatorControlProps as a, TagsInput_default as at, controlsToSettingsSchema as b, snapToSlot as bt, defineWellPlateDoseComponentBindings as c, compareTime as ct, defineControlModel as d, findNearestTimeSlotIndex as dt, resolveJobCapabilities as et, resolveControlModel as f, formatDuration as ft, mergeControlWorkspaceOptions as g, generateTimeSlots as gt, controlValuesToComponentProps as h, fromMinutes as ht, useControlSchema as i, NumberInput_default as it, MoleculeInput_default as j, Tooltip_default as jt, UnitInput_default as k, BaseToggle_default as kt, defineWellPlateDoseControlProps as l, durationMinutes as lt, controlValuesToComponentBindingsById as m, formatTimeSlot as mt, defineControls as n, AlertBox_default as nt, defineDoseDesignControlModel as o, TimePicker_default as ot, controlValuesToComponentBindings as p, formatTime as pt, useGeneratedAnalysis as q, getControlDefaults as r, FileUploader_default as rt, defineWellPlateControlProps as s, addMinutes as st, defineControlComponentBindings as t, DateTimePicker_default as tt, useControlWorkspace as u, findAvailableSlots as ut, controlsToSectionFormSchema as v, parseTime as vt, controlsToViewItems as w, MultiSelect_default as wt, controlsToSidebarPanels as x, toMinutes as xt, controlsToSectionFormSchemas as y, rangesOverlap as yt, ArtifactSelectorModal_default as z };
|
|
7663
7665
|
|
|
7664
|
-
//# sourceMappingURL=useControlSchema-
|
|
7666
|
+
//# sourceMappingURL=useControlSchema-B_qgU4rW.js.map
|