@opentrons/shared-data 0.1.7-alpha.0 → 0.1.7-alpha.1

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 (186) hide show
  1. package/command/index.ts +14 -2
  2. package/command/schemas/12.json +65 -0
  3. package/command/schemas/13.json +7207 -0
  4. package/command/types/annotation.ts +1 -1
  5. package/command/types/calibration.ts +7 -6
  6. package/command/types/gantry.ts +7 -6
  7. package/command/types/incidental.ts +1 -1
  8. package/command/types/index.ts +68 -20
  9. package/command/types/module.ts +76 -9
  10. package/command/types/pipetting.ts +9 -3
  11. package/command/types/robot.ts +98 -0
  12. package/command/types/setup.ts +3 -3
  13. package/command/types/support.ts +13 -2
  14. package/command/types/timing.ts +1 -1
  15. package/command/types/unsafe.ts +63 -1
  16. package/deck/index.ts +3 -6
  17. package/errors/definitions/1/errors.json +12 -0
  18. package/errors/index.ts +2 -1
  19. package/labware/definitions/2/agilent_1_reservoir_290ml/3.json +80 -0
  20. package/labware/definitions/2/corning_384_wellplate_112ul_flat/4.json +5116 -0
  21. package/labware/definitions/2/corning_48_wellplate_1.6ml_flat/4.json +605 -0
  22. package/labware/definitions/2/nest_1_reservoir_290ml/3.json +80 -0
  23. package/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/3.json +370 -0
  24. package/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/3.json +371 -0
  25. package/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/4.json +1149 -0
  26. package/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -2
  27. package/labware/definitions/2/usascientific_12_reservoir_22ml/3.json +237 -0
  28. package/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +1047 -0
  29. package/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +1189 -0
  30. package/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +1041 -0
  31. package/labware/fixtures/2/index.ts +4 -4
  32. package/labware/fixtures/3/fixture_2_plate.json +25 -11
  33. package/labware/fixtures/3/fixture_corning_24_plate.json +47 -33
  34. package/labware/schemas/3.json +63 -25
  35. package/lib/command/index.d.ts +4156 -2078
  36. package/lib/command/schemas/12.json +65 -0
  37. package/lib/command/schemas/13.json +7207 -0
  38. package/lib/command/types/annotation.d.ts +1 -1
  39. package/lib/command/types/calibration.d.ts +5 -5
  40. package/lib/command/types/gantry.d.ts +5 -4
  41. package/lib/command/types/incidental.d.ts +1 -1
  42. package/lib/command/types/index.d.ts +52 -14
  43. package/lib/command/types/module.d.ts +59 -10
  44. package/lib/command/types/pipetting.d.ts +8 -3
  45. package/lib/command/types/robot.d.ts +71 -0
  46. package/lib/command/types/setup.d.ts +1 -1
  47. package/lib/command/types/support.d.ts +3 -2
  48. package/lib/command/types/timing.d.ts +1 -1
  49. package/lib/command/types/unsafe.d.ts +44 -3
  50. package/lib/deck/index.d.ts +3 -3
  51. package/lib/errors/definitions/1/errors.json +12 -0
  52. package/lib/errors/index.d.ts +1 -1
  53. package/lib/index.mjs +372042 -335507
  54. package/lib/js/constants.d.ts +17 -10
  55. package/lib/js/deck/index.d.ts +2 -2
  56. package/lib/js/fixtures.d.ts +1 -1
  57. package/lib/js/gripper.d.ts +1 -1
  58. package/lib/js/helpers/__tests__/getMmFromBottom.test.d.ts +1 -0
  59. package/lib/js/helpers/__tests__/liquidClasses.test.d.ts +1 -0
  60. package/lib/js/helpers/getLoadedLabwareDefinitionsByUri.d.ts +1 -1
  61. package/lib/js/helpers/getMmFromBottom.d.ts +2 -0
  62. package/lib/js/helpers/getSimplestFlexDeckConfig.d.ts +1 -1
  63. package/lib/js/helpers/getVectorDifference.d.ts +2 -2
  64. package/lib/js/helpers/getVectorSum.d.ts +2 -2
  65. package/lib/js/helpers/getWellRangeForLiquidLabwarePair.d.ts +6 -0
  66. package/lib/js/helpers/index.d.ts +4 -1
  67. package/lib/js/helpers/labwareInference.d.ts +1 -1
  68. package/lib/js/helpers/liquidClasses.d.ts +8 -0
  69. package/lib/js/helpers/parseAddressableArea.d.ts +1 -1
  70. package/lib/js/helpers/parseProtocolCommands.d.ts +2 -2
  71. package/lib/js/helpers/validateCustomLabwareHelper.d.ts +1 -1
  72. package/lib/js/labware.d.ts +6 -6
  73. package/lib/js/labwareTools/index.d.ts +1 -1
  74. package/lib/js/modules.d.ts +1 -1
  75. package/lib/js/pipettes.d.ts +3 -2
  76. package/lib/js/types.d.ts +45 -27
  77. package/lib/labware/definitions/2/agilent_1_reservoir_290ml/3.json +80 -0
  78. package/lib/labware/definitions/2/corning_384_wellplate_112ul_flat/4.json +5116 -0
  79. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/4.json +605 -0
  80. package/lib/labware/definitions/2/nest_1_reservoir_290ml/3.json +80 -0
  81. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/3.json +370 -0
  82. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/3.json +371 -0
  83. package/lib/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/4.json +1149 -0
  84. package/lib/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -2
  85. package/lib/labware/definitions/2/usascientific_12_reservoir_22ml/3.json +237 -0
  86. package/lib/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +1047 -0
  87. package/lib/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +1189 -0
  88. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +1041 -0
  89. package/lib/labware/fixtures/2/index.d.ts +4 -4
  90. package/lib/labware/fixtures/3/fixture_2_plate.json +25 -11
  91. package/lib/labware/fixtures/3/fixture_corning_24_plate.json +47 -33
  92. package/lib/labware/schemas/3.json +63 -25
  93. package/lib/liquid-class/definitions/1/ethanol_80.json +1455 -1059
  94. package/lib/liquid-class/definitions/1/glycerol_50.json +1454 -1058
  95. package/lib/liquid-class/definitions/1/water.json +1459 -1063
  96. package/lib/liquid-class/fixtures/1/fixture_glycerol50.json +66 -48
  97. package/lib/liquid-class/schemas/1.json +34 -48
  98. package/lib/module/definitions/3/absorbanceReaderV1.json +1 -0
  99. package/lib/module/definitions/3/flexStackerModuleV1.json +6 -0
  100. package/lib/module/definitions/3/magneticBlockV1.json +1 -0
  101. package/lib/module/definitions/3/magneticModuleV1.json +1 -0
  102. package/lib/module/definitions/3/magneticModuleV2.json +1 -0
  103. package/lib/module/definitions/3/temperatureModuleV1.json +1 -0
  104. package/lib/module/definitions/3/temperatureModuleV2.json +1 -0
  105. package/lib/module/definitions/3/thermocyclerModuleV1.json +1 -0
  106. package/lib/module/definitions/3/thermocyclerModuleV2.json +1 -0
  107. package/lib/module/schemas/3.json +4 -0
  108. package/lib/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +4 -0
  109. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +4 -0
  110. package/lib/pipette/definitions/2/geometry/single_channel/p50/3_6.json +4 -0
  111. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/1_0.json +11 -11
  112. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_0.json +12 -12
  113. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json +5 -5
  114. package/lib/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json +5 -5
  115. package/lib/pipette/fixtures/name/index.d.ts +1 -1
  116. package/lib/protocol/fixtures/index.d.ts +2 -2
  117. package/lib/protocol/index.d.ts +7 -7
  118. package/lib/protocol/types/schemaV4.d.ts +1 -1
  119. package/lib/protocol/types/schemaV5.d.ts +1 -1
  120. package/lib/protocol/types/schemaV5Addendum.d.ts +1 -1
  121. package/lib/protocol/types/schemaV6/command/gantry.d.ts +4 -4
  122. package/lib/protocol/types/schemaV6/command/index.d.ts +5 -5
  123. package/lib/protocol/types/schemaV6/command/module.d.ts +1 -1
  124. package/lib/protocol/types/schemaV6/command/pipetting.d.ts +1 -1
  125. package/lib/protocol/types/schemaV6/command/setup.d.ts +1 -1
  126. package/lib/protocol/types/schemaV6/command/timing.d.ts +1 -1
  127. package/lib/protocol/types/schemaV6/index.d.ts +2 -2
  128. package/lib/protocol/types/schemaV7/command/annotation.d.ts +1 -1
  129. package/lib/protocol/types/schemaV7/command/calibration.d.ts +5 -5
  130. package/lib/protocol/types/schemaV7/command/gantry.d.ts +4 -4
  131. package/lib/protocol/types/schemaV7/command/incidental.d.ts +1 -1
  132. package/lib/protocol/types/schemaV7/command/index.d.ts +7 -7
  133. package/lib/protocol/types/schemaV7/command/module.d.ts +1 -1
  134. package/lib/protocol/types/schemaV7/command/pipetting.d.ts +1 -1
  135. package/lib/protocol/types/schemaV7/command/setup.d.ts +1 -1
  136. package/lib/protocol/types/schemaV7/command/timing.d.ts +1 -1
  137. package/lib/protocol/types/schemaV7/index.d.ts +2 -2
  138. package/lib/protocol/types/schemaV8/index.d.ts +1 -1
  139. package/liquid-class/definitions/1/ethanol_80.json +1455 -1059
  140. package/liquid-class/definitions/1/glycerol_50.json +1454 -1058
  141. package/liquid-class/definitions/1/water.json +1459 -1063
  142. package/liquid-class/fixtures/1/fixture_glycerol50.json +66 -48
  143. package/liquid-class/schemas/1.json +34 -48
  144. package/module/definitions/3/absorbanceReaderV1.json +1 -0
  145. package/module/definitions/3/flexStackerModuleV1.json +6 -0
  146. package/module/definitions/3/magneticBlockV1.json +1 -0
  147. package/module/definitions/3/magneticModuleV1.json +1 -0
  148. package/module/definitions/3/magneticModuleV2.json +1 -0
  149. package/module/definitions/3/temperatureModuleV1.json +1 -0
  150. package/module/definitions/3/temperatureModuleV2.json +1 -0
  151. package/module/definitions/3/thermocyclerModuleV1.json +1 -0
  152. package/module/definitions/3/thermocyclerModuleV2.json +1 -0
  153. package/module/schemas/3.json +4 -0
  154. package/package.json +1 -1
  155. package/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +4 -0
  156. package/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +4 -0
  157. package/pipette/definitions/2/geometry/single_channel/p50/3_6.json +4 -0
  158. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/1_0.json +11 -11
  159. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_0.json +12 -12
  160. package/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json +5 -5
  161. package/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json +5 -5
  162. package/pipette/fixtures/index.ts +12 -12
  163. package/pipette/fixtures/name/index.ts +1 -0
  164. package/protocol/fixtures/index.ts +2 -3
  165. package/protocol/index.ts +9 -8
  166. package/protocol/types/schemaV4.ts +4 -4
  167. package/protocol/types/schemaV5.ts +1 -1
  168. package/protocol/types/schemaV5Addendum.ts +1 -1
  169. package/protocol/types/schemaV6/command/gantry.ts +4 -4
  170. package/protocol/types/schemaV6/command/index.ts +6 -6
  171. package/protocol/types/schemaV6/command/module.ts +1 -1
  172. package/protocol/types/schemaV6/command/pipetting.ts +2 -1
  173. package/protocol/types/schemaV6/command/setup.ts +2 -2
  174. package/protocol/types/schemaV6/command/timing.ts +1 -1
  175. package/protocol/types/schemaV6/index.ts +3 -3
  176. package/protocol/types/schemaV7/command/annotation.ts +1 -1
  177. package/protocol/types/schemaV7/command/calibration.ts +7 -6
  178. package/protocol/types/schemaV7/command/gantry.ts +5 -5
  179. package/protocol/types/schemaV7/command/incidental.ts +1 -1
  180. package/protocol/types/schemaV7/command/index.ts +14 -14
  181. package/protocol/types/schemaV7/command/module.ts +1 -1
  182. package/protocol/types/schemaV7/command/pipetting.ts +2 -1
  183. package/protocol/types/schemaV7/command/setup.ts +2 -2
  184. package/protocol/types/schemaV7/command/timing.ts +1 -1
  185. package/protocol/types/schemaV7/index.ts +3 -3
  186. package/protocol/types/schemaV8/index.ts +3 -3
