diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 19f6b0ba2..101a8a4d0 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,29 @@ # @vue-flow/core +## 1.29.0 + +### Minor Changes + +- [#1237](https://github.com/bcakmakoglu/vue-flow/pull/1237) [`16c7d32`](https://github.com/bcakmakoglu/vue-flow/commit/16c7d32746d72dd413e866c5c19461a5bee227ca) Thanks [@bcakmakoglu](https://github.com/bcakmakoglu)! - Expose handleClick and handlePointerDown from handle components + +- [#1238](https://github.com/bcakmakoglu/vue-flow/pull/1238) [`dd4cbe0`](https://github.com/bcakmakoglu/vue-flow/commit/dd4cbe0c92121fc6039e5f43bdc6e5d1663b8069) Thanks [@bcakmakoglu](https://github.com/bcakmakoglu)! - Add `useConnection` composable for easy access of current connection params + +### Patch Changes + +- [#1243](https://github.com/bcakmakoglu/vue-flow/pull/1243) [`b5e77a4`](https://github.com/bcakmakoglu/vue-flow/commit/b5e77a43da76db0ee4cbc16d205e90ef84f2ed62) Thanks [@bcakmakoglu](https://github.com/bcakmakoglu)! - Pass vueflow id to `getMarkerId` in connection line component + +- [#1236](https://github.com/bcakmakoglu/vue-flow/pull/1236) [`be15b5a`](https://github.com/bcakmakoglu/vue-flow/commit/be15b5acbcb6ccd06107a5dc195cc9e0c35b211c) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add default event handler when no handlers for a given event exist anymore + +- [#1250](https://github.com/bcakmakoglu/vue-flow/pull/1250) [`f3c786f`](https://github.com/bcakmakoglu/vue-flow/commit/f3c786f3c9e4445a401e063306e8d1985b3eaf5e) Thanks [@bcakmakoglu](https://github.com/bcakmakoglu)! - Allow panning on scroll when selection is active + +- [#1236](https://github.com/bcakmakoglu/vue-flow/pull/1236) [`d46ac3a`](https://github.com/bcakmakoglu/vue-flow/commit/d46ac3a52c55e96d2e1994a60407767cdd945118) Thanks [@github-actions](https://github.com/apps/github-actions)! - Merge connection line styles with options + +- [#1250](https://github.com/bcakmakoglu/vue-flow/pull/1250) [`b71754f`](https://github.com/bcakmakoglu/vue-flow/commit/b71754fe10a3f7a13132ed1f6058385da267ed88) Thanks [@bcakmakoglu](https://github.com/bcakmakoglu)! - Return false for boolean key filter and set the `isPressed` ref to whatever the keyFilter would be (true/false) + +- [#1250](https://github.com/bcakmakoglu/vue-flow/pull/1250) [`4109cf1`](https://github.com/bcakmakoglu/vue-flow/commit/4109cf1027455fbb308cdc4262e401e904ad07e2) Thanks [@bcakmakoglu](https://github.com/bcakmakoglu)! - Await fitView before emitting pane-ready + +- [#1236](https://github.com/bcakmakoglu/vue-flow/pull/1236) [`d46ac3a`](https://github.com/bcakmakoglu/vue-flow/commit/d46ac3a52c55e96d2e1994a60407767cdd945118) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add fallback for connection line type (bezier as default) + ## 1.28.0 ### Minor Changes diff --git a/packages/core/package.json b/packages/core/package.json index 4cd3d06fc..c962caa4b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@vue-flow/core", - "version": "1.28.0", + "version": "1.29.0", "private": false, "license": "MIT", "author": "Burak Cakmakoglu<78412429+bcakmakoglu@users.noreply.github.com>", diff --git a/packages/core/src/components/ConnectionLine/index.ts b/packages/core/src/components/ConnectionLine/index.ts index 89bc8763c..b0615e9f1 100644 --- a/packages/core/src/components/ConnectionLine/index.ts +++ b/packages/core/src/components/ConnectionLine/index.ts @@ -19,6 +19,7 @@ const ConnectionLine = defineComponent({ compatConfig: { MODE: 3 }, setup() { const { + id, connectionMode, connectionStartHandle, connectionEndHandle, @@ -91,7 +92,7 @@ const ConnectionLine = defineComponent({ return null } - const type = connectionLineType.value ?? connectionLineOptions.value.type + const type = connectionLineType.value ?? connectionLineOptions.value.type ?? ConnectionLineType.Bezier let dAttr = '' @@ -138,16 +139,19 @@ const ConnectionLine = defineComponent({ sourceHandle: fromHandle, targetNode, targetHandle: toHandle, - markerEnd: `url(#${getMarkerId(connectionLineOptions.value.markerEnd)})`, - markerStart: `url(#${getMarkerId(connectionLineOptions.value.markerStart)})`, + markerEnd: `url(#${getMarkerId(connectionLineOptions.value.markerEnd, id)})`, + markerStart: `url(#${getMarkerId(connectionLineOptions.value.markerStart, id)})`, connectionStatus: connectionStatus.value, }) : h('path', { 'd': dAttr, 'class': [connectionLineOptions.value.class, connectionStatus, 'vue-flow__connection-path'], - 'style': connectionLineStyle.value || connectionLineOptions.value.style, - 'marker-end': `url(#${getMarkerId(connectionLineOptions.value.markerEnd)})`, - 'marker-start': `url(#${getMarkerId(connectionLineOptions.value.markerStart)})`, + 'style': { + ...connectionLineStyle.value, + ...connectionLineOptions.value.style, + }, + 'marker-end': `url(#${getMarkerId(connectionLineOptions.value.markerEnd, id)})`, + 'marker-start': `url(#${getMarkerId(connectionLineOptions.value.markerStart, id)})`, }), ), ) diff --git a/packages/core/src/components/Edges/EdgeWrapper.ts b/packages/core/src/components/Edges/EdgeWrapper.ts index 4a398c2f6..f75c28bd6 100644 --- a/packages/core/src/components/Edges/EdgeWrapper.ts +++ b/packages/core/src/components/Edges/EdgeWrapper.ts @@ -17,7 +17,7 @@ import EdgeAnchor from './EdgeAnchor' interface Props { id: string - type: EdgeComponent | Function | Object | false + type: EdgeComponent | ((...args: any[]) => any) | object | false name: string selectable?: boolean focusable?: boolean @@ -49,7 +49,7 @@ const EdgeWrapper = defineComponent({ const hooks = useEdgeHooks(props.edge, emits) - const edge = $(useVModel(props, 'edge')) + const edge = useVModel(props, 'edge') const mouseOver = ref(false) @@ -66,8 +66,8 @@ const EdgeWrapper = defineComponent({ provide(EdgeId, props.id) provide(EdgeRef, edgeEl) - const edgeClass = computed(() => (edge.class instanceof Function ? edge.class(edge) : edge.class)) - const edgeStyle = computed(() => (edge.style instanceof Function ? edge.style(edge) : edge.style)) + const edgeClass = computed(() => (edge.value.class instanceof Function ? edge.value.class(edge.value) : edge.value.class)) + const edgeStyle = computed(() => (edge.value.style instanceof Function ? edge.value.style(edge.value) : edge.value.style)) const { handlePointerDown } = useHandle({ nodeId, @@ -80,23 +80,25 @@ const EdgeWrapper = defineComponent({ }) return () => { - const sourceNode = findNode(edge.source) - const targetNode = findNode(edge.target) + const sourceNode = findNode(edge.value.source) + const targetNode = findNode(edge.value.target) if (!sourceNode && !targetNode) { - flowHooks.value.error.trigger(new VueFlowError(ErrorCode.EDGE_SOURCE_TARGET_MISSING, edge.id, edge.source, edge.target)) + flowHooks.value.error.trigger( + new VueFlowError(ErrorCode.EDGE_SOURCE_TARGET_MISSING, edge.value.id, edge.value.source, edge.value.target), + ) return null } if (!sourceNode) { - flowHooks.value.error.trigger(new VueFlowError(ErrorCode.EDGE_SOURCE_MISSING, edge.id, edge.source)) + flowHooks.value.error.trigger(new VueFlowError(ErrorCode.EDGE_SOURCE_MISSING, edge.value.id, edge.value.source)) return null } if (!targetNode) { - flowHooks.value.error.trigger(new VueFlowError(ErrorCode.EDGE_TARGET_MISSING, edge.id, edge.target)) + flowHooks.value.error.trigger(new VueFlowError(ErrorCode.EDGE_TARGET_MISSING, edge.value.id, edge.value.target)) return null } @@ -112,7 +114,7 @@ const EdgeWrapper = defineComponent({ sourceNodeHandles = [...(sourceNode.handleBounds.source || []), ...(sourceNode.handleBounds.target || [])] } - const sourceHandle = getHandle(sourceNodeHandles, edge.sourceHandle) + const sourceHandle = getHandle(sourceNodeHandles, edge.value.sourceHandle) let targetNodeHandles if (connectionMode.value === ConnectionMode.Strict) { @@ -121,7 +123,7 @@ const EdgeWrapper = defineComponent({ targetNodeHandles = [...(targetNode.handleBounds.target || []), ...(targetNode.handleBounds.source || [])] } - const targetHandle = getHandle(targetNodeHandles, edge.targetHandle) + const targetHandle = getHandle(targetNodeHandles, edge.value.targetHandle) const sourcePosition = sourceHandle ? sourceHandle.position : Position.Bottom @@ -136,10 +138,10 @@ const EdgeWrapper = defineComponent({ targetPosition, ) - edge.sourceX = sourceX - edge.sourceY = sourceY - edge.targetX = targetX - edge.targetY = targetY + edge.value.sourceX = sourceX + edge.value.sourceY = sourceY + edge.value.targetX = targetX + edge.value.targetY = targetY return h( 'g', @@ -154,8 +156,8 @@ const EdgeWrapper = defineComponent({ edgeClass.value, { updating: mouseOver.value, - selected: edge.selected, - animated: edge.animated, + selected: edge.value.selected, + animated: edge.value.animated, inactive: !props.selectable, }, ], @@ -167,7 +169,10 @@ const EdgeWrapper = defineComponent({ 'onMouseleave': onEdgeMouseLeave, 'onKeyDown': props.focusable ? onKeyDown : undefined, 'tabIndex': props.focusable ? 0 : undefined, - 'aria-label': edge.ariaLabel === null ? undefined : edge.ariaLabel || `Edge from ${edge.source} to ${edge.target}`, + 'aria-label': + edge.value.ariaLabel === null + ? undefined + : edge.value.ariaLabel || `Edge from ${edge.value.source} to ${edge.value.target}`, 'aria-describedby': props.focusable ? `${ARIA_EDGE_DESC_KEY}-${vueFlowId}` : undefined, 'role': props.focusable ? 'button' : 'img', }, @@ -178,32 +183,32 @@ const EdgeWrapper = defineComponent({ id: props.id, sourceNode, targetNode, - source: edge.source, - target: edge.target, - type: edge.type, + source: edge.value.source, + target: edge.value.target, + type: edge.value.type, updatable: props.updatable, - selected: edge.selected, - animated: edge.animated, - label: edge.label, - labelStyle: edge.labelStyle, - labelShowBg: edge.labelShowBg, - labelBgStyle: edge.labelBgStyle, - labelBgPadding: edge.labelBgPadding, - labelBgBorderRadius: edge.labelBgBorderRadius, - data: edge.data, - events: { ...edge.events, ...hooks.on }, + selected: edge.value.selected, + animated: edge.value.animated, + label: edge.value.label, + labelStyle: edge.value.labelStyle, + labelShowBg: edge.value.labelShowBg, + labelBgStyle: edge.value.labelBgStyle, + labelBgPadding: edge.value.labelBgPadding, + labelBgBorderRadius: edge.value.labelBgBorderRadius, + data: edge.value.data, + events: { ...edge.value.events, ...hooks.on }, style: edgeStyle.value, - markerStart: `url(#${getMarkerId(edge.markerStart, vueFlowId)})`, - markerEnd: `url(#${getMarkerId(edge.markerEnd, vueFlowId)})`, + markerStart: `url(#${getMarkerId(edge.value.markerStart, vueFlowId)})`, + markerEnd: `url(#${getMarkerId(edge.value.markerEnd, vueFlowId)})`, sourcePosition, targetPosition, sourceX, sourceY, targetX, targetY, - sourceHandleId: edge.sourceHandle, - targetHandleId: edge.targetHandle, - interactionWidth: edge.interactionWidth, + sourceHandleId: edge.value.sourceHandle, + targetHandleId: edge.value.targetHandle, + interactionWidth: edge.value.interactionWidth, }), [ props.updatable === 'source' || props.updatable === true @@ -260,11 +265,11 @@ const EdgeWrapper = defineComponent({ } function onEdgeUpdate(event: MouseTouchEvent, connection: Connection) { - hooks.emit.update({ event, edge, connection }) + hooks.emit.update({ event, edge: edge.value, connection }) } function onEdgeUpdateEnd(event: MouseTouchEvent) { - hooks.emit.updateEnd({ event, edge }) + hooks.emit.updateEnd({ event, edge: edge.value }) updating.value = false } @@ -275,28 +280,28 @@ const EdgeWrapper = defineComponent({ updating.value = true - nodeId.value = isSourceHandle ? edge.target : edge.source - handleId.value = (isSourceHandle ? edge.targetHandle : edge.sourceHandle) ?? '' + nodeId.value = isSourceHandle ? edge.value.target : edge.value.source + handleId.value = (isSourceHandle ? edge.value.targetHandle : edge.value.sourceHandle) ?? '' edgeUpdaterType.value = isSourceHandle ? 'target' : 'source' - hooks.emit.updateStart({ event, edge }) + hooks.emit.updateStart({ event, edge: edge.value }) handlePointerDown(event) } function onEdgeClick(event: MouseEvent) { - const data = { event, edge } + const data = { event, edge: edge.value } if (props.selectable) { nodesSelectionActive.value = false - if (edge.selected && multiSelectionActive.value) { - removeSelectedEdges([edge]) + if (edge.value.selected && multiSelectionActive.value) { + removeSelectedEdges([edge.value]) edgeEl.value?.blur() } else { - addSelectedEdges([edge]) + addSelectedEdges([edge.value]) } } @@ -304,23 +309,23 @@ const EdgeWrapper = defineComponent({ } function onEdgeContextMenu(event: MouseEvent) { - hooks.emit.contextMenu({ event, edge }) + hooks.emit.contextMenu({ event, edge: edge.value }) } function onDoubleClick(event: MouseEvent) { - hooks.emit.doubleClick({ event, edge }) + hooks.emit.doubleClick({ event, edge: edge.value }) } function onEdgeMouseEnter(event: MouseEvent) { - hooks.emit.mouseEnter({ event, edge }) + hooks.emit.mouseEnter({ event, edge: edge.value }) } function onEdgeMouseMove(event: MouseEvent) { - hooks.emit.mouseMove({ event, edge }) + hooks.emit.mouseMove({ event, edge: edge.value }) } function onEdgeMouseLeave(event: MouseEvent) { - hooks.emit.mouseLeave({ event, edge }) + hooks.emit.mouseLeave({ event, edge: edge.value }) } function onEdgeUpdaterSourceMouseDown(event: MouseEvent) { diff --git a/packages/core/src/components/Handle/Handle.vue b/packages/core/src/components/Handle/Handle.vue index 5f59fbadf..f3088b9a6 100644 --- a/packages/core/src/components/Handle/Handle.vue +++ b/packages/core/src/components/Handle/Handle.vue @@ -156,6 +156,13 @@ function onClick(event: MouseEvent) { handleClick(event) } } + +defineExpose({ + handleClick, + handlePointerDown, + onClick, + onPointerDown, +}) @@ -214,7 +213,6 @@ export default { =7.4.0' dependencies: + '@stylistic/eslint-plugin-js': 0.0.4 eslint: 8.51.0 - eslint-plugin-antfu: 0.38.6(eslint@8.51.0)(typescript@4.9.5) + eslint-plugin-antfu: 0.43.1(eslint@8.51.0)(typescript@4.9.5) eslint-plugin-eslint-comments: 3.2.0(eslint@8.51.0) eslint-plugin-html: 7.1.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0) + eslint-plugin-import: /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.19.0)(eslint@8.51.0) + eslint-plugin-jsdoc: 46.10.1(eslint@8.51.0) eslint-plugin-jsonc: 2.9.0(eslint@8.51.0) eslint-plugin-markdown: 3.0.1(eslint@8.51.0) - eslint-plugin-n: 15.7.0(eslint@8.51.0) + eslint-plugin-n: 16.6.2(eslint@8.51.0) eslint-plugin-no-only-tests: 3.1.0 eslint-plugin-promise: 6.1.1(eslint@8.51.0) - eslint-plugin-unicorn: 46.0.1(eslint@8.51.0) - eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.51.0) + eslint-plugin-unicorn: 48.0.1(eslint@8.51.0) + eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.51.0) eslint-plugin-yml: 1.9.0(eslint@8.51.0) jsonc-eslint-parser: 2.3.0 yaml-eslint-parser: 1.2.2 @@ -753,17 +755,18 @@ packages: - typescript dev: true - /@antfu/eslint-config-ts@0.38.6(eslint@8.51.0)(typescript@4.9.5): - resolution: {integrity: sha512-a7PY1xpJwjZwIciu8gboLJ2yYxB1HMCKKshuKvH8vcGv+af5X9wk0eLN3Paa72yytSZZ2fqxfD0AwXTW0n+oiA==} + /@antfu/eslint-config-ts@0.43.1(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-s3zItBSopYbM/3eii/JKas1PmWR+wCPRNS89qUi4zxPvpuIgN5mahkBvbsCiWacrNFtLxe1zGgo5qijBhVfuvA==} peerDependencies: eslint: '>=7.4.0' typescript: '>=3.9' dependencies: - '@antfu/eslint-config-basic': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@4.9.5) + '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.19.0)(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5) + '@stylistic/eslint-plugin-ts': 0.0.4(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.19.0(eslint@8.51.0)(typescript@4.9.5) eslint: 8.51.0 - eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.51.0)(typescript@4.9.5) + eslint-plugin-jest: 27.4.2(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.51.0)(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -772,13 +775,13 @@ packages: - supports-color dev: true - /@antfu/eslint-config-vue@0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5): - resolution: {integrity: sha512-mC+MA7/WFXGIPR4RbdvaSWXjYJvBiloDzPaOILgbfPxWqROi5KzgMAYbRfHkXz0TaG2P1+wFiuf41unc3rq3ew==} + /@antfu/eslint-config-vue@0.43.1(@typescript-eslint/eslint-plugin@6.19.0)(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-HxOfe8Vl+DPrzssbs5LHRDCnBtCy1LSA1DIeV71IC+iTpzoASFahSsVX5qckYu1InFgUm93XOhHCWm34LzPsvg==} peerDependencies: eslint: '>=7.4.0' dependencies: - '@antfu/eslint-config-basic': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5) - '@antfu/eslint-config-ts': 0.38.6(eslint@8.51.0)(typescript@4.9.5) + '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.19.0)(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5) + '@antfu/eslint-config-ts': 0.43.1(eslint@8.51.0)(typescript@4.9.5) eslint: 8.51.0 eslint-plugin-vue: 9.17.0(eslint@8.51.0) local-pkg: 0.4.3 @@ -792,22 +795,22 @@ packages: - typescript dev: true - /@antfu/eslint-config@0.38.6(eslint@8.51.0)(typescript@4.9.5): - resolution: {integrity: sha512-QH9RwKLgumLjkVfKNIrxtISlp6VqfduXVIS2uNlOfrj1hSSObOMzj0olcsKR2pzgTMQ6d5Uu9nrxvKjs/oO6fg==} + /@antfu/eslint-config@0.43.1(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-kTOJeCqhotaiQ/Rv6JxgfAX+SxUq2GII4ZIvTa3GWBUXhFMBvehdUNtxcmO8/HxwxYKkm34/qeF+v7osBsMF1w==} peerDependencies: eslint: '>=7.4.0' dependencies: - '@antfu/eslint-config-vue': 0.38.6(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@4.9.5) + '@antfu/eslint-config-vue': 0.43.1(@typescript-eslint/eslint-plugin@6.19.0)(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.19.0(eslint@8.51.0)(typescript@4.9.5) eslint: 8.51.0 eslint-plugin-eslint-comments: 3.2.0(eslint@8.51.0) eslint-plugin-html: 7.1.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0) + eslint-plugin-import: /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.19.0)(eslint@8.51.0) eslint-plugin-jsonc: 2.9.0(eslint@8.51.0) - eslint-plugin-n: 15.7.0(eslint@8.51.0) + eslint-plugin-n: 16.6.2(eslint@8.51.0) eslint-plugin-promise: 6.1.1(eslint@8.51.0) - eslint-plugin-unicorn: 46.0.1(eslint@8.51.0) + eslint-plugin-unicorn: 48.0.1(eslint@8.51.0) eslint-plugin-vue: 9.17.0(eslint@8.51.0) eslint-plugin-yml: 1.9.0(eslint@8.51.0) jsonc-eslint-parser: 2.3.0 @@ -1431,6 +1434,15 @@ packages: - '@algolia/client-search' dev: true + /@es-joy/jsdoccomment@0.41.0: + resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: true + /@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -2681,6 +2693,34 @@ packages: resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==} dev: false + /@stylistic/eslint-plugin-js@0.0.4: + resolution: {integrity: sha512-W1rq2xxlFNhgZZJO+L59wtvlDI0xARYxx0WD8EeWNBO7NDybUSYSozCIcY9XvxQbTAsEXBjwqokeYm0crt7RxQ==} + dependencies: + acorn: 8.11.2 + escape-string-regexp: 4.0.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esutils: 2.0.3 + graphemer: 1.4.0 + dev: true + + /@stylistic/eslint-plugin-ts@0.0.4(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-sWL4Km5j8S+TLyzya/3adxMWGkCm3lVasJIVQqhxVfwnlGkpMI0GgYVIu/ubdKPS+dSvqjUHpsXgqWfMRF2+cQ==} + peerDependencies: + eslint: '*' + typescript: '*' + dependencies: + '@stylistic/eslint-plugin-js': 0.0.4 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/utils': 6.19.0(eslint@8.51.0)(typescript@4.9.5) + eslint: 8.51.0 + graphemer: 1.4.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -2803,10 +2843,6 @@ packages: resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} dev: true - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - /@types/linkify-it@3.0.3: resolution: {integrity: sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g==} dev: true @@ -2929,47 +2965,49 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.19.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/utils': 6.19.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 + natural-compare: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@4.9.5) + ts-api-utils: 1.0.3(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.51.0)(typescript@4.9.5): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.19.0(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 typescript: 4.9.5 @@ -2985,21 +3023,29 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.51.0)(typescript@4.9.5): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@6.19.0: + resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 + dev: true + + /@typescript-eslint/type-utils@6.19.0(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.19.0(typescript@4.9.5) + '@typescript-eslint/utils': 6.19.0(eslint@8.51.0)(typescript@4.9.5) debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 - tsutils: 3.21.0(typescript@4.9.5) + ts-api-utils: 1.0.3(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -3010,6 +3056,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types@6.19.0: + resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3031,6 +3082,28 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@6.19.0(typescript@4.9.5): + resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@5.62.0(eslint@8.51.0)(typescript@4.9.5): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3051,6 +3124,25 @@ packages: - typescript dev: true + /@typescript-eslint/utils@6.19.0(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@4.9.5) + eslint: 8.51.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3059,6 +3151,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.19.0: + resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.19.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -3779,6 +3879,11 @@ packages: zip-stream: 5.0.1 dev: true + /are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + dev: true + /are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} @@ -3808,33 +3913,11 @@ packages: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 - is-string: 1.0.7 - dev: true - /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 - dev: true - /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -3845,16 +3928,6 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 - dev: true - /arraybuffer.prototype.slice@1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} @@ -4479,6 +4552,11 @@ packages: engines: {node: '>= 12'} dev: true + /comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + dev: true + /common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -5586,6 +5664,15 @@ packages: engines: {node: '>=12'} dev: true + /eslint-compat-utils@0.1.2(eslint@8.51.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.51.0 + dev: true + /eslint-config-prettier@8.10.0(eslint@8.51.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true @@ -5614,7 +5701,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5635,7 +5722,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.19.0(eslint@8.51.0)(typescript@4.9.5) debug: 3.2.7(supports-color@8.1.1) eslint: 8.51.0 eslint-import-resolver-node: 0.3.9 @@ -5643,10 +5730,10 @@ packages: - supports-color dev: true - /eslint-plugin-antfu@0.38.6(eslint@8.51.0)(typescript@4.9.5): - resolution: {integrity: sha512-oQImiNKe+iGwoznuydq70s6oJHpaUE/hCHFeu4v7oy/hfAw7oBuCNi6TCZtQ/MUr+4XyQwq9sdC3fsLZC+DF1g==} + /eslint-plugin-antfu@0.43.1(eslint@8.51.0)(typescript@4.9.5): + resolution: {integrity: sha512-Nak+Qpy5qEK10dCXtVaabPTUmLBPLhsVKAFXAtxYGYRlY/SuuZUBhW2YIsLsixNROiICGuov8sN+eNOCC7Wb5g==} dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/utils': 6.19.0(eslint@8.51.0)(typescript@4.9.5) transitivePeerDependencies: - eslint - supports-color @@ -5662,15 +5749,16 @@ packages: globals: 13.23.0 dev: true - /eslint-plugin-es@4.1.0(eslint@8.51.0): - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} + /eslint-plugin-es-x@7.5.0(eslint@8.51.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=4.19.1' + eslint: '>=8' dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/regexpp': 4.9.1 eslint: 8.51.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + eslint-compat-utils: 0.1.2(eslint@8.51.0) dev: true /eslint-plugin-eslint-comments@3.2.0(eslint@8.51.0): @@ -5690,42 +5778,30 @@ packages: htmlparser2: 8.0.2 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0): - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} - engines: {node: '>=4'} + /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.19.0)(eslint@8.51.0): + resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==} + engines: {node: '>=12'} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: ^7.2.0 || ^8 dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@4.9.5) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.51.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0) - has: 1.0.4 - is-core-module: 2.13.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0) + get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.14.2 + resolve: 1.22.6 + semver: 7.5.4 transitivePeerDependencies: + - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.51.0)(typescript@4.9.5): + /eslint-plugin-jest@27.4.2(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.51.0)(typescript@4.9.5): resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5738,7 +5814,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5) '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@4.9.5) eslint: 8.51.0 transitivePeerDependencies: @@ -5746,6 +5822,26 @@ packages: - typescript dev: true + /eslint-plugin-jsdoc@46.10.1(eslint@8.51.0): + resolution: {integrity: sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + dependencies: + '@es-joy/jsdoccomment': 0.41.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.4(supports-color@8.1.1) + escape-string-regexp: 4.0.0 + eslint: 8.51.0 + esquery: 1.5.0 + is-builtin-module: 3.2.1 + semver: 7.5.4 + spdx-expression-parse: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-plugin-jsonc@2.9.0(eslint@8.51.0): resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5770,17 +5866,20 @@ packages: - supports-color dev: true - /eslint-plugin-n@15.7.0(eslint@8.51.0): - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} + /eslint-plugin-n@16.6.2(eslint@8.51.0): + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} + engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) builtins: 5.0.1 eslint: 8.51.0 - eslint-plugin-es: 4.1.0(eslint@8.51.0) - eslint-utils: 3.0.0(eslint@8.51.0) + eslint-plugin-es-x: 7.5.0(eslint@8.51.0) + get-tsconfig: 4.7.2 + globals: 13.24.0 ignore: 5.2.4 + is-builtin-module: 3.2.1 is-core-module: 2.13.0 minimatch: 3.1.2 resolve: 1.22.6 @@ -5827,11 +5926,11 @@ packages: eslint: 8.51.0 dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.51.0): - resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} - engines: {node: '>=14.18'} + /eslint-plugin-unicorn@48.0.1(eslint@8.51.0): + resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} + engines: {node: '>=16'} peerDependencies: - eslint: '>=8.28.0' + eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) @@ -5846,23 +5945,22 @@ packages: pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 - regjsparser: 0.9.1 - safe-regex: 2.1.1 + regjsparser: 0.10.0 semver: 7.5.4 strip-indent: 3.0.0 dev: true - /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.51.0): - resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.51.0): + resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 + '@typescript-eslint/eslint-plugin': ^6.0.0 eslint: ^8.0.0 peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.51.0)(typescript@4.9.5) eslint: 8.51.0 eslint-rule-composer: 0.3.0 dev: true @@ -5921,33 +6019,6 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - - /eslint-utils@3.0.0(eslint@8.51.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.51.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6528,6 +6599,12 @@ packages: get-intrinsic: 1.2.1 dev: true + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /getos@3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} dependencies: @@ -6628,6 +6705,13 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -7406,6 +7490,11 @@ packages: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true + /jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + dev: true + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -7451,13 +7540,6 @@ packages: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -7468,7 +7550,7 @@ packages: resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.5.4 @@ -8120,10 +8202,6 @@ packages: resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} dev: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -8468,33 +8546,6 @@ packages: object-keys: 1.1.1 dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - dev: true - - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 - dev: true - - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - dev: true - /ofetch@1.3.3: resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} dependencies: @@ -9534,17 +9585,12 @@ packages: set-function-name: 2.0.1 dev: true - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - /register-service-worker@1.7.2: resolution: {integrity: sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A==} dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + /regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} hasBin: true dependencies: jsesc: 0.5.0 @@ -9589,6 +9635,10 @@ packages: engines: {node: '>=8'} dev: true + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + /resolve@1.22.6: resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} hasBin: true @@ -9719,12 +9769,6 @@ packages: is-regex: 1.1.4 dev: true - /safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - dependencies: - regexp-tree: 0.1.27 - dev: true - /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -10025,6 +10069,13 @@ packages: spdx-license-ids: 3.0.16 dev: true + /spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: true + /spdx-license-ids@3.0.16: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true @@ -10377,13 +10428,13 @@ packages: engines: {node: '>=8'} dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + /ts-api-utils@1.0.3(typescript@4.9.5): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 + typescript: 4.9.5 dev: true /tslib@1.14.1: diff --git a/tooling/eslint-config/index.js b/tooling/eslint-config/index.js index 94095f4e1..41d8170e2 100644 --- a/tooling/eslint-config/index.js +++ b/tooling/eslint-config/index.js @@ -20,5 +20,15 @@ module.exports = { ], 'antfu/if-newline': 0, 'antfu/generic-spacing': 0, + + // typescript + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/ban-types': 'off', + + // stylistic + '@stylistic/ts/member-delimiter-style': 'off', + '@stylistic/ts/brace-style': 'off', + '@stylistic/js/operator-linebreak': 'off', + '@stylistic/ts/indent': 'off', }, } diff --git a/tooling/eslint-config/package.json b/tooling/eslint-config/package.json index 9bc0a9462..7a64bc54a 100644 --- a/tooling/eslint-config/package.json +++ b/tooling/eslint-config/package.json @@ -5,7 +5,7 @@ "license": "MIT", "main": "index.js", "devDependencies": { - "@antfu/eslint-config": "^0.38.6", + "@antfu/eslint-config": "^0.43.1", "eslint": "^8.51.0", "eslint-config-prettier": "^8.10.0", "eslint-config-turbo": "^1.11.2",