@opentrons/shared-data 0.1.1 → 0.1.2-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 (637) hide show
  1. package/gripper/definitions/1/gripperV1.1.json +1 -1
  2. package/gripper/definitions/1/gripperV1.2.json +1 -1
  3. package/js/__tests__/__snapshots__/pipettes.test.ts.snap +5969 -0
  4. package/js/__tests__/deckSchemas.test.ts +87 -0
  5. package/js/__tests__/errors.test.js +21 -0
  6. package/js/__tests__/getAreSlotsAdjacent.test.ts +128 -0
  7. package/js/__tests__/getWellNamePerMultiTip.test.ts +162 -0
  8. package/js/__tests__/labwareDefQuirks.test.ts +38 -0
  9. package/js/__tests__/labwareDefSchemaV1.test.ts +82 -0
  10. package/js/__tests__/labwareDefSchemaV2.test.ts +298 -0
  11. package/js/__tests__/moduleAccessors.test.ts +50 -0
  12. package/js/__tests__/moduleSpecsSchema.test.ts +77 -0
  13. package/js/__tests__/pipetteSchemaV2.test.ts +107 -0
  14. package/js/__tests__/pipetteSpecSchemas.test.ts +48 -0
  15. package/js/__tests__/pipettes.test.ts +58 -0
  16. package/js/__tests__/protocolSchemaV4.test.ts +137 -0
  17. package/js/__tests__/protocolSchemaV5.test.ts +137 -0
  18. package/js/__tests__/protocolSchemaV6.test.ts +132 -0
  19. package/js/__tests__/protocolSchemaV7.test.ts +64 -0
  20. package/js/__tests__/protocolValidation.test.ts +83 -0
  21. package/js/__tests__/sortWells.test.ts +40 -0
  22. package/js/__tests__/splitWellsOnColumn.test.ts +21 -0
  23. package/js/__tests__/validateErrors.test.js +34 -0
  24. package/js/constants.ts +405 -0
  25. package/js/cypressUtils.ts +35 -0
  26. package/js/errors.ts +33 -0
  27. package/js/fixtures.ts +156 -0
  28. package/js/getLabware.ts +145 -0
  29. package/js/gripper.ts +29 -0
  30. package/js/helpers/__tests__/getAdapterName.test.ts +31 -0
  31. package/js/helpers/__tests__/getDeckDefFromLoadedLabware.test.ts +12 -0
  32. package/js/helpers/__tests__/getSimplestFlexDeckConfig.test.ts +176 -0
  33. package/js/helpers/__tests__/getVectorDifference.test.ts +25 -0
  34. package/js/helpers/__tests__/getVectorSum.test.ts +21 -0
  35. package/js/helpers/__tests__/labwareInference.test.ts +84 -0
  36. package/js/helpers/__tests__/orderWells.test.ts +87 -0
  37. package/js/helpers/__tests__/parseProtocolData.test.ts +165 -0
  38. package/js/helpers/__tests__/volume.test.ts +108 -0
  39. package/js/helpers/__tests__/wellSets.test.ts +352 -0
  40. package/js/helpers/get96Channel384WellPlateWells.ts +44 -0
  41. package/js/helpers/getAddressableAreasInProtocol.ts +98 -0
  42. package/js/helpers/getLoadedLabwareDefinitionsByUri.ts +30 -0
  43. package/js/helpers/getModuleVizDims.ts +118 -0
  44. package/js/helpers/getOccludedSlotCountForModule.ts +13 -0
  45. package/js/helpers/getSimplestFlexDeckConfig.ts +183 -0
  46. package/js/helpers/getVectorDifference.ts +12 -0
  47. package/js/helpers/getVectorSum.ts +12 -0
  48. package/js/helpers/getWellNamePerMultiTip.ts +86 -0
  49. package/js/helpers/getWellTotalVolume.ts +16 -0
  50. package/js/helpers/index.ts +348 -0
  51. package/js/helpers/labwareInference.ts +92 -0
  52. package/js/helpers/orderWells.ts +69 -0
  53. package/js/helpers/parseProtocolData.ts +141 -0
  54. package/js/helpers/volume.ts +35 -0
  55. package/js/helpers/wellIsRect.ts +6 -0
  56. package/js/helpers/wellSets.ts +155 -0
  57. package/js/index.ts +14 -0
  58. package/js/labwareTools/__tests__/__snapshots__/createIrregularLabware.test.ts.snap +3 -0
  59. package/js/labwareTools/__tests__/__snapshots__/createLabware.test.ts.snap +3 -0
  60. package/js/labwareTools/__tests__/createDefaultDisplayName.test.ts +111 -0
  61. package/js/labwareTools/__tests__/createIrregularLabware.test.ts +226 -0
  62. package/js/labwareTools/__tests__/createLabware.test.ts +147 -0
  63. package/js/labwareTools/index.ts +452 -0
  64. package/js/modules.ts +97 -0
  65. package/js/pipettes.ts +89 -0
  66. package/js/protocols.ts +290 -0
  67. package/js/schema.ts +80 -0
  68. package/js/scripts/generateDeckLayersFromSVG.js +46 -0
  69. package/js/titleCase.ts +30 -0
  70. package/js/types.ts +561 -0
  71. package/lib/command/schemas/7.json +3301 -0
  72. package/lib/command/schemas/8.json +3902 -0
  73. package/lib/command/types/annotation.d.ts +24 -0
  74. package/lib/command/types/calibration.d.ts +58 -0
  75. package/lib/command/types/gantry.d.ts +134 -0
  76. package/lib/command/types/incidental.d.ts +15 -0
  77. package/lib/command/types/index.d.ts +41 -0
  78. package/lib/command/types/module.d.ts +191 -0
  79. package/lib/command/types/pipetting.d.ts +195 -0
  80. package/lib/command/types/setup.d.ts +133 -0
  81. package/lib/command/types/timing.d.ts +39 -0
  82. package/lib/commandAnnotation/schemas/1.json +74 -0
  83. package/lib/commandAnnotation/types/index.d.ts +19 -0
  84. package/lib/deck/definitions/3/ot2_short_trash.json +477 -0
  85. package/lib/deck/definitions/3/ot2_standard.json +477 -0
  86. package/lib/deck/definitions/3/ot3_standard.json +989 -0
  87. package/lib/deck/definitions/4/ot2_short_trash.json +405 -0
  88. package/lib/deck/definitions/4/ot2_standard.json +405 -0
  89. package/lib/deck/definitions/4/ot3_standard.json +609 -0
  90. package/lib/deck/fixtures/3/deckExample.json +481 -0
  91. package/lib/deck/index.d.ts +1 -0
  92. package/lib/deck/schemas/1.json +229 -0
  93. package/lib/deck/schemas/2.json +239 -0
  94. package/lib/deck/schemas/3.json +296 -0
  95. package/lib/deck/schemas/4.json +319 -0
  96. package/lib/deck/types/schemaV4.d.ts +12 -0
  97. package/lib/errors/definitions/1/errors.json +226 -0
  98. package/lib/errors/schemas/1.json +49 -0
  99. package/lib/gripper/definitions/1/gripperV1.1.json +29 -0
  100. package/lib/gripper/definitions/1/gripperV1.2.json +29 -0
  101. package/lib/gripper/definitions/1/gripperV1.json +28 -0
  102. package/lib/gripper/schemas/1.json +186 -0
  103. package/lib/js/__tests__/deckSchemas.test.d.ts +1 -0
  104. package/lib/js/__tests__/getAreSlotsAdjacent.test.d.ts +1 -0
  105. package/lib/js/__tests__/getWellNamePerMultiTip.test.d.ts +1 -0
  106. package/lib/js/__tests__/labwareDefQuirks.test.d.ts +1 -0
  107. package/lib/js/__tests__/labwareDefSchemaV1.test.d.ts +1 -0
  108. package/lib/js/__tests__/labwareDefSchemaV2.test.d.ts +1 -0
  109. package/lib/js/__tests__/moduleAccessors.test.d.ts +1 -0
  110. package/lib/js/__tests__/moduleSpecsSchema.test.d.ts +1 -0
  111. package/lib/js/__tests__/pipetteSchemaV2.test.d.ts +1 -0
  112. package/lib/js/__tests__/pipetteSpecSchemas.test.d.ts +1 -0
  113. package/lib/js/__tests__/pipettes.test.d.ts +1 -0
  114. package/lib/js/__tests__/protocolSchemaV4.test.d.ts +1 -0
  115. package/lib/js/__tests__/protocolSchemaV5.test.d.ts +1 -0
  116. package/lib/js/__tests__/protocolSchemaV6.test.d.ts +1 -0
  117. package/lib/js/__tests__/protocolSchemaV7.test.d.ts +1 -0
  118. package/lib/js/__tests__/protocolValidation.test.d.ts +1 -0
  119. package/lib/js/__tests__/sortWells.test.d.ts +1 -0
  120. package/lib/js/__tests__/splitWellsOnColumn.test.d.ts +1 -0
  121. package/lib/js/constants.d.ts +156 -0
  122. package/lib/js/cypressUtils.d.ts +1 -0
  123. package/lib/js/errors.d.ts +13 -0
  124. package/lib/js/fixtures.d.ts +13 -0
  125. package/lib/js/getLabware.d.ts +8 -0
  126. package/lib/js/gripper.d.ts +3 -0
  127. package/lib/js/helpers/__tests__/getAdapterName.test.d.ts +1 -0
  128. package/lib/js/helpers/__tests__/getDeckDefFromLoadedLabware.test.d.ts +1 -0
  129. package/lib/js/helpers/__tests__/getSimplestFlexDeckConfig.test.d.ts +1 -0
  130. package/lib/js/helpers/__tests__/getVectorDifference.test.d.ts +1 -0
  131. package/lib/js/helpers/__tests__/getVectorSum.test.d.ts +1 -0
  132. package/lib/js/helpers/__tests__/labwareInference.test.d.ts +1 -0
  133. package/lib/js/helpers/__tests__/orderWells.test.d.ts +1 -0
  134. package/lib/js/helpers/__tests__/parseProtocolData.test.d.ts +1 -0
  135. package/lib/js/helpers/__tests__/volume.test.d.ts +1 -0
  136. package/lib/js/helpers/__tests__/wellSets.test.d.ts +1 -0
  137. package/lib/js/helpers/get96Channel384WellPlateWells.d.ts +1 -0
  138. package/lib/js/helpers/getAddressableAreasInProtocol.d.ts +4 -0
  139. package/lib/js/helpers/getLoadedLabwareDefinitionsByUri.d.ts +5 -0
  140. package/lib/js/helpers/getModuleVizDims.d.ts +16 -0
  141. package/lib/js/helpers/getOccludedSlotCountForModule.d.ts +2 -0
  142. package/lib/js/helpers/getSimplestFlexDeckConfig.d.ts +14 -0
  143. package/lib/js/helpers/getVectorDifference.d.ts +2 -0
  144. package/lib/js/helpers/getVectorSum.d.ts +2 -0
  145. package/lib/js/helpers/getWellNamePerMultiTip.d.ts +3 -0
  146. package/lib/js/helpers/getWellTotalVolume.d.ts +2 -0
  147. package/lib/js/helpers/index.d.ts +44 -0
  148. package/lib/js/helpers/labwareInference.d.ts +16 -0
  149. package/lib/js/helpers/orderWells.d.ts +2 -0
  150. package/lib/js/helpers/parseProtocolData.d.ts +23 -0
  151. package/lib/js/helpers/volume.d.ts +4 -0
  152. package/lib/js/helpers/wellIsRect.d.ts +3 -0
  153. package/lib/js/helpers/wellSets.d.ts +9 -0
  154. package/lib/js/index.d.ts +14 -0
  155. package/lib/js/labwareTools/__tests__/createDefaultDisplayName.test.d.ts +1 -0
  156. package/lib/js/labwareTools/__tests__/createIrregularLabware.test.d.ts +1 -0
  157. package/lib/js/labwareTools/__tests__/createLabware.test.d.ts +1 -0
  158. package/lib/js/labwareTools/index.d.ts +65 -0
  159. package/lib/js/modules.d.ts +6 -0
  160. package/lib/js/pipettes.d.ts +13 -0
  161. package/lib/js/protocols.d.ts +3 -0
  162. package/lib/js/schema.d.ts +90 -0
  163. package/lib/js/titleCase.d.ts +1 -0
  164. package/lib/js/types.d.ts +398 -0
  165. package/lib/labware/definitions/1/12-well-plate.json +147 -0
  166. package/lib/labware/definitions/1/24-vial-rack.json +281 -0
  167. package/lib/labware/definitions/1/24-well-plate.json +281 -0
  168. package/lib/labware/definitions/1/384-plate.json +4667 -0
  169. package/lib/labware/definitions/1/48-vial-plate.json +547 -0
  170. package/lib/labware/definitions/1/48-well-plate.json +547 -0
  171. package/lib/labware/definitions/1/5ml-3x4.json +147 -0
  172. package/lib/labware/definitions/1/6-well-plate.json +80 -0
  173. package/lib/labware/definitions/1/96-PCR-flat.json +1079 -0
  174. package/lib/labware/definitions/1/96-PCR-tall.json +1079 -0
  175. package/lib/labware/definitions/1/96-deep-well.json +1079 -0
  176. package/lib/labware/definitions/1/96-flat.json +1079 -0
  177. package/lib/labware/definitions/1/96-well-plate-20mm.json +1079 -0
  178. package/lib/labware/definitions/1/MALDI-plate.json +4282 -0
  179. package/lib/labware/definitions/1/PCR-strip-tall.json +1079 -0
  180. package/lib/labware/definitions/1/T25-flask.json +20 -0
  181. package/lib/labware/definitions/1/T75-flask.json +20 -0
  182. package/lib/labware/definitions/1/alum-block-pcr-strips.json +188 -0
  183. package/lib/labware/definitions/1/biorad-hardshell-96-PCR.json +1079 -0
  184. package/lib/labware/definitions/1/e-gelgol.json +1078 -0
  185. package/lib/labware/definitions/1/fixed-trash.json +19 -0
  186. package/lib/labware/definitions/1/hampton-1ml-deep-block.json +1078 -0
  187. package/lib/labware/definitions/1/opentrons-aluminum-block-2ml-eppendorf.json +281 -0
  188. package/lib/labware/definitions/1/opentrons-aluminum-block-2ml-screwcap.json +281 -0
  189. package/lib/labware/definitions/1/opentrons-aluminum-block-96-PCR-plate.json +1079 -0
  190. package/lib/labware/definitions/1/opentrons-aluminum-block-PCR-strips-200ul.json +1079 -0
  191. package/lib/labware/definitions/1/opentrons-tiprack-10ul.json +986 -0
  192. package/lib/labware/definitions/1/opentrons-tiprack-300ul.json +986 -0
  193. package/lib/labware/definitions/1/opentrons-tuberack-1.5ml-eppendorf.json +281 -0
  194. package/lib/labware/definitions/1/opentrons-tuberack-15_50ml.json +125 -0
  195. package/lib/labware/definitions/1/opentrons-tuberack-15ml.json +181 -0
  196. package/lib/labware/definitions/1/opentrons-tuberack-2ml-eppendorf.json +281 -0
  197. package/lib/labware/definitions/1/opentrons-tuberack-2ml-screwcap.json +281 -0
  198. package/lib/labware/definitions/1/opentrons-tuberack-50ml.json +80 -0
  199. package/lib/labware/definitions/1/point.json +18 -0
  200. package/lib/labware/definitions/1/rigaku-compact-crystallization-plate.json +2146 -0
  201. package/lib/labware/definitions/1/small_vial_rack_16x45.json +280 -0
  202. package/lib/labware/definitions/1/tall-fixed-trash.json +19 -0
  203. package/lib/labware/definitions/1/tiprack-1000ul-H.json +503 -0
  204. package/lib/labware/definitions/1/tiprack-1000ul-chem.json +1034 -0
  205. package/lib/labware/definitions/1/tiprack-1000ul.json +986 -0
  206. package/lib/labware/definitions/1/tiprack-10ul-H.json +503 -0
  207. package/lib/labware/definitions/1/tiprack-10ul.json +986 -0
  208. package/lib/labware/definitions/1/tiprack-200ul.json +986 -0
  209. package/lib/labware/definitions/1/trash-box.json +20 -0
  210. package/lib/labware/definitions/1/trough-12row-short.json +143 -0
  211. package/lib/labware/definitions/1/trough-12row.json +143 -0
  212. package/lib/labware/definitions/1/trough-1row-25ml.json +21 -0
  213. package/lib/labware/definitions/1/tube-rack-.75ml.json +281 -0
  214. package/lib/labware/definitions/1/tube-rack-15_50ml.json +125 -0
  215. package/lib/labware/definitions/1/tube-rack-2ml-9x9.json +911 -0
  216. package/lib/labware/definitions/1/tube-rack-2ml.json +281 -0
  217. package/lib/labware/definitions/1/tube-rack-5ml-96.json +1079 -0
  218. package/lib/labware/definitions/1/tube-rack-80well.json +907 -0
  219. package/lib/labware/definitions/1/wheaton_vial_rack.json +565 -0
  220. package/lib/labware/definitions/2/agilent_1_reservoir_290ml/1.json +54 -0
  221. package/lib/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/1.json +4320 -0
  222. package/lib/labware/definitions/2/armadillo_96_wellplate_200ul_pcr_full_skirt/1.json +1019 -0
  223. package/lib/labware/definitions/2/armadillo_96_wellplate_200ul_pcr_full_skirt/2.json +1045 -0
  224. package/lib/labware/definitions/2/axygen_1_reservoir_90ml/1.json +56 -0
  225. package/lib/labware/definitions/2/biorad_384_wellplate_50ul/1.json +4329 -0
  226. package/lib/labware/definitions/2/biorad_384_wellplate_50ul/2.json +4331 -0
  227. package/lib/labware/definitions/2/biorad_96_wellplate_200ul_pcr/1.json +1020 -0
  228. package/lib/labware/definitions/2/biorad_96_wellplate_200ul_pcr/2.json +1046 -0
  229. package/lib/labware/definitions/2/corning_12_wellplate_6.9ml_flat/1.json +171 -0
  230. package/lib/labware/definitions/2/corning_12_wellplate_6.9ml_flat/2.json +180 -0
  231. package/lib/labware/definitions/2/corning_24_wellplate_3.4ml_flat/1.json +293 -0
  232. package/lib/labware/definitions/2/corning_24_wellplate_3.4ml_flat/2.json +300 -0
  233. package/lib/labware/definitions/2/corning_384_wellplate_112ul_flat/1.json +4703 -0
  234. package/lib/labware/definitions/2/corning_384_wellplate_112ul_flat/2.json +4717 -0
  235. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/1.json +535 -0
  236. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/2.json +544 -0
  237. package/lib/labware/definitions/2/corning_6_wellplate_16.8ml_flat/1.json +103 -0
  238. package/lib/labware/definitions/2/corning_6_wellplate_16.8ml_flat/2.json +110 -0
  239. package/lib/labware/definitions/2/corning_96_wellplate_360ul_flat/1.json +1049 -0
  240. package/lib/labware/definitions/2/corning_96_wellplate_360ul_flat/2.json +1063 -0
  241. package/lib/labware/definitions/2/eppendorf_96_tiprack_1000ul_eptips/1.json +1019 -0
  242. package/lib/labware/definitions/2/eppendorf_96_tiprack_10ul_eptips/1.json +1019 -0
  243. package/lib/labware/definitions/2/geb_96_tiprack_1000ul/1.json +1017 -0
  244. package/lib/labware/definitions/2/geb_96_tiprack_10ul/1.json +1017 -0
  245. package/lib/labware/definitions/2/nest_12_reservoir_15ml/1.json +190 -0
  246. package/lib/labware/definitions/2/nest_1_reservoir_195ml/1.json +54 -0
  247. package/lib/labware/definitions/2/nest_1_reservoir_195ml/2.json +56 -0
  248. package/lib/labware/definitions/2/nest_1_reservoir_290ml/1.json +54 -0
  249. package/lib/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/1.json +1018 -0
  250. package/lib/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/2.json +1039 -0
  251. package/lib/labware/definitions/2/nest_96_wellplate_200ul_flat/1.json +1017 -0
  252. package/lib/labware/definitions/2/nest_96_wellplate_200ul_flat/2.json +1031 -0
  253. package/lib/labware/definitions/2/nest_96_wellplate_2ml_deep/1.json +1121 -0
  254. package/lib/labware/definitions/2/nest_96_wellplate_2ml_deep/2.json +1137 -0
  255. package/lib/labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical/1.json +164 -0
  256. package/lib/labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical_acrylic/1.json +162 -0
  257. package/lib/labware/definitions/2/opentrons_10_tuberack_nest_4x50ml_6x15ml_conical/1.json +160 -0
  258. package/lib/labware/definitions/2/opentrons_15_tuberack_falcon_15ml_conical/1.json +211 -0
  259. package/lib/labware/definitions/2/opentrons_15_tuberack_nest_15ml_conical/1.json +209 -0
  260. package/lib/labware/definitions/2/opentrons_1_trash_1100ml_fixed/1.json +50 -0
  261. package/lib/labware/definitions/2/opentrons_1_trash_3200ml_fixed/1.json +50 -0
  262. package/lib/labware/definitions/2/opentrons_1_trash_850ml_fixed/1.json +50 -0
  263. package/lib/labware/definitions/2/opentrons_24_aluminumblock_generic_2ml_screwcap/1.json +300 -0
  264. package/lib/labware/definitions/2/opentrons_24_aluminumblock_generic_2ml_screwcap/2.json +301 -0
  265. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/1.json +299 -0
  266. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_screwcap/1.json +299 -0
  267. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_snapcap/1.json +301 -0
  268. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_screwcap/1.json +299 -0
  269. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_snapcap/1.json +301 -0
  270. package/lib/labware/definitions/2/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1.json +312 -0
  271. package/lib/labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap/1.json +311 -0
  272. package/lib/labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap_acrylic/1.json +309 -0
  273. package/lib/labware/definitions/2/opentrons_24_tuberack_generic_0.75ml_snapcap_acrylic/1.json +298 -0
  274. package/lib/labware/definitions/2/opentrons_24_tuberack_generic_2ml_screwcap/1.json +300 -0
  275. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/1.json +300 -0
  276. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_screwcap/1.json +300 -0
  277. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_snapcap/1.json +302 -0
  278. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_2ml_screwcap/1.json +300 -0
  279. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_2ml_snapcap/1.json +302 -0
  280. package/lib/labware/definitions/2/opentrons_40_aluminumblock_eppendorf_24x2ml_safelock_snapcap_generic_16x0.2ml_pcr_strip/1.json +481 -0
  281. package/lib/labware/definitions/2/opentrons_6_tuberack_falcon_50ml_conical/1.json +112 -0
  282. package/lib/labware/definitions/2/opentrons_6_tuberack_nest_50ml_conical/1.json +110 -0
  283. package/lib/labware/definitions/2/opentrons_96_aluminumblock_biorad_wellplate_200ul/1.json +1029 -0
  284. package/lib/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/1.json +1026 -0
  285. package/lib/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/2.json +1027 -0
  286. package/lib/labware/definitions/2/opentrons_96_aluminumblock_nest_wellplate_100ul/1.json +1027 -0
  287. package/lib/labware/definitions/2/opentrons_96_deep_well_adapter/1.json +41 -0
  288. package/lib/labware/definitions/2/opentrons_96_deep_well_adapter_nest_wellplate_2ml_deep/1.json +1121 -0
  289. package/lib/labware/definitions/2/opentrons_96_filtertiprack_1000ul/1.json +1017 -0
  290. package/lib/labware/definitions/2/opentrons_96_filtertiprack_10ul/1.json +1017 -0
  291. package/lib/labware/definitions/2/opentrons_96_filtertiprack_200ul/1.json +1017 -0
  292. package/lib/labware/definitions/2/opentrons_96_filtertiprack_20ul/1.json +1017 -0
  293. package/lib/labware/definitions/2/opentrons_96_flat_bottom_adapter/1.json +41 -0
  294. package/lib/labware/definitions/2/opentrons_96_flat_bottom_adapter_nest_wellplate_200ul_flat/1.json +1027 -0
  295. package/lib/labware/definitions/2/opentrons_96_pcr_adapter/1.json +1032 -0
  296. package/lib/labware/definitions/2/opentrons_96_pcr_adapter_armadillo_wellplate_200ul/1.json +1027 -0
  297. package/lib/labware/definitions/2/opentrons_96_pcr_adapter_nest_wellplate_100ul_pcr_full_skirt/1.json +1025 -0
  298. package/lib/labware/definitions/2/opentrons_96_tiprack_1000ul/1.json +1019 -0
  299. package/lib/labware/definitions/2/opentrons_96_tiprack_10ul/1.json +1019 -0
  300. package/lib/labware/definitions/2/opentrons_96_tiprack_20ul/1.json +1019 -0
  301. package/lib/labware/definitions/2/opentrons_96_tiprack_300ul/1.json +1019 -0
  302. package/lib/labware/definitions/2/opentrons_96_well_aluminum_block/1.json +1032 -0
  303. package/lib/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/1.json +1019 -0
  304. package/lib/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/2.json +1045 -0
  305. package/lib/labware/definitions/2/opentrons_aluminum_flat_bottom_plate/1.json +41 -0
  306. package/lib/labware/definitions/2/opentrons_calibration_adapter_heatershaker_module/1.json +62 -0
  307. package/lib/labware/definitions/2/opentrons_calibration_adapter_temperature_module/1.json +62 -0
  308. package/lib/labware/definitions/2/opentrons_calibration_adapter_thermocycler_module/1.json +69 -0
  309. package/lib/labware/definitions/2/opentrons_calibrationblock_short_side_left/1.json +71 -0
  310. package/lib/labware/definitions/2/opentrons_calibrationblock_short_side_right/1.json +71 -0
  311. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +1026 -0
  312. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +1026 -0
  313. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +1026 -0
  314. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +1026 -0
  315. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +1026 -0
  316. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +1026 -0
  317. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_adapter/1.json +41 -0
  318. package/lib/labware/definitions/2/opentrons_universal_flat_adapter/1.json +151 -0
  319. package/lib/labware/definitions/2/opentrons_universal_flat_adapter_corning_384_wellplate_112ul_flat/1.json +4710 -0
  320. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/1.json +1019 -0
  321. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/1.json +1019 -0
  322. package/lib/labware/definitions/2/tipone_96_tiprack_200ul/1.json +1017 -0
  323. package/lib/labware/definitions/2/usascientific_12_reservoir_22ml/1.json +192 -0
  324. package/lib/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/1.json +1116 -0
  325. package/lib/labware/fixtures/1/fixture_tiprack.json +986 -0
  326. package/lib/labware/fixtures/2/fixture_12_trough.json +188 -0
  327. package/lib/labware/fixtures/2/fixture_12_trough_v2.json +188 -0
  328. package/lib/labware/fixtures/2/fixture_24_tuberack.json +295 -0
  329. package/lib/labware/fixtures/2/fixture_384_plate.json +4316 -0
  330. package/lib/labware/fixtures/2/fixture_96_plate.json +1015 -0
  331. package/lib/labware/fixtures/2/fixture_flex_96_tiprack_1000ul.json +1026 -0
  332. package/lib/labware/fixtures/2/fixture_flex_96_tiprack_adapter.json +41 -0
  333. package/lib/labware/fixtures/2/fixture_irregular_example_1.json +600 -0
  334. package/lib/labware/fixtures/2/fixture_overlappy_wellplate.json +1113 -0
  335. package/lib/labware/fixtures/2/fixture_regular_example_1.json +57 -0
  336. package/lib/labware/fixtures/2/fixture_regular_example_2.json +95 -0
  337. package/lib/labware/fixtures/2/fixture_tiprack_1000_ul.json +1015 -0
  338. package/lib/labware/fixtures/2/fixture_tiprack_10_ul.json +1015 -0
  339. package/lib/labware/fixtures/2/fixture_tiprack_300_ul.json +1014 -0
  340. package/lib/labware/fixtures/2/fixture_trash.json +50 -0
  341. package/lib/labware/schemas/2.json +372 -0
  342. package/lib/liquid/schemas/1.json +21 -0
  343. package/lib/liquid/types/index.d.ts +5 -0
  344. package/lib/module/definitions/1.json +57 -0
  345. package/lib/module/definitions/2/magneticModuleV1.json +22 -0
  346. package/lib/module/definitions/2/magneticModuleV2.json +69 -0
  347. package/lib/module/definitions/2/temperatureModuleV1.json +22 -0
  348. package/lib/module/definitions/2/temperatureModuleV2.json +69 -0
  349. package/lib/module/definitions/2/thermocyclerModuleV1.json +23 -0
  350. package/lib/module/definitions/3/heaterShakerModuleV1.json +529 -0
  351. package/lib/module/definitions/3/magneticBlockV1.json +199 -0
  352. package/lib/module/definitions/3/magneticModuleV1.json +435 -0
  353. package/lib/module/definitions/3/magneticModuleV2.json +488 -0
  354. package/lib/module/definitions/3/temperatureModuleV1.json +190 -0
  355. package/lib/module/definitions/3/temperatureModuleV2.json +323 -0
  356. package/lib/module/definitions/3/thermocyclerModuleV1.json +1380 -0
  357. package/lib/module/definitions/3/thermocyclerModuleV2.json +3686 -0
  358. package/lib/module/fixtures/3/compatibleGenerationV1.json +69 -0
  359. package/lib/module/fixtures/3/compatibleGenerationV2.json +69 -0
  360. package/lib/module/fixtures/3/incompatibleGenerationV1.json +22 -0
  361. package/lib/module/fixtures/3/incompatibleGenerationV2.json +69 -0
  362. package/lib/module/schemas/1.json +54 -0
  363. package/lib/module/schemas/2.json +112 -0
  364. package/lib/module/schemas/3.json +206 -0
  365. package/lib/opentrons-shared-data.js +1 -1
  366. package/lib/opentrons-shared-data.js.map +1 -1
  367. package/lib/pipette/definitions/1/pipetteModelSpecs.json +10314 -0
  368. package/lib/pipette/definitions/1/pipetteNameSpecs.json +694 -0
  369. package/lib/pipette/definitions/2/general/eight_channel/p10/1_0.json +59 -0
  370. package/lib/pipette/definitions/2/general/eight_channel/p10/1_3.json +59 -0
  371. package/lib/pipette/definitions/2/general/eight_channel/p10/1_4.json +59 -0
  372. package/lib/pipette/definitions/2/general/eight_channel/p10/1_5.json +59 -0
  373. package/lib/pipette/definitions/2/general/eight_channel/p10/1_6.json +59 -0
  374. package/lib/pipette/definitions/2/general/eight_channel/p1000/1_0.json +68 -0
  375. package/lib/pipette/definitions/2/general/eight_channel/p1000/3_0.json +68 -0
  376. package/lib/pipette/definitions/2/general/eight_channel/p1000/3_3.json +68 -0
  377. package/lib/pipette/definitions/2/general/eight_channel/p1000/3_4.json +68 -0
  378. package/lib/pipette/definitions/2/general/eight_channel/p1000/3_5.json +68 -0
  379. package/lib/pipette/definitions/2/general/eight_channel/p20/2_0.json +59 -0
  380. package/lib/pipette/definitions/2/general/eight_channel/p20/2_1.json +59 -0
  381. package/lib/pipette/definitions/2/general/eight_channel/p300/1_0.json +59 -0
  382. package/lib/pipette/definitions/2/general/eight_channel/p300/1_3.json +59 -0
  383. package/lib/pipette/definitions/2/general/eight_channel/p300/1_4.json +59 -0
  384. package/lib/pipette/definitions/2/general/eight_channel/p300/1_5.json +59 -0
  385. package/lib/pipette/definitions/2/general/eight_channel/p300/2_0.json +59 -0
  386. package/lib/pipette/definitions/2/general/eight_channel/p300/2_1.json +59 -0
  387. package/lib/pipette/definitions/2/general/eight_channel/p50/1_0.json +59 -0
  388. package/lib/pipette/definitions/2/general/eight_channel/p50/1_3.json +59 -0
  389. package/lib/pipette/definitions/2/general/eight_channel/p50/1_4.json +59 -0
  390. package/lib/pipette/definitions/2/general/eight_channel/p50/1_5.json +59 -0
  391. package/lib/pipette/definitions/2/general/eight_channel/p50/3_0.json +74 -0
  392. package/lib/pipette/definitions/2/general/eight_channel/p50/3_3.json +74 -0
  393. package/lib/pipette/definitions/2/general/eight_channel/p50/3_4.json +74 -0
  394. package/lib/pipette/definitions/2/general/eight_channel/p50/3_5.json +74 -0
  395. package/lib/pipette/definitions/2/general/ninety_six_channel/p1000/1_0.json +87 -0
  396. package/lib/pipette/definitions/2/general/ninety_six_channel/p1000/3_0.json +92 -0
  397. package/lib/pipette/definitions/2/general/ninety_six_channel/p1000/3_3.json +87 -0
  398. package/lib/pipette/definitions/2/general/ninety_six_channel/p1000/3_4.json +87 -0
  399. package/lib/pipette/definitions/2/general/ninety_six_channel/p1000/3_5.json +87 -0
  400. package/lib/pipette/definitions/2/general/single_channel/p10/1_0.json +52 -0
  401. package/lib/pipette/definitions/2/general/single_channel/p10/1_3.json +52 -0
  402. package/lib/pipette/definitions/2/general/single_channel/p10/1_4.json +52 -0
  403. package/lib/pipette/definitions/2/general/single_channel/p10/1_5.json +52 -0
  404. package/lib/pipette/definitions/2/general/single_channel/p1000/1_0.json +52 -0
  405. package/lib/pipette/definitions/2/general/single_channel/p1000/1_3.json +52 -0
  406. package/lib/pipette/definitions/2/general/single_channel/p1000/1_4.json +52 -0
  407. package/lib/pipette/definitions/2/general/single_channel/p1000/1_5.json +52 -0
  408. package/lib/pipette/definitions/2/general/single_channel/p1000/2_0.json +52 -0
  409. package/lib/pipette/definitions/2/general/single_channel/p1000/2_1.json +52 -0
  410. package/lib/pipette/definitions/2/general/single_channel/p1000/2_2.json +52 -0
  411. package/lib/pipette/definitions/2/general/single_channel/p1000/3_0.json +61 -0
  412. package/lib/pipette/definitions/2/general/single_channel/p1000/3_3.json +61 -0
  413. package/lib/pipette/definitions/2/general/single_channel/p1000/3_4.json +61 -0
  414. package/lib/pipette/definitions/2/general/single_channel/p1000/3_5.json +61 -0
  415. package/lib/pipette/definitions/2/general/single_channel/p1000/3_6.json +61 -0
  416. package/lib/pipette/definitions/2/general/single_channel/p20/2_0.json +52 -0
  417. package/lib/pipette/definitions/2/general/single_channel/p20/2_1.json +52 -0
  418. package/lib/pipette/definitions/2/general/single_channel/p20/2_2.json +52 -0
  419. package/lib/pipette/definitions/2/general/single_channel/p300/1_0.json +52 -0
  420. package/lib/pipette/definitions/2/general/single_channel/p300/1_3.json +52 -0
  421. package/lib/pipette/definitions/2/general/single_channel/p300/1_4.json +52 -0
  422. package/lib/pipette/definitions/2/general/single_channel/p300/1_5.json +52 -0
  423. package/lib/pipette/definitions/2/general/single_channel/p300/2_0.json +52 -0
  424. package/lib/pipette/definitions/2/general/single_channel/p300/2_1.json +52 -0
  425. package/lib/pipette/definitions/2/general/single_channel/p50/1_0.json +52 -0
  426. package/lib/pipette/definitions/2/general/single_channel/p50/1_3.json +52 -0
  427. package/lib/pipette/definitions/2/general/single_channel/p50/1_4.json +52 -0
  428. package/lib/pipette/definitions/2/general/single_channel/p50/1_5.json +52 -0
  429. package/lib/pipette/definitions/2/general/single_channel/p50/3_0.json +67 -0
  430. package/lib/pipette/definitions/2/general/single_channel/p50/3_3.json +67 -0
  431. package/lib/pipette/definitions/2/general/single_channel/p50/3_4.json +67 -0
  432. package/lib/pipette/definitions/2/general/single_channel/p50/3_5.json +67 -0
  433. package/lib/pipette/definitions/2/geometry/eight_channel/p10/1_0.json +37 -0
  434. package/lib/pipette/definitions/2/geometry/eight_channel/p10/1_3.json +37 -0
  435. package/lib/pipette/definitions/2/geometry/eight_channel/p10/1_4.json +37 -0
  436. package/lib/pipette/definitions/2/geometry/eight_channel/p10/1_5.json +37 -0
  437. package/lib/pipette/definitions/2/geometry/eight_channel/p10/1_6.json +37 -0
  438. package/lib/pipette/definitions/2/geometry/eight_channel/p1000/1_0.json +37 -0
  439. package/lib/pipette/definitions/2/geometry/eight_channel/p1000/3_0.json +37 -0
  440. package/lib/pipette/definitions/2/geometry/eight_channel/p1000/3_3.json +37 -0
  441. package/lib/pipette/definitions/2/geometry/eight_channel/p1000/3_4.json +37 -0
  442. package/lib/pipette/definitions/2/geometry/eight_channel/p1000/3_5.json +37 -0
  443. package/lib/pipette/definitions/2/geometry/eight_channel/p20/2_0.json +37 -0
  444. package/lib/pipette/definitions/2/geometry/eight_channel/p20/2_1.json +37 -0
  445. package/lib/pipette/definitions/2/geometry/eight_channel/p300/1_0.json +37 -0
  446. package/lib/pipette/definitions/2/geometry/eight_channel/p300/1_3.json +37 -0
  447. package/lib/pipette/definitions/2/geometry/eight_channel/p300/1_4.json +37 -0
  448. package/lib/pipette/definitions/2/geometry/eight_channel/p300/1_5.json +37 -0
  449. package/lib/pipette/definitions/2/geometry/eight_channel/p300/2_0.json +37 -0
  450. package/lib/pipette/definitions/2/geometry/eight_channel/p300/2_1.json +37 -0
  451. package/lib/pipette/definitions/2/geometry/eight_channel/p50/1_0.json +37 -0
  452. package/lib/pipette/definitions/2/geometry/eight_channel/p50/1_3.json +37 -0
  453. package/lib/pipette/definitions/2/geometry/eight_channel/p50/1_4.json +37 -0
  454. package/lib/pipette/definitions/2/geometry/eight_channel/p50/1_5.json +37 -0
  455. package/lib/pipette/definitions/2/geometry/eight_channel/p50/3_0.json +37 -0
  456. package/lib/pipette/definitions/2/geometry/eight_channel/p50/3_3.json +37 -0
  457. package/lib/pipette/definitions/2/geometry/eight_channel/p50/3_4.json +37 -0
  458. package/lib/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +37 -0
  459. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p1000/1_0.json +291 -0
  460. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_0.json +291 -0
  461. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_3.json +291 -0
  462. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_4.json +291 -0
  463. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p1000/3_5.json +291 -0
  464. package/lib/pipette/definitions/2/geometry/single_channel/p10/1_0.json +10 -0
  465. package/lib/pipette/definitions/2/geometry/single_channel/p10/1_3.json +10 -0
  466. package/lib/pipette/definitions/2/geometry/single_channel/p10/1_4.json +10 -0
  467. package/lib/pipette/definitions/2/geometry/single_channel/p10/1_5.json +10 -0
  468. package/lib/pipette/definitions/2/geometry/single_channel/p1000/1_0.json +10 -0
  469. package/lib/pipette/definitions/2/geometry/single_channel/p1000/1_3.json +10 -0
  470. package/lib/pipette/definitions/2/geometry/single_channel/p1000/1_4.json +10 -0
  471. package/lib/pipette/definitions/2/geometry/single_channel/p1000/1_5.json +10 -0
  472. package/lib/pipette/definitions/2/geometry/single_channel/p1000/2_0.json +10 -0
  473. package/lib/pipette/definitions/2/geometry/single_channel/p1000/2_1.json +10 -0
  474. package/lib/pipette/definitions/2/geometry/single_channel/p1000/2_2.json +10 -0
  475. package/lib/pipette/definitions/2/geometry/single_channel/p1000/3_0.json +10 -0
  476. package/lib/pipette/definitions/2/geometry/single_channel/p1000/3_3.json +10 -0
  477. package/lib/pipette/definitions/2/geometry/single_channel/p1000/3_4.json +10 -0
  478. package/lib/pipette/definitions/2/geometry/single_channel/p1000/3_5.json +10 -0
  479. package/lib/pipette/definitions/2/geometry/single_channel/p1000/3_6.json +10 -0
  480. package/lib/pipette/definitions/2/geometry/single_channel/p20/2_0.json +10 -0
  481. package/lib/pipette/definitions/2/geometry/single_channel/p20/2_1.json +10 -0
  482. package/lib/pipette/definitions/2/geometry/single_channel/p20/2_2.json +10 -0
  483. package/lib/pipette/definitions/2/geometry/single_channel/p300/1_0.json +10 -0
  484. package/lib/pipette/definitions/2/geometry/single_channel/p300/1_3.json +10 -0
  485. package/lib/pipette/definitions/2/geometry/single_channel/p300/1_4.json +10 -0
  486. package/lib/pipette/definitions/2/geometry/single_channel/p300/1_5.json +10 -0
  487. package/lib/pipette/definitions/2/geometry/single_channel/p300/2_0.json +10 -0
  488. package/lib/pipette/definitions/2/geometry/single_channel/p300/2_1.json +10 -0
  489. package/lib/pipette/definitions/2/geometry/single_channel/p50/1_0.json +10 -0
  490. package/lib/pipette/definitions/2/geometry/single_channel/p50/1_3.json +10 -0
  491. package/lib/pipette/definitions/2/geometry/single_channel/p50/1_4.json +10 -0
  492. package/lib/pipette/definitions/2/geometry/single_channel/p50/1_5.json +10 -0
  493. package/lib/pipette/definitions/2/geometry/single_channel/p50/3_0.json +10 -0
  494. package/lib/pipette/definitions/2/geometry/single_channel/p50/3_3.json +10 -0
  495. package/lib/pipette/definitions/2/geometry/single_channel/p50/3_4.json +10 -0
  496. package/lib/pipette/definitions/2/geometry/single_channel/p50/3_5.json +10 -0
  497. package/lib/pipette/definitions/2/liquid/eight_channel/p10/default/1_0.json +58 -0
  498. package/lib/pipette/definitions/2/liquid/eight_channel/p10/default/1_3.json +58 -0
  499. package/lib/pipette/definitions/2/liquid/eight_channel/p10/default/1_4.json +58 -0
  500. package/lib/pipette/definitions/2/liquid/eight_channel/p10/default/1_5.json +47 -0
  501. package/lib/pipette/definitions/2/liquid/eight_channel/p10/default/1_6.json +55 -0
  502. package/lib/pipette/definitions/2/liquid/eight_channel/p1000/default/1_0.json +356 -0
  503. package/lib/pipette/definitions/2/liquid/eight_channel/p1000/default/3_0.json +359 -0
  504. package/lib/pipette/definitions/2/liquid/eight_channel/p1000/default/3_3.json +359 -0
  505. package/lib/pipette/definitions/2/liquid/eight_channel/p1000/default/3_4.json +359 -0
  506. package/lib/pipette/definitions/2/liquid/eight_channel/p1000/default/3_5.json +239 -0
  507. package/lib/pipette/definitions/2/liquid/eight_channel/p20/default/2_0.json +311 -0
  508. package/lib/pipette/definitions/2/liquid/eight_channel/p20/default/2_1.json +191 -0
  509. package/lib/pipette/definitions/2/liquid/eight_channel/p300/default/1_0.json +67 -0
  510. package/lib/pipette/definitions/2/liquid/eight_channel/p300/default/1_3.json +67 -0
  511. package/lib/pipette/definitions/2/liquid/eight_channel/p300/default/1_4.json +67 -0
  512. package/lib/pipette/definitions/2/liquid/eight_channel/p300/default/1_5.json +67 -0
  513. package/lib/pipette/definitions/2/liquid/eight_channel/p300/default/2_0.json +190 -0
  514. package/lib/pipette/definitions/2/liquid/eight_channel/p300/default/2_1.json +190 -0
  515. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/1_0.json +128 -0
  516. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/1_3.json +128 -0
  517. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/1_4.json +128 -0
  518. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/1_5.json +110 -0
  519. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/3_0.json +99 -0
  520. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/3_3.json +99 -0
  521. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/3_4.json +99 -0
  522. package/lib/pipette/definitions/2/liquid/eight_channel/p50/default/3_5.json +91 -0
  523. package/lib/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_0.json +94 -0
  524. package/lib/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_3.json +89 -0
  525. package/lib/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_4.json +89 -0
  526. package/lib/pipette/definitions/2/liquid/eight_channel/p50/lowVolumeDefault/3_5.json +89 -0
  527. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/1_0.json +188 -0
  528. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_0.json +188 -0
  529. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_3.json +188 -0
  530. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_4.json +188 -0
  531. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p1000/default/3_5.json +188 -0
  532. package/lib/pipette/definitions/2/liquid/single_channel/p10/default/1_0.json +59 -0
  533. package/lib/pipette/definitions/2/liquid/single_channel/p10/default/1_3.json +59 -0
  534. package/lib/pipette/definitions/2/liquid/single_channel/p10/default/1_4.json +56 -0
  535. package/lib/pipette/definitions/2/liquid/single_channel/p10/default/1_5.json +54 -0
  536. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/1_0.json +48 -0
  537. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/1_3.json +48 -0
  538. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/1_4.json +48 -0
  539. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/1_5.json +48 -0
  540. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/2_0.json +105 -0
  541. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/2_1.json +107 -0
  542. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/2_2.json +107 -0
  543. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/3_0.json +356 -0
  544. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/3_3.json +356 -0
  545. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/3_4.json +282 -0
  546. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/3_5.json +204 -0
  547. package/lib/pipette/definitions/2/liquid/single_channel/p1000/default/3_6.json +204 -0
  548. package/lib/pipette/definitions/2/liquid/single_channel/p20/default/2_0.json +431 -0
  549. package/lib/pipette/definitions/2/liquid/single_channel/p20/default/2_1.json +251 -0
  550. package/lib/pipette/definitions/2/liquid/single_channel/p20/default/2_2.json +311 -0
  551. package/lib/pipette/definitions/2/liquid/single_channel/p300/default/1_0.json +99 -0
  552. package/lib/pipette/definitions/2/liquid/single_channel/p300/default/1_3.json +99 -0
  553. package/lib/pipette/definitions/2/liquid/single_channel/p300/default/1_4.json +99 -0
  554. package/lib/pipette/definitions/2/liquid/single_channel/p300/default/1_5.json +75 -0
  555. package/lib/pipette/definitions/2/liquid/single_channel/p300/default/2_0.json +188 -0
  556. package/lib/pipette/definitions/2/liquid/single_channel/p300/default/2_1.json +188 -0
  557. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/1_0.json +119 -0
  558. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/1_3.json +128 -0
  559. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/1_4.json +128 -0
  560. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/1_5.json +104 -0
  561. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/3_0.json +98 -0
  562. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/3_3.json +98 -0
  563. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/3_4.json +100 -0
  564. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/3_5.json +80 -0
  565. package/lib/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_0.json +78 -0
  566. package/lib/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_3.json +78 -0
  567. package/lib/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_4.json +78 -0
  568. package/lib/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_5.json +76 -0
  569. package/lib/pipette/fixtures/name/pipetteNameSpecFixtures.json +170 -0
  570. package/lib/pipette/schemas/1/pipetteModelSpecsSchema.json +153 -0
  571. package/lib/pipette/schemas/1/pipetteNameSpecsSchema.json +89 -0
  572. package/lib/pipette/schemas/2/pipetteGeometrySchema.json +81 -0
  573. package/lib/pipette/schemas/2/pipetteLiquidPropertiesSchema.json +120 -0
  574. package/lib/pipette/schemas/2/pipettePropertiesSchema.json +287 -0
  575. package/lib/protocol/fixtures/1/simple.json +73 -0
  576. package/lib/protocol/fixtures/3/simple.json +1307 -0
  577. package/lib/protocol/fixtures/3/testAllAtomicSingleV3.json +2281 -0
  578. package/lib/protocol/fixtures/3/testTrickyLabwareV3.json +2576 -0
  579. package/lib/protocol/fixtures/3/unusedPipette.json +1311 -0
  580. package/lib/protocol/fixtures/4/pipetteMultiChannelProtocolV4.json +2561 -0
  581. package/lib/protocol/fixtures/4/simpleV4.json +1309 -0
  582. package/lib/protocol/fixtures/4/testMagneticModuleV4.json +2156 -0
  583. package/lib/protocol/fixtures/4/testModulesProtocol.json +2561 -0
  584. package/lib/protocol/fixtures/4/testTemperatureModuleV4.json +1480 -0
  585. package/lib/protocol/fixtures/4/testThermocyclerModuleV4.json +2182 -0
  586. package/lib/protocol/fixtures/4/transferSettings.json +5482 -0
  587. package/lib/protocol/fixtures/5/multipleTipracks.json +2476 -0
  588. package/lib/protocol/fixtures/5/multipleTipracksWithTC.json +3544 -0
  589. package/lib/protocol/fixtures/5/simpleV5.json +1328 -0
  590. package/lib/protocol/fixtures/6/heaterShakerCommands.json +1421 -0
  591. package/lib/protocol/fixtures/6/heaterShakerCommandsWithResultsKey.json +4725 -0
  592. package/lib/protocol/fixtures/6/multipleTempModules.json +11060 -0
  593. package/lib/protocol/fixtures/6/multipleTipracks.json +5020 -0
  594. package/lib/protocol/fixtures/6/multipleTipracksWithTC.json +7057 -0
  595. package/lib/protocol/fixtures/6/oneTiprack.json +1388 -0
  596. package/lib/protocol/fixtures/6/simpleV6.json +1493 -0
  597. package/lib/protocol/fixtures/6/tempAndMagModuleCommands.json +1412 -0
  598. package/lib/protocol/fixtures/6/transferSettings.json +11060 -0
  599. package/lib/protocol/fixtures/7/moveLabware.json +1303 -0
  600. package/lib/protocol/fixtures/7/simpleV7.json +1495 -0
  601. package/lib/protocol/fixtures/8/moveLabware8.json +1309 -0
  602. package/lib/protocol/fixtures/8/moveLabwareFlex8.json +1309 -0
  603. package/lib/protocol/fixtures/8/simpleFlexV8.json +1475 -0
  604. package/lib/protocol/fixtures/8/simpleV8.json +1473 -0
  605. package/lib/protocol/index.d.ts +10 -0
  606. package/lib/protocol/schemas/1.json +365 -0
  607. package/lib/protocol/schemas/2.json +390 -0
  608. package/lib/protocol/schemas/3.json +336 -0
  609. package/lib/protocol/schemas/4.json +620 -0
  610. package/lib/protocol/schemas/5.json +658 -0
  611. package/lib/protocol/schemas/6.json +1166 -0
  612. package/lib/protocol/schemas/7.json +270 -0
  613. package/lib/protocol/schemas/8.json +141 -0
  614. package/lib/protocol/types/schemaV1.d.ts +89 -0
  615. package/lib/protocol/types/schemaV3.d.ts +100 -0
  616. package/lib/protocol/types/schemaV4.d.ts +102 -0
  617. package/lib/protocol/types/schemaV5.d.ts +24 -0
  618. package/lib/protocol/types/schemaV5Addendum.d.ts +13 -0
  619. package/lib/protocol/types/schemaV6/command/gantry.d.ts +110 -0
  620. package/lib/protocol/types/schemaV6/command/index.d.ts +46 -0
  621. package/lib/protocol/types/schemaV6/command/module.d.ts +187 -0
  622. package/lib/protocol/types/schemaV6/command/pipetting.d.ts +75 -0
  623. package/lib/protocol/types/schemaV6/command/setup.d.ts +96 -0
  624. package/lib/protocol/types/schemaV6/command/timing.d.ts +39 -0
  625. package/lib/protocol/types/schemaV6/index.d.ts +110 -0
  626. package/lib/protocol/types/schemaV7/command/annotation.d.ts +24 -0
  627. package/lib/protocol/types/schemaV7/command/calibration.d.ts +58 -0
  628. package/lib/protocol/types/schemaV7/command/gantry.d.ts +111 -0
  629. package/lib/protocol/types/schemaV7/command/incidental.d.ts +15 -0
  630. package/lib/protocol/types/schemaV7/command/index.d.ts +40 -0
  631. package/lib/protocol/types/schemaV7/command/module.d.ts +191 -0
  632. package/lib/protocol/types/schemaV7/command/pipetting.d.ts +119 -0
  633. package/lib/protocol/types/schemaV7/command/setup.d.ts +108 -0
  634. package/lib/protocol/types/schemaV7/command/timing.d.ts +39 -0
  635. package/lib/protocol/types/schemaV7/index.d.ts +94 -0
  636. package/lib/protocol/types/schemaV8/index.d.ts +126 -0
  637. package/package.json +1 -1