@@ -1,5 +1,6 @@
1
- import type { CutoutFixtureId, CutoutId, AddressableAreaName } from '../deck';
2
- import type { ModuleModel, ModuleType } from './types';
1
+ import type { WellOrigin } from '../command';
2
+ import type { AddressableAreaName, CutoutFixtureId, CutoutId } from '../deck';
3
+ import type { ModuleModel, ModuleType, PositionReference } from './types';
3
4
  export declare const SLOT_LENGTH_MM = 127.76;
4
5
  export declare const SLOT_WIDTH_MM = 85.48;
5
6
  export declare const SLOT_RENDER_WIDTH = 127.76;
@@ -27,7 +28,7 @@ export declare const GRIPPER_V1: 'gripperV1';
27
28
  export declare const GRIPPER_V1_1: 'gripperV1.1';
28
29
  export declare const GRIPPER_V1_2: 'gripperV1.2';
29
30
  export declare const GRIPPER_V1_3: 'gripperV1.3';
30
- export declare const GRIPPER_MODELS: ("gripperV1" | "gripperV1.1" | "gripperV1.2" | "gripperV1.3")[];
31
+ export declare const GRIPPER_MODELS: ("gripperV1.1" | "gripperV1.2" | "gripperV1.3" | "gripperV1")[];
31
32
  export declare const OT2_DISPLAY_NAME: 'Opentrons OT-2';
