diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
index e9194e38..c0e48db1 100644
--- a/.github/workflows/release-please.yml
+++ b/.github/workflows/release-please.yml
@@ -4,19 +4,18 @@ on:
branches:
- main
jobs:
- release-please:
+ release:
+ name: 'Release Please'
runs-on: ubuntu-latest
- outputs:
- releases_created: ${{ steps.release.outputs.releases_created }}
steps:
- - uses: google-github-actions/release-please-action@v4
+ - uses: googleapis/release-please-action@v4
id: release
with:
token: ${{secrets.GITHUB_TOKEN}}
- publish-json-viewer:
+ publish:
name: 'Publish @textea/json-viewer'
- needs: release-please
- if: ${{ needs.release-please.outputs.releases_created }}
+ needs: release
+ if: needs.release.outputs.release_created
runs-on: ubuntu-latest
permissions:
contents: read
diff --git a/docs/pages/apis.mdx b/docs/pages/apis.mdx
index 536efbd0..7e2cbe67 100644
--- a/docs/pages/apis.mdx
+++ b/docs/pages/apis.mdx
@@ -29,6 +29,7 @@
| `quotesOnKeys` | `boolean` | `true` | Whether add quotes on keys. |
| `displayDataTypes` | `boolean` | `true` | Whether display data type labels. |
| `displaySize` | `boolean` \|
`(path, currentValue) => boolean` | `true` | Whether display the size of `Object`, `Array`, `Map` and `Set`. Provide a function to customize this behavior by returning a boolean based on the value and path. |
+| `displayComma` | `boolean` | `true` | Whether display commas at the end of the line. |
| `highlightUpdates` | `boolean` | `true` | Whether to highlight updates. |
### Mapping from [`mac-s-g/react-json-view`](https://github.com/mac-s-g/react-json-view)
diff --git a/docs/pages/full/index.tsx b/docs/pages/full/index.tsx
index b23dcb3a..7624c630 100644
--- a/docs/pages/full/index.tsx
+++ b/docs/pages/full/index.tsx
@@ -206,6 +206,7 @@ const IndexPage: FC = () => {
const [src, setSrc] = useState(() => example)
const [displayDataTypes, setDisplayDataTypes] = useState(true)
const [displaySize, setDisplaySize] = useState(true)
+ const [displayComma, setDisplayComma] = useState(false)
const [editable, setEditable] = useState(true)
const [highlightUpdates, setHighlightUpdates] = useState(true)
useEffect(() => {
@@ -281,6 +282,15 @@ const IndexPage: FC = () => {
)}
label='DisplayObjectSize'
/>
+ setDisplayComma(event.target.checked)}
+ />
+ )}
+ label='DisplayComma'
+ />
{
enableDelete={true}
displayDataTypes={displayDataTypes}
displaySize={displaySize}
+ displayComma={displayComma}
groupArraysAfterLength={groupArraysAfterLength}
keyRenderer={KeyRenderer}
valueTypes={[
@@ -376,7 +387,7 @@ const IndexPage: FC = () => {
)
}
sx={{
- paddingLeft: 2
+ paddingX: 2
}}
/>
diff --git a/docs/pages/how-to/styling.mdx b/docs/pages/how-to/styling.mdx
index 42637b58..85e44096 100644
--- a/docs/pages/how-to/styling.mdx
+++ b/docs/pages/how-to/styling.mdx
@@ -69,7 +69,12 @@ Different part of the dom structure will have class names like `data-object-star
This is the list of class names. 🧐
+- `data-key`
- `data-key-pair`
+- `data-key-key`
+- `data-key-colon`
+- `data-key-toggle-expanded`
+- `data-key-toggle-collapsed`
- `data-type-label`
- `data-object`
- `data-object-start`
diff --git a/package.json b/package.json
index 75033d55..3c32ab62 100644
--- a/package.json
+++ b/package.json
@@ -94,7 +94,7 @@
"@typescript-eslint/parser": "^8.2.0",
"@vitejs/plugin-react": "^4.3.1",
"@vitest/coverage-v8": "^1.4.0",
- "eslint": "^9.9.0",
+ "eslint": "^8.57.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "npm:eslint-plugin-i@^2.29.1",
"eslint-plugin-n": "^16.6.2",
diff --git a/src/components/DataKeyPair.tsx b/src/components/DataKeyPair.tsx
index fef5e632..e17fac18 100644
--- a/src/components/DataKeyPair.tsx
+++ b/src/components/DataKeyPair.tsx
@@ -27,6 +27,7 @@ export type DataKeyPairProps = {
nestedIndex?: number
editable?: boolean
path: (string | number)[]
+ last: boolean
}
type IconBoxProps = ComponentProps
@@ -44,7 +45,7 @@ const IconBox: FC = (props) => (
)
export const DataKeyPair: FC = (props) => {
- const { value, prevValue, path, nestedIndex } = props
+ const { value, prevValue, path, nestedIndex, last } = props
const { Component, PreComponent, PostComponent, Editor, serialize, deserialize } = useTypeComponents(value, path)
const propsEditable = props.editable ?? undefined
@@ -79,6 +80,7 @@ export const DataKeyPair: FC = (props) => {
const keyColor = useTextColor()
const numberKeyColor = useJsonViewerStore(store => store.colorspace.base0C)
const highlightColor = useJsonViewerStore(store => store.colorspace.base0A)
+ const displayComma = useJsonViewerStore(store => store.displayComma)
const quotesOnKeys = useJsonViewerStore(store => store.quotesOnKeys)
const rootName = useJsonViewerStore(store => store.rootName)
const isRoot = root === value
@@ -342,6 +344,7 @@ export const DataKeyPair: FC = (props) => {
? (inspect
? (
= (props) => {
)
: (
= (props) => {
?
: nestedIndex === undefined && (
isNumberKey
- ? {key}
+ ? (
+
+ {key}
+
+ )
: quotesOnKeys ? <>"{key}"> : <>{key}>
)
)
@@ -382,13 +396,19 @@ export const DataKeyPair: FC = (props) => {
{
(
isRoot
- ? (rootName !== false && :)
+ ? (rootName !== false && (
+ :
+ ))
: nestedIndex === undefined && (
:
)
@@ -417,6 +437,7 @@ export const DataKeyPair: FC = (props) => {
)
}
{PostComponent && }
+ {!last && displayComma && ,}
{(isHover && expandable && !inspect) && actionIcons}
{(isHover && !expandable) && actionIcons}
{(!isHover && editing) && actionIcons}
diff --git a/src/components/DataTypes/Object.tsx b/src/components/DataTypes/Object.tsx
index a0361207..a5df25a4 100644
--- a/src/components/DataTypes/Object.tsx
+++ b/src/components/DataTypes/Object.tsx
@@ -32,7 +32,7 @@ function inspectMetadata (value: object) {
const PreObjectType: FC> = (props) => {
const metadataColor = useJsonViewerStore(store => store.colorspace.base04)
const textColor = useTextColor()
- const isArray = useMemo(() => Array.isArray(props.value), [props.value])
+ const isArrayLike = useMemo(() => Array.isArray(props.value) || (props.value instanceof Set), [props.value])
const isEmptyValue = useMemo(() => getValueSize(props.value) === 0, [props.value])
const sizeOfValue = useMemo(() => inspectMetadata(props.value), [props.value])
const displaySize = useJsonViewerStore(store => store.displaySize)
@@ -46,7 +46,7 @@ const PreObjectType: FC> = (props) => {
letterSpacing: 0.5
}}
>
- {isArray ? arrayLb : objectLb}
+ {isArrayLike ? arrayLb : objectLb}
{shouldDisplaySize && props.inspect && !isEmptyValue && (
> = (props) => {
mx: 0.5
}}
/>
- {isTrap}
+
+ {isTrap}
+
>
)}
@@ -80,7 +87,7 @@ const PreObjectType: FC> = (props) => {
const PostObjectType: FC> = (props) => {
const metadataColor = useJsonViewerStore(store => store.colorspace.base04)
const textColor = useTextColor()
- const isArray = useMemo(() => Array.isArray(props.value), [props.value])
+ const isArrayLike = useMemo(() => Array.isArray(props.value) || (props.value instanceof Set), [props.value])
const isEmptyValue = useMemo(() => getValueSize(props.value) === 0, [props.value])
const sizeOfValue = useMemo(() => inspectMetadata(props.value), [props.value])
const displaySize = useJsonViewerStore(store => store.displaySize)
@@ -97,7 +104,7 @@ const PostObjectType: FC> = (props) => {
opacity: 0.8
}}
>
- {isArray ? arrayRb : objectRb}
+ {isArrayLike ? arrayRb : objectRb}
{shouldDisplaySize && (isEmptyValue || !props.inspect)
? (
> = (props) => {
if (iterator && !Array.isArray(value)) {
const elements = []
if (value instanceof Map) {
+ const lastIndex = value.size - 1
+ let index = 0
value.forEach((value, k) => {
// fixme: key might be a object, array, or any value for the `Map`
const key = k.toString()
@@ -149,15 +158,18 @@ const ObjectType: FC> = (props) => {
value={value}
prevValue={props.prevValue instanceof Map ? props.prevValue.get(k) : undefined}
editable={false}
+ last={index === lastIndex}
/>
)
+ index++
})
} else {
// iterate with iterator func
const iterator = value[Symbol.iterator]()
let result = iterator.next()
let count = 0
- while (!result.done) {
+ while (true) {
+ const nextResult = iterator.next()
elements.push(
> = (props) => {
value={result.value}
nestedIndex={count}
editable={false}
+ last={nextResult.done ?? false}
/>
)
+
+ if (nextResult.done) {
+ break
+ }
+
count++
- result = iterator.next()
+ result = nextResult
}
}
return elements
}
if (Array.isArray(value)) {
+ const lastIndex = value.length - 1
// unknown[]
if (value.length <= groupArraysAfterLength) {
const elements = value.slice(0, displayLength).map((value, _index) => {
@@ -185,6 +204,7 @@ const ObjectType: FC> = (props) => {
path={path}
value={value}
prevValue={Array.isArray(props.prevValue) ? props.prevValue[index] : undefined}
+ last={_index === lastIndex}
/>
)
})
@@ -213,6 +233,7 @@ const ObjectType: FC> = (props) => {
const elements: unknown[][] = segmentArray(value, groupArraysAfterLength)
const prevElements = Array.isArray(props.prevValue) ? segmentArray(props.prevValue, groupArraysAfterLength) : undefined
+ const elementsLastIndex = elements.length - 1
return elements.map((list, index) => {
return (
> = (props) => {
value={list}
nestedIndex={index}
prevValue={prevElements?.[index]}
+ last={index === elementsLastIndex}
/>
)
})
@@ -232,10 +254,17 @@ const ObjectType: FC> = (props) => {
? entries.sort(([a], [b]) => a.localeCompare(b))
: entries.sort(([a], [b]) => objectSortKeys(a, b))
}
- const elements = entries.slice(0, displayLength).map(([key, value]) => {
+ const lastIndex = entries.length - 1
+ const elements = entries.slice(0, displayLength).map(([key, value], index) => {
const path = [...props.path, key]
return (
-
+
)
})
if (entries.length > displayLength) {
diff --git a/src/index.tsx b/src/index.tsx
index c1bc7ef0..8732e42b 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -64,8 +64,10 @@ const JsonViewerInner: FC = (props) => {
useSetIfNotUndefinedEffect('onDelete', props.onDelete)
useSetIfNotUndefinedEffect('maxDisplayLength', props.maxDisplayLength)
useSetIfNotUndefinedEffect('groupArraysAfterLength', props.groupArraysAfterLength)
+ useSetIfNotUndefinedEffect('quotesOnKeys', props.quotesOnKeys)
useSetIfNotUndefinedEffect('displayDataTypes', props.displayDataTypes)
useSetIfNotUndefinedEffect('displaySize', props.displaySize)
+ useSetIfNotUndefinedEffect('displayComma', props.displayComma)
useSetIfNotUndefinedEffect('highlightUpdates', props.highlightUpdates)
useEffect(() => {
if (props.theme === 'light') {
@@ -124,6 +126,7 @@ const JsonViewerInner: FC = (props) => {
value={value}
prevValue={prevValue}
path={emptyPath}
+ last={true}
/>
)
diff --git a/src/stores/JsonViewerStore.ts b/src/stores/JsonViewerStore.ts
index b98da67b..7f4a147b 100644
--- a/src/stores/JsonViewerStore.ts
+++ b/src/stores/JsonViewerStore.ts
@@ -39,6 +39,7 @@ export type JsonViewerState = {
quotesOnKeys: boolean
displayDataTypes: boolean
displaySize: boolean | ((path: Path, value: unknown) => boolean)
+ displayComma: boolean
highlightUpdates: boolean
inspectCache: Record
@@ -79,6 +80,7 @@ export const createJsonViewerStore = (props: JsonViewerProps) =
quotesOnKeys: props.quotesOnKeys ?? true,
displayDataTypes: props.displayDataTypes ?? true,
displaySize: props.displaySize ?? true,
+ displayComma: props.displayComma ?? false,
highlightUpdates: props.highlightUpdates ?? false,
// internal state
diff --git a/src/type.ts b/src/type.ts
index 92d40d1f..1219ef4f 100644
--- a/src/type.ts
+++ b/src/type.ts
@@ -283,6 +283,13 @@ export type JsonViewerProps = {
*/
displaySize?: boolean | ((path: Path, value: unknown) => boolean)
+ /**
+ * Whether display comma at the end of items. Just like valid JSON.
+ *
+ * @default false
+ */
+ displayComma?: boolean
+
/**
* Whether to highlight updates.
*
diff --git a/yarn.lock b/yarn.lock
index 66e7f135..4d4fa65e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -789,13 +789,6 @@ __metadata:
languageName: node
linkType: hard
-"@eslint-community/regexpp@npm:^4.11.0":
- version: 4.11.0
- resolution: "@eslint-community/regexpp@npm:4.11.0"
- checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec
- languageName: node
- linkType: hard
-
"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.0":
version: 4.10.0
resolution: "@eslint-community/regexpp@npm:4.10.0"
@@ -803,45 +796,34 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/config-array@npm:^0.17.1":
- version: 0.17.1
- resolution: "@eslint/config-array@npm:0.17.1"
- dependencies:
- "@eslint/object-schema": ^2.1.4
- debug: ^4.3.1
- minimatch: ^3.1.2
- checksum: b678a7af5b0be8f1b29deaf751c77c365cf0b24bead3add677edbc7c7793dfb3eb423e33395787ff86fdbd85117a571f2f338d612a23210d9771aedf765d5482
+"@eslint-community/regexpp@npm:^4.6.1":
+ version: 4.11.0
+ resolution: "@eslint-community/regexpp@npm:4.11.0"
+ checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec
languageName: node
linkType: hard
-"@eslint/eslintrc@npm:^3.1.0":
- version: 3.1.0
- resolution: "@eslint/eslintrc@npm:3.1.0"
+"@eslint/eslintrc@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@eslint/eslintrc@npm:2.1.4"
dependencies:
ajv: ^6.12.4
debug: ^4.3.2
- espree: ^10.0.1
- globals: ^14.0.0
+ espree: ^9.6.0
+ globals: ^13.19.0
ignore: ^5.2.0
import-fresh: ^3.2.1
js-yaml: ^4.1.0
minimatch: ^3.1.2
strip-json-comments: ^3.1.1
- checksum: b0a9bbd98c8b9e0f4d975b042ff9b874dde722b20834ea2ff46551c3de740d4f10f56c449b790ef34d7f82147cbddfc22b004a43cc885dbc2664bb134766b5e4
- languageName: node
- linkType: hard
-
-"@eslint/js@npm:9.9.0":
- version: 9.9.0
- resolution: "@eslint/js@npm:9.9.0"
- checksum: 33f0c8988e4e6f6c1499d05e2e91ef3df1c0b221a46c41ed1d27cf1265809451fba5b7a9452ece70e98bfd2f745c0f0df3c9cc1fdcfdcaacbcae45ddc415b5d6
+ checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127
languageName: node
linkType: hard
-"@eslint/object-schema@npm:^2.1.4":
- version: 2.1.4
- resolution: "@eslint/object-schema@npm:2.1.4"
- checksum: 5a03094115bcdab7991dbbc5d17a9713f394cebb4b44d3eaf990d7487b9b8e1877b817997334ab40be52e299a0384595c6f6ba91b389901e5e1d21efda779271
+"@eslint/js@npm:8.57.0":
+ version: 8.57.0
+ resolution: "@eslint/js@npm:8.57.0"
+ checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb
languageName: node
linkType: hard
@@ -872,6 +854,17 @@ __metadata:
languageName: node
linkType: hard
+"@humanwhocodes/config-array@npm:^0.11.14":
+ version: 0.11.14
+ resolution: "@humanwhocodes/config-array@npm:0.11.14"
+ dependencies:
+ "@humanwhocodes/object-schema": ^2.0.2
+ debug: ^4.3.1
+ minimatch: ^3.0.5
+ checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2
+ languageName: node
+ linkType: hard
+
"@humanwhocodes/module-importer@npm:^1.0.1":
version: 1.0.1
resolution: "@humanwhocodes/module-importer@npm:1.0.1"
@@ -879,10 +872,10 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/retry@npm:^0.3.0":
- version: 0.3.0
- resolution: "@humanwhocodes/retry@npm:0.3.0"
- checksum: 4349cb8b60466a000e945fde8f8551cefb01ebba22ead4a92ac7b145f67f5da6b52e5a1e0c53185d732d0a49958ac29327934a4a5ac1d0bc20efb4429a4f7bf7
+"@humanwhocodes/object-schema@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "@humanwhocodes/object-schema@npm:2.0.3"
+ checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631
languageName: node
linkType: hard
@@ -1949,7 +1942,7 @@ __metadata:
"@vitest/coverage-v8": ^1.4.0
clsx: ^2.1.1
copy-to-clipboard: ^3.3.3
- eslint: ^9.9.0
+ eslint: ^8.57.0
eslint-config-standard: ^17.1.0
eslint-plugin-import: "npm:eslint-plugin-i@^2.29.1"
eslint-plugin-n: ^16.6.2
@@ -2480,7 +2473,7 @@ __metadata:
languageName: node
linkType: hard
-"@ungap/structured-clone@npm:^1.0.0":
+"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0":
version: 1.2.0
resolution: "@ungap/structured-clone@npm:1.2.0"
checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524
@@ -2624,7 +2617,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.12.0":
+"acorn@npm:^8.9.0":
version: 8.12.1
resolution: "acorn@npm:8.12.1"
bin:
@@ -4745,13 +4738,13 @@ __metadata:
languageName: node
linkType: hard
-"eslint-scope@npm:^8.0.2":
- version: 8.0.2
- resolution: "eslint-scope@npm:8.0.2"
+"eslint-scope@npm:^7.2.2":
+ version: 7.2.2
+ resolution: "eslint-scope@npm:7.2.2"
dependencies:
esrecurse: ^4.3.0
estraverse: ^5.2.0
- checksum: bd1e7a0597ec605cf3bc9b35c9e13d7ea6c11fee031b0cada9e8993b0ecf16d81d6f40f1dcd463424af439abf53cd62302ea25707c1599689eb2750d6aa29688
+ checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e
languageName: node
linkType: hard
@@ -4762,43 +4755,40 @@ __metadata:
languageName: node
linkType: hard
-"eslint-visitor-keys@npm:^4.0.0":
- version: 4.0.0
- resolution: "eslint-visitor-keys@npm:4.0.0"
- checksum: 5c09f89cf29d87cdbfbac38802a880d3c2e65f8cb61c689888346758f1e24a4c7f6caefeac9474dfa52058a99920623599bdb00516976a30134abeba91275aa2
- languageName: node
- linkType: hard
-
-"eslint@npm:^9.9.0":
- version: 9.9.0
- resolution: "eslint@npm:9.9.0"
+"eslint@npm:^8.57.0":
+ version: 8.57.0
+ resolution: "eslint@npm:8.57.0"
dependencies:
"@eslint-community/eslint-utils": ^4.2.0
- "@eslint-community/regexpp": ^4.11.0
- "@eslint/config-array": ^0.17.1
- "@eslint/eslintrc": ^3.1.0
- "@eslint/js": 9.9.0
+ "@eslint-community/regexpp": ^4.6.1
+ "@eslint/eslintrc": ^2.1.4
+ "@eslint/js": 8.57.0
+ "@humanwhocodes/config-array": ^0.11.14
"@humanwhocodes/module-importer": ^1.0.1
- "@humanwhocodes/retry": ^0.3.0
"@nodelib/fs.walk": ^1.2.8
+ "@ungap/structured-clone": ^1.2.0
ajv: ^6.12.4
chalk: ^4.0.0
cross-spawn: ^7.0.2
debug: ^4.3.2
+ doctrine: ^3.0.0
escape-string-regexp: ^4.0.0
- eslint-scope: ^8.0.2
- eslint-visitor-keys: ^4.0.0
- espree: ^10.1.0
- esquery: ^1.5.0
+ eslint-scope: ^7.2.2
+ eslint-visitor-keys: ^3.4.3
+ espree: ^9.6.1
+ esquery: ^1.4.2
esutils: ^2.0.2
fast-deep-equal: ^3.1.3
- file-entry-cache: ^8.0.0
+ file-entry-cache: ^6.0.1
find-up: ^5.0.0
glob-parent: ^6.0.2
+ globals: ^13.19.0
+ graphemer: ^1.4.0
ignore: ^5.2.0
imurmurhash: ^0.1.4
is-glob: ^4.0.0
is-path-inside: ^3.0.3
+ js-yaml: ^4.1.0
json-stable-stringify-without-jsonify: ^1.0.1
levn: ^0.4.1
lodash.merge: ^4.6.2
@@ -4807,25 +4797,20 @@ __metadata:
optionator: ^0.9.3
strip-ansi: ^6.0.1
text-table: ^0.2.0
- peerDependencies:
- jiti: "*"
- peerDependenciesMeta:
- jiti:
- optional: true
bin:
eslint: bin/eslint.js
- checksum: 050956566d1cab8abc3ae81f98debc0e48bb612e007c62dac2c99272471885b62a8aa4814b3713838e9e2e825a7446adfc8453066c708d91579ead0ad63fed7d
+ checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9
languageName: node
linkType: hard
-"espree@npm:^10.0.1, espree@npm:^10.1.0":
- version: 10.1.0
- resolution: "espree@npm:10.1.0"
+"espree@npm:^9.6.0, espree@npm:^9.6.1":
+ version: 9.6.1
+ resolution: "espree@npm:9.6.1"
dependencies:
- acorn: ^8.12.0
+ acorn: ^8.9.0
acorn-jsx: ^5.3.2
- eslint-visitor-keys: ^4.0.0
- checksum: a4708ab987f6c03734b8738b1588e9f31b2e305e869ca4677c60d82294eb05f7099b6687eb39eeb0913bb2d49bdf0bd0f31c511599ea7ee171281f871a9c897e
+ eslint-visitor-keys: ^3.4.1
+ checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9
languageName: node
linkType: hard
@@ -4839,7 +4824,7 @@ __metadata:
languageName: node
linkType: hard
-"esquery@npm:^1.5.0":
+"esquery@npm:^1.4.2":
version: 1.6.0
resolution: "esquery@npm:1.6.0"
dependencies:
@@ -5049,12 +5034,12 @@ __metadata:
languageName: node
linkType: hard
-"file-entry-cache@npm:^8.0.0":
- version: 8.0.0
- resolution: "file-entry-cache@npm:8.0.0"
+"file-entry-cache@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "file-entry-cache@npm:6.0.1"
dependencies:
- flat-cache: ^4.0.0
- checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f
+ flat-cache: ^3.0.4
+ checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74
languageName: node
linkType: hard
@@ -5095,13 +5080,14 @@ __metadata:
languageName: node
linkType: hard
-"flat-cache@npm:^4.0.0":
- version: 4.0.1
- resolution: "flat-cache@npm:4.0.1"
+"flat-cache@npm:^3.0.4":
+ version: 3.2.0
+ resolution: "flat-cache@npm:3.2.0"
dependencies:
flatted: ^3.2.9
- keyv: ^4.5.4
- checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6
+ keyv: ^4.5.3
+ rimraf: ^3.0.2
+ checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec
languageName: node
linkType: hard
@@ -5430,7 +5416,7 @@ __metadata:
languageName: node
linkType: hard
-"globals@npm:^13.24.0":
+"globals@npm:^13.19.0, globals@npm:^13.24.0":
version: 13.24.0
resolution: "globals@npm:13.24.0"
dependencies:
@@ -5439,13 +5425,6 @@ __metadata:
languageName: node
linkType: hard
-"globals@npm:^14.0.0":
- version: 14.0.0
- resolution: "globals@npm:14.0.0"
- checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac
- languageName: node
- linkType: hard
-
"globalthis@npm:^1.0.3":
version: 1.0.3
resolution: "globalthis@npm:1.0.3"
@@ -6651,7 +6630,7 @@ __metadata:
languageName: node
linkType: hard
-"keyv@npm:^4.5.4":
+"keyv@npm:^4.5.3":
version: 4.5.4
resolution: "keyv@npm:4.5.4"
dependencies:
@@ -7882,7 +7861,7 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
+"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
dependencies: