diff --git a/js_modules/dagster-ui/packages/app-oss/package.json b/js_modules/dagster-ui/packages/app-oss/package.json index ad44e7f08a622..496aea513b4f5 100644 --- a/js_modules/dagster-ui/packages/app-oss/package.json +++ b/js_modules/dagster-ui/packages/app-oss/package.json @@ -36,10 +36,10 @@ "@types/uuid": "^8.3.4", "@types/validator": "^13", "@types/webpack-bundle-analyzer": "^4", - "eslint": "8.6.0", + "eslint": "^8.49.0", "eslint-plugin-jest": "^26.4.6", "eslint-webpack-plugin": "3.1.1", - "prettier": "2.2.1", + "prettier": "^3.0.3", "typescript": "5.2.2", "webpack": "^5.88.1", "webpack-bundle-analyzer": "^4.7.0" diff --git a/js_modules/dagster-ui/packages/eslint-config/CHANGES.md b/js_modules/dagster-ui/packages/eslint-config/CHANGES.md index 44308852efd23..cdc94910843b4 100644 --- a/js_modules/dagster-ui/packages/eslint-config/CHANGES.md +++ b/js_modules/dagster-ui/packages/eslint-config/CHANGES.md @@ -1,3 +1,7 @@ +## 1.0.13 (September 20, 2023) + +- Dependency upgrades + ## 1.0.12 (August 2, 2023) - Removed styled-components from restricted imports due to babel-plugins-macro providing the required behavior. diff --git a/js_modules/dagster-ui/packages/eslint-config/package.json b/js_modules/dagster-ui/packages/eslint-config/package.json index f25a9f4c74d70..b1c7fdf4d839b 100644 --- a/js_modules/dagster-ui/packages/eslint-config/package.json +++ b/js_modules/dagster-ui/packages/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@dagster-io/eslint-config", - "version": "1.0.12", + "version": "1.0.13", "description": "Shared eslint configuration for @dagster-io", "license": "Apache-2.0", "main": "index.js", @@ -10,27 +10,27 @@ "format": "prettier -w --config ./.prettierrc.js ." }, "peerDependencies": { - "eslint": "^8.30.0", - "prettier": "2.8.1" + "eslint": "^8.49.0", + "prettier": "^3.0.3" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "6.7.2", - "@typescript-eslint/parser": "6.7.2", - "eslint-config-prettier": "8.5.0", + "@typescript-eslint/eslint-plugin": "^6.7.2", + "@typescript-eslint/parser": "^6.7.2", + "eslint-config-prettier": "^9.0.0", "eslint-plugin-dagster-rules": "link:./rules", - "eslint-plugin-import": "2.26.0", - "eslint-plugin-jest": "^27.1.7", - "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "7.31.11", - "eslint-plugin-react-hooks": "4.6.0" + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jest": "^27.4.0", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0" }, "devDependencies": { - "@types/jest": "^27.5.1", - "eslint": "^8.6.0", - "jest": "^29.4", - "prettier": "2.2.1", - "ts-jest": "^28.0.3", + "@types/jest": "^29.5.5", + "eslint": "^8.49.0", + "jest": "^29.7.0", + "prettier": "^3.0.3", + "ts-jest": "^29.1.1", "typescript": "5.2.2" } } diff --git a/js_modules/dagster-ui/packages/ui-components/package.json b/js_modules/dagster-ui/packages/ui-components/package.json index f720cca3f483e..76bfee4f3fc56 100644 --- a/js_modules/dagster-ui/packages/ui-components/package.json +++ b/js_modules/dagster-ui/packages/ui-components/package.json @@ -81,7 +81,7 @@ "babel-loader": "^9.1.2", "babel-plugin-macros": "^3.1.0", "core-js": "^3.21.1", - "eslint": "^8.6.0", + "eslint": "^8.49.0", "eslint-plugin-storybook": "^0.6.13", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", diff --git a/js_modules/dagster-ui/packages/ui-core/package.json b/js_modules/dagster-ui/packages/ui-core/package.json index b6b29f2ed3eb1..af9074b008e03 100644 --- a/js_modules/dagster-ui/packages/ui-core/package.json +++ b/js_modules/dagster-ui/packages/ui-core/package.json @@ -131,7 +131,7 @@ "babel-plugin-graphql-tag": "^2.5.0", "babel-plugin-macros": "^2.8.0", "child-process": "^1.0.2", - "eslint": "^8.39.0", + "eslint": "^8.49.0", "eslint-plugin-storybook": "^0.6.13", "faker": "5.5.3", "graphql-codegen-typescript-mock-data": "^3.3.0", @@ -141,7 +141,7 @@ "jest": "^29.4", "jest-canvas-mock": "^2.4.0", "jest-environment-jsdom": "^29.4", - "prettier": "2.2.1", + "prettier": "^3.0.3", "react": "^18.2.0", "react-docgen-typescript-plugin": "^1.0.5", "react-dom": "^18.2.0", diff --git a/js_modules/dagster-ui/packages/ui-core/src/app/ExecutionSessionStorage.tsx b/js_modules/dagster-ui/packages/ui-core/src/app/ExecutionSessionStorage.tsx index 98d46d167ce7b..81130546e7786 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/app/ExecutionSessionStorage.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/app/ExecutionSessionStorage.tsx @@ -127,19 +127,21 @@ export function applyCreateSession( type StorageHook = [IStorageData, (data: IStorageData) => void]; -const buildValidator = (initial: Partial = {}) => (json: any): IStorageData => { - let data: IStorageData = Object.assign({sessions: {}, current: ''}, json); +const buildValidator = + (initial: Partial = {}) => + (json: any): IStorageData => { + let data: IStorageData = Object.assign({sessions: {}, current: ''}, json); - if (Object.keys(data.sessions).length === 0) { - data = applyCreateSession(data, initial); - } + if (Object.keys(data.sessions).length === 0) { + data = applyCreateSession(data, initial); + } - if (!data.sessions[data.current]) { - data.current = Object.keys(data.sessions)[0]!; - } + if (!data.sessions[data.current]) { + data.current = Object.keys(data.sessions)[0]!; + } - return data; -}; + return data; + }; const makeKey = (basePath: string, repoAddress: RepoAddress, pipelineOrJobName: string) => `dagster.v2.${basePath}-${repoAddress.location}-${repoAddress.name}-${pipelineOrJobName}`; @@ -312,37 +314,37 @@ export const MAX_SESSION_WRITE_ATTEMPTS = 10; * user has too much data already in localStorage, clear out old sessions until the * write is successful or we run out of retries. */ -export const writeLaunchpadSessionToStorage = ( - setState: React.Dispatch>, -) => (data: IStorageData) => { - const tryWrite = (data: IStorageData) => { - try { - setState(data); - return true; - } catch (e) { - // The data could not be written to localStorage. This is probably due to - // a QuotaExceededError, but since different browsers use slightly different - // objects for this, we don't try to get clever detecting it. - return false; - } - }; +export const writeLaunchpadSessionToStorage = + (setState: React.Dispatch>) => + (data: IStorageData) => { + const tryWrite = (data: IStorageData) => { + try { + setState(data); + return true; + } catch (e) { + // The data could not be written to localStorage. This is probably due to + // a QuotaExceededError, but since different browsers use slightly different + // objects for this, we don't try to get clever detecting it. + return false; + } + }; - const getInitiallyStoredSessions = memoize(() => allStoredSessions()); + const getInitiallyStoredSessions = memoize(() => allStoredSessions()); - // Track the number of attempts at writing this session to localStorage so that - // we eventually give up and don't loop endlessly. - let attempts = 1; + // Track the number of attempts at writing this session to localStorage so that + // we eventually give up and don't loop endlessly. + let attempts = 1; - // Attempt to write the session to storage. If an error occurs, delete the oldest - // session and try again. - while (!tryWrite(data) && attempts < MAX_SESSION_WRITE_ATTEMPTS) { - attempts++; + // Attempt to write the session to storage. If an error occurs, delete the oldest + // session and try again. + while (!tryWrite(data) && attempts < MAX_SESSION_WRITE_ATTEMPTS) { + attempts++; - // Remove the oldest session and try again. - const toRemove = getInitiallyStoredSessions().shift(); - if (toRemove) { - const [jobKey, sessionID] = toRemove; - removeSession(jobKey, sessionID); + // Remove the oldest session and try again. + const toRemove = getInitiallyStoredSessions().shift(); + if (toRemove) { + const [jobKey, sessionID] = toRemove; + removeSession(jobKey, sessionID); + } } - } -}; + }; diff --git a/js_modules/dagster-ui/packages/ui-core/src/app/Permissions.tsx b/js_modules/dagster-ui/packages/ui-core/src/app/Permissions.tsx index d3f3438bbd36d..dc6ba9ccabdb3 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/app/Permissions.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/app/Permissions.tsx @@ -189,9 +189,10 @@ const unpackPermissions = ( */ export const useUnscopedPermissions = (): PermissionsState => { const {unscopedPermissions, loading} = React.useContext(PermissionsContext); - const unpacked = React.useMemo(() => unpackPermissions(unscopedPermissions), [ - unscopedPermissions, - ]); + const unpacked = React.useMemo( + () => unpackPermissions(unscopedPermissions), + [unscopedPermissions], + ); return React.useMemo(() => { return { diff --git a/js_modules/dagster-ui/packages/ui-core/src/app/QueryRefresh.tsx b/js_modules/dagster-ui/packages/ui-core/src/app/QueryRefresh.tsx index ce7fff89eb079..485650f348555 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/app/QueryRefresh.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/app/QueryRefresh.tsx @@ -115,9 +115,10 @@ export function useQueryRefreshAtInterval( // Expose the next fire time both as a unix timstamp and as a "seconds" interval // so the can display the number easily. - const nextFireDelay = React.useMemo(() => (nextFireMs ? nextFireMs - Date.now() : -1), [ - nextFireMs, - ]); + const nextFireDelay = React.useMemo( + () => (nextFireMs ? nextFireMs - Date.now() : -1), + [nextFireMs], + ); // Memoize the returned object so components passed the entire QueryRefreshState // can be memoized / pure components. diff --git a/js_modules/dagster-ui/packages/ui-core/src/app/Util.tsx b/js_modules/dagster-ui/packages/ui-core/src/app/Util.tsx index f719e34077753..b3b85ae49d067 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/app/Util.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/app/Util.tsx @@ -200,10 +200,10 @@ export function colorHash(str: string) { // const textMetadata = metadataEntries.filter(gqlTypePredicate('TextMetadataEntry')); // // `textMetadata` will be of type `TextMetadataEntry[]`. -export const gqlTypePredicate = (typename: T) => ( - node: N, -): node is Extract => { - return node.__typename === typename; -}; +export const gqlTypePredicate = + (typename: T) => + (node: N): node is Extract => { + return node.__typename === typename; + }; export const COMMON_COLLATOR = new Intl.Collator(navigator.language, {sensitivity: 'base'}); diff --git a/js_modules/dagster-ui/packages/ui-core/src/app/WebSocketProvider.tsx b/js_modules/dagster-ui/packages/ui-core/src/app/WebSocketProvider.tsx index e641de138e642..49359eae70c33 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/app/WebSocketProvider.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/app/WebSocketProvider.tsx @@ -146,7 +146,7 @@ export const WebSocketStatus: React.FC = (props) => ( [WebSocket.CLOSING]: ( ), - }[status] || ) + })[status] || } ); diff --git a/js_modules/dagster-ui/packages/ui-core/src/app/time/HourCycleSelect.tsx b/js_modules/dagster-ui/packages/ui-core/src/app/time/HourCycleSelect.tsx index ceedce79a32f9..293144e408d14 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/app/time/HourCycleSelect.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/app/time/HourCycleSelect.tsx @@ -73,7 +73,7 @@ export const HourCycleSelect: React.FC = () => { ]; return ( - + popoverProps={{ position: 'bottom-left', modifiers: {offset: {enabled: true, offset: '-12px, 8px'}}, diff --git a/js_modules/dagster-ui/packages/ui-core/src/app/time/TimezoneSelect.tsx b/js_modules/dagster-ui/packages/ui-core/src/app/time/TimezoneSelect.tsx index 0ab11aa8551dd..4b45aab0cac03 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/app/time/TimezoneSelect.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/app/time/TimezoneSelect.tsx @@ -139,7 +139,7 @@ export const TimezoneSelect: React.FC = ({trigger}) => { }, []); return ( - + popoverProps={{ position: 'bottom-left', modifiers: {offset: {enabled: true, offset: '-12px, 8px'}}, diff --git a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGraphExplorer.tsx b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGraphExplorer.tsx index 495215bbecca4..72ed98ff21066 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGraphExplorer.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGraphExplorer.tsx @@ -195,9 +195,8 @@ const AssetGraphExplorerWithData: React.FC = ({ } const existing = explorerPath.opNames[0]!.split(','); - nextOpsNameSelection = (existing.includes(token) - ? without(existing, token) - : uniq([...existing, ...tokensToAdd]) + nextOpsNameSelection = ( + existing.includes(token) ? without(existing, token) : uniq([...existing, ...tokensToAdd]) ).join(','); } diff --git a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGroupNode.tsx b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGroupNode.tsx index c50bb37b4d1a9..e1bc7feabd7bb 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGroupNode.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetGroupNode.tsx @@ -11,12 +11,8 @@ import {MINIMAL_SCALE, GROUPS_ONLY_SCALE} from './AssetGraphExplorer'; import {GroupLayout} from './layout'; export const AssetGroupNode: React.FC<{group: GroupLayout; scale: number}> = ({group, scale}) => { - const { - repositoryLocationName, - repositoryDisambiguationRequired, - repositoryName, - groupName, - } = group; + const {repositoryLocationName, repositoryDisambiguationRequired, repositoryName, groupName} = + group; return (
diff --git a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetNodeStatusContent.tsx b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetNodeStatusContent.tsx index b081efc870423..e0069bd5818b2 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetNodeStatusContent.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/AssetNodeStatusContent.tsx @@ -174,12 +174,8 @@ export function _buildAssetNodeStatusContent({ return LOADING_STATUS_CONTENT; } - const { - lastMaterialization, - runWhichFailedToMaterialize, - inProgressRunIds, - unstartedRunIds, - } = liveData; + const {lastMaterialization, runWhichFailedToMaterialize, inProgressRunIds, unstartedRunIds} = + liveData; const materializingRunId = inProgressRunIds[0] || unstartedRunIds[0]; const overdue = isAssetOverdue(liveData); @@ -224,13 +220,14 @@ export function _buildAssetNodeStatusContent({ if (liveData.partitionStats) { const {numPartitions, numMaterialized, numFailed} = liveData.partitionStats; const numMissing = numPartitions - numFailed - numMaterialized; - const {background, foreground, border} = StyleForAssetPartitionStatus[ - overdue || numFailed - ? AssetPartitionStatus.FAILED - : numMissing - ? AssetPartitionStatus.MISSING - : AssetPartitionStatus.MATERIALIZED - ]; + const {background, foreground, border} = + StyleForAssetPartitionStatus[ + overdue || numFailed + ? AssetPartitionStatus.FAILED + : numMissing + ? AssetPartitionStatus.MISSING + : AssetPartitionStatus.MATERIALIZED + ]; const statusCase = overdue || numFailed ? (StatusCase.PARTITIONS_FAILED as const) diff --git a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/__stories__/AssetNode.stories.tsx b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/__stories__/AssetNode.stories.tsx index cd3e581b1d32a..a976ae1e596d7 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/__stories__/AssetNode.stories.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/__stories__/AssetNode.stories.tsx @@ -14,7 +14,7 @@ export default { }; export const LiveStates = () => { - const caseWithLiveData = (scenario: typeof Mocks.AssetNodeScenariosBase[0]) => { + const caseWithLiveData = (scenario: (typeof Mocks.AssetNodeScenariosBase)[0]) => { const dimensions = getAssetNodeDimensions(scenario.definition); return ( diff --git a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useAssetGraphData.tsx b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useAssetGraphData.tsx index 6dbb67032f601..3537a3459739a 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useAssetGraphData.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useAssetGraphData.tsx @@ -47,49 +47,44 @@ export function useAssetGraphData(opsQuery: string, options: AssetGraphFetchScop const nodes = fetchResult.data?.assetNodes; - const { - assetGraphData, - graphQueryItems, - graphAssetKeys, - allAssetKeys, - applyingEmptyDefault, - } = React.useMemo(() => { - if (nodes === undefined) { - return { - graphAssetKeys: [], - graphQueryItems: [], - assetGraphData: null, - applyingEmptyDefault: false, - }; - } + const {assetGraphData, graphQueryItems, graphAssetKeys, allAssetKeys, applyingEmptyDefault} = + React.useMemo(() => { + if (nodes === undefined) { + return { + graphAssetKeys: [], + graphQueryItems: [], + assetGraphData: null, + applyingEmptyDefault: false, + }; + } - // Apply any filters provided by the caller. This is where we do repo filtering - let matching = nodes; - if (options.hideNodesMatching) { - matching = reject(matching, options.hideNodesMatching); - } + // Apply any filters provided by the caller. This is where we do repo filtering + let matching = nodes; + if (options.hideNodesMatching) { + matching = reject(matching, options.hideNodesMatching); + } - // Filter the set of all AssetNodes down to those matching the `opsQuery`. - // In the future it might be ideal to move this server-side, but we currently - // get to leverage the useQuery cache almost 100% of the time above, making this - // super fast after the first load vs a network fetch on every page view. - const graphQueryItems = buildGraphQueryItems(matching); - const {all, applyingEmptyDefault} = filterByQuery(graphQueryItems, opsQuery); - - // Assemble the response into the data structure used for layout, traversal, etc. - const assetGraphData = buildGraphData(all.map((n) => n.node)); - if (options.hideEdgesToNodesOutsideQuery) { - removeEdgesToHiddenAssets(assetGraphData, nodes); - } + // Filter the set of all AssetNodes down to those matching the `opsQuery`. + // In the future it might be ideal to move this server-side, but we currently + // get to leverage the useQuery cache almost 100% of the time above, making this + // super fast after the first load vs a network fetch on every page view. + const graphQueryItems = buildGraphQueryItems(matching); + const {all, applyingEmptyDefault} = filterByQuery(graphQueryItems, opsQuery); + + // Assemble the response into the data structure used for layout, traversal, etc. + const assetGraphData = buildGraphData(all.map((n) => n.node)); + if (options.hideEdgesToNodesOutsideQuery) { + removeEdgesToHiddenAssets(assetGraphData, nodes); + } - return { - allAssetKeys: matching.map((n) => n.assetKey), - graphAssetKeys: all.map((n) => ({path: n.node.assetKey.path})), - assetGraphData, - graphQueryItems, - applyingEmptyDefault, - }; - }, [nodes, opsQuery, options.hideEdgesToNodesOutsideQuery, options.hideNodesMatching]); + return { + allAssetKeys: matching.map((n) => n.assetKey), + graphAssetKeys: all.map((n) => ({path: n.node.assetKey.path})), + assetGraphData, + graphQueryItems, + applyingEmptyDefault, + }; + }, [nodes, opsQuery, options.hideEdgesToNodesOutsideQuery, options.hideNodesMatching]); return { fetchResult, diff --git a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useLiveDataForAssetKeys.tsx b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useLiveDataForAssetKeys.tsx index a86b3350f3271..f82e392999ade 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useLiveDataForAssetKeys.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/asset-graph/useLiveDataForAssetKeys.tsx @@ -24,9 +24,8 @@ const SUBSCRIPTION_MAX_POLL_RATE = 2 * 1000; * node that has changed is not in scope. */ export function useLiveDataForAssetKeys(assetKeys: AssetKeyInput[], batched?: boolean) { - const {currentBatch, nextBatch, setBatchData, isLastBatch} = useLiveDataForAssetKeysBatcher( - assetKeys, - ); + const {currentBatch, nextBatch, setBatchData, isLastBatch} = + useLiveDataForAssetKeysBatcher(assetKeys); const liveResult = useQuery( ASSETS_GRAPH_LIVE_QUERY, diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetEvents.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetEvents.tsx index f7ac2a0a92ab7..8c3034e0a6dbd 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetEvents.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetEvents.tsx @@ -52,14 +52,8 @@ export const AssetEvents: React.FC = ({ liveData, dataRefreshHint, }) => { - const { - xAxis, - materializations, - observations, - loadedPartitionKeys, - refetch, - loading, - } = useRecentAssetEvents(assetKey, params, {assetHasDefinedPartitions: false}); + const {xAxis, materializations, observations, loadedPartitionKeys, refetch, loading} = + useRecentAssetEvents(assetKey, params, {assetHasDefinedPartitions: false}); React.useEffect(() => { if (params.asOf) { diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetNodeLineage.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetNodeLineage.tsx index 8c83a148dcb26..9cb8c0eab6f0e 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetNodeLineage.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetNodeLineage.tsx @@ -35,10 +35,10 @@ export const AssetNodeLineage: React.FC<{ graphQueryItems, requestedDepth, }) => { - const maxDistances = React.useMemo(() => calculateGraphDistances(graphQueryItems, assetKey), [ - graphQueryItems, - assetKey, - ]); + const maxDistances = React.useMemo( + () => calculateGraphDistances(graphQueryItems, assetKey), + [graphQueryItems, assetKey], + ); const maxDepth = params.lineageScope === 'upstream' ? maxDistances.upstream diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetPlots.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetPlots.tsx index 843a1cd794a7a..a3111e82aa66c 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetPlots.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetPlots.tsx @@ -19,13 +19,8 @@ export const AssetPlots: React.FC = ({ params, setParams, }) => { - const { - materializations, - observations, - loadedPartitionKeys, - loading, - xAxis, - } = useRecentAssetEvents(assetKey, params, {assetHasDefinedPartitions}); + const {materializations, observations, loadedPartitionKeys, loading, xAxis} = + useRecentAssetEvents(assetKey, params, {assetHasDefinedPartitions}); const grouped = useGroupedEvents(xAxis, materializations, observations, loadedPartitionKeys); const activeItems = React.useMemo(() => new Set([xAxis]), [xAxis]); diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetSidebarActivitySummary.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetSidebarActivitySummary.tsx index e8c110d11ad98..69f3c04ea6f60 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetSidebarActivitySummary.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetSidebarActivitySummary.tsx @@ -40,18 +40,12 @@ export const AssetSidebarActivitySummary: React.FC = ({ liveData, stepKey, }) => { - const { - materializations, - observations, - loadedPartitionKeys, - loading, - refetch, - xAxis, - } = useRecentAssetEvents( - asset.assetKey, - {}, - {assetHasDefinedPartitions: !!asset.partitionDefinition}, - ); + const {materializations, observations, loadedPartitionKeys, loading, refetch, xAxis} = + useRecentAssetEvents( + asset.assetKey, + {}, + {assetHasDefinedPartitions: !!asset.partitionDefinition}, + ); const grouped = useGroupedEvents(xAxis, materializations, observations, loadedPartitionKeys); const displayedEvent = isSourceAsset ? observations[0] : materializations[0]; diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetTable.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetTable.tsx index 90ff23bfa6830..3b1cc3a907dc9 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetTable.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetTable.tsx @@ -56,9 +56,8 @@ export const AssetTable: React.FC = ({ const groupedByDisplayKey = groupBy(assets, (a) => JSON.stringify(displayPathForAsset(a))); const displayKeys = Object.keys(groupedByDisplayKey).sort(); - const [{checkedIds: checkedDisplayKeys}, {onToggleFactory, onToggleAll}] = useSelectionReducer( - displayKeys, - ); + const [{checkedIds: checkedDisplayKeys}, {onToggleFactory, onToggleAll}] = + useSelectionReducer(displayKeys); const checkedAssets: Asset[] = []; displayKeys.forEach((displayKey) => { diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetView.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetView.tsx index d6aa25efe72ba..8a9d3e821166d 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetView.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetView.tsx @@ -59,14 +59,12 @@ export const AssetView = ({assetKey}: Props) => { const {tabBuilder, renderFeatureView} = React.useContext(AssetFeatureContext); // Load the asset definition - const {definition, definitionQueryResult, lastMaterialization} = useAssetViewAssetDefinition( - assetKey, + const {definition, definitionQueryResult, lastMaterialization} = + useAssetViewAssetDefinition(assetKey); + const tabList = React.useMemo( + () => tabBuilder({definition, params}), + [definition, params, tabBuilder], ); - const tabList = React.useMemo(() => tabBuilder({definition, params}), [ - definition, - params, - tabBuilder, - ]); const defaultTab = tabList.some((t) => t.id === 'partitions') ? 'partitions' : 'events'; const selectedTab = params.view || defaultTab; diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetsCatalogTable.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetsCatalogTable.tsx index 220117bd65e70..f9ec0d5f866df 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AssetsCatalogTable.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AssetsCatalogTable.tsx @@ -32,9 +32,7 @@ import {AssetViewType, useAssetView} from './useAssetView'; type Asset = AssetTableFragment; -function useAllAssets( - groupSelector?: AssetGroupSelector, -): { +function useAllAssets(groupSelector?: AssetGroupSelector): { query: QueryResult | QueryResult; assets: Asset[] | undefined; error: PythonErrorFragment | undefined; diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/AutomaterializeLeftPanel.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/AutomaterializeLeftPanel.tsx index ce5fefd8d0972..9d3056e175591 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/AutomaterializeLeftPanel.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/AutomaterializeLeftPanel.tsx @@ -156,7 +156,9 @@ const EvaluationListItem = styled.button` cursor: pointer; margin: 2px 0; text-align: left; - transition: 100ms background-color linear, 100ms color linear; + transition: + 100ms background-color linear, + 100ms color linear; user-select: none; &:hover { diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/__fixtures__/AutoMaterializePolicyPage.fixtures.ts b/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/__fixtures__/AutoMaterializePolicyPage.fixtures.ts index f770734cf24de..4c0a8ba80aa5c 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/__fixtures__/AutoMaterializePolicyPage.fixtures.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/AutoMaterializePolicyPage/__fixtures__/AutoMaterializePolicyPage.fixtures.ts @@ -31,7 +31,7 @@ import {PAGE_SIZE} from '../useEvaluationsQueryResult'; export function buildQueryMock< TQuery extends {__typename: 'Query'}, - TVariables extends Record + TVariables extends Record, >({ query, variables, @@ -304,11 +304,10 @@ export const Evaluations = { rules: BASE_AUTOMATERIALIZE_RULES, }), }), - autoMaterializeAssetEvaluationsOrError: buildAutoMaterializeAssetEvaluationNeedsMigrationError( - { + autoMaterializeAssetEvaluationsOrError: + buildAutoMaterializeAssetEvaluationNeedsMigrationError({ message: 'Test message', - }, - ), + }), }, }); }, diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/OverdueTag.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/OverdueTag.tsx index 98ead21f4beb7..db89e7d88f4ba 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/OverdueTag.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/OverdueTag.tsx @@ -133,12 +133,8 @@ const OverdueLineagePopoverContent: React.FC<{ const hasUpstreams = data.assetMaterializationUsedData.length > 0; const {currentLagMinutes, currentMinutesLate} = data.freshnessInfo; - const { - lastEvaluationTimestamp, - cronSchedule, - cronScheduleTimezone, - maximumLagMinutes, - } = data.freshnessPolicy; + const {lastEvaluationTimestamp, cronSchedule, cronScheduleTimezone, maximumLagMinutes} = + data.freshnessPolicy; const maxLagMinutesStr = humanizedMinutesLateString(maximumLagMinutes); const lagMinutesStr = humanizedMinutesLateString(currentLagMinutes || 0); const derivedStr = hasUpstreams ? ` is derived from source data that` : ''; diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/AssetEventDetail.fixtures.ts b/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/AssetEventDetail.fixtures.ts index bb0d146a128ac..7758b04ea101b 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/AssetEventDetail.fixtures.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/AssetEventDetail.fixtures.ts @@ -212,66 +212,68 @@ export const BasicObservationEvent: AssetObservationFragment = { __typename: 'ObservationEvent', }; -export const MaterializationUpstreamDataFullMock: MockedResponse = { - request: { - operationName: 'AssetMaterializationUpstreamQuery', - variables: {assetKey: {path: ['asset_1']}, timestamp: '1673996425523'}, - query: ASSET_MATERIALIZATION_UPSTREAM_QUERY, - }, - result: { - data: { - __typename: 'Query', - assetNodeOrError: { - __typename: 'AssetNode', - id: 'test.py.repo.["asset_1"]', - assetMaterializationUsedData: [ - { - __typename: 'MaterializationUpstreamDataVersion', - timestamp: `${MaterializationTimestamp - 2 * ONE_MIN}`, - assetKey: { - path: ['inp2'], - __typename: 'AssetKey', - }, - downstreamAssetKey: { - path: ['asset_1'], - __typename: 'AssetKey', - }, - }, - { - __typename: 'MaterializationUpstreamDataVersion', - timestamp: `${MaterializationTimestamp - 4 * ONE_MIN}`, - assetKey: { - path: ['inp3'], - __typename: 'AssetKey', +export const MaterializationUpstreamDataFullMock: MockedResponse = + { + request: { + operationName: 'AssetMaterializationUpstreamQuery', + variables: {assetKey: {path: ['asset_1']}, timestamp: '1673996425523'}, + query: ASSET_MATERIALIZATION_UPSTREAM_QUERY, + }, + result: { + data: { + __typename: 'Query', + assetNodeOrError: { + __typename: 'AssetNode', + id: 'test.py.repo.["asset_1"]', + assetMaterializationUsedData: [ + { + __typename: 'MaterializationUpstreamDataVersion', + timestamp: `${MaterializationTimestamp - 2 * ONE_MIN}`, + assetKey: { + path: ['inp2'], + __typename: 'AssetKey', + }, + downstreamAssetKey: { + path: ['asset_1'], + __typename: 'AssetKey', + }, }, - downstreamAssetKey: { - path: ['asset_1'], - __typename: 'AssetKey', + { + __typename: 'MaterializationUpstreamDataVersion', + timestamp: `${MaterializationTimestamp - 4 * ONE_MIN}`, + assetKey: { + path: ['inp3'], + __typename: 'AssetKey', + }, + downstreamAssetKey: { + path: ['asset_1'], + __typename: 'AssetKey', + }, }, - }, - ], + ], + }, }, }, - }, -}; + }; -export const MaterializationUpstreamDataEmptyMock: MockedResponse = { - request: { - operationName: 'AssetMaterializationUpstreamQuery', - variables: {assetKey: {path: ['asset_1']}, timestamp: '1673996425523'}, - query: ASSET_MATERIALIZATION_UPSTREAM_QUERY, - }, - result: { - data: { - __typename: 'Query', - assetNodeOrError: { - __typename: 'AssetNode', - id: 'test.py.repo.["asset_1"]', - assetMaterializationUsedData: [], +export const MaterializationUpstreamDataEmptyMock: MockedResponse = + { + request: { + operationName: 'AssetMaterializationUpstreamQuery', + variables: {assetKey: {path: ['asset_1']}, timestamp: '1673996425523'}, + query: ASSET_MATERIALIZATION_UPSTREAM_QUERY, + }, + result: { + data: { + __typename: 'Query', + assetNodeOrError: { + __typename: 'AssetNode', + id: 'test.py.repo.["asset_1"]', + assetMaterializationUsedData: [], + }, }, }, - }, -}; + }; export const buildAssetPartitionDetailMock = ( currentRunStatus?: RunStatus, diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/LaunchAssetExecutionButton.fixtures.ts b/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/LaunchAssetExecutionButton.fixtures.ts index eb0315c480d89..cf85f861ed9b0 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/LaunchAssetExecutionButton.fixtures.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/__fixtures__/LaunchAssetExecutionButton.fixtures.ts @@ -594,42 +594,43 @@ export const LaunchAssetLoaderResourceJob8Mock: MockedResponse = { - request: { - query: LAUNCH_ASSET_LOADER_RESOURCE_QUERY, - variables: { - pipelineName: 'my_asset_job', - repositoryLocationName: 'test.py', - repositoryName: 'repo', - }, - }, - result: { - data: { - __typename: 'Query', - partitionSetsOrError: { - results: [ - { - id: '129179973a9144278c2429d3ba680bf0f809a59b', - name: 'my_asset_job_partition_set', - __typename: 'PartitionSet', - }, - ], - __typename: 'PartitionSets', +export const LaunchAssetLoaderResourceMyAssetJobMock: MockedResponse = + { + request: { + query: LAUNCH_ASSET_LOADER_RESOURCE_QUERY, + variables: { + pipelineName: 'my_asset_job', + repositoryLocationName: 'test.py', + repositoryName: 'repo', }, - pipelineOrError: { - id: '8689a9dcd052f769b73d73dfe57e89065dac369d', - modes: [ - { - __typename: 'Mode', - id: '719d9b2c592b98ae0f4a7ec570cae0a06667db31-default', - resources: [], - }, - ], - __typename: 'Pipeline', + }, + result: { + data: { + __typename: 'Query', + partitionSetsOrError: { + results: [ + { + id: '129179973a9144278c2429d3ba680bf0f809a59b', + name: 'my_asset_job_partition_set', + __typename: 'PartitionSet', + }, + ], + __typename: 'PartitionSets', + }, + pipelineOrError: { + id: '8689a9dcd052f769b73d73dfe57e89065dac369d', + modes: [ + { + __typename: 'Mode', + id: '719d9b2c592b98ae0f4a7ec570cae0a06667db31-default', + resources: [], + }, + ], + __typename: 'Pipeline', + }, }, }, - }, -}; + }; export const LaunchAssetLoaderAssetDailyWeeklyMock: MockedResponse = { request: { @@ -700,38 +701,39 @@ export const LaunchAssetLoaderAssetDailyWeeklyMock: MockedResponse = { - request: { - query: LAUNCH_ASSET_CHECK_UPSTREAM_QUERY, - variables: { - assetKeys: [{path: ['asset_weekly_root']}], +export const LaunchAssetCheckUpstreamWeeklyRootMock: MockedResponse = + { + request: { + query: LAUNCH_ASSET_CHECK_UPSTREAM_QUERY, + variables: { + assetKeys: [{path: ['asset_weekly_root']}], + }, }, - }, - result: { - data: { - __typename: 'Query', - assetNodes: [ - { - id: 'test.py.repo.["asset_weekly_root"]', - assetKey: { - path: ['asset_weekly_root'], - __typename: 'AssetKey', - }, - isSource: false, - opNames: ['asset_weekly_root'], - graphName: null, - assetMaterializations: [ - { - runId: '8fec6fcd-7a05-4f1c-8cf8-4bfd6965eeba', - __typename: 'MaterializationEvent', + result: { + data: { + __typename: 'Query', + assetNodes: [ + { + id: 'test.py.repo.["asset_weekly_root"]', + assetKey: { + path: ['asset_weekly_root'], + __typename: 'AssetKey', }, - ], - __typename: 'AssetNode', - }, - ], + isSource: false, + opNames: ['asset_weekly_root'], + graphName: null, + assetMaterializations: [ + { + runId: '8fec6fcd-7a05-4f1c-8cf8-4bfd6965eeba', + __typename: 'MaterializationEvent', + }, + ], + __typename: 'AssetNode', + }, + ], + }, }, - }, -}; + }; export function buildConfigPartitionSelectionLatestPartitionMock( partitionName: string, diff --git a/js_modules/dagster-ui/packages/ui-core/src/assets/usePartitionHealthData.tsx b/js_modules/dagster-ui/packages/ui-core/src/assets/usePartitionHealthData.tsx index c5443994df110..9ec71a2d582ee 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/assets/usePartitionHealthData.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/assets/usePartitionHealthData.tsx @@ -431,7 +431,7 @@ function addKeyIndexesToMaterializedRanges( start: {key: dim.partitionKeys[s.startIdx], idx: s.startIdx}, end: {key: dim.partitionKeys[s.endIdx], idx: s.endIdx}, value: [s.status as AssetPartitionStatus], - } as Range), + }) as Range, ); } @@ -610,9 +610,8 @@ export function usePartitionHealthData( // export const healthRefreshHintFromLiveData = (liveData: LiveDataForNode | undefined) => liveData - ? `${liveData.lastMaterialization?.timestamp},${ - liveData.runWhichFailedToMaterialize?.id - },${JSON.stringify(liveData.partitionStats)}` + ? `${liveData.lastMaterialization?.timestamp},${liveData.runWhichFailedToMaterialize + ?.id},${JSON.stringify(liveData.partitionStats)}` : `-`; const rangeStatusToState = (rangeStatus: PartitionRangeStatus) => diff --git a/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChart.tsx b/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChart.tsx index 1433c439432e0..20f3e314f6b2c 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChart.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChart.tsx @@ -695,13 +695,18 @@ const GanttChartContainer = styled.div` position: absolute; user-select: none; pointer-events: none; - transition: top ${CSS_DURATION}ms linear, left ${CSS_DURATION}ms linear, - width ${CSS_DURATION}ms linear, height ${CSS_DURATION}ms linear; + transition: + top ${CSS_DURATION}ms linear, + left ${CSS_DURATION}ms linear, + width ${CSS_DURATION}ms linear, + height ${CSS_DURATION}ms linear; } .chart-element { font-size: 12px; - transition: top ${CSS_DURATION}ms linear, left ${CSS_DURATION}ms linear; + transition: + top ${CSS_DURATION}ms linear, + left ${CSS_DURATION}ms linear; display: inline-block; position: absolute; color: white; @@ -736,8 +741,11 @@ const GanttChartContainer = styled.div` font-weight: 700; line-height: 15px; - transition: top ${CSS_DURATION}ms linear, left ${CSS_DURATION}ms linear, - width ${CSS_DURATION}ms linear, height ${CSS_DURATION}ms linear; + transition: + top ${CSS_DURATION}ms linear, + left ${CSS_DURATION}ms linear, + width ${CSS_DURATION}ms linear, + height ${CSS_DURATION}ms linear; &.focused { border: 1px solid ${Colors.Gray900}; @@ -770,7 +778,9 @@ const GanttChartContainer = styled.div` background: rgba(27, 164, 206, 0.09); border-left: 1px solid rgba(27, 164, 206, 0.6); border-right: 1px solid rgba(27, 164, 206, 0.6); - transition: top ${CSS_DURATION}ms linear, left ${CSS_DURATION}ms linear, + transition: + top ${CSS_DURATION}ms linear, + left ${CSS_DURATION}ms linear, width ${CSS_DURATION}ms linear; & > div { diff --git a/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChartTimescale.tsx b/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChartTimescale.tsx index 84eac43eaff82..051b446845aca 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChartTimescale.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/gantt/GanttChartTimescale.tsx @@ -203,7 +203,9 @@ const TimescaleContainer = styled.div` width: ${TICK_LABEL_WIDTH}px; height: ${TICKS_ROW_HEIGHT}px; box-sizing: border-box; - transition: left ${CSS_DURATION}ms linear, width ${CSS_DURATION}ms linear; + transition: + left ${CSS_DURATION}ms linear, + width ${CSS_DURATION}ms linear; text-align: center; } & .tick.duration { diff --git a/js_modules/dagster-ui/packages/ui-core/src/graph/ParentOpNode.tsx b/js_modules/dagster-ui/packages/ui-core/src/graph/ParentOpNode.tsx index bb0e1768976e7..aaea86d7b1191 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/graph/ParentOpNode.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/graph/ParentOpNode.tsx @@ -163,5 +163,9 @@ export const ParentOpNode: React.FC = (props) => { }; export const SVGLabeledParentRect = styled(SVGLabeledRect)` - transition: x 250ms ease-out, y 250ms ease-out, width 250ms ease-out, height 250ms ease-out; + transition: + x 250ms ease-out, + y 250ms ease-out, + width 250ms ease-out, + height 250ms ease-out; `; diff --git a/js_modules/dagster-ui/packages/ui-core/src/graph/SVGViewport.tsx b/js_modules/dagster-ui/packages/ui-core/src/graph/SVGViewport.tsx index a5f77c22b07b5..328268905890b 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/graph/SVGViewport.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/graph/SVGViewport.tsx @@ -522,12 +522,14 @@ export class SVGViewport extends React.Component{this.props.children(this.state, unclippedViewport)}, div, diff --git a/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillRow.tsx b/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillRow.tsx index ad17356938b74..40dc414591d96 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillRow.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillRow.tsx @@ -174,10 +174,13 @@ const BackfillRunStatus = ({ counts: {[status: string]: number}; }) => { const history = useHistory(); - const partitionCounts = Object.entries(counts).reduce((partitionCounts, [runStatus, count]) => { - partitionCounts[runStatus] = (partitionCounts[runStatus] || 0) + count; - return partitionCounts; - }, {} as {[status: string]: number}); + const partitionCounts = Object.entries(counts).reduce( + (partitionCounts, [runStatus, count]) => { + partitionCounts[runStatus] = (partitionCounts[runStatus] || 0) + count; + return partitionCounts; + }, + {} as {[status: string]: number}, + ); const health: PartitionStatusHealthSourceOps = React.useMemo( () => ({ diff --git a/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillTable.tsx b/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillTable.tsx index f67bdbf35b63e..6b345a7fe78bd 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillTable.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/BackfillTable.tsx @@ -20,10 +20,8 @@ export const BackfillTable = ({ refetch: () => void; showBackfillTarget?: boolean; }) => { - const [ - partitionsRequestedBackfill, - setPartitionsRequestedBackfill, - ] = React.useState(); + const [partitionsRequestedBackfill, setPartitionsRequestedBackfill] = + React.useState(); return ( <> diff --git a/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/__fixtures__/BackfillTable.fixtures.ts b/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/__fixtures__/BackfillTable.fixtures.ts index 7974a5e64154a..777f9f7e3575a 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/__fixtures__/BackfillTable.fixtures.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/instance/backfill/__fixtures__/BackfillTable.fixtures.ts @@ -29,8 +29,8 @@ function buildTimePartitionNames(start: Date, count: number) { return results; } -export const BackfillTableFragmentRequested2000AssetsPure: BackfillTableFragment = buildPartitionBackfill( - { +export const BackfillTableFragmentRequested2000AssetsPure: BackfillTableFragment = + buildPartitionBackfill({ id: 'qtpussca', status: BulkActionStatus.REQUESTED, numPartitions: 2000, @@ -48,43 +48,43 @@ export const BackfillTableFragmentRequested2000AssetsPure: BackfillTableFragment path: ['global_graph_asset'], }), ], - }, -); + }); -export const BackfillTableFragmentRequested2000AssetsPureStatus: MockedResponse = { - request: { - query: SINGLE_BACKFILL_STATUS_COUNTS_QUERY, - variables: { - backfillId: 'qtpussca', +export const BackfillTableFragmentRequested2000AssetsPureStatus: MockedResponse = + { + request: { + query: SINGLE_BACKFILL_STATUS_COUNTS_QUERY, + variables: { + backfillId: 'qtpussca', + }, }, - }, - result: { - data: { - __typename: 'Query', - partitionBackfillOrError: buildPartitionBackfill({ - id: 'qtpussca', - isAssetBackfill: true, - partitionStatusCounts: [ - buildPartitionStatusCounts({ - runStatus: RunStatus.NOT_STARTED, - count: 108088, - }), - buildPartitionStatusCounts({ - runStatus: RunStatus.SUCCESS, - count: 71, - }), - buildPartitionStatusCounts({ - runStatus: RunStatus.FAILURE, - count: 10, - }), - ], - }), + result: { + data: { + __typename: 'Query', + partitionBackfillOrError: buildPartitionBackfill({ + id: 'qtpussca', + isAssetBackfill: true, + partitionStatusCounts: [ + buildPartitionStatusCounts({ + runStatus: RunStatus.NOT_STARTED, + count: 108088, + }), + buildPartitionStatusCounts({ + runStatus: RunStatus.SUCCESS, + count: 71, + }), + buildPartitionStatusCounts({ + runStatus: RunStatus.FAILURE, + count: 10, + }), + ], + }), + }, }, - }, -}; + }; -export const BackfillTableFragmentCancelledAssetsPartitionSet: BackfillTableFragment = buildPartitionBackfill( - { +export const BackfillTableFragmentCancelledAssetsPartitionSet: BackfillTableFragment = + buildPartitionBackfill({ id: 'tclwoggv', status: BulkActionStatus.CANCELED, isValidSerialization: true, @@ -115,28 +115,28 @@ export const BackfillTableFragmentCancelledAssetsPartitionSet: BackfillTableFrag path: ['multipartitioned_asset'], }), ], - }, -); + }); -export const BackfillTableFragmentCancelledAssetsPartitionSetStatus: MockedResponse = { - request: { - query: SINGLE_BACKFILL_STATUS_COUNTS_QUERY, - variables: { - backfillId: 'tclwoggv', +export const BackfillTableFragmentCancelledAssetsPartitionSetStatus: MockedResponse = + { + request: { + query: SINGLE_BACKFILL_STATUS_COUNTS_QUERY, + variables: { + backfillId: 'tclwoggv', + }, }, - }, - result: { - data: { - __typename: 'Query', - partitionBackfillOrError: buildPartitionBackfill({ - id: 'tclwoggv', - partitionStatusCounts: [ - {runStatus: RunStatus.NOT_STARTED, count: 6524, __typename: 'PartitionStatusCounts'}, - ], - }), + result: { + data: { + __typename: 'Query', + partitionBackfillOrError: buildPartitionBackfill({ + id: 'tclwoggv', + partitionStatusCounts: [ + {runStatus: RunStatus.NOT_STARTED, count: 6524, __typename: 'PartitionStatusCounts'}, + ], + }), + }, }, - }, -}; + }; export const BackfillTableFragmentFailedError: BackfillTableFragment = buildPartitionBackfill({ id: 'sjqzcfhe', @@ -407,8 +407,8 @@ export const BackfillTableFragmentCompletedOpJobStatus: MockedResponse void; } -const ConfigEditorConfigGeneratorPicker: React.FC = React.memo( - (props) => { +const ConfigEditorConfigGeneratorPicker: React.FC = + React.memo((props) => { const {configGenerators, label, onSelect} = props; const button = React.useRef(null); @@ -411,8 +411,7 @@ const ConfigEditorConfigGeneratorPicker: React.FC
); - }, -); + }); export const SortButton = styled.button` border: 0; diff --git a/js_modules/dagster-ui/packages/ui-core/src/launchpad/LaunchpadTransientSessionContainer.tsx b/js_modules/dagster-ui/packages/ui-core/src/launchpad/LaunchpadTransientSessionContainer.tsx index 7b6431c499842..a0f1673a6b19d 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/launchpad/LaunchpadTransientSessionContainer.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/launchpad/LaunchpadTransientSessionContainer.tsx @@ -26,14 +26,8 @@ interface Props { } export const LaunchpadTransientSessionContainer = (props: Props) => { - const { - launchpadType, - pipeline, - partitionSets, - repoAddress, - sessionPresets, - rootDefaultYaml, - } = props; + const {launchpadType, pipeline, partitionSets, repoAddress, sessionPresets, rootDefaultYaml} = + props; const {flagDisableAutoLoadDefaults} = useFeatureFlags(); const initialData = useInitialDataForMode( diff --git a/js_modules/dagster-ui/packages/ui-core/src/launchpad/OpSelector.tsx b/js_modules/dagster-ui/packages/ui-core/src/launchpad/OpSelector.tsx index 866f273eec401..61d3af6f146be 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/launchpad/OpSelector.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/launchpad/OpSelector.tsx @@ -55,13 +55,8 @@ const SOLID_SELECTOR_QUERY = gql` `; export const OpSelector = (props: IOpSelectorProps) => { - const { - serverProvidedSubsetError, - onChange, - pipelineName, - repoAddress, - onFlattenGraphsChange, - } = props; + const {serverProvidedSubsetError, onChange, pipelineName, repoAddress, onFlattenGraphsChange} = + props; const [focused, setFocused] = React.useState(false); const inputRef = React.useRef(null); diff --git a/js_modules/dagster-ui/packages/ui-core/src/nav/RepositoryContentList.tsx b/js_modules/dagster-ui/packages/ui-core/src/nav/RepositoryContentList.tsx index 03b2df9d70d10..aa1dfd702d9ce 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/nav/RepositoryContentList.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/nav/RepositoryContentList.tsx @@ -14,7 +14,9 @@ export const Item = styled(Link)<{$active: boolean}>` align-items: center; color: ${({$active}) => ($active ? Colors.Blue700 : Colors.Dark)} !important; user-select: none; - transition: background 50ms linear, color 50ms linear; + transition: + background 50ms linear, + color 50ms linear; &:hover { text-decoration: none; diff --git a/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/LeftNavRepositorySection.fixtures.tsx b/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/LeftNavRepositorySection.fixtures.tsx index 7c01583e1dfbf..506fb2014bb1b 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/LeftNavRepositorySection.fixtures.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/LeftNavRepositorySection.fixtures.tsx @@ -138,35 +138,36 @@ export const buildWorkspaceQueryWithThreeLocations = (): MockedResponse => { - return { - request: { - query: ROOT_WORKSPACE_QUERY, - variables: {}, - }, - result: { - data: { - __typename: 'Query', - workspaceOrError: buildWorkspace({ - locationEntries: [ - buildWorkspaceLocationEntry({ - id: 'ipsum-entry', - name: 'ipsum-entry', - locationOrLoadError: buildRepositoryLocation({ - id: 'ipsum', - name: 'ipsum', - repositories: [ - buildRepo({ - name: 'lorem', - jobNames: ['my_pipeline', 'other_pipeline'], - assetGroupNames: ['my_asset_group'], - }), - ], +export const buildWorkspaceQueryWithOneLocationAndAssetGroup = + (): MockedResponse => { + return { + request: { + query: ROOT_WORKSPACE_QUERY, + variables: {}, + }, + result: { + data: { + __typename: 'Query', + workspaceOrError: buildWorkspace({ + locationEntries: [ + buildWorkspaceLocationEntry({ + id: 'ipsum-entry', + name: 'ipsum-entry', + locationOrLoadError: buildRepositoryLocation({ + id: 'ipsum', + name: 'ipsum', + repositories: [ + buildRepo({ + name: 'lorem', + jobNames: ['my_pipeline', 'other_pipeline'], + assetGroupNames: ['my_asset_group'], + }), + ], + }), }), - }), - ], - }), + ], + }), + }, }, - }, + }; }; -}; diff --git a/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/useDaemonStatus.fixtures.tsx b/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/useDaemonStatus.fixtures.tsx index 5cefbcc968984..ab501878180ca 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/useDaemonStatus.fixtures.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/nav/__fixtures__/useDaemonStatus.fixtures.tsx @@ -55,32 +55,33 @@ const buildRepo = ({ }); }; -export const buildWorkspaceQueryWithNoSchedulesOrSensors = (): MockedResponse => { - return { - request: { - query: ROOT_WORKSPACE_QUERY, - variables: {}, - }, - result: { - data: { - __typename: 'Query', - workspaceOrError: buildWorkspace({ - locationEntries: [ - buildWorkspaceLocationEntry({ - id: 'ipsum-entry', - name: 'ipsum-entry', - locationOrLoadError: buildRepositoryLocation({ - id: 'ipsum', - name: 'ipsum', - repositories: [buildRepo({name: 'lorem'})], +export const buildWorkspaceQueryWithNoSchedulesOrSensors = + (): MockedResponse => { + return { + request: { + query: ROOT_WORKSPACE_QUERY, + variables: {}, + }, + result: { + data: { + __typename: 'Query', + workspaceOrError: buildWorkspace({ + locationEntries: [ + buildWorkspaceLocationEntry({ + id: 'ipsum-entry', + name: 'ipsum-entry', + locationOrLoadError: buildRepositoryLocation({ + id: 'ipsum', + name: 'ipsum', + repositories: [buildRepo({name: 'lorem'})], + }), }), - }), - ], - }), + ], + }), + }, }, - }, + }; }; -}; export const buildWorkspaceQueryWithScheduleAndSensor = ({ schedule, diff --git a/js_modules/dagster-ui/packages/ui-core/src/nav/getLeftNavItemsForOption.tsx b/js_modules/dagster-ui/packages/ui-core/src/nav/getLeftNavItemsForOption.tsx index 9ec8515d2c82f..48b5f2acec037 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/nav/getLeftNavItemsForOption.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/nav/getLeftNavItemsForOption.tsx @@ -82,8 +82,8 @@ export const getJobItemsForOption = (option: DagsterRepoOption) => { const {isJob, name} = pipeline; const schedulesForJob = schedules.filter((schedule) => schedule.pipelineName === name); - const sensorsForJob = sensors.filter((sensor) => - sensor.targets?.map((target) => target.pipelineName).includes(name), + const sensorsForJob = sensors.filter( + (sensor) => sensor.targets?.map((target) => target.pipelineName).includes(name), ); items.push({ diff --git a/js_modules/dagster-ui/packages/ui-core/src/nav/useRepositoryLocationReload.tsx b/js_modules/dagster-ui/packages/ui-core/src/nav/useRepositoryLocationReload.tsx index d37b6da278a5b..d45ecf2a49bc4 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/nav/useRepositoryLocationReload.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/nav/useRepositoryLocationReload.tsx @@ -121,7 +121,7 @@ export const useRepositoryLocationReload = ({ return; } - type LocationEntryType = typeof workspace.locationEntries[number]; + type LocationEntryType = (typeof workspace.locationEntries)[number]; const locationMap = Object.fromEntries(workspace.locationEntries.map((e) => [e.id, e])); const matches = state.pollLocationIds .map((id) => locationMap[id]) @@ -214,13 +214,10 @@ export const useRepositoryLocationReload = ({ const {mutating, pollStartTime, error, errorLocationId} = state; const reloading = mutating || pollStartTime !== null; - return React.useMemo(() => ({reloading, error, errorLocationId, tryReload, mutating}), [ - reloading, - error, - errorLocationId, - tryReload, - mutating, - ]); + return React.useMemo( + () => ({reloading, error, errorLocationId, tryReload, mutating}), + [reloading, error, errorLocationId, tryReload, mutating], + ); }; const REPOSITORY_LOCATION_STATUS_QUERY = gql` diff --git a/js_modules/dagster-ui/packages/ui-core/src/ops/OpsRoot.tsx b/js_modules/dagster-ui/packages/ui-core/src/ops/OpsRoot.tsx index 35519dd612844..e83e092372969 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/ops/OpsRoot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/ops/OpsRoot.tsx @@ -190,19 +190,18 @@ const OpsRootWithData: React.FC = } }); - const onClickInvocation: React.ComponentProps< - typeof UsedSolidDetails - >['onClickInvocation'] = React.useCallback( - ({pipelineName, handleID}) => { - history.push( - workspacePathFromAddress( - repoAddress, - `/pipeline_or_job/${pipelineName}/${handleID.split('.').join('/')}`, - ), - ); - }, - [history, repoAddress], - ); + const onClickInvocation: React.ComponentProps['onClickInvocation'] = + React.useCallback( + ({pipelineName, handleID}) => { + history.push( + workspacePathFromAddress( + repoAddress, + `/pipeline_or_job/${pipelineName}/${handleID.split('.').join('/')}`, + ), + ); + }, + [history, repoAddress], + ); return (
@@ -350,7 +349,8 @@ const OPS_ROOT_QUERY = gql` const OpListItem = styled.div<{selected: boolean}>` background: ${({selected}) => (selected ? Colors.Gray100 : Colors.White)}; - box-shadow: ${({selected}) => (selected ? Colors.HighlightGreen : 'transparent')} 4px 0 0 inset, + box-shadow: + ${({selected}) => (selected ? Colors.HighlightGreen : 'transparent')} 4px 0 0 inset, ${Colors.KeylineGray} 0 -1px 0 inset; color: ${Colors.Gray800}; cursor: pointer; diff --git a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewAssetsRoot.tsx b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewAssetsRoot.tsx index 68d94ef76c861..705fd4218cc00 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewAssetsRoot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewAssetsRoot.tsx @@ -218,14 +218,15 @@ type RowProps = { group: ReturnType[0]; }; function VirtualRow({height, start, group}: RowProps) { - const assetKeys = React.useMemo(() => group.assets.map((asset) => ({path: asset.key.path})), [ - group.assets, - ]); + const assetKeys = React.useMemo( + () => group.assets.map((asset) => ({path: asset.key.path})), + [group.assets], + ); const {liveDataByNode} = useLiveDataForAssetKeys(assetKeys, true); const statuses = React.useMemo(() => { - type assetType = typeof group['assets'][0]; + type assetType = (typeof group)['assets'][0]; type StatusesType = {asset: assetType; status: ReturnType}; const statuses = { successful: [] as StatusesType[], diff --git a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSchedulesRoot.tsx b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSchedulesRoot.tsx index 4cc51cabdd068..7520a8066e75e 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSchedulesRoot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSchedulesRoot.tsx @@ -66,10 +66,10 @@ export const OverviewSchedulesRoot = () => { const codeLocationFilter = useCodeLocationFilter(); const runningStateFilter = useInstigationStatusFilter(); - const filters = React.useMemo(() => [codeLocationFilter, runningStateFilter], [ - codeLocationFilter, - runningStateFilter, - ]); + const filters = React.useMemo( + () => [codeLocationFilter, runningStateFilter], + [codeLocationFilter, runningStateFilter], + ); const {button: filterButton, activeFiltersJsx} = useFilters({filters}); const queryResultOverview = useQuery( diff --git a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSensorsRoot.tsx b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSensorsRoot.tsx index c813f641a3aa2..0b3367354a667 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSensorsRoot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewSensorsRoot.tsx @@ -66,10 +66,10 @@ export const OverviewSensorsRoot = () => { const codeLocationFilter = useCodeLocationFilter(); const runningStateFilter = useInstigationStatusFilter(); - const filters = React.useMemo(() => [codeLocationFilter, runningStateFilter], [ - codeLocationFilter, - runningStateFilter, - ]); + const filters = React.useMemo( + () => [codeLocationFilter, runningStateFilter], + [codeLocationFilter, runningStateFilter], + ); const {button: filterButton, activeFiltersJsx} = useFilters({filters}); const queryResultOverview = useQuery( @@ -144,9 +144,8 @@ export const OverviewSensorsRoot = () => { ); }, [allPermissionedSensors]); - const [{checkedIds: checkedKeys}, {onToggleFactory, onToggleAll}] = useSelectionReducer( - allPermissionedSensorKeys, - ); + const [{checkedIds: checkedKeys}, {onToggleFactory, onToggleAll}] = + useSelectionReducer(allPermissionedSensorKeys); // Filter to find keys that are visible given any text search. const permissionedKeysOnScreen = React.useMemo(() => { diff --git a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewTimelineRoot.tsx b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewTimelineRoot.tsx index 69abb044f1882..fd08de196a5e4 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewTimelineRoot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/overview/OverviewTimelineRoot.tsx @@ -91,10 +91,10 @@ export const OverviewTimelineRoot = ({Header, TabButton}: Props) => { return new Set(flat); }, [visibleRepos, searchValue]); - const visibleJobs = React.useMemo(() => jobs.filter(({key}) => visibleJobKeys.has(key)), [ - jobs, - visibleJobKeys, - ]); + const visibleJobs = React.useMemo( + () => jobs.filter(({key}) => visibleJobKeys.has(key)), + [jobs, visibleJobKeys], + ); return ( <> diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/ExecutionStateDot.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/ExecutionStateDot.tsx index 5f058e851943c..4dd9cb9c4097f 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/ExecutionStateDot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/ExecutionStateDot.tsx @@ -18,7 +18,7 @@ export const ExecutionStateDot = styled.div<{state: IStepState}>` [IStepState.PREPARING]: Colors.Red500, [IStepState.RETRY_REQUESTED]: Colors.Red500, [IStepState.UNKNOWN]: Colors.Red500, - }[state])}; + })[state]}; &:hover { background: ${({state}) => ({ @@ -29,6 +29,6 @@ export const ExecutionStateDot = styled.div<{state: IStepState}>` [IStepState.PREPARING]: Colors.Red500, [IStepState.RETRY_REQUESTED]: Colors.Red500, [IStepState.UNKNOWN]: Colors.Red500, - }[state])}; + })[state]}; } `; diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/LogsFilterInput.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/LogsFilterInput.tsx index 00c9a7e418052..66d5f05ade989 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/LogsFilterInput.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/LogsFilterInput.tsx @@ -64,12 +64,15 @@ export const LogsFilterInput: React.FC = (props) => { const inputRef = React.useRef(null); const {empty, perProvider} = React.useMemo(() => { - const perProvider = suggestionProviders.reduce((accum, provider) => { - const values = provider.values(); - return provider.token - ? {...accum, [provider.token]: {fuse: new Fuse(values, fuseOptions), all: values}} - : accum; - }, {} as {[token: string]: {fuse: Fuse; all: string[]}}); + const perProvider = suggestionProviders.reduce( + (accum, provider) => { + const values = provider.values(); + return provider.token + ? {...accum, [provider.token]: {fuse: new Fuse(values, fuseOptions), all: values}} + : accum; + }, + {} as {[token: string]: {fuse: Fuse; all: string[]}}, + ); const providerKeys = suggestionProviders .map((provider) => provider.token) .filter((token) => token) as string[]; diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/LogsRowComponents.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/LogsRowComponents.tsx index 5f7851bcf08c0..53169361781d7 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/LogsRowComponents.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/LogsRowComponents.tsx @@ -20,7 +20,7 @@ const bgcolorForLevel = (level: LogLevel) => [LogLevel.WARNING]: Colors.Yellow50, [LogLevel.ERROR]: Colors.Red50, [LogLevel.CRITICAL]: Colors.Red50, - }[level]); + })[level]; export const Row = styled.div<{level: LogLevel; highlighted: boolean}>` font-size: 0.9em; @@ -47,7 +47,7 @@ export const Row = styled.div<{level: LogLevel; highlighted: boolean}>` [LogLevel.WARNING]: Colors.Yellow700, [LogLevel.ERROR]: Colors.Red500, [LogLevel.CRITICAL]: Colors.Red500, - }[props.level])}; + })[props.level]}; `; export const StructuredContent = styled.div` diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/RepoSectionHeader.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/RepoSectionHeader.tsx index bc7a751305474..e27824da6f432 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/RepoSectionHeader.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/RepoSectionHeader.tsx @@ -47,7 +47,9 @@ export const RepoSectionHeader = (props: Props) => { const SectionHeaderButton = styled.button<{$open: boolean}>` background-color: ${Colors.Gray50}; border: 0; - box-shadow: inset 0px -1px 0 ${Colors.KeylineGray}, inset 0px 1px 0 ${Colors.KeylineGray}; + box-shadow: + inset 0px -1px 0 ${Colors.KeylineGray}, + inset 0px 1px 0 ${Colors.KeylineGray}; cursor: pointer; display: block; padding: 0; diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/Run.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/Run.tsx index 5edd0a8770efc..f7494de8ac696 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/Run.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/Run.tsx @@ -190,16 +190,13 @@ const RunWithData: React.FC = ({ }, [runtimeGraph, selectionQuery]); const supportsCapturedLogs = useSupportsCapturedLogs(); - const { - logCaptureInfo, - computeLogFileKey, - setComputeLogFileKey, - } = useComputeLogFileKeyForSelection({ - stepKeys, - selectionStepKeys, - metadata, - defaultToFirstStep: false, - }); + const {logCaptureInfo, computeLogFileKey, setComputeLogFileKey} = + useComputeLogFileKeyForSelection({ + stepKeys, + selectionStepKeys, + metadata, + defaultToFirstStep: false, + }); const logsFilterStepKeys = runtimeGraph ? logsFilter.logQuery diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/RunMetadataProvider.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/RunMetadataProvider.tsx index 6edff2e0cbe73..ccdf38612351f 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/RunMetadataProvider.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/RunMetadataProvider.tsx @@ -144,7 +144,7 @@ function extractMetadataFromRun(run?: RunFragment): IRunMetadataDict { idx === stepStat.attempts.length - 1 ? stepStatusToStepState(stepStat.status) : IStepState.RETRY_REQUESTED, - } as IStepAttempt), + }) as IStepAttempt, ), // accumulated metadata diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/RunTable.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/RunTable.tsx index fd91fb7ffb99d..ea5c937a043af 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/RunTable.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/RunTable.tsx @@ -319,7 +319,7 @@ const RunRow: React.FC<{ }); const allTagsWithPinned = React.useMemo(() => { - const allTags: Omit[] = [...run.tags]; + const allTags: Omit<(typeof run.tags)[0], '__typename'>[] = [...run.tags]; if ((isJob && run.mode !== 'default') || !isJob) { allTags.push({ key: 'mode', diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/RunTimeline.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/RunTimeline.tsx index be1889a7134dc..c97784faaee24 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/RunTimeline.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/RunTimeline.tsx @@ -84,12 +84,15 @@ export const RunTimeline = (props: Props) => { const [_, end] = range; const includesTicks = now <= end; - const buckets = jobs.reduce((accum, job) => { - const {repoAddress} = job; - const repoKey = repoAddressAsURLString(repoAddress); - const jobsForRepo = accum[repoKey] || []; - return {...accum, [repoKey]: [...jobsForRepo, job]}; - }, {} as Record); + const buckets = jobs.reduce( + (accum, job) => { + const {repoAddress} = job; + const repoKey = repoAddressAsURLString(repoAddress); + const jobsForRepo = accum[repoKey] || []; + return {...accum, [repoKey]: [...jobsForRepo, job]}; + }, + {} as Record, + ); const allKeys = Object.keys(buckets); const {expandedKeys, onToggle, onToggleAll} = useRepoExpansionState( @@ -215,16 +218,8 @@ interface TimelineHeaderRowProps { } const TimelineHeaderRow = (props: TimelineHeaderRowProps) => { - const { - expanded, - onToggle, - onToggleAll, - repoAddress, - isDuplicateRepoName, - jobs, - height, - top, - } = props; + const {expanded, onToggle, onToggleAll, repoAddress, isDuplicateRepoName, jobs, height, top} = + props; return ( ` top: 2px; ${({$multiple}) => ($multiple ? `min-width: ${MIN_WIDTH_FOR_MULTIPLE}px` : null)}; - transition: background-color 300ms linear, width 300ms ease-in-out; + transition: + background-color 300ms linear, + width 300ms ease-in-out; .chunk-popover-target { display: block; diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/StepLogsDialog.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/StepLogsDialog.tsx index b49eb347f31dc..5bac1f381c2f5 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/StepLogsDialog.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/StepLogsDialog.tsx @@ -124,15 +124,12 @@ export const StepLogsModalContent: React.FC<{ setFilter((filter) => ({...filter, focusedTime: firstLogForStepTime})); }, [firstLogForStepTime]); - const { - computeLogFileKey, - setComputeLogFileKey, - logCaptureInfo, - } = useComputeLogFileKeyForSelection({ - metadata, - stepKeys, - selectionStepKeys: stepKeys, - }); + const {computeLogFileKey, setComputeLogFileKey, logCaptureInfo} = + useComputeLogFileKeyForSelection({ + metadata, + stepKeys, + selectionStepKeys: stepKeys, + }); return ( diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/useHourWindow.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/useHourWindow.tsx index f32f8057a577e..7dae478b033c5 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/useHourWindow.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/useHourWindow.tsx @@ -32,8 +32,8 @@ export const useHourWindow = ( [defaultValue, setHourWindow], ); - return React.useMemo(() => [hourWindow, setHourWindowWithDefault], [ - hourWindow, - setHourWindowWithDefault, - ]); + return React.useMemo( + () => [hourWindow, setHourWindowWithDefault], + [hourWindow, setHourWindowWithDefault], + ); }; diff --git a/js_modules/dagster-ui/packages/ui-core/src/runs/useRunsForTimeline.tsx b/js_modules/dagster-ui/packages/ui-core/src/runs/useRunsForTimeline.tsx index fd0c66038564a..1bc5815606201 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/runs/useRunsForTimeline.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/runs/useRunsForTimeline.tsx @@ -175,10 +175,13 @@ export const useRunsForTimeline = (range: [number, number], runsFilter: RunsFilt } } - const earliest = jobs.reduce((accum, job) => { - const startTimes = job.runs.map((job) => job.startTime); - return {...accum, [job.key]: Math.min(...startTimes)}; - }, {} as {[jobKey: string]: number}); + const earliest = jobs.reduce( + (accum, job) => { + const startTimes = job.runs.map((job) => job.startTime); + return {...accum, [job.key]: Math.min(...startTimes)}; + }, + {} as {[jobKey: string]: number}, + ); return jobs.sort((a, b) => earliest[a.key]! - earliest[b.key]!); }, [workspaceOrError, runsByJobKey, start, end]); diff --git a/js_modules/dagster-ui/packages/ui-core/src/schedules/SchedulesNextTicks.tsx b/js_modules/dagster-ui/packages/ui-core/src/schedules/SchedulesNextTicks.tsx index 890816d10c7ee..acf08fc14e76c 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/schedules/SchedulesNextTicks.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/schedules/SchedulesNextTicks.tsx @@ -317,14 +317,12 @@ const NextTickDialog: React.FC<{ schedule: ScheduleNextFiveTicksFragment; tickTimestamp: number; }> = ({repoAddress, evaluationResult, schedule, tickTimestamp, setOpen, isOpen}) => { - const [ - selectedRunRequest, - setSelectedRunRequest, - ] = React.useState( - evaluationResult && evaluationResult.runRequests && evaluationResult.runRequests.length === 1 - ? evaluationResult.runRequests[0]! - : null, - ); + const [selectedRunRequest, setSelectedRunRequest] = + React.useState( + evaluationResult && evaluationResult.runRequests && evaluationResult.runRequests.length === 1 + ? evaluationResult.runRequests[0]! + : null, + ); const copy = useCopyToClipboard(); diff --git a/js_modules/dagster-ui/packages/ui-core/src/ticks/SensorDryRunDialog.tsx b/js_modules/dagster-ui/packages/ui-core/src/ticks/SensorDryRunDialog.tsx index f15977482752a..fd2772ae252ca 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/ticks/SensorDryRunDialog.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/ticks/SensorDryRunDialog.tsx @@ -78,10 +78,8 @@ const SensorDryRun: React.FC = ({repoAddress, name, currentCursor, onClos const [submitting, setSubmitting] = React.useState(false); const [error, setError] = React.useState(null); - const [ - sensorExecutionData, - setSensorExecutionData, - ] = React.useState(null); + const [sensorExecutionData, setSensorExecutionData] = + React.useState(null); const sensorSelector = React.useMemo( () => ({ diff --git a/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/__stories__/useFilters.stories.tsx b/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/__stories__/useFilters.stories.tsx index 034b447f5f13f..495011f080e9c 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/__stories__/useFilters.stories.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/__stories__/useFilters.stories.tsx @@ -86,12 +86,10 @@ const TestComponent: React.FC = () => { icon: 'date', }); - const filters = React.useMemo(() => [userFilter, deploymentFilter, timeRangeFilter, testFilter], [ - userFilter, - deploymentFilter, - timeRangeFilter, - testFilter, - ]); + const filters = React.useMemo( + () => [userFilter, deploymentFilter, timeRangeFilter, testFilter], + [userFilter, deploymentFilter, timeRangeFilter, testFilter], + ); const {button, activeFiltersJsx} = useFilters({filters}); diff --git a/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/useTimeRangeFilter.tsx b/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/useTimeRangeFilter.tsx index 1fa47976a7375..ccfdc2ad411a0 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/useTimeRangeFilter.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/ui/Filters/useTimeRangeFilter.tsx @@ -95,12 +95,15 @@ export function useTimeRangeFilter({ setState(initialState || [null, null]); }, [initialState]); - const {timeRanges, timeRangesArray} = React.useMemo(() => calculateTimeRanges(timezone), [ - timezone, - // Recalculate once an hour - // eslint-disable-next-line react-hooks/exhaustive-deps - Math.floor(Date.now() / (1000 * 60 * 60)), - ]); + const {timeRanges, timeRangesArray} = React.useMemo( + () => calculateTimeRanges(timezone), + [ + timezone, + // Recalculate once an hour + // eslint-disable-next-line react-hooks/exhaustive-deps + Math.floor(Date.now() / (1000 * 60 * 60)), + ], + ); const onReset = () => { setState([null, null]); diff --git a/js_modules/dagster-ui/packages/ui-core/src/ui/MenuLink.tsx b/js_modules/dagster-ui/packages/ui-core/src/ui/MenuLink.tsx index 66855b2afb951..f580d93244963 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/ui/MenuLink.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/ui/MenuLink.tsx @@ -42,7 +42,9 @@ const StyledMenuLink = styled(Link)` display: block; line-height: 20px; padding: 6px 8px 6px 12px; - transition: background-color 50ms, box-shadow 150ms; + transition: + background-color 50ms, + box-shadow 150ms; align-items: flex-start; user-select: none; diff --git a/js_modules/dagster-ui/packages/ui-core/src/ui/SectionedLeftNav.tsx b/js_modules/dagster-ui/packages/ui-core/src/ui/SectionedLeftNav.tsx index 633b83f9de195..2651d82f04ea7 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/ui/SectionedLeftNav.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/ui/SectionedLeftNav.tsx @@ -315,16 +315,8 @@ interface CodeLocationNameRowProps { } const CodeLocationNameRow = (props: CodeLocationNameRowProps) => { - const { - height, - start, - expanded, - collapsible, - onToggle, - itemCount, - repoAddress, - showRepoLocation, - } = props; + const {height, start, expanded, collapsible, onToggle, itemCount, repoAddress, showRepoLocation} = + props; const codeLocationLabel = repoAddressAsHumanString(repoAddress); const empty = itemCount === 0; diff --git a/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSchedulesRoot.tsx b/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSchedulesRoot.tsx index 4e16f57b55c89..06596d96a61f7 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSchedulesRoot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSchedulesRoot.tsx @@ -89,9 +89,8 @@ export const WorkspaceSchedulesRoot = ({repoAddress}: {repoAddress: RepoAddress} return permissionedSchedules.map(({name}) => makeScheduleKey(repoAddress, name)); }, [permissionedSchedules, repoAddress]); - const [{checkedIds: checkedKeys}, {onToggleFactory, onToggleAll}] = useSelectionReducer( - permissionedKeys, - ); + const [{checkedIds: checkedKeys}, {onToggleFactory, onToggleAll}] = + useSelectionReducer(permissionedKeys); const checkedSchedules = React.useMemo(() => { return permissionedSchedules diff --git a/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSensorsRoot.tsx b/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSensorsRoot.tsx index af0b0a096069e..e0831505feb3d 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSensorsRoot.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/workspace/WorkspaceSensorsRoot.tsx @@ -89,9 +89,8 @@ export const WorkspaceSensorsRoot = ({repoAddress}: {repoAddress: RepoAddress}) return permissionedSensors.map(({name}) => makeSensorKey(repoAddress, name)); }, [permissionedSensors, repoAddress]); - const [{checkedIds: checkedKeys}, {onToggleFactory, onToggleAll}] = useSelectionReducer( - permissionedKeys, - ); + const [{checkedIds: checkedKeys}, {onToggleFactory, onToggleAll}] = + useSelectionReducer(permissionedKeys); const checkedSensors = React.useMemo(() => { return permissionedSensors diff --git a/js_modules/dagster-ui/packages/ui-core/src/workspace/repoAddressToSelector.tsx b/js_modules/dagster-ui/packages/ui-core/src/workspace/repoAddressToSelector.tsx index 6cb9f5ce201d8..aa8069f246c86 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/workspace/repoAddressToSelector.tsx +++ b/js_modules/dagster-ui/packages/ui-core/src/workspace/repoAddressToSelector.tsx @@ -4,11 +4,9 @@ import {RepositorySelector} from '../graphql/types'; import {RepoAddress} from './types'; -export const repoAddressToSelector = memoize( - (repoAddress: RepoAddress): RepositorySelector => { - return { - repositoryName: repoAddress.name, - repositoryLocationName: repoAddress.location, - }; - }, -); +export const repoAddressToSelector = memoize((repoAddress: RepoAddress): RepositorySelector => { + return { + repositoryName: repoAddress.name, + repositoryLocationName: repoAddress.location, + }; +}); diff --git a/js_modules/dagster-ui/yarn.lock b/js_modules/dagster-ui/yarn.lock index 88c42d3760c0b..f8cb8d04d441d 100644 --- a/js_modules/dagster-ui/yarn.lock +++ b/js_modules/dagster-ui/yarn.lock @@ -2287,13 +2287,13 @@ __metadata: "@types/uuid": ^8.3.4 "@types/validator": ^13 "@types/webpack-bundle-analyzer": ^4 - eslint: 8.6.0 + eslint: ^8.49.0 eslint-config-next: ^13.4.12 eslint-plugin-jest: ^26.4.6 eslint-webpack-plugin: 3.1.1 graphql: ^16.6.0 next: ^13.4.12 - prettier: 2.2.1 + prettier: ^3.0.3 react: ^18.2.0 react-dom: ^18.2.0 react-is: ^18.2.0 @@ -2318,14 +2318,38 @@ __metadata: languageName: unknown linkType: soft -"@dagster-io/eslint-config@1.0.12, @dagster-io/eslint-config@^1.0.1, @dagster-io/eslint-config@workspace:*, @dagster-io/eslint-config@workspace:packages/eslint-config": +"@dagster-io/eslint-config@^1.0.1, @dagster-io/eslint-config@workspace:*, @dagster-io/eslint-config@workspace:packages/eslint-config": version: 0.0.0-use.local resolution: "@dagster-io/eslint-config@workspace:packages/eslint-config" dependencies: - "@types/jest": ^27.5.1 - "@typescript-eslint/eslint-plugin": 6.7.2 - "@typescript-eslint/parser": 6.7.2 - eslint: ^8.6.0 + "@types/jest": ^29.5.5 + "@typescript-eslint/eslint-plugin": ^6.7.2 + "@typescript-eslint/parser": ^6.7.2 + eslint: ^8.49.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-dagster-rules: "link:./rules" + eslint-plugin-import: ^2.28.1 + eslint-plugin-jest: ^27.4.0 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-prettier: ^5.0.0 + eslint-plugin-react: ^7.33.2 + eslint-plugin-react-hooks: ^4.6.0 + jest: ^29.7.0 + prettier: ^3.0.3 + ts-jest: ^29.1.1 + typescript: 5.2.2 + peerDependencies: + eslint: ^8.49.0 + prettier: ^3.0.3 + languageName: unknown + linkType: soft + +"@dagster-io/eslint-config@npm:1.0.12": + version: 1.0.12 + resolution: "@dagster-io/eslint-config@npm:1.0.12" + dependencies: + "@typescript-eslint/eslint-plugin": 5.57.0 + "@typescript-eslint/parser": 5.57.0 eslint-config-prettier: 8.5.0 eslint-plugin-dagster-rules: "link:./rules" eslint-plugin-import: 2.26.0 @@ -2334,15 +2358,12 @@ __metadata: eslint-plugin-prettier: ^4.2.1 eslint-plugin-react: 7.31.11 eslint-plugin-react-hooks: 4.6.0 - jest: ^29.4 - prettier: 2.2.1 - ts-jest: ^28.0.3 - typescript: 5.2.2 peerDependencies: eslint: ^8.30.0 prettier: 2.8.1 - languageName: unknown - linkType: soft + checksum: b3076dae8ebc0c719553902d8a51afc4f8ed093e905fc1c4b71f5cc2b133bd14d057fb8cc92df993985c16c6002c5b6e68af2f0a02f178fa6d7f35c3cb6f2b72 + languageName: node + linkType: hard "@dagster-io/react-scripts@npm:^5.0.6": version: 5.0.6 @@ -2464,7 +2485,7 @@ __metadata: codemirror: ^5.65.2 core-js: ^3.21.1 deepmerge: ^4.2.2 - eslint: ^8.6.0 + eslint: ^8.49.0 eslint-plugin-storybook: ^0.6.13 jest: ^29.5.0 jest-environment-jsdom: ^29.5.0 @@ -2574,7 +2595,7 @@ __metadata: date-fns: ^2.28.0 dayjs: ^1.11.7 deepmerge: ^4.2.2 - eslint: ^8.39.0 + eslint: ^8.49.0 eslint-plugin-storybook: ^0.6.13 faker: 5.5.3 fuse.js: ^6.4.2 @@ -2591,7 +2612,7 @@ __metadata: lru-cache: ^6.0.0 moment: ^2.29.4 moment-timezone: ^0.5.42 - prettier: 2.2.1 + prettier: ^3.0.3 qs: ^6.10.3 react: ^18.2.0 react-chartjs-2: ^3.0.3 @@ -3000,7 +3021,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1": +"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.5.1": version: 4.8.1 resolution: "@eslint-community/regexpp@npm:4.8.1" checksum: 82d62c845ef42b810f268cfdc84d803a2da01735fb52e902fd34bdc09f92464a094fd8e4802839874b000b2f73f67c972859e813ba705233515d3e954f234bf2 @@ -3014,26 +3035,26 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.0.5": - version: 1.4.1 - resolution: "@eslint/eslintrc@npm:1.4.1" +"@eslint/eslintrc@npm:^2.1.1": + version: 2.1.1 + resolution: "@eslint/eslintrc@npm:2.1.1" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.4.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: cd3e5a8683db604739938b1c1c8b77927dc04fce3e28e0c88e7f2cd4900b89466baf83dfbad76b2b9e4d2746abdd00dd3f9da544d3e311633d8693f327d04cd7 + checksum: bf909ea183d27238c257a82d4ffdec38ca94b906b4b8dfae02ecbe7ecc9e5a8182ef5e469c808bb8cb4fea4750f43ac4ca7c4b4a167b6cd7e3aaacd386b2bd25 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.1": - version: 2.1.1 - resolution: "@eslint/eslintrc@npm:2.1.1" +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -3044,7 +3065,14 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: bf909ea183d27238c257a82d4ffdec38ca94b906b4b8dfae02ecbe7ecc9e5a8182ef5e469c808bb8cb4fea4750f43ac4ca7c4b4a167b6cd7e3aaacd386b2bd25 + checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 + languageName: node + linkType: hard + +"@eslint/js@npm:8.49.0": + version: 8.49.0 + resolution: "@eslint/js@npm:8.49.0" + checksum: a6601807c8aeeefe866926ad92ed98007c034a735af20ff709009e39ad1337474243d47908500a3bde04e37bfba16bcf1d3452417f962e1345bc8756edd6b830 languageName: node linkType: hard @@ -3775,14 +3803,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.9.2": - version: 0.9.5 - resolution: "@humanwhocodes/config-array@npm:0.9.5" +"@humanwhocodes/config-array@npm:^0.11.11": + version: 0.11.11 + resolution: "@humanwhocodes/config-array@npm:0.11.11" dependencies: "@humanwhocodes/object-schema": ^1.2.1 debug: ^4.1.1 - minimatch: ^3.0.4 - checksum: 8ba6281bc0590f6c6eadeefc14244b5a3e3f5903445aadd1a32099ed80e753037674026ce1b3c945ab93561bea5eb29e3c5bff67060e230c295595ba517a3492 + minimatch: ^3.0.5 + checksum: db84507375ab77b8ffdd24f498a5b49ad6b64391d30dd2ac56885501d03964d29637e05b1ed5aefa09d57ac667e28028bc22d2da872bfcd619652fbdb5f4ca19 languageName: node linkType: hard @@ -3889,6 +3917,20 @@ __metadata: languageName: node linkType: hard +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 + languageName: node + linkType: hard + "@jest/core@npm:^27.5.1": version: 27.5.1 resolution: "@jest/core@npm:27.5.1" @@ -3971,6 +4013,47 @@ __metadata: languageName: node linkType: hard +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/reporters": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + ci-info: ^3.2.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-changed-files: ^29.7.0 + jest-config: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-resolve-dependencies: ^29.7.0 + jest-runner: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + jest-watcher: ^29.7.0 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-ansi: ^6.0.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d + languageName: node + linkType: hard + "@jest/environment@npm:^27.5.1": version: 27.5.1 resolution: "@jest/environment@npm:27.5.1" @@ -3995,6 +4078,18 @@ __metadata: languageName: node linkType: hard +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 + languageName: node + linkType: hard + "@jest/expect-utils@npm:^29.6.2": version: 29.6.2 resolution: "@jest/expect-utils@npm:29.6.2" @@ -4004,6 +4099,15 @@ __metadata: languageName: node linkType: hard +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed + languageName: node + linkType: hard + "@jest/expect@npm:^29.6.2": version: 29.6.2 resolution: "@jest/expect@npm:29.6.2" @@ -4014,6 +4118,16 @@ __metadata: languageName: node linkType: hard +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: ^29.7.0 + jest-snapshot: ^29.7.0 + checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e + languageName: node + linkType: hard + "@jest/fake-timers@npm:^27.5.1": version: 27.5.1 resolution: "@jest/fake-timers@npm:27.5.1" @@ -4042,6 +4156,20 @@ __metadata: languageName: node linkType: hard +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@sinonjs/fake-timers": ^10.0.2 + "@types/node": "*" + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 + languageName: node + linkType: hard + "@jest/globals@npm:^27.5.1": version: 27.5.1 resolution: "@jest/globals@npm:27.5.1" @@ -4065,6 +4193,18 @@ __metadata: languageName: node linkType: hard +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/types": ^29.6.3 + jest-mock: ^29.7.0 + checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 + languageName: node + linkType: hard + "@jest/reporters@npm:^27.5.1": version: 27.5.1 resolution: "@jest/reporters@npm:27.5.1" @@ -4140,6 +4280,43 @@ __metadata: languageName: node linkType: hard +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": ^0.2.3 + "@jest/console": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + "@types/node": "*" + chalk: ^4.0.0 + collect-v8-coverage: ^1.0.0 + exit: ^0.1.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + istanbul-lib-coverage: ^3.0.0 + istanbul-lib-instrument: ^6.0.0 + istanbul-lib-report: ^3.0.0 + istanbul-lib-source-maps: ^4.0.0 + istanbul-reports: ^3.1.3 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + slash: ^3.0.0 + string-length: ^4.0.1 + strip-ansi: ^6.0.0 + v8-to-istanbul: ^9.0.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 + languageName: node + linkType: hard + "@jest/schemas@npm:^28.1.3": version: 28.1.3 resolution: "@jest/schemas@npm:28.1.3" @@ -4158,6 +4335,15 @@ __metadata: languageName: node linkType: hard +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + "@jest/source-map@npm:^27.5.1": version: 27.5.1 resolution: "@jest/source-map@npm:27.5.1" @@ -4180,6 +4366,17 @@ __metadata: languageName: node linkType: hard +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" + dependencies: + "@jridgewell/trace-mapping": ^0.3.18 + callsites: ^3.0.0 + graceful-fs: ^4.2.9 + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb + languageName: node + linkType: hard + "@jest/test-result@npm:^27.5.1": version: 27.5.1 resolution: "@jest/test-result@npm:27.5.1" @@ -4216,6 +4413,18 @@ __metadata: languageName: node linkType: hard +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + collect-v8-coverage: ^1.0.0 + checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa + languageName: node + linkType: hard + "@jest/test-sequencer@npm:^27.5.1": version: 27.5.1 resolution: "@jest/test-sequencer@npm:27.5.1" @@ -4240,6 +4449,18 @@ __metadata: languageName: node linkType: hard +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + slash: ^3.0.0 + checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd + languageName: node + linkType: hard + "@jest/transform@npm:^26.6.2": version: 26.6.2 resolution: "@jest/transform@npm:26.6.2" @@ -4309,6 +4530,29 @@ __metadata: languageName: node linkType: hard +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + babel-plugin-istanbul: ^6.1.1 + chalk: ^4.0.0 + convert-source-map: ^2.0.0 + fast-json-stable-stringify: ^2.1.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + micromatch: ^4.0.4 + pirates: ^4.0.4 + slash: ^3.0.0 + write-file-atomic: ^4.0.2 + checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab + languageName: node + linkType: hard + "@jest/types@npm:^26.6.2": version: 26.6.2 resolution: "@jest/types@npm:26.6.2" @@ -4363,6 +4607,20 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": version: 0.3.3 resolution: "@jridgewell/gen-mapping@npm:0.3.3" @@ -7769,7 +8027,7 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^27.4.0, @types/jest@npm:^27.5.1": +"@types/jest@npm:^27.4.0": version: 27.5.2 resolution: "@types/jest@npm:27.5.2" dependencies: @@ -7779,6 +8037,16 @@ __metadata: languageName: node linkType: hard +"@types/jest@npm:^29.5.5": + version: 29.5.5 + resolution: "@types/jest@npm:29.5.5" + dependencies: + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 56e55cde9949bcc0ee2fa34ce5b7c32c2bfb20e53424aa4ff3a210859eeaaa3fdf6f42f81a3f655238039cdaaaf108b054b7a8602f394e6c52b903659338d8c6 + languageName: node + linkType: hard + "@types/js-yaml@npm:^4.0.0": version: 4.0.5 resolution: "@types/js-yaml@npm:4.0.5" @@ -8315,7 +8583,31 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:6.7.2": +"@typescript-eslint/eslint-plugin@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.57.0" + dependencies: + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.57.0 + "@typescript-eslint/type-utils": 5.57.0 + "@typescript-eslint/utils": 5.57.0 + debug: ^4.3.4 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: be13aa74ee6f15f0ae67781c625d9dcf3ce8a3feca2b125eef0cfee850b7f9f0cec23fc56a729ef25926298fe3ea51603ebeee2b93fc9b73fce1410638707177 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^6.7.2": version: 6.7.2 resolution: "@typescript-eslint/eslint-plugin@npm:6.7.2" dependencies: @@ -8340,21 +8632,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:6.7.2": - version: 6.7.2 - resolution: "@typescript-eslint/parser@npm:6.7.2" +"@typescript-eslint/parser@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/parser@npm:5.57.0" dependencies: - "@typescript-eslint/scope-manager": 6.7.2 - "@typescript-eslint/types": 6.7.2 - "@typescript-eslint/typescript-estree": 6.7.2 - "@typescript-eslint/visitor-keys": 6.7.2 + "@typescript-eslint/scope-manager": 5.57.0 + "@typescript-eslint/types": 5.57.0 + "@typescript-eslint/typescript-estree": 5.57.0 debug: ^4.3.4 peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 9e93d3eb432ed5457a852e25a31782d07518f728966cd477620175ae64db9be04f5d8e605f3561dbfe9a365f209a83b2a3788efb9b3cf33669c8bca17f1bcf6f + checksum: b7e8345631911f721591ba970fea5c888f0f3bf2e2ea2dbc3e5b0dc345c0776b62b92c534edfde1379b4b182958a421f35ac26d84705fe6ae7dd37aa675d9493 languageName: node linkType: hard @@ -8375,6 +8666,34 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:^6.7.2": + version: 6.7.2 + resolution: "@typescript-eslint/parser@npm:6.7.2" + dependencies: + "@typescript-eslint/scope-manager": 6.7.2 + "@typescript-eslint/types": 6.7.2 + "@typescript-eslint/typescript-estree": 6.7.2 + "@typescript-eslint/visitor-keys": 6.7.2 + debug: ^4.3.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 9e93d3eb432ed5457a852e25a31782d07518f728966cd477620175ae64db9be04f5d8e605f3561dbfe9a365f209a83b2a3788efb9b3cf33669c8bca17f1bcf6f + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/scope-manager@npm:5.57.0" + dependencies: + "@typescript-eslint/types": 5.57.0 + "@typescript-eslint/visitor-keys": 5.57.0 + checksum: 4a851f23da2adbf6341b04c1e3f19fcb66415683f26805d3123725d18845bd4a150bd182de0a91279d5682f2568bb5dd831d4ad0bdb70f49d9ca7381cec4dd17 + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/scope-manager@npm:5.62.0" @@ -8395,6 +8714,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/type-utils@npm:5.57.0" + dependencies: + "@typescript-eslint/typescript-estree": 5.57.0 + "@typescript-eslint/utils": 5.57.0 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 649d000edabfe4e567b8a384d0012c56396e40ce2123a78857d4b8da6bf2288627dc355745bd7d4a2877d4cc8a26e1d1dbfc422e6382ac3d3ab431b92eb5b852 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:6.7.2": version: 6.7.2 resolution: "@typescript-eslint/type-utils@npm:6.7.2" @@ -8412,6 +8748,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/types@npm:5.57.0" + checksum: 79a100fb650965f63c01c20e6abd79ca0d2043c3a329b9fef89917d6b9ba3c0f946dca3f14f2975ee6349daadd6ce0e98fde3aafe4b710e5a27abe1adc590c85 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/types@npm:5.62.0" @@ -8426,6 +8769,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.57.0" + dependencies: + "@typescript-eslint/types": 5.57.0 + "@typescript-eslint/visitor-keys": 5.57.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 648b88f88ea6cc293ec67b4c0f4f3c2bf733be7e0f2eee08aadbaec6939fd724a6c287decc336abbf67b9e366cc2c48f2e0e48d8302b533e783f798332a06e83 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" @@ -8462,6 +8823,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/utils@npm:5.57.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.57.0 + "@typescript-eslint/types": 5.57.0 + "@typescript-eslint/typescript-estree": 5.57.0 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 461258e1194d24c5e642c65ba1afd612712fa8e617ac85cfbbe3dde2557fe4abadedbce19a6954ae0cccbfb92b8a09f38d65a3eedca0394861a5d1c4c893c5ed + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:6.7.2": version: 6.7.2 resolution: "@typescript-eslint/utils@npm:6.7.2" @@ -8497,6 +8876,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:5.57.0": + version: 5.57.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.57.0" + dependencies: + "@typescript-eslint/types": 5.57.0 + eslint-visitor-keys: ^3.3.0 + checksum: 77d53f74648e48bf1c6313cd60568c2b1539157ac13945f26204a54beb156666c24f3d033dd0db8ed5d1d4595ee63c072732b17132e4488b46763bf8fdcefa49 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" @@ -9079,7 +9468,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -9119,13 +9508,6 @@ __metadata: languageName: node linkType: hard -"ansi-colors@npm:^4.1.1": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e - languageName: node - linkType: hard - "ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0, ansi-escapes@npm:^4.3.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -9507,13 +9889,28 @@ __metadata: languageName: node linkType: hard -"arrify@npm:^1.0.1": - version: 1.0.1 - resolution: "arrify@npm:1.0.1" - checksum: 745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7 - languageName: node - linkType: hard - +"arraybuffer.prototype.slice@npm:^1.0.2": + version: 1.0.2 + resolution: "arraybuffer.prototype.slice@npm:1.0.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 + is-array-buffer: ^3.0.2 + is-shared-array-buffer: ^1.0.2 + checksum: c200faf437786f5b2c80d4564ff5481c886a16dee642ef02abdc7306c7edd523d1f01d1dd12b769c7eb42ac9bc53874510db19a92a2c035c0f6696172aafa5d3 + languageName: node + linkType: hard + +"arrify@npm:^1.0.1": + version: 1.0.1 + resolution: "arrify@npm:1.0.1" + checksum: 745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7 + languageName: node + linkType: hard + "asap@npm:~2.0.3, asap@npm:~2.0.6": version: 2.0.6 resolution: "asap@npm:2.0.6" @@ -9606,6 +10003,15 @@ __metadata: languageName: node linkType: hard +"asynciterator.prototype@npm:^1.0.0": + version: 1.0.0 + resolution: "asynciterator.prototype@npm:1.0.0" + dependencies: + has-symbols: ^1.0.3 + checksum: e8ebfd9493ac651cf9b4165e9d64030b3da1d17181bb1963627b59e240cdaf021d9b59d44b827dc1dde4e22387ec04c2d0f8720cf58a1c282e34e40cc12721b3 + languageName: node + linkType: hard + "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -9746,6 +10152,23 @@ __metadata: languageName: node linkType: hard +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": ^29.7.0 + "@types/babel__core": ^7.1.14 + babel-plugin-istanbul: ^6.1.1 + babel-preset-jest: ^29.6.3 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + slash: ^3.0.0 + peerDependencies: + "@babel/core": ^7.8.0 + checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 + languageName: node + linkType: hard + "babel-literal-to-ast@npm:^2.1.0": version: 2.1.0 resolution: "babel-literal-to-ast@npm:2.1.0" @@ -9870,6 +10293,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": ^7.3.3 + "@babel/types": ^7.3.3 + "@types/babel__core": ^7.1.14 + "@types/babel__traverse": ^7.0.6 + checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 + languageName: node + linkType: hard + "babel-plugin-macros@npm:*, babel-plugin-macros@npm:^3.1.0": version: 3.1.0 resolution: "babel-plugin-macros@npm:3.1.0" @@ -10079,6 +10514,18 @@ __metadata: languageName: node linkType: hard +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + languageName: node + linkType: hard + "babel-preset-react-app@npm:^10.0.1": version: 10.0.1 resolution: "babel-preset-react-app@npm:10.0.1" @@ -11427,6 +11874,23 @@ __metadata: languageName: node linkType: hard +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + prompts: ^2.0.1 + bin: + create-jest: bin/create-jest.js + checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -12046,6 +12510,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1": + version: 1.1.0 + resolution: "define-data-property@npm:1.1.0" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: 7ad4ee84cca8ad427a4831f5693526804b62ce9dfd4efac77214e95a4382aed930072251d4075dc8dc9fc949a353ed51f19f5285a84a788ba9216cc51472a093 + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -12070,6 +12545,17 @@ __metadata: languageName: node linkType: hard +"define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + "define-property@npm:^0.2.5": version: 0.2.5 resolution: "define-property@npm:0.2.5" @@ -12261,6 +12747,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa + languageName: node + linkType: hard + "diff@npm:^4.0.1": version: 4.0.2 resolution: "diff@npm:4.0.2" @@ -12647,16 +13140,6 @@ __metadata: languageName: node linkType: hard -"enquirer@npm:^2.3.5": - version: 2.4.1 - resolution: "enquirer@npm:2.4.1" - dependencies: - ansi-colors: ^4.1.1 - strip-ansi: ^6.0.1 - checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 - languageName: node - linkType: hard - "entities@npm:^2.0.0": version: 2.2.0 resolution: "entities@npm:2.2.0" @@ -12769,6 +13252,53 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.22.1": + version: 1.22.2 + resolution: "es-abstract@npm:1.22.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + arraybuffer.prototype.slice: ^1.0.2 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.1 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.12 + is-weakref: ^1.0.2 + object-inspect: ^1.12.3 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 + safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 + typed-array-buffer: ^1.0.0 + typed-array-byte-length: ^1.0.0 + typed-array-byte-offset: ^1.0.0 + typed-array-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.11 + checksum: cc70e592d360d7d729859013dee7a610c6b27ed8630df0547c16b0d16d9fe6505a70ee14d1af08d970fdd132b3f88c9ca7815ce72c9011608abf8ab0e55fc515 + languageName: node + linkType: hard + "es-get-iterator@npm:^1.1.3": version: 1.1.3 resolution: "es-get-iterator@npm:1.1.3" @@ -12786,6 +13316,28 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.0.12": + version: 1.0.15 + resolution: "es-iterator-helpers@npm:1.0.15" + dependencies: + asynciterator.prototype: ^1.0.0 + call-bind: ^1.0.2 + define-properties: ^1.2.1 + es-abstract: ^1.22.1 + es-set-tostringtag: ^2.0.1 + function-bind: ^1.1.1 + get-intrinsic: ^1.2.1 + globalthis: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + iterator.prototype: ^1.1.2 + safe-array-concat: ^1.0.1 + checksum: 50081ae5c549efe62e5c1d244df0194b40b075f7897fc2116b7e1aa437eb3c41f946d2afda18c33f9b31266ec544765932542765af839f76fa6d7b7855d1e0e1 + languageName: node + linkType: hard + "es-module-lexer@npm:^1.2.1": version: 1.3.0 resolution: "es-module-lexer@npm:1.3.0" @@ -13115,6 +13667,17 @@ __metadata: languageName: node linkType: hard +"eslint-config-prettier@npm:^9.0.0": + version: 9.0.0 + resolution: "eslint-config-prettier@npm:9.0.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 362e991b6cb343f79362bada2d97c202e5303e6865888918a7445c555fb75e4c078b01278e90be98aa98ae22f8597d8e93d48314bec6824f540f7efcab3ce451 + languageName: node + linkType: hard + "eslint-import-resolver-node@npm:*, eslint-import-resolver-node@npm:^0.3.6": version: 0.3.7 resolution: "eslint-import-resolver-node@npm:0.3.7" @@ -13168,6 +13731,12 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-dagster-rules@link:./rules::locator=%40dagster-io%2Feslint-config%40npm%3A1.0.12": + version: 0.0.0-use.local + resolution: "eslint-plugin-dagster-rules@link:./rules::locator=%40dagster-io%2Feslint-config%40npm%3A1.0.12" + languageName: node + linkType: soft + "eslint-plugin-dagster-rules@link:./rules::locator=%40dagster-io%2Feslint-config%40workspace%3Apackages%2Feslint-config": version: 0.0.0-use.local resolution: "eslint-plugin-dagster-rules@link:./rules::locator=%40dagster-io%2Feslint-config%40workspace%3Apackages%2Feslint-config" @@ -13225,6 +13794,33 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-import@npm:^2.28.1": + version: 2.28.1 + resolution: "eslint-plugin-import@npm:2.28.1" + dependencies: + array-includes: ^3.1.6 + array.prototype.findlastindex: ^1.2.2 + array.prototype.flat: ^1.3.1 + array.prototype.flatmap: ^1.3.1 + debug: ^3.2.7 + doctrine: ^2.1.0 + eslint-import-resolver-node: ^0.3.7 + eslint-module-utils: ^2.8.0 + has: ^1.0.3 + is-core-module: ^2.13.0 + is-glob: ^4.0.3 + minimatch: ^3.1.2 + object.fromentries: ^2.0.6 + object.groupby: ^1.0.0 + object.values: ^1.1.6 + semver: ^6.3.1 + tsconfig-paths: ^3.14.2 + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + checksum: e8ae6dd8f06d8adf685f9c1cfd46ac9e053e344a05c4090767e83b63a85c8421ada389807a39e73c643b9bff156715c122e89778169110ed68d6428e12607edf + languageName: node + linkType: hard + "eslint-plugin-jest@npm:^26.4.6": version: 26.9.0 resolution: "eslint-plugin-jest@npm:26.9.0" @@ -13260,6 +13856,24 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-jest@npm:^27.4.0": + version: 27.4.0 + resolution: "eslint-plugin-jest@npm:27.4.0" + dependencies: + "@typescript-eslint/utils": ^5.10.0 + peerDependencies: + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + jest: + optional: true + checksum: c33593dba87e750123555c2de32fb174d6f2c92342571492f8dbde01bf61a8ac229dff31bd08fea16c3ca2c4843fc2fec985459c351319c019016767ed1cd78e + languageName: node + linkType: hard + "eslint-plugin-jsx-a11y@npm:6.6.1": version: 6.6.1 resolution: "eslint-plugin-jsx-a11y@npm:6.6.1" @@ -13283,7 +13897,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:^6.5.1": +"eslint-plugin-jsx-a11y@npm:^6.5.1, eslint-plugin-jsx-a11y@npm:^6.7.1": version: 6.7.1 resolution: "eslint-plugin-jsx-a11y@npm:6.7.1" dependencies: @@ -13324,7 +13938,26 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:4.6.0": +"eslint-plugin-prettier@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-prettier@npm:5.0.0" + dependencies: + prettier-linter-helpers: ^1.0.0 + synckit: ^0.8.5 + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + prettier: ">=3.0.0" + peerDependenciesMeta: + "@types/eslint": + optional: true + eslint-config-prettier: + optional: true + checksum: 84e88744b9050f2d5ef31b94e85294dda16f3a53c2449f9d33eac8ae6264889b459bf35a68e438fb6b329c2a1d6491aac4bfa00d86317e7009de3dad0311bec6 + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:4.6.0, eslint-plugin-react-hooks@npm:^4.6.0": version: 4.6.0 resolution: "eslint-plugin-react-hooks@npm:4.6.0" peerDependencies: @@ -13392,6 +14025,32 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.33.2": + version: 7.33.2 + resolution: "eslint-plugin-react@npm:7.33.2" + dependencies: + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + array.prototype.tosorted: ^1.1.1 + doctrine: ^2.1.0 + es-iterator-helpers: ^1.0.12 + estraverse: ^5.3.0 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.6 + object.fromentries: ^2.0.6 + object.hasown: ^1.1.2 + object.values: ^1.1.6 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.4 + semver: ^6.3.1 + string.prototype.matchall: ^4.0.8 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: b4c3d76390b0ae6b6f9fed78170604cc2c04b48e6778a637db339e8e3911ec9ef22510b0ae77c429698151d0f1b245f282177f384105b6830e7b29b9c9b26610 + languageName: node + linkType: hard + "eslint-plugin-storybook@npm:^0.6.13": version: 0.6.13 resolution: "eslint-plugin-storybook@npm:0.6.13" @@ -13416,7 +14075,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.1.0, eslint-scope@npm:^7.2.2": +"eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" dependencies: @@ -13426,31 +14085,20 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-utils@npm:3.0.0" - dependencies: - eslint-visitor-keys: ^2.0.0 - peerDependencies: - eslint: ">=5" - checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-visitor-keys@npm:2.1.0" - checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.1.0, eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.2": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.2": version: 3.4.2 resolution: "eslint-visitor-keys@npm:3.4.2" checksum: 9e0e7e4aaea705c097ae37c97410e5f167d4d2193be2edcb1f0760762ede3df01545e4820ae314f42dcec687745f2c6dcaf6d83575c4a2a241eb0c8517d724f2 languageName: node linkType: hard +"eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + "eslint-webpack-plugin@npm:3.1.1": version: 3.1.1 resolution: "eslint-webpack-plugin@npm:3.1.1" @@ -13483,63 +14131,62 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.6.0": - version: 8.6.0 - resolution: "eslint@npm:8.6.0" +"eslint@npm:^8.3.0": + version: 8.46.0 + resolution: "eslint@npm:8.46.0" dependencies: - "@eslint/eslintrc": ^1.0.5 - "@humanwhocodes/config-array": ^0.9.2 - ajv: ^6.10.0 + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.1 + "@eslint/js": ^8.46.0 + "@humanwhocodes/config-array": ^0.11.10 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 doctrine: ^3.0.0 - enquirer: ^2.3.5 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.1.0 - eslint-utils: ^3.0.0 - eslint-visitor-keys: ^3.1.0 - espree: ^9.3.0 - esquery: ^1.4.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.2 + espree: ^9.6.1 + esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 file-entry-cache: ^6.0.1 - functional-red-black-tree: ^1.0.1 - glob-parent: ^6.0.1 - globals: ^13.6.0 - ignore: ^4.0.6 - import-fresh: ^3.0.0 + 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 - minimatch: ^3.0.4 + minimatch: ^3.1.2 natural-compare: ^1.4.0 - optionator: ^0.9.1 - progress: ^2.0.0 - regexpp: ^3.2.0 - semver: ^7.2.1 + optionator: ^0.9.3 strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 text-table: ^0.2.0 - v8-compile-cache: ^2.0.3 bin: eslint: bin/eslint.js - checksum: 19ed82fa872ebb45d0f10c2514975b85ab37e78e9b562a5aa3abdbe7802111d65f7d5a8563e394a975337b403163b40624c2cc8bfa585a061e8c7dc55def39b5 + checksum: 7a7d36b1a3bbc12e08fbb5bc36fd482a7a5a1797e62e762499dd45601b9e45aaa53a129f31ce0b4444551a9639b8b681ad535f379893dd1e3ae37b31dccd82aa languageName: node linkType: hard -"eslint@npm:^8.3.0, eslint@npm:^8.39.0, eslint@npm:^8.6.0": - version: 8.46.0 - resolution: "eslint@npm:8.46.0" +"eslint@npm:^8.49.0": + version: 8.49.0 + resolution: "eslint@npm:8.49.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.1 - "@eslint/js": ^8.46.0 - "@humanwhocodes/config-array": ^0.11.10 + "@eslint/eslintrc": ^2.1.2 + "@eslint/js": 8.49.0 + "@humanwhocodes/config-array": ^0.11.11 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 ajv: ^6.12.4 @@ -13549,7 +14196,7 @@ __metadata: doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.2 + eslint-visitor-keys: ^3.4.3 espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 @@ -13574,11 +14221,11 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 7a7d36b1a3bbc12e08fbb5bc36fd482a7a5a1797e62e762499dd45601b9e45aaa53a129f31ce0b4444551a9639b8b681ad535f379893dd1e3ae37b31dccd82aa + checksum: 4dfe257e1e42da2f9da872b05aaaf99b0f5aa022c1a91eee8f2af1ab72651b596366320c575ccd4e0469f7b4c97aff5bb85ae3323ebd6a293c3faef4028b0d81 languageName: node linkType: hard -"espree@npm:^9.3.0, espree@npm:^9.4.0, espree@npm:^9.6.0, espree@npm:^9.6.1": +"espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -13599,7 +14246,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0, esquery@npm:^1.4.2": +"esquery@npm:^1.4.2": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -13809,6 +14456,19 @@ __metadata: languageName: node linkType: hard +"expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -14593,10 +15253,15 @@ __metadata: languageName: node linkType: hard -"functional-red-black-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f +"function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 languageName: node linkType: hard @@ -14783,7 +15448,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2": +"glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -14917,7 +15582,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0, globals@npm:^13.6.0": +"globals@npm:^13.19.0": version: 13.20.0 resolution: "globals@npm:13.20.0" dependencies: @@ -14978,6 +15643,13 @@ __metadata: languageName: node linkType: hard +"grapheme-splitter@npm:^1.0.4": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 + languageName: node + linkType: hard + "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" @@ -15713,13 +16385,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^4.0.6": - version: 4.0.6 - resolution: "ignore@npm:4.0.6" - checksum: 248f82e50a430906f9ee7f35e1158e3ec4c3971451dd9f99c9bc1548261b4db2b99709f60ac6c6cac9333494384176cc4cc9b07acbe42d52ac6a09cad734d800 - languageName: node - linkType: hard - "ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" @@ -15741,7 +16406,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -15963,6 +16628,15 @@ __metadata: languageName: node linkType: hard +"is-async-function@npm:^2.0.0": + version: 2.0.0 + resolution: "is-async-function@npm:2.0.0" + dependencies: + has-tostringtag: ^1.0.0 + checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -16147,6 +16821,15 @@ __metadata: languageName: node linkType: hard +"is-finalizationregistry@npm:^1.0.2": + version: 1.0.2 + resolution: "is-finalizationregistry@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d + languageName: node + linkType: hard + "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -16161,7 +16844,7 @@ __metadata: languageName: node linkType: hard -"is-generator-function@npm:^1.0.7": +"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": version: 1.0.10 resolution: "is-generator-function@npm:1.0.10" dependencies: @@ -16438,7 +17121,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" dependencies: @@ -16594,6 +17277,19 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.0 + resolution: "istanbul-lib-instrument@npm:6.0.0" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: b9dc3723a769e65dbe1b912f935088ffc07cf393fa78a3ce79022c91aabb0ad01405ffd56083cdd822e514798e9daae3ea7bfe85633b094ecb335d28eb0a3f97 + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" @@ -16633,6 +17329,19 @@ __metadata: languageName: node linkType: hard +"iterator.prototype@npm:^1.1.2": + version: 1.1.2 + resolution: "iterator.prototype@npm:1.1.2" + dependencies: + define-properties: ^1.2.1 + get-intrinsic: ^1.2.1 + has-symbols: ^1.0.3 + reflect.getprototypeof: ^1.0.4 + set-function-name: ^2.0.1 + checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 + languageName: node + linkType: hard + "jackspeak@npm:^2.0.3": version: 2.2.2 resolution: "jackspeak@npm:2.2.2" @@ -16691,6 +17400,17 @@ __metadata: languageName: node linkType: hard +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: ^5.0.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 + languageName: node + linkType: hard + "jest-circus@npm:^27.5.1": version: 27.5.1 resolution: "jest-circus@npm:27.5.1" @@ -16746,6 +17466,34 @@ __metadata: languageName: node linkType: hard +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + co: ^4.6.0 + dedent: ^1.0.0 + is-generator-fn: ^2.0.0 + jest-each: ^29.7.0 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + pretty-format: ^29.7.0 + pure-rand: ^6.0.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 + languageName: node + linkType: hard + "jest-cli@npm:^27.5.1": version: 27.5.1 resolution: "jest-cli@npm:27.5.1" @@ -16800,6 +17548,32 @@ __metadata: languageName: node linkType: hard +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + create-jest: ^29.7.0 + exit: ^0.1.2 + import-local: ^3.0.2 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + yargs: ^17.3.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 + languageName: node + linkType: hard + "jest-config@npm:^27.5.1": version: 27.5.1 resolution: "jest-config@npm:27.5.1" @@ -16875,6 +17649,44 @@ __metadata: languageName: node linkType: hard +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@jest/test-sequencer": ^29.7.0 + "@jest/types": ^29.6.3 + babel-jest: ^29.7.0 + chalk: ^4.0.0 + ci-info: ^3.2.0 + deepmerge: ^4.2.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-circus: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-get-type: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-runner: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + micromatch: ^4.0.4 + parse-json: ^5.2.0 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-json-comments: ^3.1.1 + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff + languageName: node + linkType: hard + "jest-diff@npm:^26.0.0": version: 26.6.2 resolution: "jest-diff@npm:26.6.2" @@ -16911,6 +17723,18 @@ __metadata: languageName: node linkType: hard +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^29.6.3 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 + languageName: node + linkType: hard + "jest-docblock@npm:^27.5.1": version: 27.5.1 resolution: "jest-docblock@npm:27.5.1" @@ -16925,7 +17749,16 @@ __metadata: resolution: "jest-docblock@npm:29.4.3" dependencies: detect-newline: ^3.0.0 - checksum: e0e9df1485bb8926e5b33478cdf84b3387d9caf3658e7dc1eaa6dc34cb93dea0d2d74797f6e940f0233a88f3dadd60957f2288eb8f95506361f85b84bf8661df + checksum: e0e9df1485bb8926e5b33478cdf84b3387d9caf3658e7dc1eaa6dc34cb93dea0d2d74797f6e940f0233a88f3dadd60957f2288eb8f95506361f85b84bf8661df + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: ^3.0.0 + checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 languageName: node linkType: hard @@ -16955,6 +17788,19 @@ __metadata: languageName: node linkType: hard +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + jest-util: ^29.7.0 + pretty-format: ^29.7.0 + checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c + languageName: node + linkType: hard + "jest-environment-jsdom@npm:^27.5.1": version: 27.5.1 resolution: "jest-environment-jsdom@npm:27.5.1" @@ -17019,6 +17865,20 @@ __metadata: languageName: node linkType: hard +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 + languageName: node + linkType: hard + "jest-get-type@npm:^26.3.0": version: 26.3.0 resolution: "jest-get-type@npm:26.3.0" @@ -17040,6 +17900,13 @@ __metadata: languageName: node linkType: hard +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 + languageName: node + linkType: hard + "jest-haste-map@npm:^26.6.2": version: 26.6.2 resolution: "jest-haste-map@npm:26.6.2" @@ -17112,6 +17979,29 @@ __metadata: languageName: node linkType: hard +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/graceful-fs": ^4.1.3 + "@types/node": "*" + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + walker: ^1.0.8 + dependenciesMeta: + fsevents: + optional: true + checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 + languageName: node + linkType: hard + "jest-jasmine2@npm:^27.5.1": version: 27.5.1 resolution: "jest-jasmine2@npm:27.5.1" @@ -17157,6 +18047,16 @@ __metadata: languageName: node linkType: hard +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 + languageName: node + linkType: hard + "jest-matcher-utils@npm:^27.0.0, jest-matcher-utils@npm:^27.5.1": version: 27.5.1 resolution: "jest-matcher-utils@npm:27.5.1" @@ -17181,6 +18081,18 @@ __metadata: languageName: node linkType: hard +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd + languageName: node + linkType: hard + "jest-message-util@npm:^27.5.1": version: 27.5.1 resolution: "jest-message-util@npm:27.5.1" @@ -17232,6 +18144,23 @@ __metadata: languageName: node linkType: hard +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": ^7.12.13 + "@jest/types": ^29.6.3 + "@types/stack-utils": ^2.0.0 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 + languageName: node + linkType: hard + "jest-mock@npm:^27.5.1": version: 27.5.1 resolution: "jest-mock@npm:27.5.1" @@ -17253,6 +18182,17 @@ __metadata: languageName: node linkType: hard +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-util: ^29.7.0 + checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 + languageName: node + linkType: hard + "jest-pnp-resolver@npm:^1.2.2": version: 1.2.3 resolution: "jest-pnp-resolver@npm:1.2.3" @@ -17293,6 +18233,13 @@ __metadata: languageName: node linkType: hard +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a + languageName: node + linkType: hard + "jest-resolve-dependencies@npm:^27.5.1": version: 27.5.1 resolution: "jest-resolve-dependencies@npm:27.5.1" @@ -17314,6 +18261,16 @@ __metadata: languageName: node linkType: hard +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.7.0 + checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 + languageName: node + linkType: hard + "jest-resolve@npm:^27.4.2, jest-resolve@npm:^27.5.1": version: 27.5.1 resolution: "jest-resolve@npm:27.5.1" @@ -17349,6 +18306,23 @@ __metadata: languageName: node linkType: hard +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-pnp-resolver: ^1.2.2 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + resolve: ^1.20.0 + resolve.exports: ^2.0.0 + slash: ^3.0.0 + checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 + languageName: node + linkType: hard + "jest-runner@npm:^27.5.1": version: 27.5.1 resolution: "jest-runner@npm:27.5.1" @@ -17407,6 +18381,35 @@ __metadata: languageName: node linkType: hard +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/environment": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + emittery: ^0.13.1 + graceful-fs: ^4.2.9 + jest-docblock: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-leak-detector: ^29.7.0 + jest-message-util: ^29.7.0 + jest-resolve: ^29.7.0 + jest-runtime: ^29.7.0 + jest-util: ^29.7.0 + jest-watcher: ^29.7.0 + jest-worker: ^29.7.0 + p-limit: ^3.1.0 + source-map-support: 0.5.13 + checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb + languageName: node + linkType: hard + "jest-runtime@npm:^27.5.1": version: 27.5.1 resolution: "jest-runtime@npm:27.5.1" @@ -17467,6 +18470,36 @@ __metadata: languageName: node linkType: hard +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/globals": ^29.7.0 + "@jest/source-map": ^29.6.3 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + cjs-module-lexer: ^1.0.0 + collect-v8-coverage: ^1.0.0 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + strip-bom: ^4.0.0 + checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e + languageName: node + linkType: hard + "jest-serializer@npm:^26.6.2": version: 26.6.2 resolution: "jest-serializer@npm:26.6.2" @@ -17545,6 +18578,34 @@ __metadata: languageName: node linkType: hard +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@babel/generator": ^7.7.2 + "@babel/plugin-syntax-jsx": ^7.7.2 + "@babel/plugin-syntax-typescript": ^7.7.2 + "@babel/types": ^7.3.3 + "@jest/expect-utils": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + chalk: ^4.0.0 + expect: ^29.7.0 + graceful-fs: ^4.2.9 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + natural-compare: ^1.4.0 + pretty-format: ^29.7.0 + semver: ^7.5.3 + checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad + languageName: node + linkType: hard + "jest-util@npm:^26.6.2": version: 26.6.2 resolution: "jest-util@npm:26.6.2" @@ -17573,7 +18634,7 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^28.0.0, jest-util@npm:^28.1.3": +"jest-util@npm:^28.1.3": version: 28.1.3 resolution: "jest-util@npm:28.1.3" dependencies: @@ -17587,6 +18648,20 @@ __metadata: languageName: node linkType: hard +"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca + languageName: node + linkType: hard + "jest-util@npm:^29.6.2": version: 29.6.2 resolution: "jest-util@npm:29.6.2" @@ -17629,6 +18704,20 @@ __metadata: languageName: node linkType: hard +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + camelcase: ^6.2.0 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + leven: ^3.1.0 + pretty-format: ^29.7.0 + checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae + languageName: node + linkType: hard + "jest-watch-typeahead@npm:^1.0.0": version: 1.1.0 resolution: "jest-watch-typeahead@npm:1.1.0" @@ -17693,6 +18782,22 @@ __metadata: languageName: node linkType: hard +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + emittery: ^0.13.1 + jest-util: ^29.7.0 + string-length: ^4.0.1 + checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f + languageName: node + linkType: hard + "jest-worker@npm:^26.2.1, jest-worker@npm:^26.6.2": version: 26.6.2 resolution: "jest-worker@npm:26.6.2" @@ -17738,6 +18843,18 @@ __metadata: languageName: node linkType: hard +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "*" + jest-util: ^29.7.0 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 + languageName: node + linkType: hard + "jest@npm:^27.4.3": version: 27.5.1 resolution: "jest@npm:27.5.1" @@ -17775,6 +18892,25 @@ __metadata: languageName: node linkType: hard +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/types": ^29.6.3 + import-local: ^3.0.2 + jest-cli: ^29.7.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b + languageName: node + linkType: hard + "jiti@npm:1.17.1": version: 1.17.1 resolution: "jiti@npm:1.17.1" @@ -18023,7 +19159,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.0, json5@npm:^2.2.1, json5@npm:^2.2.2": +"json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -19557,6 +20693,13 @@ __metadata: languageName: node linkType: hard +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -20107,7 +21250,7 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.1, optionator@npm:^0.9.3": +"optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" dependencies: @@ -21509,6 +22652,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.0.3": + version: 3.0.3 + resolution: "prettier@npm:3.0.3" + bin: + prettier: bin/prettier.cjs + checksum: e10b9af02b281f6c617362ebd2571b1d7fc9fb8a3bd17e371754428cda992e5e8d8b7a046e8f7d3e2da1dcd21aa001e2e3c797402ebb6111b5cd19609dd228e0 + languageName: node + linkType: hard + "pretty-bytes@npm:^5.3.0, pretty-bytes@npm:^5.4.1": version: 5.6.0 resolution: "pretty-bytes@npm:5.6.0" @@ -21572,6 +22724,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": ^29.6.3 + ansi-styles: ^5.0.0 + react-is: ^18.0.0 + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 + languageName: node + linkType: hard + "pretty-hrtime@npm:^1.0.3": version: 1.0.3 resolution: "pretty-hrtime@npm:1.0.3" @@ -21600,7 +22763,7 @@ __metadata: languageName: node linkType: hard -"progress@npm:^2.0.0, progress@npm:^2.0.1": +"progress@npm:^2.0.1": version: 2.0.3 resolution: "progress@npm:2.0.3" checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7 @@ -22526,6 +23689,20 @@ __metadata: languageName: node linkType: hard +"reflect.getprototypeof@npm:^1.0.4": + version: 1.0.4 + resolution: "reflect.getprototypeof@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 + globalthis: ^1.0.3 + which-builtin-type: ^1.1.3 + checksum: 16e2361988dbdd23274b53fb2b1b9cefeab876c3941a2543b4cadac6f989e3db3957b07a44aac46cfceb3e06e2871785ec2aac992d824f76292f3b5ee87f66f2 + languageName: node + linkType: hard + "reflect.ownkeys@npm:^0.2.0": version: 0.2.0 resolution: "reflect.ownkeys@npm:0.2.0" @@ -22600,10 +23777,14 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.2.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 +"regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 languageName: node linkType: hard @@ -23270,6 +24451,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.0.1": + version: 1.0.1 + resolution: "safe-array-concat@npm:1.0.1" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: 001ecf1d8af398251cbfabaf30ed66e3855127fbceee178179524b24160b49d15442f94ed6c0db0b2e796da76bb05b73bf3cc241490ec9c2b741b41d33058581 + languageName: node + linkType: hard + "safe-buffer@npm:5.1.1": version: 5.1.1 resolution: "safe-buffer@npm:5.1.1" @@ -23473,23 +24666,23 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.x, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: ^6.0.0 +"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" bin: semver: bin/semver.js - checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" +"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 languageName: node linkType: hard @@ -23590,6 +24783,17 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 + languageName: node + linkType: hard + "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -24266,6 +25470,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trim@npm:^1.2.8": + version: 1.2.8 + resolution: "string.prototype.trim@npm:1.2.8" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimend@npm:1.0.6" @@ -24277,6 +25492,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimend@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimend@npm:1.0.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c + languageName: node + linkType: hard + "string.prototype.trimstart@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimstart@npm:1.0.6" @@ -24288,6 +25514,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimstart@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimstart@npm:1.0.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -24386,7 +25623,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -25097,24 +26334,24 @@ __metadata: languageName: node linkType: hard -"ts-jest@npm:^28.0.3": - version: 28.0.8 - resolution: "ts-jest@npm:28.0.8" +"ts-jest@npm:^29.1.1": + version: 29.1.1 + resolution: "ts-jest@npm:29.1.1" dependencies: bs-logger: 0.x fast-json-stable-stringify: 2.x - jest-util: ^28.0.0 - json5: ^2.2.1 + jest-util: ^29.0.0 + json5: ^2.2.3 lodash.memoize: 4.x make-error: 1.x - semver: 7.x + semver: ^7.5.3 yargs-parser: ^21.0.1 peerDependencies: "@babel/core": ">=7.0.0-beta.0 <8" - "@jest/types": ^28.0.0 - babel-jest: ^28.0.0 - jest: ^28.0.0 - typescript: ">=4.3" + "@jest/types": ^29.0.0 + babel-jest: ^29.0.0 + jest: ^29.0.0 + typescript: ">=4.3 <6" peerDependenciesMeta: "@babel/core": optional: true @@ -25126,7 +26363,7 @@ __metadata: optional: true bin: ts-jest: cli.js - checksum: c72e9292709e77ce47ac7813cb24feaa9d01dc983598d29a821f224b5cc190dc7d67e17379cef089095404c00b9d582ee91c727916f9ec289cb1b723df408ae3 + checksum: a8c9e284ed4f819526749f6e4dc6421ec666f20ab44d31b0f02b4ed979975f7580b18aea4813172d43e39b29464a71899f8893dd29b06b4a351a3af8ba47b402 languageName: node linkType: hard @@ -25978,13 +27215,6 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache@npm:^2.0.3": - version: 2.3.0 - resolution: "v8-compile-cache@npm:2.3.0" - checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e - languageName: node - linkType: hard - "v8-to-istanbul@npm:^8.1.0": version: 8.1.1 resolution: "v8-to-istanbul@npm:8.1.1" @@ -26529,6 +27759,26 @@ __metadata: languageName: node linkType: hard +"which-builtin-type@npm:^1.1.3": + version: 1.1.3 + resolution: "which-builtin-type@npm:1.1.3" + dependencies: + function.prototype.name: ^1.1.5 + has-tostringtag: ^1.0.0 + is-async-function: ^2.0.0 + is-date-object: ^1.0.5 + is-finalizationregistry: ^1.0.2 + is-generator-function: ^1.0.10 + is-regex: ^1.1.4 + is-weakref: ^1.0.2 + isarray: ^2.0.5 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.9 + checksum: 43730f7d8660ff9e33d1d3f9f9451c4784265ee7bf222babc35e61674a11a08e1c2925019d6c03154fcaaca4541df43abe35d2720843b9b4cbcebdcc31408f36 + languageName: node + linkType: hard + "which-collection@npm:^1.0.1": version: 1.0.1 resolution: "which-collection@npm:1.0.1"