32
33
  export declare const FLEX_DISPLAY_NAME: 'Opentrons Flex';
33
34
  export declare const FLEX: 'FLEX';
@@ -46,14 +47,14 @@ export declare const ABSORBANCE_READER_TYPE: 'absorbanceReaderType';
46
47
  export declare const FLEX_STACKER_MODULE_TYPE: 'flexStackerModuleType';
47
48
  export declare const MAGNETIC_MODULE_MODELS: ("magneticModuleV1" | "magneticModuleV2")[];
48
49
  export declare const NON_CONNECTING_MODULE_TYPES: ModuleType[];
49
- export declare const TEMPERATURE_MODULE_MODELS: ("temperatureModuleV1" | "temperatureModuleV2")[];
50
+ export declare const TEMPERATURE_MODULE_MODELS: ("temperatureModuleV2" | "temperatureModuleV1")[];
50
51
  export declare const THERMOCYCLER_MODULE_MODELS: ("thermocyclerModuleV2" | "thermocyclerModuleV1")[];
51
52
  export declare const HEATERSHAKER_MODULE_MODELS: "heaterShakerModuleV1"[];
52
53
  export declare const ABSORBANCE_READER_MODELS: "absorbanceReaderV1"[];
53
54
  export declare const FLEX_STACKER_MODULE_MODELS: "flexStackerModuleV1"[];
54
55
  export declare const MAGNETIC_BLOCK_MODELS: "magneticBlockV1"[];
55
- export declare const MODULE_MODELS: ("thermocyclerModuleV2" | "temperatureModuleV1" | "temperatureModuleV2" | "magneticModuleV1" | "magneticModuleV2" | "thermocyclerModuleV1" | "heaterShakerModuleV1" | "magneticBlockV1" | "absorbanceReaderV1" | "flexStackerModuleV1")[];
56
- export declare const MODULE_MODELS_OT2_ONLY: ("temperatureModuleV1" | "magneticModuleV1" | "magneticModuleV2" | "thermocyclerModuleV1")[];
56
+ export declare const MODULE_MODELS: ("thermocyclerModuleV2" | "heaterShakerModuleV1" | "temperatureModuleV2" | "magneticBlockV1" | "absorbanceReaderV1" | "flexStackerModuleV1" | "magneticModuleV1" | "magneticModuleV2" | "temperatureModuleV1" | "thermocyclerModuleV1")[];
57
+ export declare const MODULE_MODELS_OT2_ONLY: ("magneticModuleV1" | "magneticModuleV2" | "temperatureModuleV1" | "thermocyclerModuleV1")[];
57
58
  export declare const MODULE_TYPES: ("magneticModuleType" | "temperatureModuleType" | "heaterShakerModuleType" | "thermocyclerModuleType" | "magneticBlockType" | "absorbanceReaderType" | "flexStackerModuleType")[];
