Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,15 @@ const nextConfig = (phase: string): NextConfig => {
},
],
},
// async redirects() {
// return [
// {
// source: `/app/virtual-lab/:path*`,
// destination: `/app/v2/setup`,
// permanent: false,
// },
// ];
// },
async redirects() {
return [
{
source: `/app/virtual-lab/:path*`,
destination: `/app/v2/setup`,
permanent: false,
},
];
},
};
};

Expand Down
4 changes: 2 additions & 2 deletions src/api/entity-download/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import kebabCase from 'lodash/kebabCase';
import { EntityTypeValue } from '@/api/entitycore/types';
import { TEntityTypeDict } from '@/api/entitycore/types';

type CreateTicketResponse = {
ticketId: string;
Expand All @@ -11,7 +11,7 @@ export default async function createDownloadTicket({
projectId,
entityIds,
}: {
entityType: EntityTypeValue;
entityType: TEntityTypeDict;
virtualLabId?: string;
projectId?: string;
entityIds: string[];
Expand Down
18 changes: 9 additions & 9 deletions src/api/entitycore/guards.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EntityTypeEnum } from '@/api/entitycore/types/entity-type';
import { EntityTypeDict } from '@/api/entitycore/types/entity-type';

import type { EntityCoreBaseAsset } from '@/api/entitycore/types/shared/global';
import type {
Expand All @@ -22,43 +22,43 @@ export function hasAssets(
export function isReconstructionMorphology(
entity: EntityCoreObjectTypes
): entity is IReconstructionMorphology {
return entity.type === EntityTypeEnum.ReconstructionMorphology;
return entity.type === EntityTypeDict.ReconstructionMorphology;
}

export function isElectricalCellRecording(
entity: EntityCoreObjectTypes
): entity is IElectricalCellRecording {
return entity.type === EntityTypeEnum.ElectricalCellRecording;
return entity.type === EntityTypeDict.ElectricalCellRecording;
}

export function isExperimentalNeuronDensity(
entity: EntityCoreObjectTypes
): entity is IExperimentalNeuronDensity {
return entity.type === EntityTypeEnum.ExperimentalNeuronDensity;
return entity.type === EntityTypeDict.ExperimentalNeuronDensity;
}

export function isExperimentalBoutonDensity(
entity: EntityCoreObjectTypes
): entity is IExperimentalBoutonDensity {
return entity.type === EntityTypeEnum.ExperimentalBoutonDensity;
return entity.type === EntityTypeDict.ExperimentalBoutonDensity;
}

export function isExperimentalSynapsesPerConnection(
entity: EntityCoreObjectTypes
): entity is IExperimentalSynapsesPerConnection {
return entity.type === EntityTypeEnum.ExperimentalSynapsesPerConnection;
return entity.type === EntityTypeDict.ExperimentalSynapsesPerConnection;
}

export function isSingleNeuronSynaptome(
entity: EntityCoreObjectTypes
): entity is ISingleNeuronSynaptome {
return entity.type === EntityTypeEnum.SingleNeuronSynaptome;
return entity.type === EntityTypeDict.SingleNeuronSynaptome;
}

export function isMemodel(entity: EntityCoreObjectTypes): entity is IMEModel {
return entity.type === EntityTypeEnum.Memodel;
return entity.type === EntityTypeDict.Memodel;
}

export function isEmodel(entity: EntityCoreObjectTypes): entity is IEModel {
return entity.type === EntityTypeEnum.Emodel;
return entity.type === EntityTypeDict.Emodel;
}
8 changes: 4 additions & 4 deletions src/api/entitycore/queries/assets/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import kebabCase from 'lodash/kebabCase';

import authApiClient from '@/api/apiClient';

import { EntityTypeValue } from '@/api/entitycore/types/entity-type';
import { TEntityTypeDict } from '@/api/entitycore/types/entity-type';
import { getEntityCoreContext } from '@/api/entitycore/utils';
import { entityCoreUrl } from '@/config';

Expand Down Expand Up @@ -61,7 +61,7 @@ export async function getAsset({

export async function downloadAsset(params: {
ctx?: WorkspaceContext;
entityType: EntityTypeValue;
entityType: TEntityTypeDict;
entityId: string;
assetPath?: string;
id: string;
Expand All @@ -71,7 +71,7 @@ export async function downloadAsset(params: {

export async function downloadAsset<T>(params: {
ctx?: WorkspaceContext;
entityType: EntityTypeValue;
entityType: TEntityTypeDict;
entityId: string;
assetPath?: string;
id: string;
Expand All @@ -98,7 +98,7 @@ export async function downloadAsset<T>({
assetPath = '',
}: {
ctx?: WorkspaceContext;
entityType: EntityTypeValue;
entityType: TEntityTypeDict;
entityId: string;
assetPath?: string;
id: string;
Expand Down
4 changes: 2 additions & 2 deletions src/api/entitycore/queries/general/derivation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type {
} from '@/api/entitycore/types/entities/derivation';
import type { EntityCoreResponse } from '@/api/entitycore/types/shared/response';
import type { KebabCase, NormalizeChars } from '@/utils/type';
import type { EntityTypeValue } from '@/api/entitycore/types/entity-type';
import type { TEntityTypeDict } from '@/api/entitycore/types/entity-type';
import type { WorkspaceContext } from '@/types/common';

/**
Expand All @@ -27,7 +27,7 @@ export async function getEntityDerivations({
filters,
}: {
context?: WorkspaceContext | null;
entityRoute: KebabCase<NormalizeChars<EntityTypeValue>>;
entityRoute: KebabCase<NormalizeChars<TEntityTypeDict>>;
entityId: string;
filters?: Partial<IDerivationFilter>;
}): Promise<EntityCoreResponse<IDerivationBase>> {
Expand Down
4 changes: 2 additions & 2 deletions src/api/entitycore/queries/general/entity.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { entityCoreApi, getEntityCoreContext } from '@/api/entitycore/utils';
import { compactRecord } from '@/utils/dictionary';

import type { EntityTypeWithBrainRegionValue } from '@/api/entitycore/types/entity-type';
import type { TEntityTypeWithBrainRegionDict } from '@/api/entitycore/types/entity-type';
import type { EntityCountResponse, IEntity } from '@/api/entitycore/types/entities/entity';
import type { BrainRegionFilter } from '@/api/entitycore/types/shared/request';
import type { WorkspaceContext } from '@/types/common';
Expand All @@ -22,7 +22,7 @@ export async function getEntitiesCount({
brainRegion,
}: {
context?: WorkspaceContext | null;
types?: Array<EntityTypeWithBrainRegionValue>;
types?: Array<TEntityTypeWithBrainRegionDict>;
brainRegion: BrainRegionFilter;
}): Promise<EntityCountResponse> {
const api = await entityCoreApi();
Expand Down
4 changes: 2 additions & 2 deletions src/api/entitycore/queries/model/single-neuron-synaptome.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import startsWith from 'lodash/startsWith';
import some from 'lodash/some';

import { entityCoreApi, getEntityCoreContext, getAssetElement } from '@/api/entitycore/utils';
import { EntityTypeEnum } from '@/api/entitycore/types/entity-type';
import { EntityTypeDict } from '@/api/entitycore/types/entity-type';
import { AssetLabel } from '@/api/entitycore/types/shared/global';
import { downloadAsset } from '@/api/entitycore/queries/assets';
import { tryCatch } from '@/api/utils';
Expand Down Expand Up @@ -122,7 +122,7 @@ export async function getSingleNeuronSynaptomeConfiguration(
downloadAsset({
ctx: context,
entityId: source.id,
entityType: EntityTypeEnum.SingleNeuronSynaptome,
entityType: EntityTypeDict.SingleNeuronSynaptome,
id: configAsset.id,
asRawResponse: true,
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import some from 'lodash/some';
import { entityCoreApi, getAssetElement, getEntityCoreContext } from '@/api/entitycore/utils';
import { SingleNeuronSimulation } from '@/entity-configuration/domain/simulation';
import { downloadAsset } from '@/api/entitycore/queries/assets';
import { EntityTypeEnum } from '@/api/entitycore/types';
import { EntityTypeDict } from '@/api/entitycore/types';
import { compactRecord } from '@/utils/dictionary';
import { tryCatch } from '@/api/utils';

Expand Down Expand Up @@ -120,7 +120,7 @@ export async function getSingleNeuronSimulationIOResult(
downloadAsset({
ctx: context,
entityId: source.id,
entityType: EntityTypeEnum.SingleNeuronSimulation,
entityType: EntityTypeDict.SingleNeuronSimulation,
id: configAsset.id,
asRawResponse: true,
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import some from 'lodash/some';
import { entityCoreApi, getAssetElement, getEntityCoreContext } from '@/api/entitycore/utils';
import { SingleNeuronSynaptomeSimulation } from '@/entity-configuration/domain/simulation';
import { downloadAsset } from '@/api/entitycore/queries/assets';
import { EntityTypeEnum } from '@/api/entitycore/types';
import { EntityTypeDict } from '@/api/entitycore/types';
import { tryCatch } from '@/api/utils';

import type {
Expand Down Expand Up @@ -121,7 +121,7 @@ export async function getSingleNeuronSynaptomeSimulationIOResult(
downloadAsset({
ctx: context,
entityId: source.id,
entityType: EntityTypeEnum.SingleNeuronSynaptomeSimulation,
entityType: EntityTypeDict.SingleNeuronSynaptomeSimulation,
id: configAsset.id,
asRawResponse: true,
})
Expand Down
4 changes: 2 additions & 2 deletions src/api/entitycore/types/entities/entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import type {
EntityCoreIdentifiable,
EntityCoreType,
} from '@/api/entitycore/types/shared/global';
import type { EntityTypeWithBrainRegionEnum } from '@/api/entitycore/types/entity-type';
import type { TEntityTypeWithBrainRegionDict } from '@/api/entitycore/types/entity-type';

export interface IEntity extends EntityCoreIdentifiable, EntityCoreType, EntityAuthorization {}

export type EntityCountResponse = Record<EntityTypeWithBrainRegionEnum, number>;
export type EntityCountResponse = Record<TEntityTypeWithBrainRegionDict, number>;
6 changes: 3 additions & 3 deletions src/api/entitycore/types/entities/measurement-annotation.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Timestamps, EntityCoreIdentifiable } from '@/api/entitycore/types/shared/global';
import { TimestampsFilter, PaginationFilter } from '@/api/entitycore/types/shared/request';
import { EntityTypeValue } from '@/api/entitycore/types/entity-type';
import { TEntityTypeDict } from '@/api/entitycore/types/entity-type';

type MeasurementItem = {
name: string;
Expand All @@ -24,7 +24,7 @@ export type MeasurementKind = {

export interface MeasurementAnnotation extends EntityCoreIdentifiable, Timestamps {
entity_id: string;
entity_type: EntityTypeValue;
entity_type: TEntityTypeDict;
measurement_kinds: MeasurementKind[];
}

Expand All @@ -33,6 +33,6 @@ export type MeasurementAnnotationFilter = Partial<
TimestampsFilter &
PaginationFilter & {
entity_id?: string;
entity_type?: EntityTypeValue;
entity_type?: TEntityTypeDict;
}
>;
71 changes: 36 additions & 35 deletions src/api/entitycore/types/entity-type.ts
Original file line number Diff line number Diff line change
@@ -1,37 +1,38 @@
export enum EntityTypeEnum {
AnalysisSoftwareSourceCode = 'analysis_software_source_code',
Emodel = 'emodel',
ExperimentalBoutonDensity = 'experimental_bouton_density',
ExperimentalNeuronDensity = 'experimental_neuron_density',
ExperimentalSynapsesPerConnection = 'experimental_synapses_per_connection',
Memodel = 'memodel',
Mesh = 'mesh',
ReconstructionMorphology = 'reconstruction_morphology',
ElectricalCellRecording = 'electrical_cell_recording',
SingleNeuronSimulation = 'single_neuron_simulation',
SingleNeuronSynaptome = 'single_neuron_synaptome',
Subject = 'subject',
SynapticPathway = 'synaptic_pathway',
SingleNeuronSynaptomeSimulation = 'single_neuron_synaptome_simulation',
Circuit = 'circuit',
CellComposition = 'cell_composition',
BrainAtlas = 'brain_atlas',
BrainAtlasRegion = 'brain_atlas_region',
SimulationCampaign = 'simulation_campaign',
Simulation = 'simulation',
}
export const EntityTypeDict = {
AnalysisSoftwareSourceCode: 'analysis_software_source_code',
Emodel: 'emodel',
ExperimentalBoutonDensity: 'experimental_bouton_density',
ExperimentalNeuronDensity: 'experimental_neuron_density',
ExperimentalSynapsesPerConnection: 'experimental_synapses_per_connection',
Memodel: 'memodel',
Mesh: 'mesh',
ReconstructionMorphology: 'reconstruction_morphology',
ElectricalCellRecording: 'electrical_cell_recording',
SingleNeuronSimulation: 'single_neuron_simulation',
SingleNeuronSynaptome: 'single_neuron_synaptome',
Subject: 'subject',
SynapticPathway: 'synaptic_pathway',
SingleNeuronSynaptomeSimulation: 'single_neuron_synaptome_simulation',
Circuit: 'circuit',
CellComposition: 'cell_composition',
BrainAtlas: 'brain_atlas',
BrainAtlasRegion: 'brain_atlas_region',
SimulationCampaign: 'simulation_campaign',
Simulation: 'simulation',
} as const;

export enum EntityTypeWithBrainRegionEnum {
ExperimentalSynapsesPerConnection = 'experimental_synapses_per_connection',
ExperimentalBoutonDensity = 'experimental_bouton_density',
ExperimentalNeuronDensity = 'experimental_neuron_density',
ReconstructionMorphology = 'reconstruction_morphology',
ElectricalCellRecording = 'electrical_cell_recording',
Memodel = 'memodel',
Emodel = 'emodel',
Circuit = 'circuit',
SingleNeuronSynaptome = 'single_neuron_synaptome',
}
export const EntityTypeWithBrainRegionDict = {
ExperimentalSynapsesPerConnection: 'experimental_synapses_per_connection',
ExperimentalBoutonDensity: 'experimental_bouton_density',
ExperimentalNeuronDensity: 'experimental_neuron_density',
ReconstructionMorphology: 'reconstruction_morphology',
ElectricalCellRecording: 'electrical_cell_recording',
Memodel: 'memodel',
Emodel: 'emodel',
Circuit: 'circuit',
SingleNeuronSynaptome: 'single_neuron_synaptome',
} as const;

export type EntityTypeValue = `${EntityTypeEnum}`;
export type EntityTypeWithBrainRegionValue = `${EntityTypeWithBrainRegionEnum}`;
export type TEntityTypeDict = (typeof EntityTypeDict)[keyof typeof EntityTypeDict];
export type TEntityTypeWithBrainRegionDict =
(typeof EntityTypeWithBrainRegionDict)[keyof typeof EntityTypeWithBrainRegionDict];
32 changes: 12 additions & 20 deletions src/api/entitycore/types/extended-entity-type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,19 @@
// TODO: update virtual-lab-api with the new names
// NOTE: There are now various nested types associated with a single parent type in EntityCore.
// We should enable selection and data manipulation for both the nested types and those directly defined in EntityCore.
export enum ExtendedEntitiesType {
ExperimentalBoutonDensity = `experimental_bouton_density`,
ExperimentalNeuronDensity = `experimental_neuron_density`,
ElectricalCellRecording = `electrical_cell_recording`,
ExperimentalSynapsePerConnection = `experimental_synapses_per_connection`,
ReconstructionMorphology = `reconstruction_morphology`,
SimulationCampaign = `simulation_campaign`,
EModel = 'emodel',
MEModel = 'memodel',
SingleNeuronSimulation = 'single_neuron_simulation',
SingleNeuronSynaptome = 'single_neuron_synaptome',
SingleNeuronSynaptomeSimulation = 'single_neuron_synaptome_simulation',
Circuit = 'circuit',
SmallMicrocircuit = 'small_micro_circuit',
Microcircuit = 'micro_circuit',
PairedNeuronCircuit = 'paired_neuron_circuit',
PairedNeuronCircuitSimulation = 'paired_neuron_circuit_simulation',
SmallMicrocircuitSimulation = 'small_microcircuit_simulation',
}
import { EntityTypeDict } from '@/api/entitycore/types/entity-type';

export type TExtendedEntitiesType = `${ExtendedEntitiesType}`;
export const ExtendedEntitiesTypeDict = {
...EntityTypeDict,
SmallMicrocircuit: 'small_micro_circuit',
Microcircuit: 'micro_circuit',
PairedNeuronCircuit: 'paired_neuron_circuit',
PairedNeuronCircuitSimulation: 'paired_neuron_circuit_simulation',
SmallMicrocircuitSimulation: 'small_microcircuit_simulation',
} as const;

export type TExtendedEntitiesTypeDict =
(typeof ExtendedEntitiesTypeDict)[keyof typeof ExtendedEntitiesTypeDict];

export const DEFAULT_CHECKLIST_RENDER_LENGTH = 8;
export const PAGE_SIZE = 30;
Expand Down
4 changes: 2 additions & 2 deletions src/api/entitycore/types/shared/global.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { EntityCoreConfiguration } from '@/entity-configuration/domain';

import type { EntityTypeValue } from '@/api/entitycore/types/entity-type';
import type { TEntityTypeDict } from '@/api/entitycore/types/entity-type';
import type { AssetLegacyMeta } from '@/api/entitycore/types/shared/legacy';
import type { PaginationFilter } from '@/api/entitycore/types/shared/request';

Expand All @@ -13,7 +13,7 @@ export type EntityCoreIdentifiable = {
};

export type EntityCoreType = {
type: EntityTypeValue;
type: TEntityTypeDict;
};

export type ActivityType = {
Expand Down
Loading