@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.
Files changed (42) hide show
  1. package/README.md +18 -4
  2. package/dist/{SettingsModal-DDaq294M.js → SettingsModal-Dpg-X1OM.js} +3 -3
  3. package/dist/{SettingsModal-DDaq294M.js.map → SettingsModal-Dpg-X1OM.js.map} +1 -1
  4. package/dist/__tests__/types/GeneratedJsonSchema.test.d.ts +1 -0
  5. package/dist/components/PluginWorkspaceView.props.d.ts +1 -1
  6. package/dist/components/index.js +3 -3
  7. package/dist/{components-t0iBwn5R.js → components-Ci_BTx00.js} +10 -11
  8. package/dist/components-Ci_BTx00.js.map +1 -0
  9. package/dist/composables/index.d.ts +1 -1
  10. package/dist/composables/index.js +5 -5
  11. package/dist/composables/useGeneratedAnalysis.d.ts +1 -1
  12. package/dist/composables/usePluginClient.d.ts +11 -5
  13. package/dist/{composables-CqjA4Gth.js → composables-C0VEJ73O.js} +3 -3
  14. package/dist/{composables-CqjA4Gth.js.map → composables-C0VEJ73O.js.map} +1 -1
  15. package/dist/index.js +7 -7
  16. package/dist/install.js +3 -3
  17. package/dist/styles.css +11 -11
  18. package/dist/templates/index.js +2 -2
  19. package/dist/{templates-BdArs8LL.js → templates-Cdj93S9C.js} +2 -2
  20. package/dist/{templates-BdArs8LL.js.map → templates-Cdj93S9C.js.map} +1 -1
  21. package/dist/types/generated-ui.d.ts +4 -0
  22. package/dist/{useControlSchema-BAqu3kqE.js → useControlSchema-B_qgU4rW.js} +16 -14
  23. package/dist/useControlSchema-B_qgU4rW.js.map +1 -0
  24. package/dist/{useFormBuilder-DvO-TrfX.js → useFormBuilder-D1G5J5Z5.js} +2 -2
  25. package/dist/{useFormBuilder-DvO-TrfX.js.map → useFormBuilder-D1G5J5Z5.js.map} +1 -1
  26. package/dist/{useProtocolTemplates-BuY_MlBP.js → useProtocolTemplates-DeaOmMaw.js} +3 -3
  27. package/dist/{useProtocolTemplates-BuY_MlBP.js.map → useProtocolTemplates-DeaOmMaw.js.map} +1 -1
  28. package/package.json +1 -1
  29. package/src/__tests__/components/GeneratedPluginView.test.ts +10 -0
  30. package/src/__tests__/components/PluginWorkspaceView.test.ts +68 -14
  31. package/src/__tests__/composables/useGeneratedAnalysis.test.ts +2 -0
  32. package/src/__tests__/composables/usePluginClient.test.ts +36 -1
  33. package/src/__tests__/types/GeneratedJsonSchema.test.ts +17 -0
  34. package/src/components/GeneratedPluginView.vue +1 -1
  35. package/src/components/PluginWorkspaceView.props.ts +1 -1
  36. package/src/components/PluginWorkspaceView.vue +1 -5
  37. package/src/composables/index.ts +1 -0
  38. package/src/composables/useGeneratedAnalysis.ts +30 -12
  39. package/src/composables/usePluginClient.ts +12 -5
  40. package/src/types/generated-ui.ts +4 -0
  41. package/dist/components-t0iBwn5R.js.map +0 -1
  42. 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: { "X-Mint-Job-Session": sessionId }
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-BAqu3kqE.js.map
7666
+ //# sourceMappingURL=useControlSchema-B_qgU4rW.js.map