58
59
  export declare const GEN_ONE_MULTI_PIPETTES: string[];
59
60
  export declare const IDENTITY_VECTOR: {
@@ -234,7 +235,13 @@ export declare const LOW_VOLUME_PIPETTES: string[];
234
235
  export declare const DEFAULT_LIQUID_COLORS: string[];
235
236
  export declare const DEPRECATED_WHALE_GREY = "#9395a0";
236
237
  export declare const INTERACTIVE_WELL_DATA_ATTRIBUTE = "data-wellname";
237
- export declare const WELL_TOP: 'well-top';
238
- export declare const WELL_CENTER: 'well-center';
239
- export declare const WELL_BOTTOM: 'well-bottom';
240
- export declare const LIQUID_MENISCUS: 'liquid-meniscus';
238
+ export declare const POSITION_REFERENCE_TOP: 'well-top';
239
+ export declare const POSITION_REFERENCE_BOTTOM: 'well-bottom';
240
+ export declare const POSITION_REFERENCE_CENTER: 'well-center';
241
+ export declare const POSITION_REFERENCE_LIQUID_MENISCUS: 'liquid-meniscus';
242
+ export declare const WELL_ORIGIN_TOP: 'top';
243
+ export declare const WELL_ORIGIN_BOTTOM: 'bottom';
244
+ export declare const WELL_ORIGIN_CENTER: 'center';
245
+ export declare const WELL_ORIGIN_MENISCUS: 'meniscus';
246
+ export declare const POSITION_REFERENCE_MAPPED_TO_WELL_ORIGIN: Record<PositionReference, WellOrigin>;
247
+ export declare const SAFE_MOVE_TO_WELL_OFFSET_FROM_TOP_MM = 2;
@@ -1,4 +1,4 @@
1
- import flexDeckDefV5 from '../../deck/definitions/5/ot3_standard.json';
2
- import ot2DeckDefV5 from '../../deck/definitions/5/ot2_standard.json';
3
1
  import ot2DeckDefShortFixedTrashV5 from '../../deck/definitions/5/ot2_short_trash.json';
2
+ import ot2DeckDefV5 from '../../deck/definitions/5/ot2_standard.json';
3
+ import flexDeckDefV5 from '../../deck/definitions/5/ot3_standard.json';
4
4
  export { ot2DeckDefV5, ot2DeckDefShortFixedTrashV5, flexDeckDefV5 };
@@ -1,6 +1,6 @@
1
+ import type { ModuleLocation } from '../command';
1
2
  import type { AddressableAreaName, CutoutFixtureId, CutoutId, OT2CutoutId } from '../deck';
2
3
  import type { AddressableArea, CoordinateTuple, CutoutFixture, DeckDefinition, ModuleModel } from './types';
3
- import type { ModuleLocation } from '../command';
4
4
  export declare function getCutoutDisplayName(cutout: CutoutId): string;
5
5
  export declare const OT2_CUTOUT_BY_SLOT_ID: {
6
6
  [slotId: string]: OT2CutoutId;
@@ -1,3 +1,3 @@
1
- import type { GripperModel, GripperDefinition } from './types';
1
+ import type { GripperDefinition, GripperModel } from './types';
2
2
  export declare const getGripperDef: (gripperModel: GripperModel) => GripperDefinition;
3
3
  export declare function getGripperDisplayName(gripperModel: GripperModel): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import type { RunTimeCommand, LabwareDefinition2 } from '..';
1
+ import type { LabwareDefinition2, RunTimeCommand } from '..';
2
2
  export interface LabwareDefinitionsByUri {
3
3
  [defURI: string]: LabwareDefinition2;
4
4
  }
@@ -0,0 +1,2 @@
1
+ import type { PositionReference } from '../types';
2
+ export declare const getMmFromBottom: (zValue: number, reference: PositionReference, wellDepth: number | null) => number | null;
@@ -1,6 +1,6 @@
1
1
  import type { AddressableAreaName, CutoutFixtureId, CutoutId } from '../../deck';
2
2
  import type { ProtocolAnalysisOutput } from '../../protocol';
3
- import type { CutoutConfig, CutoutFixture, DeckDefinition, DeckConfiguration, CompletedProtocolAnalysis, CutoutFixtureGroup } from '../types';
3
+ import type { CompletedProtocolAnalysis, CutoutConfig, CutoutFixture, CutoutFixtureGroup, DeckConfiguration, DeckDefinition } from '../types';
4
4
  export interface CutoutConfigProtocolSpec extends CutoutConfig {
5
5
  requiredAddressableAreas: AddressableAreaName[];
6
6
  }
@@ -1,2 +1,2 @@
1
- import type { Coordinates } from '../types';
2
- export declare function getVectorDifference(pointA: Coordinates, pointB: Coordinates): Coordinates;
1
+ import type { Vector3D } from '../types';
2
+ export declare function getVectorDifference(pointA: Vector3D, pointB: Vector3D): Vector3D;
@@ -1,2 +1,2 @@
1
- import type { Coordinates } from '../types';
2
- export declare function getVectorSum(pointA: Coordinates, pointB: Coordinates): Coordinates;
1
+ import type { Vector3D } from '../types';
2
+ export declare function getVectorSum(pointA: Vector3D, pointB: Vector3D): Vector3D;
@@ -0,0 +1,6 @@
1
+ export declare function getWellRangeForLiquidLabwarePair(volumeByWell: {
2
+ [well: string]: number;
3
+ }, labwareWellOrdering: string[][]): Array<{
4
+ wellName: string;
5
+ volume: number;
6
+ }>;
@@ -1,5 +1,5 @@
1
- import type { DeckDefinition, LabwareDefinition2, LabwareDefinition3, LiquidClass, ModuleModel, RobotType, ThermalAdapterName } from '../types';
2
1
  import type { CutoutId } from '../../deck/types/schemaV5';
2
+ import type { DeckDefinition, LabwareDefinition2, LabwareDefinition3, LiquidClass, ModuleModel, RobotType, ThermalAdapterName } from '../types';
3
3
  export { getWellNamePerMultiTip } from './getWellNamePerMultiTip';
4
4
  export { getWellTotalVolume } from './getWellTotalVolume';
5
5
  export { wellIsRect } from './wellIsRect';
@@ -12,6 +12,7 @@ export * from './parseProtocolData';
12
12
  export * from './volume';
13
13
  export * from './wellSets';
14
14
  export * from './getAreFlexSlotsAdjacent';
15
+ export * from './getMmFromBottom';
15
16
  export * from './getModuleVizDims';
16
17
  export * from './getVectorDifference';
17
18
  export * from './getVectorSum';
@@ -20,6 +21,7 @@ export * from './getFixedTrashLabwareDefinition';
20
21
  export * from './getOccludedSlotCountForModule';
21
22
  export * from './labwareInference';
22
23
  export * from './linearInterpolate';
24
+ export * from './liquidClasses';
23
25
  export * from './getAddressableAreasInProtocol';
24
26
  export * from './getFlexSurroundingSlots';
25
27
  export * from './getSimplestFlexDeckConfig';
@@ -30,6 +32,7 @@ export * from './orderRuntimeParameterRangeOptions';
30
32
  export * from './sortRunTimeParameters';
31
33
  export * from './parseAddressableArea';
32
34
  export * from './validateCustomLabwareHelper';
35
+ export * from './getWellRangeForLiquidLabwarePair';
33
36
  export declare const getLabwareDefIsStandard: (def: LabwareDefinition2) => boolean;
34
37
  export declare const getLabwareDefURI: (def: LabwareDefinition2 | LabwareDefinition3) => string;
35
38
  export declare const constructLabwareDefURI: (namespace: string, loadName: string, version: string) => string;
@@ -1,4 +1,4 @@
1
- import type { LabwareWell, LabwareWellShapeProperties, LabwareDefinition2, LabwareWellGroupMetadata, LabwareBrand } from '../types';
1
+ import type { LabwareBrand, LabwareDefinition2, LabwareWell, LabwareWellGroupMetadata, LabwareWellShapeProperties } from '../types';
2
2
  export interface LabwareWellGroupProperties {
3
3
  xOffsetFromLeft: number;
4
4
  yOffsetFromTop: number;
@@ -0,0 +1,8 @@
1
+ import type { PipetteV2Specs } from '..';
2
+ export declare const getCorrectionVolume: (args: {
3
+ liquidClass: string | null;
4
+ pipetteSpecs: PipetteV2Specs;
5
+ tiprackDefUri: string;
6
+ targetVolume: number;
7
+ liquidHandlingAction: 'aspirate' | 'singleDispense' | 'multiDispense';
8
+ }) => number;
@@ -1,4 +1,4 @@
1
- import type { ModuleModel } from '../types';
2
1
  import type { AddressableAreaName } from '../../deck';
2
+ import type { ModuleModel } from '../types';
3
3
  export declare function getSlotFromAddressableAreaName(addressableArea: AddressableAreaName): string;
4
4
  export declare function getModuleModelFromAddressableArea(addressableArea: AddressableAreaName): ModuleModel | null;
@@ -1,6 +1,6 @@
1
- import type { LoadLabwareRunTimeCommand, LoadModuleRunTimeCommand, RunTimeCommand, LabwareLocation } from '../../command/types';
1
+ import type { LabwareLocation, LoadLabwareRunTimeCommand, LoadModuleRunTimeCommand, RunTimeCommand } from '../../command/types';
2
2
  import type { PipetteName } from '../pipettes';
3
- import type { Liquid, LoadedLabware, LoadedModule, LoadedPipette, ModuleModel, LabwareDefinition2 } from '../types';
3
+ import type { LabwareDefinition2, Liquid, LoadedLabware, LoadedModule, LoadedPipette, ModuleModel } from '../types';
4
4
  interface PipetteNamesByMount {
5
5
  left: PipetteName | null;
6
6
  right: PipetteName | null;
@@ -6,4 +6,4 @@ import type { LabwareDefinition2 } from '..';
6
6
  * @param definition - a labware definition
7
7
  * @returns A boolean for if they exist
8
8
  */
9
- export declare const validateCustomLabwareHelper: (definition: LabwareDefinition2 | null) => boolean;
9
+ export declare const validateCustomLabwareHelper: (definition?: LabwareDefinition2 | null) => boolean;
@@ -1,14 +1,14 @@
1
- import labwareSchemaV2 from '../labware/schemas/2.json';
2
- import fixture96Plate from '../labware/fixtures/2/fixture_96_plate.json';
3
1
  import fixture12Trough from '../labware/fixtures/2/fixture_12_trough.json';
4
2
  import fixture24Tuberack from '../labware/fixtures/2/fixture_24_tuberack.json';
5
- import fixtureTiprack10ul from '../labware/fixtures/2/fixture_tiprack_10_ul.json';
6
- import fixtureTiprack300ul from '../labware/fixtures/2/fixture_tiprack_300_ul.json';
3
+ import fixture96Plate from '../labware/fixtures/2/fixture_96_plate.json';
4
+ import fixture384Plate from '../labware/fixtures/2/fixture_384_plate.json';
5
+ import fixtureCalibrationBlock from '../labware/fixtures/2/fixture_calibration_block.json';
7
6
  import fixtureTiprack1000ul from '../labware/fixtures/2/fixture_flex_96_tiprack_1000ul.json';
8
7
  import fixtureTiprackAdapter from '../labware/fixtures/2/fixture_flex_96_tiprack_adapter.json';
9
- import fixtureCalibrationBlock from '../labware/fixtures/2/fixture_calibration_block.json';
10
- import fixture384Plate from '../labware/fixtures/2/fixture_384_plate.json';
8
+ import fixtureTiprack10ul from '../labware/fixtures/2/fixture_tiprack_10_ul.json';
9
+ import fixtureTiprack300ul from '../labware/fixtures/2/fixture_tiprack_300_ul.json';
11
10
  import fixtureTrash from '../labware/fixtures/2/fixture_trash.json';
11
+ import labwareSchemaV2 from '../labware/schemas/2.json';
12
12
  import type { LabwareDefByDefURI, LabwareDefinition2, LegacyLabwareDefByName } from './types';
13
13
  export declare const getAllLabwareDefs: () => Record<string, LabwareDefinition2>;
14
14
  export declare function getAllDefinitions(blockList?: string[]): LabwareDefByDefURI;
@@ -1,4 +1,4 @@
1
- import type { LabwareDefinition2 as Definition, LabwareMetadata as Metadata, LabwareDimensions as Dimensions, LabwareBrand as Brand, LabwareParameters as Params, LabwareWell as Well, LabwareWellProperties as InputWell, LabwareWellGroup as WellGroup, LabwareOffset as Offset, LabwareVolumeUnits as VolumeUnits, ModuleModel, LabwareOffset } from '../types';
1
+ import type { LabwareBrand as Brand, LabwareDefinition2 as Definition, LabwareDimensions as Dimensions, LabwareWellProperties as InputWell, LabwareOffset, LabwareMetadata as Metadata, ModuleModel, LabwareOffset as Offset, LabwareParameters as Params, LabwareVolumeUnits as VolumeUnits, LabwareWell as Well, LabwareWellGroup as WellGroup } from '../types';
2
2
  export declare const DEFAULT_CUSTOM_NAMESPACE = "custom_beta";
3
3
  interface Cell {
4
4
  row: number;
@@ -1,4 +1,4 @@
1
- import type { ModuleModel, ModuleModelWithLegacy, ModuleType, ModuleDefinition } from './types';
1
+ import type { ModuleDefinition, ModuleModel, ModuleModelWithLegacy, ModuleType } from './types';
2
2
  export declare const getModuleDef2: (moduleModel: ModuleModel) => ModuleDefinition;
3
3
  export declare function normalizeModuleModel(legacyModule: ModuleModelWithLegacy): ModuleModel;
4
4
  export declare function getModuleType(moduleModel: ModuleModel): ModuleType;
@@ -1,6 +1,6 @@
1
- import pipetteNameSpecs from '../pipette/definitions/1/pipetteNameSpecs.json';
2
1
  import pipetteModelSpecs from '../pipette/definitions/1/pipetteModelSpecs.json';
3
- import type { PipetteV2Specs, PipetteNameSpecs, PipetteModelSpecs } from './types';
2
+ import pipetteNameSpecs from '../pipette/definitions/1/pipetteNameSpecs.json';
3
+ import type { PipetteModelSpecs, PipetteNameSpecs, PipetteV2Specs } from './types';
4
4
  type SortableProps = 'maxVolume' | 'channels';
5
5
  export type PipetteName = keyof typeof pipetteNameSpecs;
6
6
  export type PipetteModel = keyof typeof pipetteModelSpecs.config;
@@ -13,3 +13,4 @@ export declare const getIncompatiblePipetteNames: (currentPipette: PipetteName)
13
13
  export * from '../pipette/fixtures/name';
14
14
  export * from '../pipette/fixtures/index';
15
15
  export declare const getPipetteSpecsV2: (name?: PipetteName | PipetteModel) => PipetteV2Specs | null;
16
+ export declare const getFlexNameConversion: (pipetteSpec: PipetteV2Specs) => string;
package/lib/js/types.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import type { MAGDECK, TEMPDECK, THERMOCYCLER, MAGNETIC_MODULE_V1, MAGNETIC_MODULE_V2, TEMPERATURE_MODULE_V1, TEMPERATURE_MODULE_V2, THERMOCYCLER_MODULE_V1, THERMOCYCLER_MODULE_V2, HEATERSHAKER_MODULE_V1, ABSORBANCE_READER_V1, MAGNETIC_MODULE_TYPE, TEMPERATURE_MODULE_TYPE, THERMOCYCLER_MODULE_TYPE, HEATERSHAKER_MODULE_TYPE, MAGNETIC_BLOCK_TYPE, ABSORBANCE_READER_TYPE, GEN1, GEN2, FLEX, LEFT, RIGHT, GRIPPER_V1, GRIPPER_V1_1, GRIPPER_V1_2, GRIPPER_V1_3, EXTENSION, MAGNETIC_BLOCK_V1, FLEX_STACKER_MODULE_V1, FLEX_STACKER_MODULE_TYPE, WELL_BOTTOM, WELL_CENTER, WELL_TOP, LIQUID_MENISCUS } from './constants';
2
- import type { RunTimeCommand, LoadedLabwareLocation } from '../command/types';
1
+ import type { LoadedLabwareLocation, RunTimeCommand } from '../command/types';
2
+ import type { CommandAnnotation } from '../commandAnnotation/types';
3
3
  import type { AddressableAreaName, CutoutFixtureId, CutoutId } from '../deck';
4
+ import type { ABSORBANCE_READER_TYPE, ABSORBANCE_READER_V1, EXTENSION, FLEX, FLEX_STACKER_MODULE_TYPE, FLEX_STACKER_MODULE_V1, GEN1, GEN2, GRIPPER_V1, GRIPPER_V1_1, GRIPPER_V1_2, GRIPPER_V1_3, HEATERSHAKER_MODULE_TYPE, HEATERSHAKER_MODULE_V1, LEFT, MAGDECK, MAGNETIC_BLOCK_TYPE, MAGNETIC_BLOCK_V1, MAGNETIC_MODULE_TYPE, MAGNETIC_MODULE_V1, MAGNETIC_MODULE_V2, POSITION_REFERENCE_BOTTOM, POSITION_REFERENCE_CENTER, POSITION_REFERENCE_LIQUID_MENISCUS, POSITION_REFERENCE_TOP, RIGHT, TEMPDECK, TEMPERATURE_MODULE_TYPE, TEMPERATURE_MODULE_V1, TEMPERATURE_MODULE_V2, THERMOCYCLER, THERMOCYCLER_MODULE_TYPE, THERMOCYCLER_MODULE_V1, THERMOCYCLER_MODULE_V2 } from './constants';
4
5
  import type { PipetteName } from './pipettes';
5
- import type { CommandAnnotation } from '../commandAnnotation/types';
6
6
  export type RobotType = 'OT-2 Standard' | 'OT-3 Standard';
7
7
  export interface RobotDefinition {
8
8
  displayName: string;
@@ -51,12 +51,16 @@ export interface LabwareDimensions {
51
51
  yDimension: number;
52
52
  zDimension: number;
53
53
  }
54
- export interface Coordinates {
54
+ export interface Vector2D {
55
+ x: number;
56
+ y: number;
57
+ }
58
+ export interface Vector3D {
55
59
  x: number;
56
60
  y: number;
57
61
  z: number;
58
62
  }
59
- export type LabwareOffset = Coordinates;
63
+ export type LabwareOffset = Vector3D;
60
64
  export interface LabwareParameters {
61
65
  loadName: string;
62
66
  format: string;
@@ -147,6 +151,18 @@ export interface LabwareWellGroup {
147
151
  metadata: LabwareWellGroupMetadata;
148
152
  brand?: LabwareBrand;
149
153
  }
154
+ export interface AxisAlignedBoundingBox2D {
155
+ backLeft: Vector2D;
156
+ frontRight: Vector2D;
157
+ }
158
+ export interface AxisAlignedBoundingBox3D {
159
+ backLeftBottom: Vector3D;
160
+ frontRightTop: Vector3D;
161
+ }
162
+ export interface Extents {
163
+ total: AxisAlignedBoundingBox3D;
164
+ footprint: AxisAlignedBoundingBox2D;
165
+ }
150
166
  export type LabwareRoles = 'labware' | 'adapter' | 'fixture' | 'maintenance' | 'lid' | 'system';
151
167
  export interface LabwareDefinition2 {
152
168
  version: number;
@@ -173,8 +189,7 @@ export interface LabwareDefinition3 {
173
189
  schemaVersion: 3;
174
190
  namespace: string;
175
191
  metadata: LabwareMetadata;
176
- dimensions: LabwareDimensions;
177
- cornerOffsetFromSlot: LabwareOffset;
192
+ extents: Extents;
178
193
  parameters: LabwareParameters;
179
194
  brand: LabwareBrand;
180
195
  ordering: string[][];
@@ -308,9 +323,9 @@ export interface ModuleLayer {
308
323
  export interface ModuleDefinition {
309
324
  moduleType: ModuleType;
310
325
  model: ModuleModel;
311
- labwareOffset: Coordinates;
326
+ labwareOffset: Vector3D;
312
327
  dimensions: ModuleDimensions;
313
- cornerOffsetFromSlot: Coordinates;
328
+ cornerOffsetFromSlot: Vector3D;
314
329
  calibrationPoint: ModuleCalibrationPoint;
315
330
  displayName: string;
316
331
  quirks: string[];
@@ -538,22 +553,26 @@ export interface Liquid {
538
553
  description: string;
539
554
  displayColor?: string;
540
555
  }
541
- type LiquidHandlingPropertyByVolume = number[][];
542
- export type PositionReference = typeof WELL_BOTTOM | typeof WELL_CENTER | typeof WELL_TOP | typeof LIQUID_MENISCUS;
556
+ export type LiquidHandlingPropertyByVolume = number[][];
557
+ export type PositionReference = typeof POSITION_REFERENCE_BOTTOM | typeof POSITION_REFERENCE_CENTER | typeof POSITION_REFERENCE_TOP | typeof POSITION_REFERENCE_LIQUID_MENISCUS;
543
558
  type BlowoutLocation = 'source' | 'destination' | 'trash';
544
559
  interface DelayParams {
545
560
  duration: number;
546
561
  }
547
- interface DelayProperties {
562
+ export interface TipPosition {
563
+ positionReference: PositionReference;
564
+ offset: Vector3D;
565
+ }
566
+ export interface DelayProperties {
548
567
  enable: boolean;
549
568
  params?: DelayParams;
550
569
  }
551
570
  interface TouchTipParams {
552
571
  zOffset: number;
553
- mmToEdge: number;
572
+ mmFromEdge: number;
554
573
  speed: number;
555
574
  }
556
- interface TouchTipProperties {
575
+ export interface TouchTipProperties {
557
576
  enable: boolean;
558
577
  params?: TouchTipParams;
559
578
  }
@@ -561,7 +580,7 @@ interface MixParams {
561
580
  repetitions: number;
562
581
  volume: number;
563
582
  }
564
- interface MixProperties {
583
+ export interface MixProperties {
565
584
  enable: boolean;
566
585
  params?: MixParams;
567
586
  }
@@ -569,50 +588,49 @@ interface BlowoutParams {
569
588
  location: BlowoutLocation;
570
589
  flowRate: number;
571
590
  }
572
- interface BlowoutProperties {
591
+ export interface BlowoutProperties {
573
592
  enable: boolean;
574
593
  params?: BlowoutParams;
575
594
  }
576
- interface Submerge {
577
- positionReference: PositionReference;
578
- offset: Coordinates;
595
+ export interface Submerge {
596
+ startPosition: TipPosition;
579
597
  speed: number;
580
598
  delay: DelayProperties;
581
599
  }
582
600
  interface BaseRetract {
583
- positionReference: PositionReference;
584
- offset: Coordinates;
601
+ endPosition: TipPosition;
585
602
  speed: number;
586
603
  airGapByVolume: LiquidHandlingPropertyByVolume;
587
604
  touchTip: TouchTipProperties;
588
605
  delay: DelayProperties;
589
606
  }
590
- type RetractAspirate = BaseRetract;
591
- interface RetractDispense extends BaseRetract {
607
+ export type RetractAspirate = BaseRetract;
608
+ export interface RetractDispense extends BaseRetract {
592
609
  blowout: BlowoutProperties;
593
610
  }
594
611
  interface BaseLiquidHandlingProperties<RetractType> {
595
612
  submerge: Submerge;
596
613
  retract: RetractType;
597
- positionReference: PositionReference;
598
- offset: Coordinates;
599
614
  flowRateByVolume: LiquidHandlingPropertyByVolume;
600
615
  correctionByVolume: LiquidHandlingPropertyByVolume;
601
616
  delay: DelayProperties;
602
617
  }
603
618
  export interface AspirateProperties extends BaseLiquidHandlingProperties<RetractAspirate> {
619
+ aspiratePosition: TipPosition;
604
620
  preWet: boolean;
605
621
  mix: MixProperties;
606
622
  }
607
623
  export interface SingleDispenseProperties extends BaseLiquidHandlingProperties<RetractDispense> {
624
+ dispensePosition: TipPosition;
608
625
  mix: MixProperties;
609
626
  pushOutByVolume: LiquidHandlingPropertyByVolume;
610
627
  }
611
- export interface MultiDispenseProperties {
628
+ export interface MultiDispenseProperties extends BaseLiquidHandlingProperties<RetractDispense> {
629
+ dispensePosition: TipPosition;
612
630
  conditioningByVolume: LiquidHandlingPropertyByVolume;
613
631
  disposalByVolume: LiquidHandlingPropertyByVolume;
614
632
  }
615
- interface ByTipTypeSetting {
633
+ export interface ByTipTypeSetting {
616
634
  tiprack: string;
617
635
  aspirate: AspirateProperties;
618
636
  singleDispense: SingleDispenseProperties;
@@ -0,0 +1,80 @@
1
+ {
2
+ "ordering": [["A1"]],
3
+ "brand": {
4
+ "brand": "Agilent",
5
+ "brandId": ["201252-100"],
6
+ "links": ["https://www.agilent.com/store/en_US/Prod-201252-100/201252-100"]
7
+ },
8
+ "metadata": {
9
+ "displayName": "Agilent 1 Well Reservoir 290 mL",
10
+ "displayCategory": "reservoir",
11
+ "displayVolumeUnits": "mL",
12
+ "tags": []
13
+ },
14
+ "dimensions": {
15
+ "xDimension": 127.76,
16
+ "yDimension": 85.57,
17
+ "zDimension": 44.04
18
+ },
19
+ "wells": {
20
+ "A1": {
21
+ "depth": 39.23,
22
+ "shape": "rectangular",
23
+ "xDimension": 108,
24
+ "yDimension": 72,
25
+ "totalLiquidVolume": 290000,
26
+ "x": 63.88,
27
+ "y": 42.785,
28
+ "z": 4.81,
29
+ "geometryDefinitionId": "cuboidalWell"
30
+ }
31
+ },
32
+ "groups": [
33
+ {
34
+ "wells": ["A1"],
35
+ "metadata": {
36
+ "wellBottomShape": "v"
37
+ }
38
+ }
39
+ ],
40
+ "parameters": {
41
+ "format": "trough",
42
+ "isTiprack": false,
43
+ "isMagneticModuleCompatible": false,
44
+ "loadName": "agilent_1_reservoir_290ml",
45
+ "quirks": ["centerMultichannelOnWells", "touchTipDisabled"]
46
+ },
47
+ "namespace": "opentrons",
48
+ "version": 3,
49
+ "schemaVersion": 2,
50
+ "cornerOffsetFromSlot": {
51
+ "x": 0,
52
+ "y": 0,
53
+ "z": 0
54
+ },
55
+ "innerLabwareGeometry": {
56
+ "cuboidalWell": {
57
+ "sections": [
58
+ {
59
+ "shape": "cuboidal",
60
+ "topXDimension": 107.5,
61
+ "topYDimension": 71.25,
62
+ "bottomXDimension": 106.785,
63
+ "bottomYDimension": 71.0,
64
+ "topHeight": 39.23,
65
+ "bottomHeight": 2.0
66
+ },
67
+ {
68
+ "shape": "cuboidal",
69
+ "topXDimension": 106.785,
70
+ "topYDimension": 8,
71
+ "bottomXDimension": 100.75,
72
+ "bottomYDimension": 1.66,
73
+ "topHeight": 2,
74
+ "bottomHeight": 0,
75
+ "yCount": 8
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ }