Skip to content
Draft
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
4 changes: 2 additions & 2 deletions src/components/activity/ActivityDirectiveForm.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import { createEventDispatcher } from 'svelte';
import { PlanStatusMessages } from '../../enums/planStatusMessages';
import { activityArgumentDefaultsMap } from '../../stores/activities';
import { activityErrorRollupsMap, activityValidationErrors } from '../../stores/errors';
import { activityErrorRollupsMap, activityValidationErrors } from '../../stores/console';
import { field } from '../../stores/form';
import { plan, planReadOnly } from '../../stores/plan';
import { plugins } from '../../stores/plugins';
Expand All @@ -27,7 +27,7 @@
ActivityDirectiveInstantiationFailure,
ActivityErrorCategories,
ActivityErrorRollup,
} from '../../types/errors';
} from '../../types/console';
import type { FieldStore } from '../../types/form';
import type { Argument, ArgumentsMap, FormParameter, ParameterName } from '../../types/parameter';
import type { ActivityDirectiveTagsInsertInput, Tag, TagsChangeEvent } from '../../types/tags';
Expand Down
2 changes: 1 addition & 1 deletion src/components/activity/ActivityDirectivesTable.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import type { ActivityDirective, ActivityDirectiveId, ActivityType } from '../../types/activity';
import type { User } from '../../types/app';
import type { DataGridColumnDef } from '../../types/data-grid';
import type { ActivityErrorCounts, ActivityErrorRollup } from '../../types/errors';
import type { ActivityErrorCounts, ActivityErrorRollup } from '../../types/console';
import type { Plan } from '../../types/plan';
import type { SpansMap, SpanUtilityMaps } from '../../types/simulation';
import { copyActivityDirectivesToClipboard } from '../../utilities/activities';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import { get } from 'svelte/store';
import { InvalidDate } from '../../constants/time';
import { activityDirectivesMap, selectActivity, selectedActivityDirectiveId } from '../../stores/activities';
import { activityErrorRollupsMap } from '../../stores/errors';
import { activityErrorRollupsMap } from '../../stores/console';
import { maxTimeRange, plan, planModelActivityTypes, planReadOnly, viewTimeRange } from '../../stores/plan';
import { plugins } from '../../stores/plugins';
import { spansMap, spanUtilityMaps } from '../../stores/simulation';
Expand Down
2 changes: 1 addition & 1 deletion src/components/console/views/ActivityErrors.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import type { ICellRendererParams, IRowNode } from 'ag-grid-community';
import { getContext } from 'svelte';
import type { DataGridColumnDef } from '../../../types/data-grid';
import type { ActivityErrorCategories, ActivityErrorCounts, ActivityErrorRollup } from '../../../types/errors';
import type { ActivityErrorCategories, ActivityErrorCounts, ActivityErrorRollup } from '../../../types/console';
import EmptyState from '../../console/EmptyState.svelte';
import ActivityErrorsRollup from '../../ui/ActivityErrorsRollup.svelte';
import DataGrid from '../../ui/DataGrid/DataGrid.svelte';
Expand Down
15 changes: 8 additions & 7 deletions src/components/console/views/ConsoleLog.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,29 @@
import { cn } from '@nasa-jpl/stellar-svelte';
import { ChevronDown, ChevronRight } from 'lucide-svelte';
import { onMount } from 'svelte';
import type { BaseError, LogMessage } from '../../../types/errors';
import { isLogMessage } from '../../../utilities/errors';
import type { ConsoleEntry, LogMessage } from '../../../types/console';

import { safeStringify } from '../../../utilities/text';
import { formatMS } from '../../../utilities/time';

export let log: BaseError;
export let log: ConsoleEntry;
export let defaultExpanded: boolean = false;
export let showLevel: boolean = true;
export let showTimestamp: boolean = true;
export let showLongTimestamp: boolean = true;
export let showType: boolean = true;

let duration: number | undefined;
let expandable: boolean = false;
let leftContents: HTMLDivElement;
let open: boolean = defaultExpanded;
let expansionPadding: number = 0;
let leftContents: HTMLDivElement;
let level: string = '';
let open: boolean = defaultExpanded;
let renderedMessage: string = '';

