diff --git a/package.json b/package.json index 911f0a334..93f04f584 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "husky": "^7.0.4", "lint-staged": "^12.3.7", "lockfile": "^1.0.4", + "npkill": "^0.12.2", "pino-pretty": "^9.1.1", "prettier": "^2.5.1", "ts-node": "^10.9.1", diff --git a/packages/frontend-2/lib/common/generated/gql/graphql.ts b/packages/frontend-2/lib/common/generated/gql/graphql.ts index 3468bbbbb..7aca92746 100644 --- a/packages/frontend-2/lib/common/generated/gql/graphql.ts +++ b/packages/frontend-2/lib/common/generated/gql/graphql.ts @@ -2595,7 +2595,7 @@ export type Query = { /** Look up server users */ users: UserSearchResultCollection; /** Look up server users with a collection of emails */ - usersByEmail: UserSearchResultCollection; + usersByEmail: Array>; /** Validates the slug, to make sure it contains only valid characters and its not taken. */ validateWorkspaceSlug: Scalars['Boolean']['output']; workspace: Workspace; diff --git a/packages/frontend-2/lib/common/helpers/graphql.ts b/packages/frontend-2/lib/common/helpers/graphql.ts index 18ae0d9e3..bbbb09ee8 100644 --- a/packages/frontend-2/lib/common/helpers/graphql.ts +++ b/packages/frontend-2/lib/common/helpers/graphql.ts @@ -9,10 +9,11 @@ import type { TypedDocumentNode, ServerError, ServerParseError, - ApolloCache + ApolloCache, + Unmasked } from '@apollo/client/core' import { GraphQLError } from 'graphql' -import type { DocumentNode } from 'graphql' +import type { DocumentNode, GraphQLFormattedError } from 'graphql' import { flatten, has, @@ -27,7 +28,7 @@ import { } from 'lodash-es' import type { Modifier, ModifierDetails, Reference } from '@apollo/client/cache' import type { Get, PartialDeep, Paths, ReadonlyDeep, Tagged } from 'type-fest' -import type { GraphQLErrors, NetworkError } from '@apollo/client/errors' +import type { NetworkError } from '@apollo/client/errors' import { nanoid } from 'nanoid' import { StackTrace } from '~~/lib/common/helpers/debugging' import dayjs from 'dayjs' @@ -117,7 +118,7 @@ export function isInvalidAuth(error: ApolloError | NetworkError) { export function convertThrowIntoFetchResult( err: unknown ): FetchResult & { apolloError?: ApolloError; isInvalidAuth: boolean } { - let gqlErrors: readonly GraphQLError[] + let gqlErrors: readonly GraphQLFormattedError[] let apolloError: Optional = undefined if (err instanceof ApolloError) { gqlErrors = err.graphQLErrors @@ -154,7 +155,7 @@ export function convertThrowIntoFetchResult( * Get first error message from a GQL errors array */ export function getFirstErrorMessage( - errs: readonly GraphQLError[] | undefined | null, + errs: readonly GraphQLError[] | readonly GraphQLFormattedError[] | undefined | null, fallbackMessage = 'An unexpected issue occurred' ): string { return errs?.[0]?.message || fallbackMessage @@ -176,7 +177,7 @@ export function updateCacheByFilter( * mutate anything being passed into this function! E.g. if you want to mutate arrays, * create new arrays through slice()/filter() instead */ - updater: (data: TData) => TData | undefined, + updater: (data: Unmasked) => Unmasked | undefined, options: Partial<{ /** * Whether to suppress errors that occur when the fragment being queried @@ -203,7 +204,7 @@ export function updateCacheByFilter( ) } - const readData = (): TData | null => { + const readData = (): Unmasked | null => { if (fragment) { return cache.readFragment(fragment) } else if (query) { @@ -213,7 +214,7 @@ export function updateCacheByFilter( } } - const writeData = (data: TData): boolean => { + const writeData = (data: Unmasked): boolean => { if (fragment) { cache.writeFragment({ ...fragment, data, overwrite }) return true @@ -486,7 +487,9 @@ export function evictObjectFields< ) } -export const resolveGenericStatusCode = (errors: GraphQLErrors) => { +export const resolveGenericStatusCode = ( + errors: readonly GraphQLError[] | readonly GraphQLFormattedError[] +) => { if (errors.some((e) => e.extensions?.code === 'FORBIDDEN')) return 403 if ( errors.some((e) => @@ -508,7 +511,10 @@ export const resolveGenericStatusCode = (errors: GraphQLErrors) => { return 500 } -export const errorFailedAtPathSegment = (error: GraphQLError, segment: string) => { +export const errorFailedAtPathSegment = ( + error: GraphQLError | GraphQLFormattedError, + segment: string +) => { const path = error.path || [] return path[path.length - 1] === segment } diff --git a/packages/frontend-2/lib/viewer/composables/setup/postSetup.ts b/packages/frontend-2/lib/viewer/composables/setup/postSetup.ts index 26ff1f704..2c042355a 100644 --- a/packages/frontend-2/lib/viewer/composables/setup/postSetup.ts +++ b/packages/frontend-2/lib/viewer/composables/setup/postSetup.ts @@ -18,7 +18,6 @@ import { } from '@speckle/viewer' import { useAuthCookie } from '~~/lib/auth/composables/auth' import type { - Comment, Project, ProjectCommentThreadsArgs, ViewerResourceItem @@ -40,10 +39,8 @@ import { useViewerCommentUpdateTracking } from '~~/lib/viewer/composables/commen import { getCacheId, getObjectReference, - isReference, modifyObjectFields } from '~~/lib/common/helpers/graphql' -import type { ModifyFnCacheData } from '~~/lib/common/helpers/graphql' import { useViewerOpenedThreadUpdateEmitter, useViewerThreadTracking @@ -60,8 +57,6 @@ import { } from '~~/lib/viewer/composables/ui' import { onKeyStroke, watchTriggerable } from '@vueuse/core' import { setupDebugMode } from '~~/lib/viewer/composables/setup/dev' -import type { Reference } from '@apollo/client' -import type { Modifier } from '@apollo/client/cache' import { useEmbed } from '~/lib/viewer/composables/setup/embed' import { useMixpanel } from '~~/lib/core/composables/mp' @@ -224,7 +219,7 @@ function useViewerSubscriptionEventTracker() { (event, cache) => { const isArchived = event.type === ProjectCommentsUpdatedMessageType.Archived const isNew = event.type === ProjectCommentsUpdatedMessageType.Created - const model = event.comment + const comment = event.comment if (isArchived) { // Mark as archived @@ -253,30 +248,21 @@ function useViewerSubscriptionEventTracker() { } } ) - } else if (isNew && model) { - const parentId = model.parent?.id + } else if (isNew && comment) { + const parentId = comment.parent?.id // Add reply to parent if (parentId) { - cache.modify({ - id: getCacheId('Comment', parentId), - fields: { - replies: (( - oldValue: ModifyFnCacheData | Reference - ) => { - if (isReference(oldValue)) return oldValue - - const newValue: typeof oldValue = { - totalCount: (oldValue?.totalCount || 0) + 1, - items: [ - getObjectReference('Comment', model.id), - ...(oldValue?.items || []) - ] - } - return newValue - }) as Modifier | Reference> - } - }) + modifyObjectField( + cache, + getCacheId('Comment', parentId), + 'replies', + ({ helpers: { createUpdatedValue, ref } }) => + createUpdatedValue(({ update }) => { + update('totalCount', (totalCount) => totalCount + 1) + update('items', (items) => [ref('Comment', comment.id), ...items]) + }) + ) } else { // Add comment thread modifyObjectFields( @@ -286,7 +272,7 @@ function useViewerSubscriptionEventTracker() { if (fieldName !== 'commentThreads') return const newItems = [ - getObjectReference('Comment', model.id), + getObjectReference('Comment', comment.id), ...(data.items || []) ] return { diff --git a/packages/frontend-2/lib/workspaces/composables/management.ts b/packages/frontend-2/lib/workspaces/composables/management.ts index 581da3216..4d38036ba 100644 --- a/packages/frontend-2/lib/workspaces/composables/management.ts +++ b/packages/frontend-2/lib/workspaces/composables/management.ts @@ -31,7 +31,7 @@ import { workspaceUpdateRoleMutation } from '~/lib/workspaces/graphql/mutations' import { isFunction } from 'lodash-es' -import type { GraphQLError } from 'graphql' +import type { GraphQLError, GraphQLFormattedError } from 'graphql' import { onWorkspaceUpdatedSubscription } from '~/lib/workspaces/graphql/subscriptions' import { useLock } from '~/lib/common/composables/singleton' import type { Get } from 'type-fest' @@ -131,7 +131,10 @@ export const useProcessWorkspaceInvite = () => { callback: () => MaybeAsync preventErrorToasts?: | boolean - | ((errors: GraphQLError[], errMsg: string) => boolean) + | (( + errors: GraphQLError[] | GraphQLFormattedError[], + errMsg: string + ) => boolean) }> ) => { if (!isWorkspacesEnabled.value) return @@ -253,7 +256,9 @@ export const useWorkspaceInviteManager = < */ preventRedirect: boolean route: RouteLocationNormalized - preventErrorToasts: boolean | ((errors: GraphQLError[], errMsg: string) => boolean) + preventErrorToasts: + | boolean + | ((errors: GraphQLError[] | GraphQLFormattedError[], errMsg: string) => boolean) }> ) => { const isWorkspacesEnabled = useIsWorkspacesEnabled() diff --git a/packages/frontend-2/middleware/requireValidAutomation.ts b/packages/frontend-2/middleware/requireValidAutomation.ts index 15e6d38e4..ec3beb931 100644 --- a/packages/frontend-2/middleware/requireValidAutomation.ts +++ b/packages/frontend-2/middleware/requireValidAutomation.ts @@ -35,12 +35,12 @@ export default defineNuxtRouteMiddleware(async (to) => { if (data?.project?.automations) return - const isForbidden = (errors || []).find((e) => e.extensions['code'] === 'FORBIDDEN') + const isForbidden = (errors || []).find((e) => e.extensions?.['code'] === 'FORBIDDEN') const isNotFoundProject = (errors || []).find( - (e) => e.extensions['code'] === 'STREAM_NOT_FOUND' + (e) => e.extensions?.['code'] === 'STREAM_NOT_FOUND' ) const isNotFoundAutomation = (errors || []).find( - (e) => e.extensions['code'] === 'AUTOMATION_NOT_FOUND' + (e) => e.extensions?.['code'] === 'AUTOMATION_NOT_FOUND' ) if (isForbidden) { return abortNavigation( diff --git a/packages/frontend-2/middleware/requireValidFunction.ts b/packages/frontend-2/middleware/requireValidFunction.ts index 4fa159bf4..3675694ec 100644 --- a/packages/frontend-2/middleware/requireValidFunction.ts +++ b/packages/frontend-2/middleware/requireValidFunction.ts @@ -33,7 +33,7 @@ export default defineNuxtRouteMiddleware(async (to) => { if (data?.automateFunction?.id) return const isNotFound = (errors || []).find( - (e) => e.extensions['code'] === 'FUNCTION_NOT_FOUND' + (e) => e.extensions?.['code'] === 'FUNCTION_NOT_FOUND' ) if (isNotFound) { return abortNavigation( diff --git a/packages/frontend-2/middleware/requireValidModel.ts b/packages/frontend-2/middleware/requireValidModel.ts index da54b718f..f747d0aa9 100644 --- a/packages/frontend-2/middleware/requireValidModel.ts +++ b/packages/frontend-2/middleware/requireValidModel.ts @@ -26,12 +26,12 @@ export default defineNuxtRouteMiddleware(async (to) => { // If project succesfully resolved, move on if (data?.project?.model?.id) return - const isForbidden = (errors || []).find((e) => e.extensions['code'] === 'FORBIDDEN') + const isForbidden = (errors || []).find((e) => e.extensions?.['code'] === 'FORBIDDEN') const isProjectNotFound = (errors || []).find( - (e) => e.extensions['code'] === 'STREAM_NOT_FOUND' + (e) => e.extensions?.['code'] === 'STREAM_NOT_FOUND' ) const isModelNotFound = (errors || []).find( - (e) => e.extensions['code'] === 'BRANCH_NOT_FOUND' + (e) => e.extensions?.['code'] === 'BRANCH_NOT_FOUND' ) // Check if project exists and model is valid diff --git a/packages/frontend-2/middleware/requireValidWorkspace.ts b/packages/frontend-2/middleware/requireValidWorkspace.ts index e43de0e9e..85ac9760e 100644 --- a/packages/frontend-2/middleware/requireValidWorkspace.ts +++ b/packages/frontend-2/middleware/requireValidWorkspace.ts @@ -26,9 +26,9 @@ export default defineNuxtRouteMiddleware(async (to) => { if (data?.workspaceBySlug.id) return - const isForbidden = (errors || []).find((e) => e.extensions['code'] === 'FORBIDDEN') + const isForbidden = (errors || []).find((e) => e.extensions?.['code'] === 'FORBIDDEN') const isNotFound = (errors || []).find( - (e) => e.extensions['code'] === 'WORKSPACE_NOT_FOUND_ERROR' + (e) => e.extensions?.['code'] === 'WORKSPACE_NOT_FOUND_ERROR' ) if (isForbidden) { return abortNavigation( @@ -58,7 +58,7 @@ export default defineNuxtRouteMiddleware(async (to) => { const firstErrorWithCode = errors.find((e) => e.extensions?.['code']) if (firstErrorWithCode) { - const errorCode = firstErrorWithCode.extensions['code'] + const errorCode = firstErrorWithCode.extensions?.['code'] return abortNavigation( createError({ statusCode: 401, diff --git a/packages/frontend-2/package.json b/packages/frontend-2/package.json index 06b3e911d..c5cf57918 100644 --- a/packages/frontend-2/package.json +++ b/packages/frontend-2/package.json @@ -23,7 +23,7 @@ "eslint:inspect": "eslint-config-inspector" }, "dependencies": { - "@apollo/client": "^3.9.6", + "@apollo/client": "^3.12.4", "@artmizu/nuxt-prometheus": "^2.2.1", "@datadog/browser-rum": "^5.11.0", "@headlessui/vue": "^1.7.13", @@ -53,7 +53,7 @@ "@tiptap/suggestion": "2.10.3", "@tiptap/vue-3": "2.10.3", "@tryghost/content-api": "^1.11.21", - "@vue/apollo-composable": "4.0.2", + "@vue/apollo-composable": "npm:@speckle/apollo-composable@4.2.1-patch.1", "@vue/apollo-ssr": "4.0.0", "@vueuse/core": "^10.9.0", "apollo-upload-client": "^18.0.1", @@ -77,7 +77,7 @@ "tweetnacl-sealedbox-js": "^1.2.0", "tweetnacl-util": "^0.15.1", "ua-parser-js": "^1.0.38", - "vee-validate": "^4.7.0", + "vee-validate": "4.7.0", "vue-advanced-cropper": "^2.8.8", "vue-tippy": "^6.0.0", "ws": "^8.17.1" diff --git a/packages/ui-components/package.json b/packages/ui-components/package.json index dec96d271..ed8b3efdc 100644 --- a/packages/ui-components/package.json +++ b/packages/ui-components/package.json @@ -45,6 +45,7 @@ } }, "peerDependencies": { + "vee-validate": "^4.7.0", "vue": "^3.3.0" }, "dependencies": { @@ -57,7 +58,6 @@ "lodash-es": "^4.0.0", "nanoid": "^3.0.0", "v3-infinite-loading": "^1.2.2", - "vee-validate": "^4.7.0", "vue-advanced-cropper": "^2.8.8", "vue-tippy": "^6.0.0" }, @@ -97,6 +97,7 @@ "type-fest": "^2.13.1", "typescript": "^5.0.4", "unplugin-vue-macros": "^2.7.0", + "vee-validate": "4.7.0", "vite": "^4.5.2", "vite-plugin-dts": "^3.6.3", "vue": "^3.3.8", diff --git a/yarn.lock b/yarn.lock index 002fa8234..092d9050d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,9 +80,9 @@ __metadata: languageName: node linkType: hard -"@apollo/client@npm:^3.6.6, @apollo/client@npm:^3.7.0, @apollo/client@npm:^3.7.14, @apollo/client@npm:^3.8.0, @apollo/client@npm:^3.9.6": - version: 3.9.7 - resolution: "@apollo/client@npm:3.9.7" +"@apollo/client@npm:^3.12.4, @apollo/client@npm:^3.6.6, @apollo/client@npm:^3.7.0, @apollo/client@npm:^3.7.14, @apollo/client@npm:^3.8.0": + version: 3.12.4 + resolution: "@apollo/client@npm:3.12.4" dependencies: "@graphql-typed-document-node/core": "npm:^3.1.1" "@wry/caches": "npm:^1.0.0" @@ -92,7 +92,7 @@ __metadata: hoist-non-react-statics: "npm:^3.3.2" optimism: "npm:^0.18.0" prop-types: "npm:^15.7.2" - rehackt: "npm:0.0.6" + rehackt: "npm:^0.1.0" response-iterator: "npm:^0.2.6" symbol-observable: "npm:^4.0.0" ts-invariant: "npm:^0.10.3" @@ -101,8 +101,8 @@ __metadata: peerDependencies: graphql: ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: graphql-ws: @@ -113,7 +113,7 @@ __metadata: optional: true subscriptions-transport-ws: optional: true - checksum: 10/d11ccdc5fc69e003c0ad2c6aa9c263823abce6c164bda726cfacbed0f94dfce366aa6bed0abc8c747420b24c3248f4a561a6007350d48373c62728bdbf3bdbcb + checksum: 10/9659ccf03ab5d6708cf191a1bd09c33ab5f958a8d66e783f81ccc899448b362a51cecf7d62c0ff5b852e60a340238e6903b3c96dcb5cf68dfb8a438ee6cd24bb languageName: node linkType: hard @@ -15582,7 +15582,7 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:^4.0.0": +"@sindresorhus/is@npm:^4.0.0, @sindresorhus/is@npm:^4.6.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" checksum: 10/e7f36ed72abfcd5e0355f7423a72918b9748bb1ef370a59f3e5ad8d40b728b85d63b272f65f63eec1faf417cda89dcb0aeebe94015647b6054659c1442fe5ce0 @@ -16837,7 +16837,7 @@ __metadata: version: 0.0.0-use.local resolution: "@speckle/frontend-2@workspace:packages/frontend-2" dependencies: - "@apollo/client": "npm:^3.9.6" + "@apollo/client": "npm:^3.12.4" "@artmizu/nuxt-prometheus": "npm:^2.2.1" "@babel/core": "npm:^7.19.6" "@babel/preset-env": "npm:^7.19.4" @@ -16902,7 +16902,7 @@ __metadata: "@types/ua-parser-js": "npm:^0.7.39" "@typescript-eslint/eslint-plugin": "npm:^7.12.0" "@typescript-eslint/parser": "npm:^7.12.0" - "@vue/apollo-composable": "npm:4.0.2" + "@vue/apollo-composable": "npm:@speckle/apollo-composable@4.2.1-patch.1" "@vue/apollo-ssr": "npm:4.0.0" "@vueuse/core": "npm:^10.9.0" apollo-upload-client: "npm:^18.0.1" @@ -16950,7 +16950,7 @@ __metadata: type-fest: "npm:^4.24.0" typescript: "npm:^4.8.3" ua-parser-js: "npm:^1.0.38" - vee-validate: "npm:^4.7.0" + vee-validate: "npm:4.7.0" vue-advanced-cropper: "npm:^2.8.8" vue-tippy: "npm:^6.0.0" vue-tsc: "npm:2.0.10" @@ -17523,7 +17523,7 @@ __metadata: typescript: "npm:^5.0.4" unplugin-vue-macros: "npm:^2.7.0" v3-infinite-loading: "npm:^1.2.2" - vee-validate: "npm:^4.7.0" + vee-validate: "npm:4.7.0" vite: "npm:^4.5.2" vite-plugin-dts: "npm:^3.6.3" vue: "npm:^3.3.8" @@ -17532,6 +17532,7 @@ __metadata: vue-tsc: "npm:^1.8.22" wait-on: "npm:^6.0.1" peerDependencies: + vee-validate: ^4.7.0 vue: ^3.3.0 languageName: unknown linkType: soft @@ -22422,9 +22423,9 @@ __metadata: languageName: node linkType: hard -"@vue/apollo-composable@npm:4.0.2": - version: 4.0.2 - resolution: "@vue/apollo-composable@npm:4.0.2" +"@vue/apollo-composable@npm:@speckle/apollo-composable@4.2.1-patch.1": + version: 4.2.1-patch.1 + resolution: "@speckle/apollo-composable@npm:4.2.1-patch.1" dependencies: throttle-debounce: "npm:^5.0.0" ts-essentials: "npm:^9.4.0" @@ -22437,17 +22438,17 @@ __metadata: peerDependenciesMeta: "@vue/composition-api": optional: true - checksum: 10/fc07bf29876d9852208b83c50b18771deaa60ddc7d4fbe0cdb2026dacf3bfafe098e8a6c7bb10cc99786ee3479dcfa2497406fbd505d142d45302590a8c12666 + checksum: 10/f8816269d1e0294b817af863417a49bce353e0324a7c984f9c71a057d4b3415e1708ac6bf41907951a7fe467cf0a1dfacfec9e78db9985ba7f2773cbba0a2e38 languageName: node linkType: hard -"@vue/apollo-composable@npm:^4.0.0-alpha.19": - version: 4.0.0-beta.1 - resolution: "@vue/apollo-composable@npm:4.0.0-beta.1" +"@vue/apollo-composable@npm:^4.0.0-alpha.19, @vue/apollo-composable@npm:^4.0.0-beta.5": + version: 4.2.1 + resolution: "@vue/apollo-composable@npm:4.2.1" dependencies: - throttle-debounce: "npm:^3.0.1" - ts-essentials: "npm:^9.1.2" - vue-demi: "npm:^0.13.1" + throttle-debounce: "npm:^5.0.0" + ts-essentials: "npm:^9.4.0" + vue-demi: "npm:^0.14.6" peerDependencies: "@apollo/client": ^3.4.13 "@vue/composition-api": ^1.0.0 @@ -22456,26 +22457,7 @@ __metadata: peerDependenciesMeta: "@vue/composition-api": optional: true - checksum: 10/01d0bbfc8141cd30f9bad76b056de8a79f94853b3659f2e708ce7bc7a0a97e84ccc26aad65b6717ebbac44b713f954e2d0f8f0a0e86f0ecddbe74ba039fa6ab7 - languageName: node - linkType: hard - -"@vue/apollo-composable@npm:^4.0.0-beta.5": - version: 4.0.0-beta.5 - resolution: "@vue/apollo-composable@npm:4.0.0-beta.5" - dependencies: - throttle-debounce: "npm:^3.0.1" - ts-essentials: "npm:^9.1.2" - vue-demi: "npm:^0.13.1" - peerDependencies: - "@apollo/client": ^3.4.13 - "@vue/composition-api": ^1.0.0 - graphql: ">=15" - vue: ^2.6.0 || ^3.1.0 - peerDependenciesMeta: - "@vue/composition-api": - optional: true - checksum: 10/5dc1e7ff50cddb9c52077aaa589776e6a8646a3eef74f7adede207fc5f24d42c57d9ed6fbbdf3bb593acab3f25fc2edc797f79ac397dad03e95d6ee62c99deb2 + checksum: 10/008e0ba6d549b2e1f2f7c85f42807120a9ffe8775b70ac3fd451fcfdc1c9fa6c9e37539954fddc931e12dd61428b1c20815534a274794b99f7bf3ccba7a5f80e languageName: node linkType: hard @@ -22928,10 +22910,10 @@ __metadata: languageName: node linkType: hard -"@vue/devtools-api@npm:^6.1.4": - version: 6.4.4 - resolution: "@vue/devtools-api@npm:6.4.4" - checksum: 10/086fcc7a029601090fbdf89b7b6c8599b16656654e2af0d5612e42f439d0cde0ca211e9f7eee940290e38e3c3a144cbe8298af0bd46babf4873d1d79a2ddf64c +"@vue/devtools-api@npm:^6.1.4, @vue/devtools-api@npm:^6.6.4": + version: 6.6.4 + resolution: "@vue/devtools-api@npm:6.6.4" + checksum: 10/0fca4912b6ae0185b9375f5d113d417984077db0681c74cf39eb8522eb82c27f662a72e1ae3e0d79e105fdd0a99a7cbd65ed111465d238f60cce10922e02a812 languageName: node linkType: hard @@ -22942,13 +22924,6 @@ __metadata: languageName: node linkType: hard -"@vue/devtools-api@npm:^6.6.4": - version: 6.6.4 - resolution: "@vue/devtools-api@npm:6.6.4" - checksum: 10/0fca4912b6ae0185b9375f5d113d417984077db0681c74cf39eb8522eb82c27f662a72e1ae3e0d79e105fdd0a99a7cbd65ed111465d238f60cce10922e02a812 - languageName: node - linkType: hard - "@vue/devtools-core@npm:7.6.8": version: 7.6.8 resolution: "@vue/devtools-core@npm:7.6.8" @@ -24219,6 +24194,13 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^6.2.1": + version: 6.2.1 + resolution: "ansi-escapes@npm:6.2.1" + checksum: 10/3b064937dc8a0645ed8094bc8b09483ee718f3aa3139746280e6c2ea80e28c0a3ce66973d0f33e88e60021abbf67e5f877deabfc810e75edf8a19dfa128850be + languageName: node + linkType: hard + "ansi-html-community@npm:^0.0.8": version: 0.0.8 resolution: "ansi-html-community@npm:0.0.8" @@ -27170,6 +27152,13 @@ __metadata: languageName: node linkType: hard +"colors@npm:1.4.0": + version: 1.4.0 + resolution: "colors@npm:1.4.0" + checksum: 10/90b2d5465159813a3983ea72ca8cff75f784824ad70f2cc2b32c233e95bcfbcda101ebc6d6766bc50f57263792629bfb4f1f8a4dfbd1d240f229fc7f69b785fc + languageName: node + linkType: hard + "colors@npm:~1.2.1": version: 1.2.5 resolution: "colors@npm:1.2.5" @@ -30034,6 +30023,13 @@ __metadata: languageName: node linkType: hard +"emojilib@npm:^2.4.0": + version: 2.4.0 + resolution: "emojilib@npm:2.4.0" + checksum: 10/bef767eca49acaa881388d91bee6936ea57ae367d603d5227ff0a9da3e2d1e774a61c447e5f2f4901797d023c4b5239bc208285b6172a880d3655024a0f44980 + languageName: node + linkType: hard + "emojis-list@npm:^3.0.0": version: 3.0.0 resolution: "emojis-list@npm:3.0.0" @@ -32713,6 +32709,13 @@ __metadata: languageName: node linkType: hard +"gar@npm:^1.0.4": + version: 1.0.4 + resolution: "gar@npm:1.0.4" + checksum: 10/6b1010b5c17056526298734bfa08716f111cd023394dbe32496841e2f7b0dfe9e742b8ddb56103c0867f2ae80f5f069262916e5398ac982467be4da240ba7bb9 + languageName: node + linkType: hard + "gauge@npm:^3.0.0": version: 3.0.2 resolution: "gauge@npm:3.0.2" @@ -32812,6 +32815,17 @@ __metadata: languageName: node linkType: hard +"get-folder-size@npm:^4.0.0": + version: 4.0.0 + resolution: "get-folder-size@npm:4.0.0" + dependencies: + gar: "npm:^1.0.4" + bin: + get-folder-size: bin/get-folder-size.js + checksum: 10/424d0310dd3bf8f9f38dd686cca4201e162ce4569831a71de9cb018667e238c243bfbe6560c31f5898a4fe1783e8b7ae4bdc7ce151b317ea20c8ea85f284e7a2 + languageName: node + linkType: hard + "get-func-name@npm:^2.0.0, get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": version: 2.0.2 resolution: "get-func-name@npm:2.0.2" @@ -41091,6 +41105,18 @@ __metadata: languageName: node linkType: hard +"node-emoji@npm:^2.1.3": + version: 2.2.0 + resolution: "node-emoji@npm:2.2.0" + dependencies: + "@sindresorhus/is": "npm:^4.6.0" + char-regex: "npm:^1.0.2" + emojilib: "npm:^2.4.0" + skin-tone: "npm:^2.0.0" + checksum: 10/2548668f5cc9f781c94dc39971a630b2887111e0970c29fc523e924819d1b39b53a2694a4d1046861adf538c4462d06ee0269c48717ccad30336a918d9a911d5 + languageName: node + linkType: hard + "node-fetch-native@npm:^1.0.1": version: 1.0.1 resolution: "node-fetch-native@npm:1.0.1" @@ -41456,6 +41482,22 @@ __metadata: languageName: node linkType: hard +"npkill@npm:^0.12.2": + version: 0.12.2 + resolution: "npkill@npm:0.12.2" + dependencies: + ansi-escapes: "npm:^6.2.1" + colors: "npm:1.4.0" + get-folder-size: "npm:^4.0.0" + node-emoji: "npm:^2.1.3" + open-file-explorer: "npm:^1.0.2" + rxjs: "npm:^7.8.1" + bin: + npkill: lib/index.js + checksum: 10/17a24fd5407adc1f4d43d34b525eae44657064f89f89283059a60cf9e528bcbf2f76fbd302bb4a6583abbda4f370a4e8cfe4cf2a4ca140fbf377332b01651fee + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -42073,6 +42115,13 @@ __metadata: languageName: node linkType: hard +"open-file-explorer@npm:^1.0.2": + version: 1.0.2 + resolution: "open-file-explorer@npm:1.0.2" + checksum: 10/a6e4e5944f12e3d5c6e883e3a9731a00687f9ca98821234a46f5f3e980f4f74748eedf4dcdaacfd02823f39ea4ab94fd9dddda1691f6e25c7c2098c687d3cd70 + languageName: node + linkType: hard + "open@npm:^10.1.0": version: 10.1.0 resolution: "open@npm:10.1.0" @@ -46438,9 +46487,9 @@ __metadata: languageName: node linkType: hard -"rehackt@npm:0.0.6": - version: 0.0.6 - resolution: "rehackt@npm:0.0.6" +"rehackt@npm:^0.1.0": + version: 0.1.0 + resolution: "rehackt@npm:0.1.0" peerDependencies: "@types/react": "*" react: "*" @@ -46449,7 +46498,7 @@ __metadata: optional: true react: optional: true - checksum: 10/3897c93270836159406529e0fa983bf4a11c07d2efc5c8f6bdfd7f6821d3b84a30d911c3f3b9c689948739e6955c5835c8dd9d91579150bec5092f356c0d91df + checksum: 10/c81adead82c165dffc574cbf9e1de3605522782a56b48df48b68d53d45c4d8c9253df3790109335bf97072424e54ad2423bb9544ca3a985fa91995dda43452fc languageName: node linkType: hard @@ -47349,6 +47398,7 @@ __metadata: husky: "npm:^7.0.4" lint-staged: "npm:^12.3.7" lockfile: "npm:^1.0.4" + npkill: "npm:^0.12.2" pino-pretty: "npm:^9.1.1" prettier: "npm:^2.5.1" ts-node: "npm:^10.9.1" @@ -48157,6 +48207,15 @@ __metadata: languageName: node linkType: hard +"skin-tone@npm:^2.0.0": + version: 2.0.0 + resolution: "skin-tone@npm:2.0.0" + dependencies: + unicode-emoji-modifier-base: "npm:^1.0.0" + checksum: 10/19de157586b8019cacc55eb25d9d640f00fc02415761f3e41a4527142970fd4e7f6af0333bc90e879858766c20a976107bb386ffd4c812289c01d51f2c8d182c + languageName: node + linkType: hard + "slash@npm:^2.0.0": version: 2.0.0 resolution: "slash@npm:2.0.0" @@ -50480,15 +50539,6 @@ __metadata: languageName: node linkType: hard -"ts-essentials@npm:^9.1.2": - version: 9.2.0 - resolution: "ts-essentials@npm:9.2.0" - peerDependencies: - typescript: ">=4.1.0" - checksum: 10/d8a661841c4a04c4b180ee63734541e5051d61d905cea3246ea35505e88a7b220ad583bba1095e4845a2aaf5570bf1a10c5b4580185f00c169e2943a3bea5f54 - languageName: node - linkType: hard - "ts-essentials@npm:^9.4.0": version: 9.4.0 resolution: "ts-essentials@npm:9.4.0" @@ -51214,6 +51264,13 @@ __metadata: languageName: node linkType: hard +"unicode-emoji-modifier-base@npm:^1.0.0": + version: 1.0.0 + resolution: "unicode-emoji-modifier-base@npm:1.0.0" + checksum: 10/6e1521d35fa69493207eb8b41f8edb95985d8b3faf07c01d820a1830b5e8403e20002563e2f84683e8e962a49beccae789f0879356bf92a4ec7a4dd8e2d16fdb + languageName: node + linkType: hard + "unicode-match-property-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-match-property-ecmascript@npm:2.0.0" @@ -52354,7 +52411,7 @@ __metadata: languageName: node linkType: hard -"vee-validate@npm:^4.7.0": +"vee-validate@npm:4.7.0": version: 4.7.0 resolution: "vee-validate@npm:4.7.0" dependencies: @@ -53166,22 +53223,6 @@ __metadata: languageName: node linkType: hard -"vue-demi@npm:^0.13.1": - version: 0.13.5 - resolution: "vue-demi@npm:0.13.5" - peerDependencies: - "@vue/composition-api": ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - "@vue/composition-api": - optional: true - bin: - vue-demi-fix: bin/vue-demi-fix.js - vue-demi-switch: bin/vue-demi-switch.js - checksum: 10/539a85d5a5751002bc86f073eb95613c5bd3bee37675c6dbc120a90595e7cfed40570c13f369566d87bbe2ac50203533844d9d49d2735f0f8cb1eb43a17fb393 - languageName: node - linkType: hard - "vue-demi@npm:^0.14.6": version: 0.14.6 resolution: "vue-demi@npm:0.14.6"