You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by ar...@apache.org on 2023/08/14 16:22:26 UTC
[daffodil-vscode] branch main updated (57d3be2 -> ca7a12a)
This is an automated email from the ASF dual-hosted git repository.
arosien pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil-vscode.git
omit 57d3be2 Cleaning Data Editor Legacy Code
new ca7a12a Cleaning Data Editor Legacy Code
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (57d3be2)
\
N -- N -- N refs/heads/main (ca7a12a)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
yarn.lock | 141 ++++++++++++++++++++++++++++++--------------------------------
1 file changed, 68 insertions(+), 73 deletions(-)
[daffodil-vscode] 01/01: Cleaning Data Editor Legacy Code
Posted by ar...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
arosien pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil-vscode.git
commit ca7a12a5d01fd2dd3092f55949e2665411360140
Author: Robert Strickland <st...@gmail.com>
AuthorDate: Thu Aug 10 15:19:25 2023 -0500
Cleaning Data Editor Legacy Code
- Removes lingering variables & functionality due to the rapid
development of the data editor.
- Fixes issue where the data view content control showed index of
viewport container instead of file offset.
Closes #771
Closes #773
---
.../DataDisplays/CustomByteDisplay/BinaryData.ts | 108 +-------------
.../CustomByteDisplay/DataLineFeed.svelte | 18 +--
.../FileTraversalIndicator.svelte | 2 +-
.../CustomByteDisplay/SelectedByteEdit.svelte | 67 +++++----
.../components/DataDisplays/DataViewports.svelte | 74 +---------
.../DataDisplays/Fieldsets/ContentControls.svelte | 2 +-
.../DataDisplays/Fieldsets/DataView.svelte | 4 +-
.../DataDisplays/Header/DisplayHeader.svelte | 7 +-
.../DataMetrics/ByteFrequencyGraph.svelte | 14 +-
src/svelte/src/components/Header/Header.svelte | 3 +-
.../components/Header/fieldsets/FileMetrics.svelte | 5 +-
.../src/components/Header/fieldsets/FileMetrics.ts | 4 +-
.../Header/fieldsets/SearchReplace.svelte | 14 +-
.../components/Header/fieldsets/SearchReplace.ts | 58 +-------
.../components/Header/fieldsets/Settings.svelte | 7 +-
.../src/components/Inputs/Buttons/Button.svelte | 8 +-
.../Inputs/Buttons/ToggleableButton.svelte | 4 +-
.../components/ServerMetrics/ServerMetrics.svelte | 4 +-
src/svelte/src/components/dataEditor.svelte | 73 ++--------
src/svelte/src/components/layouts/Tooltip.svelte | 2 +-
src/svelte/src/stores/configuration.ts | 4 -
src/svelte/src/stores/index.ts | 156 ++++++++++++---------
src/svelte/src/utilities/display.ts | 30 +---
src/svelte/src/utilities/highlights.ts | 2 +-
yarn.lock | 141 +++++++++----------
25 files changed, 254 insertions(+), 557 deletions(-)
diff --git a/src/svelte/src/components/DataDisplays/CustomByteDisplay/BinaryData.ts b/src/svelte/src/components/DataDisplays/CustomByteDisplay/BinaryData.ts
index 4aa9cc2..e3f9e31 100644
--- a/src/svelte/src/components/DataDisplays/CustomByteDisplay/BinaryData.ts
+++ b/src/svelte/src/components/DataDisplays/CustomByteDisplay/BinaryData.ts
@@ -15,9 +15,8 @@
* limitations under the License.
*/
-import { writable, derived } from 'svelte/store'
import { SimpleWritable } from '../../../stores/localStore'
-import type { BytesPerRow, RadixValues } from '../../../stores/configuration'
+import type { RadixValues } from '../../../stores/configuration'
import { radixBytePad } from '../../../utilities/display'
export const BYTE_ACTION_DIV_OFFSET: number = 24
@@ -53,17 +52,6 @@ export interface EditByteEvent extends EditEvent {
targetByte: ByteValue
}
-export enum ViewportBoundaryTrigger {
- SCROLL_TOP,
- SCROLL_BOTTOM,
-}
-
-export const scroll_boundary_event = (top: boolean, end: boolean) => {
- return top
- ? ViewportBoundaryTrigger.SCROLL_TOP
- : ViewportBoundaryTrigger.SCROLL_BOTTOM
-}
-
export const byte_value_string = (value: number, radix: RadixValues) => {
if (value > 255)
throw `Value {${value}} is larger than an unsigned int (255).`
@@ -87,8 +75,6 @@ export const RADIX_REGEX_MATCH_STR = {
2: /[0-1]{8}/g,
}
-export const processingViewportRefresh = writable(false)
-
export class ViewportData_t {
data = new Uint8Array(0)
fileOffset = -1
@@ -160,98 +146,6 @@ export class ViewportDataStore_t extends SimpleWritable<ViewportData_t> {
}
}
-export const viewport = new ViewportDataStore_t()
-
-export type ByteActionPxOffsets = {
- insertBefore: {
- left: number
- top: number
- }
- insertAfter: {
- left: number
- top: number
- }
- delete: {
- left: number
- top: number
- }
- input: {
- left: number
- top: number
- }
-}
-
export function latin1Undefined(charCode: number): boolean {
return charCode < 32 || (charCode > 126 && charCode < 160)
}
-
-export function update_byte_action_offsets(
- targetDiv: HTMLDivElement,
- offsetTopBy: number = 0,
- offsetLeftBy: number = 0
-) {
- const targetWidth = parseInt(targetDiv.style.width.replace('px', '')) + 4
- byteActionPxOffsets.update((currentOffsets) => {
- currentOffsets.delete = {
- left: targetDiv.offsetLeft + offsetLeftBy,
- top: targetDiv.offsetTop + BYTE_ACTION_DIV_OFFSET - offsetTopBy,
- }
- currentOffsets.input = {
- left: targetDiv.offsetLeft + offsetLeftBy,
- top: targetDiv.offsetTop - offsetTopBy,
- }
- currentOffsets.insertAfter = {
- left: targetDiv.offsetLeft + targetWidth + offsetLeftBy,
- top: targetDiv.offsetTop - offsetTopBy,
- }
- currentOffsets.insertBefore = {
- left: targetDiv.offsetLeft - targetWidth + offsetLeftBy,
- top: targetDiv.offsetTop - offsetTopBy,
- }
-
- return currentOffsets
- })
-}
-
-export enum ByteValuePxWidths {
- DISPLAY = 20,
- EDITING = 68,
-}
-
-export let ByteValueArray: Array<ByteValue> = []
-
-export const bytesPerRow = writable(16 as BytesPerRow)
-export const editingByte = writable(false)
-export const selectedByte = writable({
- text: '',
- offset: -1,
- value: -1,
-} as ByteValue)
-export const byteActionPxOffsets = writable({
- insertBefore: {
- left: 0,
- top: 0,
- },
- insertAfter: {
- left: 0,
- top: 0,
- },
- delete: {
- left: 0,
- top: 0,
- },
- input: {
- left: 0,
- top: 0,
- },
-} as ByteActionPxOffsets)
-export const mouseSelectionBytes = writable({ mousedown: -1, mouseup: -1 })
-
-// derived readable number whose value is the computed number of bytes in the edited file
-export const offsetMax = derived(viewport, ($viewport) => {
- // this should be the same as the computed file size
- return $viewport.fileOffset + $viewport.length + $viewport.bytesLeft
-})
-export function focus_byte_input() {
- document.getElementById('byte-input').focus()
-}
diff --git a/src/svelte/src/components/DataDisplays/CustomByteDisplay/DataLineFeed.svelte b/src/svelte/src/components/DataDisplays/CustomByteDisplay/DataLineFeed.svelte
index 8d70148..ebfe8b7 100644
--- a/src/svelte/src/components/DataDisplays/CustomByteDisplay/DataLineFeed.svelte
+++ b/src/svelte/src/components/DataDisplays/CustomByteDisplay/DataLineFeed.svelte
@@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<script lang="ts">
- import { createEventDispatcher, onMount, tick } from 'svelte'
+ import { createEventDispatcher, onMount } from 'svelte'
import {
editedDataSegment,
editMode,
@@ -24,6 +24,10 @@ limitations under the License.
seekOffsetInput,
selectionDataStore,
selectionSize,
+ selectedByte,
+ fileMetrics,
+ searchQuery,
+ editorActionsAllowed,
} from '../../../stores'
import {
EditByteModes,
@@ -31,18 +35,15 @@ limitations under the License.
VIEWPORT_CAPACITY_MAX,
type BytesPerRow,
type RadixValues,
- editorActionsAllowed,
EditActionRestrictions,
} from '../../../stores/configuration'
import { MessageCommand } from '../../../utilities/message'
import { vscode } from '../../../utilities/vscode'
- import { fileMetrics } from '../../Header/fieldsets/FileMetrics'
import Button from '../../Inputs/Buttons/Button.svelte'
import FlexContainer from '../../layouts/FlexContainer.svelte'
import {
byte_value_string,
null_byte,
- selectedByte,
type ByteSelectionEvent,
type ByteValue,
type ViewportData_t,
@@ -63,7 +64,6 @@ limitations under the License.
searchResultsHighlights,
updateSearchResultsHighlights,
} from '../../../utilities/highlights'
- import { searchQuery } from '../../Header/fieldsets/SearchReplace'
export let lineTop: number
export let awaitViewportScroll: boolean
@@ -119,7 +119,6 @@ limitations under the License.
let totalLinesPerViewport = 0
let lineTopMaxViewport = 64
let lineTopMaxFile = 64
- let viewportFileSegment = 1
let atViewportHead = true
let atViewportTail = false
let atFileHead = true
@@ -168,7 +167,6 @@ limitations under the License.
totalLinesPerViewport - NUM_LINES_DISPLAYED,
0
)
- viewportFileSegment = viewportData.fileOffset / viewportData.length + 1
atViewportHead = lineTop === 0
atViewportTail = lineTop === lineTopMaxViewport
@@ -360,7 +358,6 @@ limitations under the License.
? selectionEvent.targetByte
: null_byte()
- // update_byte_action_offsets(selectionEvent.targetElement)
selectedByteElement = selectionEvent.targetElement
editedDataSegment.update(() => {
@@ -468,10 +465,7 @@ limitations under the License.
<div class="container" style:height id={CONTAINER_ID}>
{#each viewportLines as viewportLine, i}
- <div
- class={`line ${viewportLine.highlight} ${themeClass}`}
- title={`file line #${viewportLine.fileLine}`}
- >
+ <div class={`line ${viewportLine.highlight} ${themeClass}`}>
<div class="address" id="address">
<b>{viewportLine.offset}</b>
</div>
diff --git a/src/svelte/src/components/DataDisplays/CustomByteDisplay/FileTraversalIndicator.svelte b/src/svelte/src/components/DataDisplays/CustomByteDisplay/FileTraversalIndicator.svelte
index 56c9142..7c7b8f4 100644
--- a/src/svelte/src/components/DataDisplays/CustomByteDisplay/FileTraversalIndicator.svelte
+++ b/src/svelte/src/components/DataDisplays/CustomByteDisplay/FileTraversalIndicator.svelte
@@ -25,7 +25,7 @@ limitations under the License.
export let bytesPerRow = 16
export let percentageTraversed
export let maxDisplayLines = 20
- export let selectionActive
+ export let selectionActive: boolean
let indicatorContainer: HTMLElement
let indicatorClickDisabled: boolean = false
diff --git a/src/svelte/src/components/DataDisplays/CustomByteDisplay/SelectedByteEdit.svelte b/src/svelte/src/components/DataDisplays/CustomByteDisplay/SelectedByteEdit.svelte
index 3b75540..b46adb4 100644
--- a/src/svelte/src/components/DataDisplays/CustomByteDisplay/SelectedByteEdit.svelte
+++ b/src/svelte/src/components/DataDisplays/CustomByteDisplay/SelectedByteEdit.svelte
@@ -32,17 +32,16 @@ limitations under the License.
addressRadix,
rerenderActionElements,
focusedViewportId,
+ editorActionsAllowed,
+ bytesPerRow,
} from '../../../stores'
import { enterKeypressEvents } from '../../../utilities/enterKeypressEvents'
- import { bytesPerRow, type ByteValue, type EditAction } from './BinaryData'
+ import type { ByteValue, EditAction } from './BinaryData'
import {
UIThemeCSSClass,
type CSSThemeClass,
} from '../../../utilities/colorScheme'
- import {
- EditActionRestrictions,
- editorActionsAllowed,
- } from '../../../stores/configuration'
+ import { EditActionRestrictions } from '../../../stores/configuration'
const eventDispatcher = createEventDispatcher()
@@ -55,6 +54,7 @@ limitations under the License.
id: string
position: ActionElementPosition
HTMLRef: HTMLDivElement | HTMLInputElement
+ render: boolean
}
type ActionElements = {
[k in Actions]: ActionElement
@@ -63,21 +63,25 @@ limitations under the License.
input: {
id: 'binary-action-input',
HTMLRef: undefined as HTMLInputElement,
+ render: true,
position: { viewportLine: -1, viewportByteIndex: -1 },
},
'insert-before': {
id: 'binary-action-before',
HTMLRef: undefined,
+ render: true,
position: { viewportLine: -1, viewportByteIndex: -1 },
},
'insert-after': {
id: 'binary-action-after',
HTMLRef: undefined,
+ render: true,
position: { viewportLine: -1, viewportByteIndex: -1 },
},
delete: {
id: 'binary-action-delete',
HTMLRef: undefined,
+ render: true,
position: { viewportLine: -1, viewportByteIndex: -1 },
},
}
@@ -210,7 +214,10 @@ limitations under the License.
previousByteId
) as HTMLDivElement
- if (!elementToReplace) break
+ if (!elementToReplace) {
+ actionElements[element].render = false
+ break
+ }
targetParent.contains(elementToReplace)
? apply_element_replacements(
@@ -236,7 +243,10 @@ limitations under the License.
nextByteId
) as HTMLDivElement
- if (!elementToReplace) break
+ if (!elementToReplace) {
+ actionElements[element].render = false
+ break
+ }
targetParent.contains(elementToReplace)
? apply_element_replacements(
@@ -297,36 +307,33 @@ limitations under the License.
function byteOffsetToElementId(byteOffset: number): string {
return $focusedViewportId + '-' + byteOffset.toString()
}
- function element_byteline_position(
- targetElement: HTMLDivElement
- ): number | undefined {
- const index = parseInt(targetElement.id) + 1
- return index % BPR
- }
</script>
{#if $editorActionsAllowed == EditActionRestrictions.None}
<!-- svelte-ignore a11y-click-events-have-key-events -->
<!-- svelte-ignore a11y-no-static-element-interactions -->
- <div
- class="insert-before {themeClass}"
- id={actionElements['insert-before'].id}
- style:width={elementDivWidth}
- on:click={send_insert}
- >
- ⇤
- </div>
-
+ {#if actionElements['insert-before'].render}
+ <div
+ class="insert-before {themeClass}"
+ id={actionElements['insert-before'].id}
+ style:width={elementDivWidth}
+ on:click={send_insert}
+ >
+ ⇤
+ </div>
+ {/if}
<!-- svelte-ignore a11y-click-events-have-key-events -->
<!-- svelte-ignore a11y-no-static-element-interactions -->
- <div
- class="insert-after {themeClass}"
- id={actionElements['insert-after'].id}
- style:width={elementDivWidth}
- on:click={send_insert}
- >
- ⇥
- </div>
+ {#if actionElements['insert-after'].render}
+ <div
+ class="insert-after {themeClass}"
+ id={actionElements['insert-after'].id}
+ style:width={elementDivWidth}
+ on:click={send_insert}
+ >
+ ⇥
+ </div>
+ {/if}
<span>
<input
diff --git a/src/svelte/src/components/DataDisplays/DataViewports.svelte b/src/svelte/src/components/DataDisplays/DataViewports.svelte
index 38ad6cc..b031f25 100644
--- a/src/svelte/src/components/DataDisplays/DataViewports.svelte
+++ b/src/svelte/src/components/DataDisplays/DataViewports.svelte
@@ -18,84 +18,12 @@ limitations under the License.
import {
addressRadix,
bytesPerRow,
- editMode,
- editedDataSegment,
- editorEncoding,
- selectionDataStore,
- selectionSize,
- viewportClientHeight,
- viewportLineHeight,
- viewportScrollHeight,
- viewportScrollTop,
- viewportLength,
displayRadix,
dataFeedLineTop,
dataFeedAwaitRefresh,
+ viewport,
} from '../../stores'
- import {
- viewport_references,
- type ViewportReferences,
- } from '../../utilities/display'
- import { MessageCommand } from '../../utilities/message'
- import { onMount, tick } from 'svelte'
- import { vscode } from '../../utilities/vscode'
- import { EditByteModes } from '../../stores/configuration'
- import { viewport } from './CustomByteDisplay/BinaryData'
import DataLineFeed from './CustomByteDisplay/DataLineFeed.svelte'
-
- const viewportRefs = viewport_references() as ViewportReferences
-
- //
- // reactive statements
- //
-
- $: {
- $editMode === EditByteModes.Single
- ? postEditorOnChangeMsg('hex')
- : postEditorOnChangeMsg($editorEncoding)
-
- // when the viewport length changes, update the viewport geometry
- if ($viewportLength >= 0) {
- // populateViewportGeometry()
- }
- }
-
- function populateViewportGeometry() {
- // event handlers expect synchronous functions, so wrap the async function in a sync function
- async function populateViewportGeometryOps_() {
- if (viewportRefs.physical) {
- // wait for the DOM to be updated before getting the viewport geometry
- await tick()
- $viewportScrollTop = viewportRefs.physical.scrollTop
- $viewportScrollHeight = viewportRefs.physical.scrollHeight
- $viewportClientHeight = viewportRefs.physical.clientHeight
- $viewportLineHeight = parseFloat(
- getComputedStyle(viewportRefs.physical).lineHeight
- )
- }
- }
-
- populateViewportGeometryOps_()
- }
-
- function postEditorOnChangeMsg(forcedEncoding?: string) {
- vscode.postMessage({
- command: MessageCommand.editorOnChange,
- data: {
- fileOffset: $selectionDataStore.startOffset,
- selectionData: $editedDataSegment,
- encoding: forcedEncoding ? forcedEncoding : $editorEncoding,
- selectionSize: $selectionSize,
- editMode: $editMode,
- },
- })
- }
-
- onMount(() => {
- // populateViewportGeometry()
- // recalculate the viewport geometry when the window is resized
- // window.addEventListener('resize', populateViewportGeometry)
- })
</script>
<DataLineFeed
diff --git a/src/svelte/src/components/DataDisplays/Fieldsets/ContentControls.svelte b/src/svelte/src/components/DataDisplays/Fieldsets/ContentControls.svelte
index d22aa6b..16ceef9 100644
--- a/src/svelte/src/components/DataDisplays/Fieldsets/ContentControls.svelte
+++ b/src/svelte/src/components/DataDisplays/Fieldsets/ContentControls.svelte
@@ -20,7 +20,7 @@ limitations under the License.
import { createEventDispatcher } from 'svelte'
import FlexContainer from '../../layouts/FlexContainer.svelte'
import Button from '../../Inputs/Buttons/Button.svelte'
- import { type EditEvent } from '../CustomByteDisplay/BinaryData'
+ import type { EditEvent } from '../CustomByteDisplay/BinaryData'
const eventDispatcher = createEventDispatcher()
function applyChanges(event: Event) {
diff --git a/src/svelte/src/components/DataDisplays/Fieldsets/DataView.svelte b/src/svelte/src/components/DataDisplays/Fieldsets/DataView.svelte
index dc75563..f648f20 100644
--- a/src/svelte/src/components/DataDisplays/Fieldsets/DataView.svelte
+++ b/src/svelte/src/components/DataDisplays/Fieldsets/DataView.svelte
@@ -30,12 +30,12 @@ limitations under the License.
dvUint8,
selectionDataStore,
editedDataSegment,
+ selectedByte,
} from '../../../stores'
import { ENDIANNESS_OPTIONS } from '../../../stores/configuration'
import { UIThemeCSSClass } from '../../../utilities/colorScheme'
- import Input from '../../Inputs/Input/Input.svelte'
import { createEventDispatcher } from 'svelte'
- import { selectedByte } from '../CustomByteDisplay/BinaryData'
+ import Input from '../../Inputs/Input/Input.svelte'
const eventDispatcher = createEventDispatcher()
const ERROR_MESSAGE_TIMEOUT = 5000
diff --git a/src/svelte/src/components/DataDisplays/Header/DisplayHeader.svelte b/src/svelte/src/components/DataDisplays/Header/DisplayHeader.svelte
index 2350ef0..28450cd 100644
--- a/src/svelte/src/components/DataDisplays/Header/DisplayHeader.svelte
+++ b/src/svelte/src/components/DataDisplays/Header/DisplayHeader.svelte
@@ -23,6 +23,8 @@ limitations under the License.
seekOffsetInput,
selectionDataStore,
selectionSize,
+ bytesPerRow,
+ viewport,
} from '../../../stores'
import {
EditByteModes,
@@ -33,7 +35,6 @@ limitations under the License.
} from '../../../stores/configuration'
import { UIThemeCSSClass } from '../../../utilities/colorScheme'
import { createEventDispatcher } from 'svelte'
- import { bytesPerRow } from '../CustomByteDisplay/BinaryData'
type ViewportDivSpread = '24px' | '28px' | '68px'
@@ -60,8 +61,8 @@ limitations under the License.
$: selectionOffsetText = setSelectionOffsetInfo(
'Selection',
- $selectionDataStore.startOffset,
- $selectionDataStore.endOffset,
+ $viewport.fileOffset + $selectionDataStore.startOffset,
+ $viewport.fileOffset + $selectionDataStore.endOffset,
$selectionSize,
$addressRadix
)
diff --git a/src/svelte/src/components/DataMetrics/ByteFrequencyGraph.svelte b/src/svelte/src/components/DataMetrics/ByteFrequencyGraph.svelte
index 2841ff4..cbbaa92 100644
--- a/src/svelte/src/components/DataMetrics/ByteFrequencyGraph.svelte
+++ b/src/svelte/src/components/DataMetrics/ByteFrequencyGraph.svelte
@@ -20,7 +20,7 @@ limitations under the License.
import { MessageCommand } from '../../utilities/message'
import { onMount } from 'svelte'
import Input from '../Inputs/Input/Input.svelte'
- import { offsetMax } from '../DataDisplays/CustomByteDisplay/BinaryData'
+ import { viewport } from '../../stores'
import { DATA_PROFILE_MAX_LENGTH } from '../../stores/configuration'
import { addressRadix } from '../../stores'
import { radixToString, regexEditDataTest } from '../../utilities/display'
@@ -179,9 +179,9 @@ limitations under the License.
} else if (endOffsetTemp <= startOffset) {
setErrorMessage('End offset must be greater than start offset')
return
- } else if (endOffsetTemp > $offsetMax) {
+ } else if (endOffsetTemp > viewport.offsetMax) {
setErrorMessage(
- `End offset must be less than or equal to ${$offsetMax}`
+ `End offset must be less than or equal to ${viewport.offsetMax}`
)
return
}
@@ -211,9 +211,11 @@ limitations under the License.
} else if (lengthTemp <= 0) {
setErrorMessage('Length must be greater than 0')
return
- } else if (lengthTemp > $offsetMax - startOffset) {
+ } else if (lengthTemp > viewport.offsetMax - startOffset) {
setErrorMessage(
- `Length must be less than or equal to ${$offsetMax - startOffset}`
+ `Length must be less than or equal to ${
+ viewport.offsetMax - startOffset
+ }`
)
return
}
@@ -401,7 +403,7 @@ limitations under the License.
<div class="stats">
<label for="computed-size"
> Max Offset: <span id="computed-size" class="nowrap"
- >{$offsetMax}</span
+ >{viewport.offsetMax}</span
></label
>
<label for="min-frequency"
diff --git a/src/svelte/src/components/Header/Header.svelte b/src/svelte/src/components/Header/Header.svelte
index 0a926ae..e04cbfd 100644
--- a/src/svelte/src/components/Header/Header.svelte
+++ b/src/svelte/src/components/Header/Header.svelte
@@ -16,11 +16,12 @@ limitations under the License.
-->
<script lang="ts">
import FileMetrics from './fieldsets/FileMetrics.svelte'
- import { fileMetrics } from './fieldsets/FileMetrics'
import SearchReplace from './fieldsets/SearchReplace.svelte'
import Settings from './fieldsets/Settings.svelte'
import FlexContainer from '../layouts/FlexContainer.svelte'
import { UIThemeCSSClass } from '../../utilities/colorScheme'
+ import { fileMetrics } from '../../stores'
+
let hideChildren = false
</script>
diff --git a/src/svelte/src/components/Header/fieldsets/FileMetrics.svelte b/src/svelte/src/components/Header/fieldsets/FileMetrics.svelte
index 429478c..ca5a559 100644
--- a/src/svelte/src/components/Header/fieldsets/FileMetrics.svelte
+++ b/src/svelte/src/components/Header/fieldsets/FileMetrics.svelte
@@ -17,14 +17,13 @@ limitations under the License.
<script lang="ts">
import Button from '../../Inputs/Buttons/Button.svelte'
import FlexContainer from '../../layouts/FlexContainer.svelte'
- import { fileMetrics } from './FileMetrics'
import { MessageCommand } from '../../../utilities/message'
import { vscode } from '../../../utilities/vscode'
- import { saveable } from '../../../stores'
+ import { saveable, fileMetrics } from '../../../stores'
import { createEventDispatcher } from 'svelte'
import SidePanel from '../../layouts/SidePanel.svelte'
import ByteFrequencyGraph from '../../DataMetrics/ByteFrequencyGraph.svelte'
- import { viewport } from '../../DataDisplays/CustomByteDisplay/BinaryData'
+ import { viewport } from '../../../stores'
import { humanReadableByteLength } from '../../../utilities/display'
import { DATA_PROFILE_MAX_LENGTH } from '../../../stores/configuration'
import Tooltip from '../../layouts/Tooltip.svelte'
diff --git a/src/svelte/src/components/Header/fieldsets/FileMetrics.ts b/src/svelte/src/components/Header/fieldsets/FileMetrics.ts
index 45e64de..053f915 100644
--- a/src/svelte/src/components/Header/fieldsets/FileMetrics.ts
+++ b/src/svelte/src/components/Header/fieldsets/FileMetrics.ts
@@ -24,10 +24,8 @@ class FileMetricsData {
undoCount: number = 0
}
-class FileMetrics extends SimpleWritable<FileMetricsData> {
+export class FileMetrics extends SimpleWritable<FileMetricsData> {
protected init(): FileMetricsData {
return new FileMetricsData()
}
}
-
-export const fileMetrics = new FileMetrics()
diff --git a/src/svelte/src/components/Header/fieldsets/SearchReplace.svelte b/src/svelte/src/components/Header/fieldsets/SearchReplace.svelte
index 36251a7..7f32d7a 100644
--- a/src/svelte/src/components/Header/fieldsets/SearchReplace.svelte
+++ b/src/svelte/src/components/Header/fieldsets/SearchReplace.svelte
@@ -18,11 +18,10 @@ limitations under the License.
import {
addressRadix,
allowCaseInsensitiveSearch,
+ editorActionsAllowed,
editorEncoding,
seekable,
seekOffsetInput,
- } from '../../../stores'
- import {
replaceable,
replaceErr,
replaceQuery,
@@ -30,7 +29,7 @@ limitations under the License.
searchErr,
searchQuery,
seekErr,
- } from './SearchReplace'
+ } from '../../../stores'
import { vscode } from '../../../utilities/vscode'
import { MessageCommand } from '../../../utilities/message'
@@ -38,18 +37,15 @@ limitations under the License.
import Button from '../../Inputs/Buttons/Button.svelte'
import Input from '../../Inputs/Input/Input.svelte'
import FlexContainer from '../../layouts/FlexContainer.svelte'
- import { createEventDispatcher, tick } from 'svelte'
+ import { createEventDispatcher } from 'svelte'
import { UIThemeCSSClass } from '../../../utilities/colorScheme'
import ToggleableButton from '../../Inputs/Buttons/ToggleableButton.svelte'
import {
clearSearchResultsHighlights,
updateSearchResultsHighlights,
} from '../../../utilities/highlights'
- import { viewport } from '../../DataDisplays/CustomByteDisplay/BinaryData'
- import {
- EditActionRestrictions,
- editorActionsAllowed,
- } from '../../../stores/configuration'
+ import { viewport } from '../../../stores'
+ import { EditActionRestrictions } from '../../../stores/configuration'
const eventDispatcher = createEventDispatcher()
diff --git a/src/svelte/src/components/Header/fieldsets/SearchReplace.ts b/src/svelte/src/components/Header/fieldsets/SearchReplace.ts
index 45bdd7f..089ec07 100644
--- a/src/svelte/src/components/Header/fieldsets/SearchReplace.ts
+++ b/src/svelte/src/components/Header/fieldsets/SearchReplace.ts
@@ -18,10 +18,6 @@
import { SimpleWritable } from '../../../stores/localStore'
import { addressRadix, seekOffsetInput } from '../../../stores'
import { get } from 'svelte/store'
-import { validateEncodingStr } from '../../../utilities/display'
-import { ErrorStore, ErrorComponentType } from '../../Error/Error'
-import { editorEncoding, selectionDataStore } from '../../../stores'
-import { derived } from 'svelte/store'
interface QueryableData {
input: string
@@ -37,7 +33,7 @@ class SearchData implements QueryableData {
overflow: boolean = false
byteLength: number = 0
}
-class SearchQuery extends SimpleWritable<SearchData> {
+export class SearchQuery extends SimpleWritable<SearchData> {
protected init(): SearchData {
return new SearchData()
}
@@ -80,55 +76,3 @@ export class ReplaceQuery extends SimpleWritable<ReplaceData> {
return new ReplaceData()
}
}
-
-export const searchQuery = new SearchQuery()
-export const replaceQuery = new ReplaceQuery()
-
-export const searchErr = new ErrorStore(ErrorComponentType.SYMBOL)
-export const replaceErr = new ErrorStore(ErrorComponentType.SYMBOL)
-export const seekErr = new ErrorStore(ErrorComponentType.SYMBOL)
-
-export const searchable = derived(
- [searchQuery, editorEncoding],
- ([$searchQuery, $editorEncoding]) => {
- if ($searchQuery.input.length === 0 || $searchQuery.processing) {
- searchErr.update(() => {
- return ''
- })
- return false
- }
- const ret = validateEncodingStr($searchQuery.input, $editorEncoding, 'full')
- searchErr.update(() => {
- return ret.errMsg
- })
- return ret.valid
- }
-)
-
-export const replaceable = derived(
- [replaceQuery, editorEncoding, searchable, selectionDataStore],
- ([$replaceData, $editorEncoding, $searchable, $selectionData]) => {
- if (
- $replaceData.input.length < 0 ||
- !$searchable ||
- $replaceData.processing
- ) {
- replaceErr.update(() => {
- return ''
- })
- return false
- }
- if ($selectionData.active) {
- replaceErr.update(() => {
- return 'Cannot replace while viewport data is selected'
- })
- return false
- }
-
- const ret = validateEncodingStr($replaceData.input, $editorEncoding)
- replaceErr.update(() => {
- return ret.errMsg
- })
- return ret.valid
- }
-)
diff --git a/src/svelte/src/components/Header/fieldsets/Settings.svelte b/src/svelte/src/components/Header/fieldsets/Settings.svelte
index 298388e..2605a7e 100644
--- a/src/svelte/src/components/Header/fieldsets/Settings.svelte
+++ b/src/svelte/src/components/Header/fieldsets/Settings.svelte
@@ -19,9 +19,12 @@ limitations under the License.
RADIX_OPTIONS,
ENCODING_GROUPS,
EDIT_ACTIONS,
- editorActionsAllowed,
} from '../../../stores/configuration'
- import { displayRadix, editorEncoding } from '../../../stores'
+ import {
+ displayRadix,
+ editorEncoding,
+ editorActionsAllowed,
+ } from '../../../stores'
import FlexContainer from '../../layouts/FlexContainer.svelte'
import { UIThemeCSSClass } from '../../../utilities/colorScheme'
</script>
diff --git a/src/svelte/src/components/Inputs/Buttons/Button.svelte b/src/svelte/src/components/Inputs/Buttons/Button.svelte
index acad004..1b624d6 100644
--- a/src/svelte/src/components/Inputs/Buttons/Button.svelte
+++ b/src/svelte/src/components/Inputs/Buttons/Button.svelte
@@ -15,14 +15,14 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<script lang="ts">
+ import Tooltip from '../../layouts/Tooltip.svelte'
+ import FlexContainer from '../../layouts/FlexContainer.svelte'
import { onMount } from 'svelte'
+ import { UIThemeCSSClass } from '../../../utilities/colorScheme'
+ import { tooltipsEnabled } from '../../../stores'
export let fn: (event?: Event) => void
export let disabledBy = false
export let width = ''
- import { UIThemeCSSClass } from '../../../utilities/colorScheme'
- import FlexContainer from '../../layouts/FlexContainer.svelte'
- import Tooltip from '../../layouts/Tooltip.svelte'
- import { tooltipsEnabled } from '../../../utilities/display'
onMount(() => {
collapseContent = document.body.clientWidth <= 1600
diff --git a/src/svelte/src/components/Inputs/Buttons/ToggleableButton.svelte b/src/svelte/src/components/Inputs/Buttons/ToggleableButton.svelte
index dfd5079..388cccf 100644
--- a/src/svelte/src/components/Inputs/Buttons/ToggleableButton.svelte
+++ b/src/svelte/src/components/Inputs/Buttons/ToggleableButton.svelte
@@ -19,9 +19,9 @@ limitations under the License.
export let disabledBy = false
export let width = ''
export let active = false
- import { UIThemeCSSClass } from '../../../utilities/colorScheme'
- import FlexContainer from '../../layouts/FlexContainer.svelte'
import Tooltip from '../../layouts/Tooltip.svelte'
+ import FlexContainer from '../../layouts/FlexContainer.svelte'
+ import { UIThemeCSSClass } from '../../../utilities/colorScheme'
export let description: string
</script>
diff --git a/src/svelte/src/components/ServerMetrics/ServerMetrics.svelte b/src/svelte/src/components/ServerMetrics/ServerMetrics.svelte
index a8b98a4..e18bfc3 100644
--- a/src/svelte/src/components/ServerMetrics/ServerMetrics.svelte
+++ b/src/svelte/src/components/ServerMetrics/ServerMetrics.svelte
@@ -15,8 +15,8 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<script lang="ts">
- import { MessageCommand } from '../../utilities/message'
import FlexContainer from '../layouts/FlexContainer.svelte'
+ import { MessageCommand } from '../../utilities/message'
let heartbeat = {
latency: 0,
@@ -28,7 +28,7 @@ limitations under the License.
serverVersion: 'Unknown',
sessionCount: 0,
}
- let timerId: number = 0
+ let timerId: NodeJS.Timeout
function showHeartbeatInfo(show: boolean) {
const element = document.getElementsByClassName(
diff --git a/src/svelte/src/components/dataEditor.svelte b/src/svelte/src/components/dataEditor.svelte
index 47c799c..4cb9c24 100644
--- a/src/svelte/src/components/dataEditor.svelte
+++ b/src/svelte/src/components/dataEditor.svelte
@@ -29,14 +29,13 @@ limitations under the License.
requestable,
selectionDataStore,
selectionSize,
- viewportCapacity,
- viewportEndOffset,
- viewportFollowingByteCount,
viewportNumLinesDisplayed,
- viewportStartOffset,
dataFeedLineTop,
SelectionData_t,
dataFeedAwaitRefresh,
+ fileMetrics,
+ viewport,
+ searchQuery,
} from '../stores'
import {
CSSThemeClass,
@@ -47,22 +46,18 @@ limitations under the License.
import { vscode } from '../utilities/vscode'
import Header from './Header/Header.svelte'
import Main from './Main.svelte'
- import { EditByteModes } from '../stores/configuration'
+ import { EditByteModes, NUM_LINES_DISPLAYED } from '../stores/configuration'
import ServerMetrics from './ServerMetrics/ServerMetrics.svelte'
import { enterKeypressEvents } from '../utilities/enterKeypressEvents'
- import {
- type EditEvent,
- viewport,
+ import type {
+ EditEvent,
ViewportData_t,
} from './DataDisplays/CustomByteDisplay/BinaryData'
- import { fileMetrics } from './Header/fieldsets/FileMetrics'
import {
- DISPLAYED_DATA_LINES,
byte_count_divisible_offset,
viewport_offset_to_line_num,
} from '../utilities/display'
import { clearSearchResultsHighlights } from '../utilities/highlights'
- import { searchQuery } from './Header/fieldsets/SearchReplace'
$: $UIThemeCSSClass = $darkUITheme ? CSSThemeClass.Dark : CSSThemeClass.Light
@@ -124,7 +119,7 @@ limitations under the License.
viewportStartOffset,
$bytesPerRow
) -
- (DISPLAYED_DATA_LINES - 1)
+ (NUM_LINES_DISPLAYED - 1)
: viewport_offset_to_line_num(offset, viewportStartOffset, $bytesPerRow)
$dataFeedAwaitRefresh = true
@@ -144,47 +139,6 @@ limitations under the License.
clearDataDisplays()
}
- function scrolledToEnd(_: Event) {
- if ($viewportFollowingByteCount > 0) {
- // top the display must be the last page of the current viewport, plus one line
- const topOfLastPagePlusOneLine =
- $viewportEndOffset +
- $bytesPerRow -
- $viewportNumLinesDisplayed * $bytesPerRow
-
- vscode.postMessage({
- command: MessageCommand.scrollViewport,
- data: {
- // scroll the viewport with the desired offset in the middle
- scrollOffset: $viewportEndOffset - Math.floor($viewportCapacity / 2),
- bytesPerRow: $bytesPerRow,
- numLinesDisplayed: $viewportNumLinesDisplayed,
- },
- })
- seek(topOfLastPagePlusOneLine)
- }
- }
-
- function scrolledToTop(_: Event) {
- if ($viewportStartOffset > 0) {
- // offset to scroll to after the viewport is scrolled, which should be the previous line in the file
- const topOfFirstPageMinusOneLine = $viewportStartOffset - $bytesPerRow
- vscode.postMessage({
- command: MessageCommand.scrollViewport,
- data: {
- // scroll the viewport with the desired offset in the middle
- scrollOffset: Math.max(
- topOfFirstPageMinusOneLine - Math.floor($viewportCapacity / 2),
- 0
- ),
- bytesPerRow: $bytesPerRow,
- numLinesDisplayed: $viewportNumLinesDisplayed,
- },
- })
- seek(topOfFirstPageMinusOneLine)
- }
- }
-
function seekEventHandler(_: CustomEvent) {
seek($seekOffset)
}
@@ -278,6 +232,7 @@ limitations under the License.
searchQuery.clear()
clearSearchResultsHighlights()
}
+
function handleKeyBind(event: Event) {
const kbdEvent = event as KeyboardEvent
if (kbdEvent.key === 'Enter') {
@@ -325,15 +280,6 @@ limitations under the License.
break
}
})
-
- function scrollBoundaryEventHandler(e: CustomEvent) {
- if (e.detail.scrolledTop) {
- scrolledToTop(e)
- }
- if (e.detail.scrolledEnd) {
- scrolledToEnd(e)
- }
- }
</script>
<svelte:window on:keydown|nonpassive={handleKeyBind} />
@@ -350,9 +296,6 @@ limitations under the License.
on:clearDataDisplays={clearDataDisplays}
on:applyChanges={custom_apply_changes}
on:handleEditorEvent={handleEditorEvent}
- on:scrolledToTop={scrolledToTop}
- on:scrolledToEnd={scrolledToEnd}
- on:scrollBoundary={scrollBoundaryEventHandler}
on:traverse-file={traversalEventHandler}
on:seek={seekEventHandler}
/>
diff --git a/src/svelte/src/components/layouts/Tooltip.svelte b/src/svelte/src/components/layouts/Tooltip.svelte
index c4220f0..dc54251 100644
--- a/src/svelte/src/components/layouts/Tooltip.svelte
+++ b/src/svelte/src/components/layouts/Tooltip.svelte
@@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<script lang="ts">
- import { tooltipsEnabled } from '../../utilities/display'
+ import { tooltipsEnabled } from '../../stores'
const NULL = () => {}
diff --git a/src/svelte/src/stores/configuration.ts b/src/svelte/src/stores/configuration.ts
index dc17d57..8b681a1 100644
--- a/src/svelte/src/stores/configuration.ts
+++ b/src/svelte/src/stores/configuration.ts
@@ -15,8 +15,6 @@
* limitations under the License.
*/
-import { writable } from 'svelte/store'
-
export type Radixes = 'Hexadecimal' | 'Decimal' | 'Octal' | 'Binary'
export type RadixValues = 16 | 10 | 8 | 2
@@ -115,5 +113,3 @@ export const VIEWPORT_CAPACITY_MAX = 16 * 64 // 1024, Ωedit maximum viewport si
export const NUM_LINES_DISPLAYED = 20
export const DATA_PROFILE_MAX_LENGTH = 10_000_000
-
-export const editorActionsAllowed = writable(EditActionRestrictions.None)
diff --git a/src/svelte/src/stores/index.ts b/src/svelte/src/stores/index.ts
index f817c04..6723b89 100644
--- a/src/svelte/src/stores/index.ts
+++ b/src/svelte/src/stores/index.ts
@@ -16,28 +16,32 @@
*/
import type { ValidationResponse } from '../utilities/display'
-import {
- EditByteModes,
- UNPRINTABLE_CHAR_STAND_IN,
- type RadixValues,
- type BytesPerRow,
- EditActionRestrictions,
- editorActionsAllowed,
-} from './configuration'
import { ThemeType } from '../utilities/colorScheme'
-import { fileMetrics } from '../components/Header/fieldsets/FileMetrics'
+import { FileMetrics } from '../components/Header/fieldsets/FileMetrics'
+import { derived, writable } from 'svelte/store'
+import { SimpleWritable } from './localStore'
+import { ErrorComponentType, ErrorStore } from '../components/Error/Error'
import {
radixBytePad,
regexEditDataTest,
validateEncodingStr,
} from '../utilities/display'
-import { derived, writable } from 'svelte/store'
-import { SimpleWritable } from './localStore'
import {
BYTE_ACTION_DIV_OFFSET,
- selectedByte,
- viewport,
+ ViewportDataStore_t,
+ type ByteValue,
} from '../components/DataDisplays/CustomByteDisplay/BinaryData'
+import {
+ ReplaceQuery,
+ SearchQuery,
+} from '../components/Header/fieldsets/SearchReplace'
+import {
+ EditByteModes,
+ UNPRINTABLE_CHAR_STAND_IN,
+ type RadixValues,
+ type BytesPerRow,
+ EditActionRestrictions,
+} from './configuration'
export class SelectionData_t {
startOffset = -1
@@ -107,22 +111,80 @@ export const searchCaseInsensitive = writable(false)
export const dataFeedLineTop = writable(0)
export const dataFeedAwaitRefresh = writable(false)
export const rerenderActionElements = writable(false)
-// data in the viewport
-// export const viewportData = writable(new Uint8Array(0))
// Viewport properties
-export const viewportStartOffset = writable(0)
-export const viewportLength = writable(0)
-export const viewportFollowingByteCount = writable(0)
-export const viewportScrollTop = writable(0)
-export const viewportScrollHeight = writable(0)
-export const viewportClientHeight = writable(0)
-export const viewportCapacity = writable(0)
-export const viewportLineHeight = writable(0)
+export const viewport = new ViewportDataStore_t()
+export const viewportNumLinesDisplayed = writable(20)
+
+export const bytesPerRow = writable(16 as BytesPerRow)
+export const editingByte = writable(false)
+export const selectedByte = writable({
+ text: '',
+ offset: -1,
+ value: -1,
+} as ByteValue)
+
+export const fileMetrics = new FileMetrics()
+
+export const searchQuery = new SearchQuery()
+export const replaceQuery = new ReplaceQuery()
+
+export const searchErr = new ErrorStore(ErrorComponentType.SYMBOL)
+export const replaceErr = new ErrorStore(ErrorComponentType.SYMBOL)
+export const seekErr = new ErrorStore(ErrorComponentType.SYMBOL)
+
+export const editorActionsAllowed = writable(EditActionRestrictions.None)
+export const tooltipsEnabled = writable(false)
+export const sizeHumanReadable = writable(false)
// tracks the start and end offsets of the current selection
export const selectionDataStore = new SelectionData()
+export const searchable = derived(
+ [searchQuery, editorEncoding],
+ ([$searchQuery, $editorEncoding]) => {
+ if ($searchQuery.input.length === 0 || $searchQuery.processing) {
+ searchErr.update(() => {
+ return ''
+ })
+ return false
+ }
+ const ret = validateEncodingStr($searchQuery.input, $editorEncoding, 'full')
+ searchErr.update(() => {
+ return ret.errMsg
+ })
+ return ret.valid
+ }
+)
+
+export const replaceable = derived(
+ [replaceQuery, editorEncoding, searchable, selectionDataStore],
+ ([$replaceData, $editorEncoding, $searchable, $selectionData]) => {
+ if (
+ $replaceData.input.length < 0 ||
+ !$searchable ||
+ $replaceData.processing
+ ) {
+ replaceErr.update(() => {
+ return ''
+ })
+ return false
+ }
+ if ($selectionData.active) {
+ replaceErr.update(() => {
+ return 'Cannot replace while viewport data is selected'
+ })
+ return false
+ }
+
+ const ret = validateEncodingStr($replaceData.input, $editorEncoding)
+ replaceErr.update(() => {
+ return ret.errMsg
+ })
+ return ret.valid
+ }
+)
+
// derived readable enumeration that indicates the edit mode (single byte or multiple bytes)
export const editMode = derived(
selectionDataStore,
@@ -134,41 +196,6 @@ export const editMode = derived(
EditByteModes.Single
)
-// derived readable number whose value is the number of lines displayed in the viewport
-export const viewportNumLinesDisplayed = derived(
- [viewportClientHeight, viewportLineHeight],
- ([$viewportClientHeight, $viewportLineHeight]) => {
- return Math.floor($viewportClientHeight / $viewportLineHeight) + 1
- }
-)
-
-// derived readable number whose value is the end offset of the current viewport
-export const viewportEndOffset = derived(
- [viewportStartOffset, viewportLength],
- ([$viewportStartOffset, $viewportLength]) => {
- return $viewportStartOffset + $viewportLength
- }
-)
-
-// derived readable boolean that indicates if the viewport is scrolled to the top
-export const viewportScrolledToTop = derived(
- [viewportScrollTop],
- ([$viewportScrollTop]) => {
- return $viewportScrollTop === 0
- }
-)
-
-// derived readable boolean that indicates if the viewport is scrolled to the end
-export const viewportScrolledToEnd = derived(
- [viewportScrollTop, viewportScrollHeight, viewportClientHeight],
- ([$viewportScrollTop, $viewportScrollHeight, $viewportClientHeight]) => {
- return (
- Math.ceil($viewportScrollTop) + $viewportClientHeight >=
- $viewportScrollHeight
- )
- }
-)
-
// derived readable number whose value is the size of the current data selection
export const selectionSize = derived(
[selectionDataStore, editorSelection],
@@ -216,11 +243,6 @@ export const editedByteIsOriginalByte = derived(
}
)
-// derived readable number that indicates the number of encoded bytes per row in each viewport
-export const bytesPerRow = derived(displayRadix, ($displayRadix) => {
- return $displayRadix === 2 ? 8 : (16 as BytesPerRow)
-})
-
export const viewportColumnWidth = derived(bytesPerRow, (bytesPerRow) => {
return bytesPerRow * BYTE_ACTION_DIV_OFFSET
})
@@ -376,10 +398,12 @@ function validRequestableData(
}
export const dvOffset = derived(
- [selectionDataStore, addressRadix],
- ([$selectionData, $addressRadix]) => {
+ [selectionDataStore, addressRadix, viewport],
+ ([$selectionData, $addressRadix, $viewport]) => {
return $selectionData.active
- ? $selectionData.startOffset.toString($addressRadix).toUpperCase()
+ ? ($viewport.fileOffset + $selectionData.startOffset)
+ .toString($addressRadix)
+ .toUpperCase()
: ''
}
)
diff --git a/src/svelte/src/utilities/display.ts b/src/svelte/src/utilities/display.ts
index 4a9617e..0e2c14f 100644
--- a/src/svelte/src/utilities/display.ts
+++ b/src/svelte/src/utilities/display.ts
@@ -13,19 +13,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import { writable } from 'svelte/store'
import {
EditByteModes,
type BytesPerRow,
type RadixValues,
} from '../stores/configuration'
-export type ViewportReferences = {
- physical: HTMLTextAreaElement
- address: HTMLTextAreaElement
- logical: HTMLTextAreaElement
-}
-
export type Viewport = 'physical' | 'address' | 'logical'
export type ValidationResponse = {
@@ -45,29 +38,8 @@ const ByteDivWidths = {
}
export type BinaryBytePrefix = 'B' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB'
-export type BinaryBitPrefix = 'b' | 'Kb' | 'Mb' | 'Gb' | 'Tb' | 'Pb'
-type ValidByteOctetCount = 1 | 2 | 3 | 4
-
-export const DISPLAYED_DATA_LINES = 20
-
-export const tooltipsEnabled = writable(false)
-export const sizeHumanReadable = writable(false)
-
-export function viewport_references(
- viewport?: Viewport
-): ViewportReferences | HTMLTextAreaElement {
- return viewport
- ? (document.getElementById(viewport) as HTMLTextAreaElement)
- : {
- physical: document.getElementById('physical') as HTMLTextAreaElement,
- address: document.getElementById('address') as HTMLTextAreaElement,
- logical: document.getElementById('logical') as HTMLTextAreaElement,
- }
-}
-export function edit_byte_window_ref(): HTMLDivElement {
- return document.getElementById('editByteWindow') as HTMLDivElement
-}
+export type BinaryBitPrefix = 'b' | 'Kb' | 'Mb' | 'Gb' | 'Tb' | 'Pb'
export function radixBytePad(radix: RadixValues): number {
switch (radix) {
diff --git a/src/svelte/src/utilities/highlights.ts b/src/svelte/src/utilities/highlights.ts
index 51966b0..1ceeb44 100644
--- a/src/svelte/src/utilities/highlights.ts
+++ b/src/svelte/src/utilities/highlights.ts
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import { derived, get, readable, writable } from 'svelte/store'
+import { derived, readable, writable } from 'svelte/store'
import { selectionDataStore } from '../stores'
let selectionHighlightLUT = new Uint8Array(1024)
diff --git a/yarn.lock b/yarn.lock
index c35256a..ab0a7b2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,11 +3,11 @@
"@babel/runtime@^7.21.0":
- version "7.22.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438"
- integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682"
+ integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==
dependencies:
- regenerator-runtime "^0.13.11"
+ regenerator-runtime "^0.14.0"
"@cspotcode/source-map-support@^0.8.0":
version "0.8.1"
@@ -68,12 +68,7 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/resolve-uri@3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
- integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
-
-"@jridgewell/resolve-uri@^3.0.3":
+"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
@@ -91,11 +86,6 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/sourcemap-codec@1.4.14":
- version "1.4.14"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
- integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
@@ -110,12 +100,12 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.18"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
- integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
+ version "0.3.19"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
+ integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
dependencies:
- "@jridgewell/resolve-uri" "3.1.0"
- "@jridgewell/sourcemap-codec" "1.4.14"
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -279,9 +269,9 @@
"@types/estree" "*"
"@types/eslint@*":
- version "8.44.1"
- resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.1.tgz#d1811559bb6bcd1a76009e3f7883034b78a0415e"
- integrity sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==
+ version "8.44.2"
+ resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a"
+ integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==
dependencies:
"@types/estree" "*"
"@types/json-schema" "*"
@@ -356,9 +346,9 @@
integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==
"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^20.4.1":
- version "20.4.5"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69"
- integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==
+ version "20.5.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.0.tgz#7fc8636d5f1aaa3b21e6245e97d56b7f56702313"
+ integrity sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==
"@types/pug@^2.0.6":
version "2.0.6"
@@ -385,9 +375,9 @@
integrity sha512-ghW5SfuDmsGDS2A4xkvGsLwDRNc3Vj5rS6rPOyPm/IryZuf3wceZKxgYaUoW+k9f0f/CB7y2c1rRsdOWZWn0PQ==
"@types/vscode@^1.60.2":
- version "1.80.0"
- resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.80.0.tgz#e004dd6cde74dafdb7fab64a6e1754bf8165b981"
- integrity sha512-qK/CmOdS2o7ry3k6YqU4zD3R2AYlJfbwBoSbKpBoP+GpXNE+0NEgJOli4n0bm0diK5kfBnchgCEj4igQz/44Hg==
+ version "1.81.0"
+ resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.81.0.tgz#c27228dd063002e0e00611be70b0497beaa24d39"
+ integrity sha512-YIaCwpT+O2E7WOMq0eCgBEABE++SX3Yl/O02GoMIF2DO3qAtvw7m6BXFYsxnc6XyzwZgh6/s/UG78LSSombl2w==
"@types/ws@*":
version "8.5.5"
@@ -466,9 +456,9 @@
keytar "^7.7.0"
"@vscode/vsce@^2.18.0":
- version "2.20.0"
- resolved "https://registry.yarnpkg.com/@vscode/vsce/-/vsce-2.20.0.tgz#0e81dd9fcbd7ef35bb6aabb4b64aedfac58d9bf4"
- integrity sha512-FR8Tq2WgGRi/Py5/9WUFG2DCxdqaHXyuhHXSP8hsNc1FsxNzAkqKqfvOUUGxA7gOytmc9s/000QA7wKVukMDbQ==
+ version "2.20.1"
+ resolved "https://registry.yarnpkg.com/@vscode/vsce/-/vsce-2.20.1.tgz#c37c5867d23667ea3a468d3ec0309c40ae434937"
+ integrity sha512-ilbvoqvR/1/zseRPBAzYR6aKqSJ+jvda4/BqIwOqTxajpvLtEpK3kMLs77+dJdrlygS+VrP7Yhad8j0ukyD96g==
dependencies:
azure-devops-node-api "^11.0.1"
chalk "^2.4.2"
@@ -980,9 +970,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517:
- version "1.0.30001518"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz#b3ca93904cb4699c01218246c4d77a71dbe97150"
- integrity sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA==
+ version "1.0.30001520"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001520.tgz#62e2b7a1c7b35269594cf296a80bdf8cb9565006"
+ integrity sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==
chai@^4.3.7:
version "4.3.7"
@@ -1183,11 +1173,16 @@ commander@^9.3.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30"
integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==
-compare-versions@^5.0.1, compare-versions@^5.0.3:
+compare-versions@^5.0.1:
version "5.0.3"
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.3.tgz#a9b34fea217472650ef4a2651d905f42c28ebfd7"
integrity sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==
+compare-versions@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a"
+ integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -1477,9 +1472,9 @@ duplexer2@~0.1.4:
readable-stream "^2.0.2"
electron-to-chromium@^1.4.477:
- version "1.4.477"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.477.tgz#05669aa6f161ee9076a6805457e9bd9fe6d0dfd1"
- integrity sha512-shUVy6Eawp33dFBFIoYbIwLHrX0IZ857AlH9ug2o4rvbWmpaCUdBpQ5Zw39HRrfzAFm4APJE9V+E2A/WB0YqJw==
+ version "1.4.490"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz#d99286f6e915667fa18ea4554def1aa60eb4d5f1"
+ integrity sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==
emoji-regex@^8.0.0:
version "8.0.0"
@@ -1973,9 +1968,9 @@ immediate@~3.0.5:
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
immutable@^4.0.0:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.1.tgz#17988b356097ab0719e2f741d56f3ec6c317f9dc"
- integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.2.tgz#f89d910f8dfb6e15c03b2cae2faaf8c1f66455fe"
+ integrity sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==
import-fresh@^3.2.1:
version "3.3.0"
@@ -2023,10 +2018,10 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
-is-core-module@^2.11.0:
- version "2.12.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
- integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
+is-core-module@^2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db"
+ integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==
dependencies:
has "^1.0.3"
@@ -2488,13 +2483,13 @@ mocha@10.2.0:
yargs-unparser "2.0.0"
monaco-page-objects@^3.5.1:
- version "3.8.0"
- resolved "https://registry.yarnpkg.com/monaco-page-objects/-/monaco-page-objects-3.8.0.tgz#2fac19b213e3adb59fdfe3eb3c38485d306dc68a"
- integrity sha512-/bsrTHul7KsZ1SmdQFHIdVZTU2Nr+odGpxZAJddWxanX1uEAreqE4H758wI9Ie3mZLFO798lPjv2zaUAi+kDFw==
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/monaco-page-objects/-/monaco-page-objects-3.9.0.tgz#a01c5b6b52715d4b12eb8a7e111cbbc8705401ce"
+ integrity sha512-Hw5eJqYAhe/a83xziiIU113RVZ7vUOdyNCPxgjVN+JcKjuLzqgQcSRY0NRnQzfMmckpNUpNfcx6o1nKkiPZv4g==
dependencies:
clipboardy "^3.0.0"
clone-deep "^4.0.1"
- compare-versions "^5.0.3"
+ compare-versions "^6.0.0"
fs-extra "^11.1.1"
ts-essentials "^9.3.2"
@@ -3218,10 +3213,10 @@ rechoir@^0.8.0:
dependencies:
resolve "^1.20.0"
-regenerator-runtime@^0.13.11:
- version "0.13.11"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
- integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+regenerator-runtime@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
+ integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
require-directory@^2.1.1:
version "2.1.1"
@@ -3256,11 +3251,11 @@ resolve-from@^5.0.0:
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
resolve@^1.20.0:
- version "1.22.2"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
- integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
+ version "1.22.4"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34"
+ integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==
dependencies:
- is-core-module "^2.11.0"
+ is-core-module "^2.13.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
@@ -3349,9 +3344,9 @@ sanitize-filename@^1.6.3:
truncate-utf8-bytes "^1.0.0"
sass@^1.57.1:
- version "1.64.1"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf"
- integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==
+ version "1.65.1"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.65.1.tgz#8f283b0c26335a88246a448d22e1342ba2ea1432"
+ integrity sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
@@ -3382,9 +3377,9 @@ schema-utils@^4.0.0, schema-utils@^4.0.1:
ajv-keywords "^5.1.0"
selenium-webdriver@^4.8.1:
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.10.0.tgz#0508cdfbb5ad8470d8fd19db1a69d3e87f474b79"
- integrity sha512-hSQPw6jgc+ej/UEcdQPG/iBwwMeCEgZr9HByY/J8ToyXztEqXzU9aLsIyrlj1BywBcStO4JQK/zMUWWrV8+riA==
+ version "4.11.1"
+ resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.11.1.tgz#6a84f68d06199d075e6c2a5448bf08f4249b98c8"
+ integrity sha512-bvrnr3UZlLScErOmn8gV6cqc+1PYDHn0575CxUR2U14fMWt7OKxSy0lAThhZq4sq4d1HqP8ebz11oiHSlAQ2WA==
dependencies:
jszip "^3.10.1"
tmp "^0.2.1"
@@ -3617,9 +3612,9 @@ supports-preserve-symlinks-flag@^1.0.0:
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
svelte-check@^3.0.2:
- version "3.4.6"
- resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-3.4.6.tgz#d43de724ad89d1198c96770e9d23965d3379ad44"
- integrity sha512-OBlY8866Zh1zHQTkBMPS6psPi7o2umTUyj6JWm4SacnIHXpWFm658pG32m3dKvKFL49V4ntAkfFHKo4ztH07og==
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-3.5.0.tgz#ebf2d29799bdd35d35d7c6298115726708e7e6e3"
+ integrity sha512-KHujbn4k17xKYLmtCwv0sKKM7uiHTYcQvXnvrCcNU6a7hcszh99zFTIoiu/Sp/ewAw5aJmillJ1Cs8gKLmcX4A==
dependencies:
"@jridgewell/trace-mapping" "^0.3.17"
chokidar "^3.4.1"
@@ -3755,9 +3750,9 @@ terser@^5.16.8:
source-map-support "~0.5.20"
thread-stream@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33"
- integrity sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.4.0.tgz#5def29598d1d4171ba3bace7e023a71d87d99c07"
+ integrity sha512-xZYtOtmnA63zj04Q+F9bdEay5r47bvpo1CaNqsKi7TpoJHcotUez8Fkfo2RJWpW91lnnaApdpRbVwCWsy+ifcw==
dependencies:
real-require "^0.2.0"
@@ -3959,9 +3954,9 @@ v8-compile-cache-lib@^3.0.1:
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
vscode-extension-tester-locators@^3.4.1:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/vscode-extension-tester-locators/-/vscode-extension-tester-locators-3.6.0.tgz#112f8173fd5d86c9e312a6eae16820ce9525608a"
- integrity sha512-RjQf5XL33dJORl9ck5X0vhAHf93TOONPE4nb9nai/pDM15nYcD1TqMyzRGl/XxHpvBu/bP8MV/bHfCT6b8w2cQ==
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/vscode-extension-tester-locators/-/vscode-extension-tester-locators-3.7.0.tgz#c48454b00a9db1a0c2aebb48f52e162fcb57707a"
+ integrity sha512-ML9RFOum8GoE4xggYNzUIanFOT4CWUDCK5LFraLEoJ+9rptA5PSLGC+uSPYVKNNU2pG946SPEC3ZJDetc/IeqA==
vscode-extension-tester@5.5.3:
version "5.5.3"