$: expandable = log.data || log.trace || log.cause || log.service ? true : false;
$: level = (log as LogMessage).level || '';
$: duration = (log as LogMessage).duration;
// if we have no message but we *do* have data, and row is not expanded, render data as message so row isn't empty
$: renderedMessage =
!log.message.trim() && log.data && !(expandable && open) ? safeStringify(log.data) : (log.message ?? '');
Expand Down Expand Up @@ -137,8 +138,8 @@
<slot name="message" {log} message={renderedMessage} {expandable} {open}>
{renderedMessage}
</slot>
{#if isLogMessage(log) && typeof log.duration === 'number'}
<div class="whitespace-nowrap italic text-muted-foreground">({formatMS(log.duration)})</div>
{#if typeof duration === 'number'}
<div class="whitespace-nowrap italic text-muted-foreground">({formatMS(duration)})</div>
{/if}
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions src/components/console/views/ConsoleLogs.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<script lang="ts">
import { Tabs } from '@nasa-jpl/stellar-svelte';
import { getContext } from 'svelte';
import type { BaseError, LogLevel, LogMessage } from '../../../types/errors';
import type { ConsoleEntry, LogLevel, LogMessage } from '../../../types/console';
import { ConsoleContextKey, type ConsoleContext } from '../Console.svelte';
import EmptyState from '../EmptyState.svelte';
import ConsoleLog from './ConsoleLog.svelte';
Expand All @@ -12,7 +12,7 @@
export let defaultExpanded: boolean = false;
export let emptyStateMessage: string = 'No reported problems';
export let noMatchingResultsMessage: string = 'No matches';
export let logs: BaseError[] = [];
export let logs: ConsoleEntry[] = [];
export let logLevels: LogLevel[] | undefined = undefined;
export let showLevel: boolean = true;
export let showTimestamp: boolean = true;
Expand Down Expand Up @@ -49,7 +49,7 @@

if (logLevels) {
// Filter by selected log levels when the log has a level property.
// Items without a level (plain BaseError) always pass through.
// Items without a level (plain ConsoleEntry) always pass through.
if (Object.hasOwn(log, 'level')) {
return logLevelSet.has((log as LogMessage).level);
} else {
Expand Down
4 changes: 2 additions & 2 deletions src/components/console/views/PlanLogMessage.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

<script lang="ts">
import { selectActivity } from '../../../stores/activities';
import type { BaseError } from '../../../types/errors';
import type { ConsoleEntry } from '../../../types/console';
import { getActivityIdsFromError } from '../../../utilities/errors';

export let log: BaseError;
export let log: ConsoleEntry;

let activityIds: number[] = [];

Expand Down
4 changes: 2 additions & 2 deletions src/components/console/views/WorkspaceLogMessage.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

<script lang="ts">
import { createEventDispatcher } from 'svelte';
import type { BaseError } from '../../../types/errors';
import type { ConsoleEntry } from '../../../types/console';
import { ErrorTypes } from '../../../utilities/errors';

export let log: BaseError;
export let log: ConsoleEntry;

const dispatch = createEventDispatcher<{
gotoLine: { column: number; line: number };
Expand Down
2 changes: 1 addition & 1 deletion src/components/menus/ActivityStatusMenu.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import { createEventDispatcher } from 'svelte';
import { Status } from '../../enums/status';
import type { ActivityDirectiveValidationStatus } from '../../types/activity';
import type { ActivityErrorCounts } from '../../types/errors';
import type { ActivityErrorCounts } from '../../types/console';
import PlanNavButton from '../plan/PlanNavButton.svelte';
import ActivityErrorsRollup from '../ui/ActivityErrorsRollup.svelte';

Expand Down
2 changes: 1 addition & 1 deletion src/components/parameters/ExtraneousParameters.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import WarningExtraIcon from '@nasa-jpl/stellar/icons/warning_extra.svg?component';
import { Copy } from 'lucide-svelte';
import { createEventDispatcher } from 'svelte';
import type { ActivityErrorCategories } from '../../types/errors';
import type { ActivityErrorCategories } from '../../types/console';
import type { ArgumentsMap } from '../../types/parameter';
import { isMacOs } from '../../utilities/browser';
import { isMetaOrCtrlPressed } from '../../utilities/keyboardEvents';
Expand Down
2 changes: 1 addition & 1 deletion src/components/sequencing/SequenceEditor.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import { createEventDispatcher, onDestroy, onMount } from 'svelte';
import { clearWorkspaceAdaptationMessages } from '../../stores/workspaceErrors';
import type { ActionDefinition } from '../../types/actions';
import type { LintDiagnostic } from '../../types/errors';
import type { LintDiagnostic } from '../../types/console';
import type { WorkspaceFileMetadata } from '../../types/workspace-tree-view';
import { getLintDiagnostics } from '../../utilities/codemirror/lint';
import { blockTheme } from '../../utilities/codemirror/themes/block';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import { workspaceId } from '../../../stores/workspaces';
import type { ActionDefinition, ActionDefinitionVersion, ActionRun } from '../../../types/actions';
import type { User } from '../../../types/app';
import type { LogMessage } from '../../../types/errors';
import type { LogMessage } from '../../../types/console';
import type { ArgumentsMap, FormParameter } from '../../../types/parameter';
import {
getActionDefinitionForRun,
Expand Down
8 changes: 4 additions & 4 deletions src/components/timeline/Row.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import { ViewDefaultDiscreteOptions } from '../../constants/view';
import { Status } from '../../enums/status';
import { activityArgumentDefaultsMap } from '../../stores/activities';
import { catchError, logMessage } from '../../stores/errors';
import { catchError, logMessage } from '../../stores/console';
import {
derivationGroupVisibilityMap,
externalSources,
Expand Down Expand Up @@ -308,9 +308,9 @@
if (profile && profile.length === 1) {
resource = sampleProfiles([profile[0]], startTimeYmd)[0];
logMessage(
'log',
`Retrieved profile ${name} (${profile[0].profile_segments.length} segment${pluralize(profile[0].profile_segments.length)}) for simulation ${simulationDatasetId}.`,
'',
performance.now() - startTime,
{ duration: performance.now() - startTime },
);
} else {
throw new Error('Profile not Found');
Expand All @@ -320,7 +320,7 @@
if (err.name === 'AbortError') {
aborted = true;
} else {
catchError(`Profile Download Failed for ${name}`, e as Error);
catchError('log', `Profile Download Failed for ${name}`, e as Error);
error = err.message;
}
} finally {
Expand Down
2 changes: 1 addition & 1 deletion src/components/ui/ActivityErrorsRollup.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import { SvelteComponent, createEventDispatcher, type ComponentEvents } from 'svelte';
import OutsideBoundsIcon from '../../assets/out-of-bounds.svg?component';
import type { Dispatcher } from '../../types/component';
import type { ActivityErrorCategories, ActivityErrorCounts } from '../../types/errors';
import type { ActivityErrorCategories, ActivityErrorCounts } from '../../types/console';
import { isMacOs } from '../../utilities/browser';
import { isMetaOrCtrlPressed } from '../../utilities/keyboardEvents';
import { permissionHandler } from '../../utilities/permissionHandler';
Expand Down
2 changes: 1 addition & 1 deletion src/components/ui/TextEditor.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import { File } from 'lucide-svelte';
import { createEventDispatcher, onDestroy, onMount } from 'svelte';
import type { ActionDefinition } from '../../types/actions';
import type { LintDiagnostic } from '../../types/errors';
import type { LintDiagnostic } from '../../types/console';
import type { WorkspaceFileMetadata } from '../../types/workspace-tree-view';
import { getLintDiagnostics } from '../../utilities/codemirror/lint';
import { blockTheme } from '../../utilities/codemirror/themes/block';
Expand Down
2 changes: 1 addition & 1 deletion src/routes/+layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import ConnectionStatusBanner from '../components/app/ConnectionStatusBanner.svelte';
import Nav from '../components/app/Nav.svelte';
import Loading from '../components/Loading.svelte';
import { clearLogs } from '../stores/errors';
import { clearLogs } from '../stores/console';
import { restartSharedClient } from '../stores/gqlClient';
import { plugins, pluginsError, pluginsLoaded } from '../stores/plugins';
import type { UserStore } from '../types/app';
Expand Down
16 changes: 8 additions & 8 deletions src/routes/plans/[id]/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@
allProblems,
clearLogs,
clearSchedulingErrors,
constraintRunErrors,
constraintErrors,
errorLogs,
modelErrors,
resetErrorStores,
schedulingErrors,
simulationDatasetErrors,
} from '../../../stores/errors';
simulationErrors,
} from '../../../stores/console';
import {
lastExpandedSimulationDatasetId,
planExpansionStatus,
Expand Down Expand Up @@ -141,7 +141,7 @@
viewTogglePanel,
viewUpdateGrid,
} from '../../../stores/views';
import type { ActivityErrorCounts, LogLevel } from '../../../types/errors';
import type { ActivityErrorCounts, LogLevel } from '../../../types/console';
import type { Extension } from '../../../types/extension';
import type { PlanSnapshot } from '../../../types/plan-snapshot';
import type { View, ViewSaveEvent, ViewToggleEvent } from '../../../types/view';
Expand Down Expand Up @@ -1062,8 +1062,8 @@
</div>
<div class="flex items-center py-0.5">
<ConsoleTab value="scheduling" numberOfErrors={$schedulingErrors?.length}>Scheduling</ConsoleTab>
<ConsoleTab value="simulation" numberOfErrors={$simulationDatasetErrors?.length}>Simulation</ConsoleTab>
<ConsoleTab value="constraints" numberOfErrors={$constraintRunErrors?.length}>Constraints</ConsoleTab>
<ConsoleTab value="simulation" numberOfErrors={$simulationErrors?.length}>Simulation</ConsoleTab>
<ConsoleTab value="constraints" numberOfErrors={$constraintErrors?.length}>Constraints</ConsoleTab>
<ConsoleTab value="activity" numberOfErrors={activityErrorCounts.all}>Activity Validation</ConsoleTab>
<ConsoleTab value="model" numberOfErrors={$modelErrors.length}>Mission Model</ConsoleTab>
<div
Expand All @@ -1090,10 +1090,10 @@
<ConsoleLogs value="scheduling" showTimestamp={false} logs={$schedulingErrors}>
<PlanLogMessage slot="message" let:log {log} />
</ConsoleLogs>
<ConsoleLogs value="simulation" showTimestamp={false} logs={$simulationDatasetErrors}>
<ConsoleLogs value="simulation" showTimestamp={false} logs={$simulationErrors}>
<PlanLogMessage slot="message" let:log {log} />
</ConsoleLogs>
<ConsoleLogs value="constraints" showTimestamp={false} logs={$constraintRunErrors}>
<ConsoleLogs value="constraints" showTimestamp={false} logs={$constraintErrors}>
<PlanLogMessage slot="message" let:log {log} />
</ConsoleLogs>
<ConsoleActivityErrors
Expand Down
12 changes: 7 additions & 5 deletions src/routes/workspaces/[workspaceId]/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
activeDocumentIsLoading,
activeDocumentPath,
} from '../../../stores/activeDocument';
import { allLogs, catchError, clearLogs, errorLogs, logMessage } from '../../../stores/errors';
import { allLogs, catchError, clearLogs, errorLogs, logMessage } from '../../../stores/console';
import { sequenceAdaptation, setSequenceLanguages } from '../../../stores/sequence-adaptation';
import {
channelDictionaries,
Expand Down Expand Up @@ -80,7 +80,7 @@
} from '../../../stores/workspaces';
import type { ActionDefinition } from '../../../types/actions';
import type { UserStore } from '../../../types/app';
import type { LintDiagnostic, LogLevel } from '../../../types/errors';
import type { LintDiagnostic, LogLevel } from '../../../types/console';
import type { ArgumentsMap } from '../../../types/parameter';
import type {
ChannelDictionaryMetadata,
Expand Down Expand Up @@ -565,7 +565,9 @@
addWorkspaceAdaptationLog(log.level as LogLevel, log.args);
});
setSequenceLanguages(adaptation);
logMessage(`Loaded adaptation "${metadata.name}" (ID=${id}).`, '', performance.now() - startTime);
logMessage('log', `Loaded adaptation "${metadata.name}" (ID=${id}).`, {
duration: performance.now() - startTime,
});
} catch (e) {
console.error(e);
showFailureToast('Invalid sequence adaptation');
Expand Down Expand Up @@ -910,7 +912,7 @@
}
showSuccessToast(`File marked as ${readOnly ? 'read only' : 'editable'}`);
} catch (e) {
catchError('Failed to update read-only status', e as Error);
catchError('log', 'Failed to update read-only status', e as Error);
showFailureToast('Failed to update read-only status');
}
}
Expand All @@ -929,7 +931,7 @@
}
showSuccessToast('User metadata updated');
} catch (e) {
catchError('Failed to update user metadata', e as Error);
catchError('log', 'Failed to update user metadata', e as Error);
showFailureToast('Failed to update user metadata');
}
}
Expand Down
Loading
Loading