@@ -0,0 +1,405 @@
1
+ import type { CutoutFixtureId, CutoutId, AddressableAreaName } from '../deck'
2
+ import type { ModuleType } from './types'
3
+
4
+ // constants for dealing with robot coordinate system (eg in labwareTools)
5
+ export const SLOT_LENGTH_MM = 127.76 // along X axis in robot coordinate system
6
+
7
+ export const SLOT_WIDTH_MM = 85.48 // along Y axis in robot coordinate system
8
+
9
+ // constants for SVG renders of the deck
10
+ export const SLOT_RENDER_WIDTH = SLOT_LENGTH_MM // along X axis in SVG coords
11
+
12
+ export const SLOT_RENDER_HEIGHT = SLOT_WIDTH_MM // along Y axis in SVG coords
13
+
14
+ // taken from opentrons_1_trash_1100ml_fixed v1's dimensions
15
+ export const FIXED_TRASH_RENDER_HEIGHT = 165.86 // along Y axis in SVG coords
16
+
17
+ // used for module visualization, remove this when we start using actual module dimensions
18
+ export const STD_SLOT_X_DIM = 128
19
+ export const STD_SLOT_Y_DIM = 86
20
+ export const STD_SLOT_DIVIDER_WIDTH = 4
21
+
22
+ export const OPENTRONS_LABWARE_NAMESPACE = 'opentrons'
23
+ export const FIXED_TRASH_ID = 'fixedTrash'
24
+
25
+ // TODO: IL 2020-02-19 These 3 constants are DEPRECATED because they're ambiguous model vs type.
26
+ export const THERMOCYCLER: 'thermocycler' = 'thermocycler'
27
+ export const TEMPDECK: 'tempdeck' = 'tempdeck'
28
+ export const MAGDECK: 'magdeck' = 'magdeck'
29
+
30
+ // these are the Module Def Schema v2 equivalents of the above. They should match the names of JSON definitions
31
+ // in shared-data/module/definitions/2.
32
+ export const MAGNETIC_MODULE_V1: 'magneticModuleV1' = 'magneticModuleV1'
33
+ export const MAGNETIC_MODULE_V2: 'magneticModuleV2' = 'magneticModuleV2'
34
+ export const TEMPERATURE_MODULE_V1: 'temperatureModuleV1' =
35
+ 'temperatureModuleV1'
36
+ export const TEMPERATURE_MODULE_V2: 'temperatureModuleV2' =
37
+ 'temperatureModuleV2'
38
+ export const THERMOCYCLER_MODULE_V1: 'thermocyclerModuleV1' =
39
+ 'thermocyclerModuleV1'
40
+ export const THERMOCYCLER_MODULE_V2: 'thermocyclerModuleV2' =
41
+ 'thermocyclerModuleV2'
42
+ export const HEATERSHAKER_MODULE_V1: 'heaterShakerModuleV1' =
43
+ 'heaterShakerModuleV1'
44
+
45
+ export const MAGNETIC_BLOCK_V1: 'magneticBlockV1' = 'magneticBlockV1'
46
+
47
+ export const GRIPPER_V1: 'gripperV1' = 'gripperV1'
48
+ export const GRIPPER_V1_1: 'gripperV1.1' = 'gripperV1.1'
49
+ export const GRIPPER_V1_2: 'gripperV1.2' = 'gripperV1.2'
50
+ export const GRIPPER_MODELS = [GRIPPER_V1, GRIPPER_V1_1, GRIPPER_V1_2]
51
+
52
+ // robot display name
53
+ export const FLEX_DISPLAY_NAME: 'Opentrons Flex' = 'Opentrons Flex'
54
+
55
+ // pipette display categories
56
+ export const FLEX: 'FLEX' = 'FLEX'
57
+ export const GEN2: 'GEN2' = 'GEN2'
58
+ export const GEN1: 'GEN1' = 'GEN1'
59
+
60
+ // pipette mounts
61
+ export const LEFT: 'left' = 'left'
62
+ export const RIGHT: 'right' = 'right'
63
+ export const EXTENSION: 'extension' = 'extension'
64
+
65
+ // fake slot that PD uses to represent the slot the thermocycler sits in
66
+ export const SPAN7_8_10_11_SLOT: 'span7_8_10_11' = 'span7_8_10_11'
67
+
68
+ // NOTE: these are NOT module MODELs, they are `moduleType`s. Should match ENUM in module definition file.
69
+ export const TEMPERATURE_MODULE_TYPE: 'temperatureModuleType' =
70
+ 'temperatureModuleType'
71
+ export const MAGNETIC_MODULE_TYPE: 'magneticModuleType' = 'magneticModuleType'
72
+ export const THERMOCYCLER_MODULE_TYPE: 'thermocyclerModuleType' =
73
+ 'thermocyclerModuleType'
74
+ export const HEATERSHAKER_MODULE_TYPE: 'heaterShakerModuleType' =
75
+ 'heaterShakerModuleType'
76
+ export const MAGNETIC_BLOCK_TYPE: 'magneticBlockType' = 'magneticBlockType'
77
+
78
+ export const MAGNETIC_MODULE_MODELS = [MAGNETIC_MODULE_V1, MAGNETIC_MODULE_V2]
79
+
80
+ export const NON_CONNECTING_MODULE_TYPES: ModuleType[] = [MAGNETIC_BLOCK_TYPE]
81
+
82
+ export const TEMPERATURE_MODULE_MODELS = [
83
+ TEMPERATURE_MODULE_V1,
84
+ TEMPERATURE_MODULE_V2,
85
+ ]
86
+
87
+ export const THERMOCYCLER_MODULE_MODELS = [
88
+ THERMOCYCLER_MODULE_V1,
89
+ THERMOCYCLER_MODULE_V2,
90
+ ]
91
+
92
+ export const HEATERSHAKER_MODULE_MODELS = [HEATERSHAKER_MODULE_V1]
93
+
94
+ export const MAGNETIC_BLOCK_MODELS = [MAGNETIC_BLOCK_V1]
95
+
96
+ export const MODULE_MODELS = [
97
+ ...MAGNETIC_MODULE_MODELS,
98
+ ...TEMPERATURE_MODULE_MODELS,
99
+ ...THERMOCYCLER_MODULE_MODELS,
100
+ ...HEATERSHAKER_MODULE_MODELS,
101
+ ...MAGNETIC_BLOCK_MODELS,
102
+ ]
103
+
104
+ export const MODULE_MODELS_OT2_ONLY = [
105
+ ...MAGNETIC_MODULE_MODELS,
106
+ TEMPERATURE_MODULE_V1,
107
+ THERMOCYCLER_MODULE_V1,
108
+ ]
109
+
110
+ export const MODULE_TYPES = [
111
+ TEMPERATURE_MODULE_TYPE,
112
+ MAGNETIC_MODULE_TYPE,
113
+ THERMOCYCLER_MODULE_TYPE,
114
+ HEATERSHAKER_MODULE_TYPE,
115
+ MAGNETIC_BLOCK_TYPE,
116
+ ]
117
+
118
+ export const GEN_ONE_MULTI_PIPETTES = ['p10_multi', 'p50_multi', 'p300_multi']
119
+
120
+ export const IDENTITY_VECTOR = { x: 0, y: 0, z: 0 }
121
+
122
+ export const ROBOT_MODELS = ['OT-2 Standard', 'OT-3 Standard']
123
+ export const OT2_ROBOT_TYPE = 'OT-2 Standard' as const
124
+ export const FLEX_ROBOT_TYPE = 'OT-3 Standard' as const
125
+
126
+ // TODO(jr, 7/13/23): rename this constant to FLEX_PIPETTES
127
+ export const OT3_PIPETTES = [
128
+ 'p300_single_flex',
129
+ 'p1000_single_flex',
130
+ 'p20_single_flex',
131
+ 'p50_single_flex',
132
+ 'p50_multi_flex',
133
+ 'p1000_multi_flex',
134
+ 'p1000_96',
135
+ ]
136
+ export const OT2_PIPETTES = [
137
+ 'p300_single',
138
+ 'p300_multi',
139
+ 'p300_single_gen2',
140
+ 'p300_multi_gen2',
141
+ 'p1000_single',
142
+ 'p1000_single_gen2',
143
+ 'p20_single_gen2',
144
+ 'p20_multi_gen2',
145
+ 'p50_single',
146
+ 'p50_multi',
147
+ 'p10_single',
148
+ 'p10_multi',
149
+ ]
150
+
151
+ // magnetic module info
152
+ export const MM: 'mm' = 'mm'
153
+ export const MAGNETIC_MODULES_MAX_ENGAGE_HEIGHT = 20
154
+ export const MAGNETIC_MODULE_V2_DISNEGAGED_HEIGHT = -2.5 // TODO(jr, 6/14/22): change this to -4 when ticket #9585 merges
155
+ export const MAGNETIC_MODULE_V1_DISNEGAGED_HEIGHT = -2.5
156
+
157
+ export const MAGNETIC_MODULE_TYPE_LABWARE_BOTTOM_HEIGHT = 0
158
+
159
+ export const CELSIUS: '°C' = '°C'
160
+ export const TEMP_MIN = 4
161
+ export const TEMP_MAX = 96
162
+ export const TEMP_BLOCK_MAX = 99
163
+ export const TEMP_LID_MIN = 37
164
+ export const TEMP_LID_MAX = 110
165
+ export const HS_TEMP_MIN = 37
166
+ export const HS_TEMP_MAX = 95
167
+ export const MICRO_LITERS = 'µL'
168
+
169
+ // Heater shaker module info
170
+ export const RPM: 'RPM' = 'RPM'
171
+ export const HS_RPM_MIN = 200
172
+ export const HS_RPM_MAX = 3000
173
+ export const TOO_HOT_TEMP = 48.9
174
+ export const MAX_LABWARE_HEIGHT_EAST_WEST_HEATER_SHAKER_MM = 53
175
+
176
+ export const OT2_STANDARD_MODEL: 'OT-2 Standard' = 'OT-2 Standard'
177
+ export const OT2_STANDARD_DECKID: 'ot2_standard' = 'ot2_standard'
178
+ export const FLEX_STANDARD_MODEL: 'OT-3 Standard' = 'OT-3 Standard'
179
+ export const FLEX_STANDARD_DECKID: 'ot3_standard' = 'ot3_standard'
180
+
181
+ export const SINGLE_CHANNEL: 'Single-Channel' = 'Single-Channel'
182
+ export const EIGHT_CHANNEL: '8-Channel' = '8-Channel'
183
+ export const NINETY_SIX_CHANNEL: '96-Channel' = '96-Channel'
184
+ export const SINGLE_MOUNT_PIPETTES: 'Single-Channel_and_8-Channel' =
185
+ 'Single-Channel_and_8-Channel'
186
+
187
+ // Thermocycler module info
188
+ export const TC_MODULE_LOCATION_OT2: '7,8,10,11' = '7,8,10,11'
189
+ export const TC_MODULE_LOCATION_OT3: 'A1+B1' = 'A1+B1'
190
+
191
+ export const WEIGHT_OF_96_CHANNEL: '~10kg' = '~10kg'
192
+
193
+ export const MOVABLE_TRASH_CUTOUTS: CutoutId[] = [
194
+ 'cutoutA1',
195
+ 'cutoutB1',
196
+ 'cutoutC1',
197
+ 'cutoutD1',
198
+ 'cutoutA3',
199
+ 'cutoutB3',
200
+ 'cutoutC3',
201
+ 'cutoutD3',
202
+ ]
203
+
204
+ export const SINGLE_LEFT_CUTOUTS: CutoutId[] = [
205
+ 'cutoutA1',
206
+ 'cutoutB1',
207
+ 'cutoutC1',
208
+ 'cutoutD1',
209
+ ]
210
+
211
+ export const SINGLE_CENTER_CUTOUTS: CutoutId[] = [
212
+ 'cutoutA2',
213
+ 'cutoutB2',
214
+ 'cutoutC2',
215
+ 'cutoutD2',
216
+ ]
217
+
218
+ export const SINGLE_RIGHT_CUTOUTS: CutoutId[] = [
219
+ 'cutoutA3',
220
+ 'cutoutB3',
221
+ 'cutoutC3',
222
+ 'cutoutD3',
223
+ ]
224
+
225
+ export const STAGING_AREA_CUTOUTS: CutoutId[] = [
226
+ 'cutoutA3',
227
+ 'cutoutB3',
228
+ 'cutoutC3',
229
+ 'cutoutD3',
230
+ ]
231
+
232
+ export const WASTE_CHUTE_CUTOUT: 'cutoutD3' = 'cutoutD3'
233
+
234
+ export const A1_ADDRESSABLE_AREA: 'A1' = 'A1'
235
+ export const A2_ADDRESSABLE_AREA: 'A2' = 'A2'
236
+ export const A3_ADDRESSABLE_AREA: 'A3' = 'A3'
237
+ export const A4_ADDRESSABLE_AREA: 'A4' = 'A4'
238
+ export const B1_ADDRESSABLE_AREA: 'B1' = 'B1'
239
+ export const B2_ADDRESSABLE_AREA: 'B2' = 'B2'
240
+ export const B3_ADDRESSABLE_AREA: 'B3' = 'B3'
241
+ export const B4_ADDRESSABLE_AREA: 'B4' = 'B4'
242
+ export const C1_ADDRESSABLE_AREA: 'C1' = 'C1'
243
+ export const C2_ADDRESSABLE_AREA: 'C2' = 'C2'
244
+ export const C3_ADDRESSABLE_AREA: 'C3' = 'C3'
245
+ export const C4_ADDRESSABLE_AREA: 'C4' = 'C4'
246
+ export const D1_ADDRESSABLE_AREA: 'D1' = 'D1'
247
+ export const D2_ADDRESSABLE_AREA: 'D2' = 'D2'
248
+ export const D3_ADDRESSABLE_AREA: 'D3' = 'D3'
249
+ export const D4_ADDRESSABLE_AREA: 'D4' = 'D4'
250
+
251
+ export const MOVABLE_TRASH_A1_ADDRESSABLE_AREA: 'movableTrashA1' =
252
+ 'movableTrashA1'
253
+ export const MOVABLE_TRASH_A3_ADDRESSABLE_AREA: 'movableTrashA3' =
254
+ 'movableTrashA3'
255
+ export const MOVABLE_TRASH_B1_ADDRESSABLE_AREA: 'movableTrashB1' =
256
+ 'movableTrashB1'
257
+ export const MOVABLE_TRASH_B3_ADDRESSABLE_AREA: 'movableTrashB3' =
258
+ 'movableTrashB3'
259
+ export const MOVABLE_TRASH_C1_ADDRESSABLE_AREA: 'movableTrashC1' =
260
+ 'movableTrashC1'
261
+ export const MOVABLE_TRASH_C3_ADDRESSABLE_AREA: 'movableTrashC3' =
262
+ 'movableTrashC3'
263
+ export const MOVABLE_TRASH_D1_ADDRESSABLE_AREA: 'movableTrashD1' =
264
+ 'movableTrashD1'
265
+ export const MOVABLE_TRASH_D3_ADDRESSABLE_AREA: 'movableTrashD3' =
266
+ 'movableTrashD3'
267
+
268
+ export const ONE_CHANNEL_WASTE_CHUTE_ADDRESSABLE_AREA: '1ChannelWasteChute' =
269
+ '1ChannelWasteChute'
270
+ export const EIGHT_CHANNEL_WASTE_CHUTE_ADDRESSABLE_AREA: '8ChannelWasteChute' =
271
+ '8ChannelWasteChute'
272
+ export const NINETY_SIX_CHANNEL_WASTE_CHUTE_ADDRESSABLE_AREA: '96ChannelWasteChute' =
273
+ '96ChannelWasteChute'
274
+ export const GRIPPER_WASTE_CHUTE_ADDRESSABLE_AREA: 'gripperWasteChute' =
275
+ 'gripperWasteChute'
276
+
277
+ export const ADDRESSABLE_AREA_1: '1' = '1'
278
+ export const ADDRESSABLE_AREA_2: '2' = '2'
279
+ export const ADDRESSABLE_AREA_3: '3' = '3'
280
+ export const ADDRESSABLE_AREA_4: '4' = '4'
281
+ export const ADDRESSABLE_AREA_5: '5' = '5'
282
+ export const ADDRESSABLE_AREA_6: '6' = '6'
283
+ export const ADDRESSABLE_AREA_7: '7' = '7'
284
+ export const ADDRESSABLE_AREA_8: '8' = '8'
285
+ export const ADDRESSABLE_AREA_9: '9' = '9'
286
+ export const ADDRESSABLE_AREA_10: '10' = '10'
287
+ export const ADDRESSABLE_AREA_11: '11' = '11'
288
+
289
+ export const OT2_SINGLE_SLOT_ADDRESSABLE_AREAS: AddressableAreaName[] = [
290
+ ADDRESSABLE_AREA_1,
291
+ ADDRESSABLE_AREA_2,
292
+ ADDRESSABLE_AREA_3,
293
+ ADDRESSABLE_AREA_4,
294
+ ADDRESSABLE_AREA_5,
295
+ ADDRESSABLE_AREA_6,
296
+ ADDRESSABLE_AREA_7,
297
+ ADDRESSABLE_AREA_8,
298
+ ADDRESSABLE_AREA_9,
299
+ ADDRESSABLE_AREA_10,
300
+ ADDRESSABLE_AREA_11,
301
+ ]
302
+
303
+ export const FLEX_SINGLE_SLOT_ADDRESSABLE_AREAS: AddressableAreaName[] = [
304
+ A1_ADDRESSABLE_AREA,
305
+ A2_ADDRESSABLE_AREA,
306
+ A3_ADDRESSABLE_AREA,
307
+ B1_ADDRESSABLE_AREA,
308
+ B2_ADDRESSABLE_AREA,
309
+ B3_ADDRESSABLE_AREA,
310
+ C1_ADDRESSABLE_AREA,
311
+ C2_ADDRESSABLE_AREA,
312
+ C3_ADDRESSABLE_AREA,
313
+ D1_ADDRESSABLE_AREA,
314
+ D2_ADDRESSABLE_AREA,
315
+ D3_ADDRESSABLE_AREA,
316
+ ]
317
+
318
+ export const FLEX_STAGING_AREA_SLOT_ADDRESSABLE_AREAS: AddressableAreaName[] = [
319
+ A4_ADDRESSABLE_AREA,
320
+ B4_ADDRESSABLE_AREA,
321
+ C4_ADDRESSABLE_AREA,
322
+ D4_ADDRESSABLE_AREA,
323
+ ]
324
+
325
+ export const MOVABLE_TRASH_ADDRESSABLE_AREAS: AddressableAreaName[] = [
326
+ MOVABLE_TRASH_A1_ADDRESSABLE_AREA,
327
+ MOVABLE_TRASH_A3_ADDRESSABLE_AREA,
328
+ MOVABLE_TRASH_B1_ADDRESSABLE_AREA,
329
+ MOVABLE_TRASH_B3_ADDRESSABLE_AREA,
330
+ MOVABLE_TRASH_C1_ADDRESSABLE_AREA,
331
+ MOVABLE_TRASH_C3_ADDRESSABLE_AREA,
332
+ MOVABLE_TRASH_D1_ADDRESSABLE_AREA,
333
+ MOVABLE_TRASH_D3_ADDRESSABLE_AREA,
334
+ ]
335
+
336
+ export const WASTE_CHUTE_ADDRESSABLE_AREAS: AddressableAreaName[] = [
337
+ ONE_CHANNEL_WASTE_CHUTE_ADDRESSABLE_AREA,
338
+ EIGHT_CHANNEL_WASTE_CHUTE_ADDRESSABLE_AREA,
339
+ NINETY_SIX_CHANNEL_WASTE_CHUTE_ADDRESSABLE_AREA,
340
+ GRIPPER_WASTE_CHUTE_ADDRESSABLE_AREA,
341
+ ]
342
+
343
+ export const SINGLE_LEFT_SLOT_FIXTURE: 'singleLeftSlot' = 'singleLeftSlot'
344
+ export const SINGLE_CENTER_SLOT_FIXTURE: 'singleCenterSlot' = 'singleCenterSlot'
345
+ export const SINGLE_RIGHT_SLOT_FIXTURE: 'singleRightSlot' = 'singleRightSlot'
346
+
347
+ export const STAGING_AREA_RIGHT_SLOT_FIXTURE: 'stagingAreaRightSlot' =
348
+ 'stagingAreaRightSlot'
349
+
350
+ export const TRASH_BIN_ADAPTER_FIXTURE: 'trashBinAdapter' = 'trashBinAdapter'
351
+
352
+ export const WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE: 'wasteChuteRightAdapterCovered' =
353
+ 'wasteChuteRightAdapterCovered'
354
+ export const WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE: 'wasteChuteRightAdapterNoCover' =
355
+ 'wasteChuteRightAdapterNoCover'
356
+ export const STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE: 'stagingAreaSlotWithWasteChuteRightAdapterCovered' =
357
+ 'stagingAreaSlotWithWasteChuteRightAdapterCovered'
358
+ export const STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE: 'stagingAreaSlotWithWasteChuteRightAdapterNoCover' =
359
+ 'stagingAreaSlotWithWasteChuteRightAdapterNoCover'
360
+
361
+ export const SINGLE_SLOT_FIXTURES: CutoutFixtureId[] = [
362
+ SINGLE_LEFT_SLOT_FIXTURE,
363
+ SINGLE_CENTER_SLOT_FIXTURE,
364
+ SINGLE_RIGHT_SLOT_FIXTURE,
365
+ ]
366
+
367
+ export const WASTE_CHUTE_FIXTURES: CutoutFixtureId[] = [
368
+ WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE,
369
+ WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
370
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE,
371
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
372
+ ]
373
+
374
+ export const WASTE_CHUTE_ONLY_FIXTURES: CutoutFixtureId[] = [
375
+ WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE,
376
+ WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
377
+ ]
378
+
379
+ export const WASTE_CHUTE_STAGING_AREA_FIXTURES: CutoutFixtureId[] = [
380
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE,
381
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
382
+ ]
383
+
384
+ export const LOW_VOLUME_PIPETTES = ['p50_single_flex', 'p50_multi_flex']
385
+
386
+ // default hex values for liquid colors
387
+ const electricPurple = '#b925ff'
388
+ const goldenYellow = '#ffd600'
389
+ const aquamarine = '#9dffd8'
390
+ const orangePeel = '#ff9900'
391
+ const skyBlue = '#50d5ff'
392
+ const popPink = '#ff80f5'
393
+ const springGreen = '#7eff42'
394
+ const tartRed = '#ff4f4f'
395
+ export const DEFAULT_LIQUID_COLORS = [
396
+ electricPurple,
397
+ goldenYellow,
398
+ aquamarine,
399
+ orangePeel,
400
+ skyBlue,
401
+ popPink,
402
+ springGreen,
403
+ tartRed,
404
+ ]
405
+ export const DEPRECATED_WHALE_GREY = '#9395a0'
@@ -0,0 +1,35 @@
1
+ import isEqual from 'lodash/isEqual'
2
+ import isObject from 'lodash/isObject'
3
+ import transform from 'lodash/transform'
4
+
5
+ const difference = (object: any, base: any): any => {
6
+ const changes = (object: any, base: any): any => {
7
+ return transform(object, function (result, value, key) {
8
+ if (!isEqual(value, base[key])) {
9
+ result[key] =
10
+ isObject(value) && isObject(base[key])
11
+ ? changes(value, base[key])
12
+ : value
13
+ }
14
+ })
15
+ }
16
+
17
+ return changes(object, base)
18
+ }
19
+
20
+ // deepEqual won't always return a diff, Cypress doesn't fully support object diffs :(
21
+ // also Cypress doesn't seem to support logging to the console? So throwing the diff as an error instead
22
+ export const expectDeepEqual = (assert: any, a: any, b: any): void => {
23
+ try {
24
+ assert.deepEqual(a, b)
25
+ } catch (e) {
26
+ // visualize undefineds
27
+ const replacer = (key: string, value: unknown): unknown =>
28
+ typeof value === 'undefined' ? '__undefined__' : value
29
+
30
+ throw Error(
31
+ 'Expected deep equal. Diff is: ' +
32
+ JSON.stringify(difference(a, b), replacer, 4)
33
+ )
34
+ }
35
+ }
package/js/errors.ts ADDED
@@ -0,0 +1,33 @@
1
+ import errorDefinitions from '../errors/definitions/1/errors.json'
2
+
3
+ export type ErrorCodes = keyof typeof errorDefinitions.codes
4
+ export type ErrorCategories = keyof typeof errorDefinitions.categories
5
+
6
+ export interface ErrorCategory {
7
+ detail: string
8
+ codePrefix: string
9
+ }
10
+
11
+ export interface ErrorBody {
12
+ detail: string
13
+ category: ErrorCategory
14
+ code: ErrorCodes
15
+ }
16
+
17
+ interface JSONErrorBody {
18
+ detail: string
19
+ category: ErrorCategories
20
+ }
21
+
22
+ export function getError(code: ErrorCodes): ErrorBody | null {
23
+ return errorDefinitions.codes[code]
24
+ ? {
25
+ code: code,
26
+ detail: errorDefinitions.codes[code].detail,
27
+ category:
28
+ errorDefinitions.categories[
29
+ (errorDefinitions.codes[code] as JSONErrorBody).category
30
+ ],
31
+ }
32
+ : null
33
+ }
package/js/fixtures.ts ADDED
@@ -0,0 +1,156 @@
1
+ import {
2
+ FLEX_ROBOT_TYPE,
3
+ STAGING_AREA_RIGHT_SLOT_FIXTURE,
4
+ TRASH_BIN_ADAPTER_FIXTURE,
5
+ WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE,
6
+ WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
7
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE,
8
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
9
+ } from './constants'
10
+ import type { CutoutFixtureId, CutoutId, OT2CutoutId } from '../deck'
11
+ import type { AddressableArea, CoordinateTuple, DeckDefinition } from './types'
12
+
13
+ export function getCutoutDisplayName(cutout: CutoutId): string {
14
+ return cutout.replace('cutout', '')
15
+ }
16
+
17
+ // mapping of OT-2 deck slots to cutouts
18
+ export const OT2_CUTOUT_BY_SLOT_ID: { [slotId: string]: OT2CutoutId } = {
19
+ 1: 'cutout1',
20
+ 2: 'cutout2',
21
+ 3: 'cutout3',
22
+ 4: 'cutout4',
23
+ 5: 'cutout5',
24
+ 6: 'cutout6',
25
+ 7: 'cutout7',
26
+ 8: 'cutout8',
27
+ 9: 'cutout9',
28
+ 10: 'cutout10',
29
+ 11: 'cutout11',
30
+ fixedTrash: 'cutout12',
31
+ }
32
+
33
+ // mapping of Flex deck slots to cutouts
34
+ export const FLEX_CUTOUT_BY_SLOT_ID: { [slotId: string]: CutoutId } = {
35
+ A1: 'cutoutA1',
36
+ A2: 'cutoutA2',
37
+ A3: 'cutoutA3',
38
+ A4: 'cutoutA3',
39
+ B1: 'cutoutB1',
40
+ B2: 'cutoutB2',
41
+ B3: 'cutoutB3',
42
+ B4: 'cutoutB3',
43
+ C1: 'cutoutC1',
44
+ C2: 'cutoutC2',
45
+ C3: 'cutoutC3',
46
+ C4: 'cutoutC3',
47
+ D1: 'cutoutD1',
48
+ D2: 'cutoutD2',
49
+ D3: 'cutoutD3',
50
+ D4: 'cutoutD3',
51
+ }
52
+
53
+ // returns the position associated with a slot id
54
+ export function getPositionFromSlotId(
55
+ slotId: string,
56
+ deckDef: DeckDefinition
57
+ ): CoordinateTuple | null {
58
+ const cutoutWithSlot =
59
+ deckDef.robot.model === FLEX_ROBOT_TYPE
60
+ ? FLEX_CUTOUT_BY_SLOT_ID[slotId]
61
+ : OT2_CUTOUT_BY_SLOT_ID[slotId]
62
+
63
+ const cutoutPosition =
64
+ deckDef.locations.cutouts.find(cutout => cutout.id === cutoutWithSlot)
65
+ ?.position ?? null
66
+
67
+ // adjust for offset from cutout
68
+ const offsetFromCutoutFixture = getAddressableAreaFromSlotId(slotId, deckDef)
69
+ ?.offsetFromCutoutFixture ?? [0, 0, 0]
70
+
71
+ const slotPosition: CoordinateTuple | null =
72
+ cutoutPosition != null
73
+ ? [
74
+ cutoutPosition[0] + offsetFromCutoutFixture[0],
75
+ cutoutPosition[1] + offsetFromCutoutFixture[1],
76
+ cutoutPosition[2] + offsetFromCutoutFixture[2],
77
+ ]
78
+ : null
79
+
80
+ return slotPosition
81
+ }
82
+
83
+ export function getAddressableAreaFromSlotId(
84
+ slotId: string,
85
+ deckDef: DeckDefinition
86
+ ): AddressableArea | null {
87
+ return (
88
+ deckDef.locations.addressableAreas.find(
89
+ addressableArea => addressableArea.id === slotId
90
+ ) ?? null
91
+ )
92
+ }
93
+
94
+ export function getFixtureDisplayName(
95
+ cutoutFixtureId: CutoutFixtureId | null
96
+ ): string {
97
+ if (cutoutFixtureId === STAGING_AREA_RIGHT_SLOT_FIXTURE) {
98
+ return 'Staging area slot'
99
+ } else if (cutoutFixtureId === TRASH_BIN_ADAPTER_FIXTURE) {
100
+ return 'Trash bin'
101
+ } else if (cutoutFixtureId === WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE) {
102
+ return 'Waste chute only'
103
+ } else if (cutoutFixtureId === WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE) {
104
+ return 'Waste chute only with cover'
105
+ } else if (
106
+ cutoutFixtureId ===
107
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE
108
+ ) {
109
+ return 'Waste chute with staging area slot'
110
+ } else if (
111
+ cutoutFixtureId ===
112
+ STAGING_AREA_SLOT_WITH_WASTE_CHUTE_RIGHT_ADAPTER_COVERED_FIXTURE
113
+ ) {
114
+ return 'Waste chute with staging area slot and cover'
115
+ } else {
116
+ return 'Slot'
117
+ }
118
+ }
119
+
120
+ const STANDARD_OT2_SLOTS = [
121
+ '1',
122
+ '2',
123
+ '3',
124
+ '4',
125
+ '5',
126
+ '6',
127
+ '7',
128
+ '8',
129
+ '9',
130
+ '10',
131
+ '11',
132
+ ]
133
+
134
+ const STANDARD_FLEX_SLOTS = [
135
+ 'A1',
136
+ 'A2',
137
+ 'A3',
138
+ 'B1',
139
+ 'B2',
140
+ 'B3',
141
+ 'C1',
142
+ 'C2',
143
+ 'C3',
144
+ 'D1',
145
+ 'D2',
146
+ 'D3',
147
+ ]
148
+
149
+ export const isAddressableAreaStandardSlot = (
150
+ addressableAreaId: string,
151
+ deckDef: DeckDefinition
152
+ ): boolean =>
153
+ (deckDef.robot.model === FLEX_ROBOT_TYPE
154
+ ? STANDARD_FLEX_SLOTS
155
+ : STANDARD_OT2_SLOTS
156
+ ).includes(addressableAreaId)