-
-
+
+
-
-
- {{ t("state.loading") }}
-
-
-
-
-
-
-
-
-
- {{ t("workspace.other_workspaces") }}
-
-
-
-
-
-
-
- {{ t("error.something_went_wrong") }}
-
-
diff --git a/packages/hoppscotch-common/src/components/workspace/TestWorkspaceSelector.vue b/packages/hoppscotch-common/src/components/workspace/TestWorkspaceSelector.vue
new file mode 100644
index 000000000..175d1f258
--- /dev/null
+++ b/packages/hoppscotch-common/src/components/workspace/TestWorkspaceSelector.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
diff --git a/packages/hoppscotch-common/src/helpers/adapters/WorkspaceRESTCollectionTreeAdapter.ts b/packages/hoppscotch-common/src/helpers/adapters/WorkspaceRESTCollectionTreeAdapter.ts
new file mode 100644
index 000000000..fbb8cf8aa
--- /dev/null
+++ b/packages/hoppscotch-common/src/helpers/adapters/WorkspaceRESTCollectionTreeAdapter.ts
@@ -0,0 +1,129 @@
+import {
+ ChildrenResult,
+ SmartTreeAdapter,
+} from "@hoppscotch/ui/dist/src/helpers/treeAdapter"
+import { Ref, computed, ref, watchEffect } from "vue"
+import { NewWorkspaceService } from "~/services/new-workspace"
+import { HandleRef } from "~/services/new-workspace/handle"
+import {
+ RESTCollectionViewCollection,
+ RESTCollectionViewRequest,
+} from "~/services/new-workspace/view"
+import { Workspace } from "~/services/new-workspace/workspace"
+import * as E from "fp-ts/Either"
+
+type WorkspaceRESTCollectionListNode =
+ | { type: "collection"; value: RESTCollectionViewCollection }
+ | { type: "request"; value: RESTCollectionViewRequest }
+
+export class WorkspaceRESTCollectionTreeAdapter
+ implements SmartTreeAdapter
+{
+ constructor(
+ private workspaceHandle: HandleRef,
+ private workspaceService: NewWorkspaceService
+ ) {}
+
+ public getChildren(
+ nodeID: string | null
+ ): Ref> {
+ if (this.workspaceHandle.value.type !== "ok") {
+ throw new Error("Cannot issue children with invalid workspace handle")
+ }
+
+ const result = ref>({
+ status: "loading",
+ })
+
+ if (nodeID !== null) {
+ ;(async () => {
+ const collectionHandleResult =
+ await this.workspaceService.getCollectionHandle(
+ this.workspaceHandle,
+ nodeID
+ )
+
+ // TODO: Better error handling
+ if (E.isLeft(collectionHandleResult)) {
+ throw new Error(JSON.stringify(collectionHandleResult.left.error))
+ }
+
+ const collectionHandle = collectionHandleResult.right
+
+ const collectionChildrenResult =
+ await this.workspaceService.getRESTCollectionChildrenView(
+ collectionHandle
+ )
+
+ // TODO: Better error handling
+ if (E.isLeft(collectionChildrenResult)) {
+ throw new Error(JSON.stringify(collectionChildrenResult.left.error))
+ }
+
+ const collectionChildrenViewHandle = collectionChildrenResult.right
+
+ watchEffect(() => {
+ if (collectionChildrenViewHandle.value.type !== "ok") return
+
+ if (collectionChildrenViewHandle.value.data.loading.value) {
+ result.value = {
+ status: "loading",
+ }
+ } else {
+ result.value = {
+ status: "loaded",
+ data: collectionChildrenViewHandle.value.data.content.value.map(
+ (item) => ({
+ id:
+ item.type === "request"
+ ? item.value.requestID
+ : item.value.collectionID,
+
+ data: item,
+ })
+ ),
+ }
+ }
+ })
+ })()
+ } else {
+ ;(async () => {
+ const viewResult =
+ await this.workspaceService.getRESTRootCollectionView(
+ this.workspaceHandle
+ )
+
+ // TODO: Better error handling
+ if (E.isLeft(viewResult)) {
+ throw new Error(JSON.stringify(viewResult.left.error))
+ }
+
+ const viewHandle = viewResult.right
+
+ watchEffect(() => {
+ if (viewHandle.value.type !== "ok") return
+
+ if (viewHandle.value.data.loading.value) {
+ result.value = {
+ status: "loading",
+ }
+ } else {
+ result.value = {
+ status: "loaded",
+ data: viewHandle.value.data.collections.value.map((coll) => ({
+ id: coll.collectionID,
+
+ data: {
+ type: "collection",
+ value: coll,
+ },
+ })),
+ }
+ }
+ })
+ })()
+ }
+
+ return result
+ }
+}
diff --git a/packages/hoppscotch-common/src/helpers/rest/labelColoring.ts b/packages/hoppscotch-common/src/helpers/rest/labelColoring.ts
index a2bbf45a3..092b76dc6 100644
--- a/packages/hoppscotch-common/src/helpers/rest/labelColoring.ts
+++ b/packages/hoppscotch-common/src/helpers/rest/labelColoring.ts
@@ -1,17 +1,13 @@
import { pipe } from "fp-ts/function"
import * as O from "fp-ts/Option"
import * as RR from "fp-ts/ReadonlyRecord"
-import { HoppRESTRequest } from "@hoppscotch/data"
export const REQUEST_METHOD_LABEL_COLORS = {
- get: "var(--method-get-color)",
- post: "var(--method-post-color)",
- put: "var(--method-put-color)",
- patch: "var(--method-patch-color)",
- delete: "var(--method-delete-color)",
- head: "var(--method-head-color)",
- options: "var(--method-options-color)",
- default: "var(--method-default-color)",
+ get: "var(--success-color)",
+ post: "var(--warning-color)",
+ put: "var(--blue-color)",
+ delete: "var(--cl-error-color)",
+ default: "#6b7280",
} as const
/**
@@ -19,18 +15,10 @@ export const REQUEST_METHOD_LABEL_COLORS = {
* @param request The HoppRESTRequest object to get the value for
* @returns The class value for the given HTTP VERB, if not, a generic verb class
*/
-export function getMethodLabelColorClassOf(request: HoppRESTRequest) {
+export function getMethodLabelColorClassOf(request: { method: string }) {
return pipe(
REQUEST_METHOD_LABEL_COLORS,
RR.lookup(request.method.toLowerCase()),
O.getOrElseW(() => REQUEST_METHOD_LABEL_COLORS.default)
)
}
-
-export function getMethodLabelColor(method: string) {
- return pipe(
- REQUEST_METHOD_LABEL_COLORS,
- RR.lookup(method.toLowerCase()),
- O.getOrElseW(() => REQUEST_METHOD_LABEL_COLORS.default)
- )
-}
diff --git a/packages/hoppscotch-common/src/index.ts b/packages/hoppscotch-common/src/index.ts
index db618d9ad..a4db8641d 100644
--- a/packages/hoppscotch-common/src/index.ts
+++ b/packages/hoppscotch-common/src/index.ts
@@ -3,18 +3,22 @@ import { createApp } from "vue"
import { initializeApp } from "./helpers/app"
import { initBackendGQLClient } from "./helpers/backend/GQLClient"
import { performMigrations } from "./helpers/migrations"
+import { getService } from "./modules/dioc"
import { PlatformDef, setPlatformDef } from "./platform"
+import { PersonalWorkspaceProviderService } from "./services/new-workspace/providers/personal.workspace"
+import { TestWorkspaceProviderService } from "./services/new-workspace/providers/test.workspace"
+import { PersistenceService } from "./services/persistence"
+
+import "@fontsource-variable/inter"
+import "@fontsource-variable/material-symbols-rounded"
+import "@fontsource-variable/roboto-mono"
+import "nprogress/nprogress.css"
+import "../assets/scss/styles.scss"
import "../assets/scss/tailwind.scss"
import "../assets/themes/themes.scss"
-import "../assets/scss/styles.scss"
-import "nprogress/nprogress.css"
-
-import "unfonts.css"
import App from "./App.vue"
-import { getService } from "./modules/dioc"
-import { PersistenceService } from "./services/persistence"
export function createHoppApp(el: string | Element, platformDef: PlatformDef) {
setPlatformDef(platformDef)
@@ -24,15 +28,18 @@ export function createHoppApp(el: string | Element, platformDef: PlatformDef) {
// Some basic work that needs to be done before module inits even
initBackendGQLClient()
initializeApp()
-
- HOPP_MODULES.forEach((mod) => mod.onVueAppInit?.(app))
- platformDef.addedHoppModules?.forEach((mod) => mod.onVueAppInit?.(app))
-
// TODO: Explore possibilities of moving this invocation to the service constructor
// `toast` was coming up as `null` in the previous attempts
getService(PersistenceService).setupLocalPersistence()
performMigrations()
+ // TODO: Remove this
+ getService(TestWorkspaceProviderService)
+ getService(PersonalWorkspaceProviderService)
+
+ HOPP_MODULES.forEach((mod) => mod.onVueAppInit?.(app))
+ platformDef.addedHoppModules?.forEach((mod) => mod.onVueAppInit?.(app))
+
app.mount(el)
console.info(
diff --git a/packages/hoppscotch-common/src/services/new-workspace/handle.ts b/packages/hoppscotch-common/src/services/new-workspace/handle.ts
new file mode 100644
index 000000000..e7529ab3a
--- /dev/null
+++ b/packages/hoppscotch-common/src/services/new-workspace/handle.ts
@@ -0,0 +1,5 @@
+import { Ref } from "vue"
+
+export type HandleRef = Ref<
+ { type: "ok"; data: T } | { type: "invalid"; reason: InvalidateReason }
+>
diff --git a/packages/hoppscotch-common/src/services/new-workspace/index.ts b/packages/hoppscotch-common/src/services/new-workspace/index.ts
new file mode 100644
index 000000000..60331f88a
--- /dev/null
+++ b/packages/hoppscotch-common/src/services/new-workspace/index.ts
@@ -0,0 +1,276 @@
+import { Service } from "dioc"
+import {
+ Component,
+ Ref,
+ computed,
+ markRaw,
+ shallowReactive,
+ shallowRef,
+ watch,
+} from "vue"
+import { WorkspaceProvider } from "./provider"
+import { HandleRef } from "./handle"
+import * as E from "fp-ts/Either"
+import { Workspace, WorkspaceCollection } from "./workspace"
+import { RESTCollectionChildrenView, RootRESTCollectionView } from "./view"
+
+export type WorkspaceError =
+ | { type: "SERVICE_ERROR"; error: ServiceErr }
+ | { type: "PROVIDER_ERROR"; error: unknown }
+
+export class NewWorkspaceService extends Service {
+ public static readonly ID = "NEW_WORKSPACE_SERVICE"
+
+ private registeredProviders = shallowReactive(
+ new Map()
+ )
+
+ public activeWorkspaceHandle: Ref | undefined> =
+ shallowRef()
+
+ public activeWorkspaceDecor = computed(() => {
+ if (this.activeWorkspaceHandle.value?.value.type !== "ok") {
+ return undefined
+ }
+
+ return this.registeredProviders.get(
+ this.activeWorkspaceHandle.value.value.data.providerID
+ )!.workspaceDecor
+ })
+
+ public workspaceSelectorComponents = computed(() => {
+ const items: Component[] = []
+
+ const sortedProviders = Array.from(this.registeredProviders.values()).sort(
+ (a, b) =>
+ (b.workspaceDecor?.value.workspaceSelectorPriority ?? 0) -
+ (a.workspaceDecor?.value.workspaceSelectorPriority ?? 0)
+ )
+
+ for (const workspace of sortedProviders) {
+ if (workspace.workspaceDecor?.value?.workspaceSelectorComponent) {
+ items.push(workspace.workspaceDecor.value.workspaceSelectorComponent)
+ }
+ }
+
+ return items
+ })
+
+ constructor() {
+ super()
+
+ // Watch for situations where the handle is invalidated
+ // so the active workspace handle definition can be invalidated
+ watch(
+ () => {
+ return this.activeWorkspaceHandle.value
+ ? [
+ this.activeWorkspaceHandle.value,
+ this.activeWorkspaceHandle.value.value,
+ ]
+ : [this.activeWorkspaceHandle.value]
+ },
+ () => {
+ if (!this.activeWorkspaceHandle.value) return
+
+ if (this.activeWorkspaceHandle.value.value.type === "invalid") {
+ this.activeWorkspaceHandle.value = undefined
+ }
+ },
+ { deep: true }
+ )
+ }
+
+ public async getWorkspaceHandle(
+ providerID: string,
+ workspaceID: string
+ ): Promise<
+ E.Either, HandleRef>
+ > {
+ const provider = this.registeredProviders.get(providerID)
+
+ if (!provider) {
+ return Promise.resolve(
+ E.left({ type: "SERVICE_ERROR", error: "INVALID_PROVIDER" as const })
+ )
+ }
+
+ const handleResult = await provider.getWorkspaceHandle(workspaceID)
+
+ if (E.isLeft(handleResult)) {
+ return E.left({ type: "PROVIDER_ERROR", error: handleResult.left })
+ }
+
+ return E.right(handleResult.right)
+ }
+
+ public async getCollectionHandle(
+ workspaceHandle: HandleRef,
+ collectionID: string
+ ): Promise<
+ E.Either<
+ WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">,
+ HandleRef
+ >
+ > {
+ if (workspaceHandle.value.type === "invalid") {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" })
+ }
+
+ const provider = this.registeredProviders.get(
+ workspaceHandle.value.data.providerID
+ )
+
+ if (!provider) {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_PROVIDER" })
+ }
+
+ const result = await provider.getCollectionHandle(
+ workspaceHandle,
+ collectionID
+ )
+
+ if (E.isLeft(result)) {
+ return E.left({ type: "PROVIDER_ERROR", error: result.left })
+ }
+
+ return E.right(result.right)
+ }
+
+ public async createRESTRootCollection(
+ workspaceHandle: HandleRef,
+ collectionName: string
+ ): Promise<
+ E.Either<
+ WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">,
+ HandleRef
+ >
+ > {
+ if (workspaceHandle.value.type === "invalid") {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" })
+ }
+
+ const provider = this.registeredProviders.get(
+ workspaceHandle.value.data.providerID
+ )
+
+ if (!provider) {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_PROVIDER" })
+ }
+
+ const result = await provider.createRESTRootCollection(
+ workspaceHandle,
+ collectionName
+ )
+
+ if (E.isLeft(result)) {
+ return E.left({ type: "PROVIDER_ERROR", error: result.left })
+ }
+
+ return E.right(result.right)
+ }
+
+ public async createRESTChildCollection(
+ parentCollHandle: HandleRef,
+ collectionName: string
+ ): Promise<
+ E.Either<
+ WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">,
+ HandleRef
+ >
+ > {
+ if (parentCollHandle.value.type === "invalid") {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" })
+ }
+
+ const provider = this.registeredProviders.get(
+ parentCollHandle.value.data.providerID
+ )
+
+ if (!provider) {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_PROVIDER" })
+ }
+
+ const result = await provider.createRESTChildCollection(
+ parentCollHandle,
+ collectionName
+ )
+
+ if (E.isLeft(result)) {
+ return E.left({ type: "PROVIDER_ERROR", error: result.left })
+ }
+
+ return E.right(result.right)
+ }
+
+ public async getRESTCollectionChildrenView(
+ collectionHandle: HandleRef
+ ): Promise<
+ E.Either<
+ WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">,
+ HandleRef
+ >
+ > {
+ if (collectionHandle.value.type === "invalid") {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" })
+ }
+
+ const provider = this.registeredProviders.get(
+ collectionHandle.value.data.providerID
+ )
+
+ if (!provider) {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_PROVIDER" })
+ }
+
+ const result =
+ await provider.getRESTCollectionChildrenView(collectionHandle)
+
+ if (E.isLeft(result)) {
+ return E.left({ type: "PROVIDER_ERROR", error: result.left })
+ }
+
+ return E.right(result.right)
+ }
+
+ public async getRESTRootCollectionView(
+ workspaceHandle: HandleRef
+ ): Promise<
+ E.Either<
+ WorkspaceError<"INVALID_HANDLE" | "INVALID_PROVIDER">,
+ HandleRef
+ >
+ > {
+ if (workspaceHandle.value.type === "invalid") {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_HANDLE" })
+ }
+
+ const provider = this.registeredProviders.get(
+ workspaceHandle.value.data.providerID
+ )
+
+ if (!provider) {
+ return E.left({ type: "SERVICE_ERROR", error: "INVALID_PROVIDER" })
+ }
+
+ const result = await provider.getRESTRootCollectionView(workspaceHandle)
+
+ if (E.isLeft(result)) {
+ return E.left({ type: "PROVIDER_ERROR", error: result.left })
+ }
+
+ return E.right(result.right)
+ }
+
+ public registerWorkspaceProvider(provider: WorkspaceProvider) {
+ if (this.registeredProviders.has(provider.providerID)) {
+ console.warn(
+ "Ignoring attempt to re-register workspace provider that is already existing:",
+ provider
+ )
+ return
+ }
+
+ this.registeredProviders.set(provider.providerID, markRaw(provider))
+ }
+}
diff --git a/packages/hoppscotch-common/src/services/new-workspace/provider.ts b/packages/hoppscotch-common/src/services/new-workspace/provider.ts
new file mode 100644
index 000000000..5ad1ad1fc
--- /dev/null
+++ b/packages/hoppscotch-common/src/services/new-workspace/provider.ts
@@ -0,0 +1,35 @@
+import { Ref } from "vue"
+import * as E from "fp-ts/Either"
+import { HandleRef } from "./handle"
+import { Workspace, WorkspaceCollection, WorkspaceDecor } from "./workspace"
+import { RESTCollectionChildrenView, RootRESTCollectionView } from "./view"
+
+export interface WorkspaceProvider {
+ providerID: string
+
+ workspaceDecor?: Ref
+
+ getWorkspaceHandle(
+ workspaceID: string
+ ): Promise>>
+ getCollectionHandle(
+ workspaceHandle: HandleRef,
+ collectionID: string
+ ): Promise>>
+
+ getRESTRootCollectionView(
+ workspaceHandle: HandleRef
+ ): Promise>>
+ getRESTCollectionChildrenView(
+ collectionHandle: HandleRef
+ ): Promise>>
+
+ createRESTRootCollection(
+ workspaceHandle: HandleRef,
+ collectionName: string
+ ): Promise>>
+ createRESTChildCollection(
+ parentCollHandle: HandleRef,
+ collectionName: string
+ ): Promise>>
+}
diff --git a/packages/hoppscotch-common/src/services/new-workspace/providers/personal.workspace.ts b/packages/hoppscotch-common/src/services/new-workspace/providers/personal.workspace.ts
new file mode 100644
index 000000000..81353d5b1
--- /dev/null
+++ b/packages/hoppscotch-common/src/services/new-workspace/providers/personal.workspace.ts
@@ -0,0 +1,400 @@
+import {
+ HoppCollection,
+ HoppRESTRequest,
+ makeCollection,
+} from "@hoppscotch/data"
+import { Service } from "dioc"
+import * as E from "fp-ts/Either"
+import { get } from "lodash-es"
+import { v4 as uuid } from "uuid"
+import { Ref, computed, markRaw, ref, shallowReactive, shallowRef } from "vue"
+
+import PersonalWorkspaceSelector from "~/components/workspace/PersonalWorkspaceSelector.vue"
+import { useStreamStatic } from "~/composables/stream"
+
+import { addRESTCollection, restCollectionStore } from "~/newstore/collections"
+import { platform } from "~/platform"
+
+import { HandleRef } from "~/services/new-workspace/handle"
+import { WorkspaceProvider } from "~/services/new-workspace/provider"
+import {
+ RESTCollectionChildrenView,
+ RESTCollectionViewItem,
+ RootRESTCollectionView,
+} from "~/services/new-workspace/view"
+import {
+ Workspace,
+ WorkspaceCollection,
+ WorkspaceDecor,
+} from "~/services/new-workspace/workspace"
+
+import IconUser from "~icons/lucide/user"
+import { NewWorkspaceService } from ".."
+
+export class PersonalWorkspaceProviderService
+ extends Service
+ implements WorkspaceProvider
+{
+ public static readonly ID = "PERSONAL_WORKSPACE_PROVIDER_SERVICE"
+
+ public readonly providerID = "PERSONAL_WORKSPACE_PROVIDER"
+
+ private workspaceService = this.bind(NewWorkspaceService)
+
+ public workspaceDecor: Ref = ref({
+ headerCurrentIcon: IconUser,
+ workspaceSelectorComponent: PersonalWorkspaceSelector,
+ workspaceSelectorPriority: 100,
+ })
+
+ private restCollectionState: Ref<{ state: HoppCollection[] }>
+
+ public constructor() {
+ super()
+
+ this.restCollectionState = useStreamStatic(
+ restCollectionStore.subject$,
+ { state: [] },
+ () => {
+ /* noop */
+ }
+ )[0]
+
+ this.workspaceService.registerWorkspaceProvider(this)
+ }
+
+ private collectionIDMap = shallowReactive(
+ new WeakMap()
+ )
+
+ private reqIDMap = shallowReactive(new WeakMap())
+
+ private collectionIDPathMap = shallowReactive(new Map())
+
+ private generatedUUIDs = new Set()
+
+ private generateUniqueUUID() {
+ let id = uuid()
+
+ while (this.generatedUUIDs.has(id)) {
+ id = uuid()
+ }
+
+ this.generatedUUIDs.add(id)
+
+ return id
+ }
+
+ private resolvePathFromCollectionID(id: string): number[] | undefined {
+ return this.collectionIDPathMap.get(id)
+ }
+
+ private resolveCollectionFromCollectionID(
+ id: string
+ ): HoppCollection | undefined {
+ const path = this.resolvePathFromCollectionID(id)
+
+ if (path === undefined) return
+
+ const collPath = path.flatMap((x, i) =>
+ i === 0 ? [x.toString()] : ["folders", x.toString()]
+ )
+
+ const coll = get(this.restCollectionState.value.state, collPath) as
+ | HoppCollection
+ | undefined
+
+ return coll
+ }
+
+ private getIssuedInstanceIDForCollection(
+ coll: HoppCollection,
+ location: number[]
+ ) {
+ const id = this.collectionIDMap.has(coll)
+ ? this.collectionIDMap.get(coll)!
+ : this.generateUniqueUUID()
+
+ this.collectionIDPathMap.set(id, location)
+ this.collectionIDMap.set(coll, id)
+
+ return id
+ }
+
+ private getIssuedInstanceIDForRequest(req: HoppRESTRequest) {
+ const id = this.reqIDMap.get(req) ?? this.generateUniqueUUID()
+
+ this.reqIDMap.set(req, id)
+
+ return id
+ }
+
+ public createRESTChildCollection(
+ parentCollHandle: HandleRef,
+ collectionName: string
+ ): Promise>> {
+ throw new Error("TODO: Method not implemented.")
+ }
+
+ public createRESTRootCollection(
+ workspaceHandle: HandleRef,
+ collectionName: string
+ ): Promise>> {
+ if (
+ workspaceHandle.value.type !== "ok" ||
+ workspaceHandle.value.data.providerID !== this.providerID ||
+ workspaceHandle.value.data.workspaceID !== "personal"
+ ) {
+ return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
+ }
+
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (
+ workspaceHandle.value.type !== "ok" ||
+ workspaceHandle.value.data.providerID !== this.providerID ||
+ workspaceHandle.value.data.workspaceID !== "personal"
+ ) {
+ return {
+ type: "invalid",
+ reason: "WORKSPACE_INVALIDATED" as const,
+ }
+ }
+
+ addRESTCollection(
+ makeCollection({
+ name: collectionName,
+ folders: [],
+ requests: [],
+ headers: [],
+ auth: {
+ authType: "inherit",
+ authActive: false,
+ },
+ })
+ )
+
+ platform.analytics?.logEvent({
+ type: "HOPP_CREATE_COLLECTION",
+ platform: "rest",
+ workspaceType: "personal",
+ isRootCollection: true,
+ })
+
+ return {
+ type: "ok",
+ data: {
+ providerID: this.providerID,
+ workspaceID: workspaceHandle.value.data.workspaceID,
+ collectionID: "",
+ name: collectionName,
+ },
+ }
+ })
+ )
+ )
+ }
+
+ public getCollectionHandle(
+ workspaceHandle: HandleRef,
+ collectionID: string
+ ): Promise<
+ E.Either<"INVALID_WORKSPACE_HANDLE", HandleRef>
+ > {
+ if (
+ workspaceHandle.value.type !== "ok" ||
+ workspaceHandle.value.data.providerID !== this.providerID ||
+ workspaceHandle.value.data.workspaceID !== "personal"
+ ) {
+ return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
+ }
+
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (
+ workspaceHandle.value.type !== "ok" ||
+ workspaceHandle.value.data.providerID !== this.providerID ||
+ workspaceHandle.value.data.workspaceID !== "personal"
+ ) {
+ return {
+ type: "invalid",
+ reason: "WORKSPACE_INVALIDATED" as const,
+ }
+ }
+
+ // TODO: The way the IDs are issued, this will make it so we need a view
+ // before the ID is issued correctly
+ const coll = this.resolveCollectionFromCollectionID(collectionID)
+
+ if (coll === undefined) {
+ return {
+ type: "invalid",
+ reason: "INVALID_COLL_ID" as const,
+ }
+ }
+
+ return {
+ type: "ok",
+ data: {
+ providerID: this.providerID,
+ workspaceID: workspaceHandle.value.data.workspaceID,
+ collectionID,
+ name: coll.name,
+ },
+ }
+ })
+ )
+ )
+ }
+
+ public getRESTCollectionChildrenView(
+ collectionHandle: HandleRef
+ ): Promise>> {
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (
+ collectionHandle.value.type === "invalid" ||
+ collectionHandle.value.data.providerID !== this.providerID ||
+ collectionHandle.value.data.workspaceID !== "personal"
+ ) {
+ return {
+ type: "invalid" as const,
+ reason: "INVALID_COLLECTION_HANDLE" as const,
+ }
+ }
+
+ const collectionID = collectionHandle.value.data.collectionID
+
+ return markRaw({
+ type: "ok" as const,
+ data: {
+ providerID: this.providerID,
+ workspaceID: collectionHandle.value.data.workspaceID,
+ collectionID: collectionHandle.value.data.collectionID,
+
+ loading: ref(false),
+ mayHaveMoreContent: ref(false),
+
+ content: computed(() => {
+ const path = this.resolvePathFromCollectionID(collectionID)
+ const coll =
+ this.resolveCollectionFromCollectionID(collectionID)
+
+ if (coll === undefined || path === undefined) {
+ console.warn("Collection against ID was not resolvable")
+
+ return []
+ }
+
+ const collections = coll.folders.map((childColl, i) => {
+ const id = this.getIssuedInstanceIDForCollection(childColl, [
+ ...path,
+ i,
+ ])
+
+ return {
+ type: "collection",
+ value: {
+ collectionID: id,
+ name: coll.name,
+ },
+ }
+ })
+
+ const requests = coll.requests.map((req, i) => {
+ const id = this.getIssuedInstanceIDForRequest(req)
+
+ return {
+ type: "request",
+ value: {
+ requestID: id,
+ name: req.name,
+ method: req.method,
+ },
+ }
+ })
+
+ return [...collections, ...requests]
+ }),
+ loadMore() {
+ return Promise.resolve()
+ },
+ },
+ })
+ })
+ )
+ )
+ }
+
+ public getRESTRootCollectionView(
+ workspaceHandle: HandleRef
+ ): Promise>> {
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (
+ workspaceHandle.value.type === "invalid" ||
+ workspaceHandle.value.data.providerID !== this.providerID ||
+ workspaceHandle.value.data.workspaceID !== "personal"
+ ) {
+ return {
+ type: "invalid" as const,
+ reason: "INVALID_WORKSPACE_HANDLE" as const,
+ }
+ }
+
+ return markRaw({
+ type: "ok" as const,
+ data: {
+ providerID: this.providerID,
+ workspaceID: workspaceHandle.value.data.workspaceID,
+
+ loading: ref(false),
+ mayHaveMoreContent: ref(false),
+
+ collections: computed(() => {
+ return this.restCollectionState.value.state.map((coll, i) => {
+ const id = this.getIssuedInstanceIDForCollection(coll, [i])
+
+ return {
+ collectionID: id,
+ name: coll.name,
+ }
+ })
+ }),
+ loadMore() {
+ return Promise.resolve()
+ },
+ },
+ })
+ })
+ )
+ )
+ }
+
+ public getWorkspaceHandle(
+ workspaceID: string
+ ): Promise>> {
+ if (workspaceID !== "personal") {
+ return Promise.resolve(E.left("INVALID_WORKSPACE_ID" as const))
+ }
+
+ return Promise.resolve(E.right(this.getPersonalWorkspaceHandle()))
+ }
+
+ public getPersonalWorkspaceHandle(): HandleRef {
+ return shallowRef({
+ type: "ok" as const,
+ data: {
+ providerID: this.providerID,
+ workspaceID: "personal",
+
+ name: "Personal Workspace",
+ collectionsAreReadonly: false,
+ },
+ })
+ }
+}
diff --git a/packages/hoppscotch-common/src/services/new-workspace/providers/test.workspace.ts b/packages/hoppscotch-common/src/services/new-workspace/providers/test.workspace.ts
new file mode 100644
index 000000000..bd7e236f6
--- /dev/null
+++ b/packages/hoppscotch-common/src/services/new-workspace/providers/test.workspace.ts
@@ -0,0 +1,321 @@
+import { computed, markRaw, reactive, ref } from "vue"
+import { useTimestamp } from "@vueuse/core"
+import { Service } from "dioc"
+import { WorkspaceProvider } from "../provider"
+import * as E from "fp-ts/Either"
+import { HandleRef } from "../handle"
+import { Workspace, WorkspaceCollection } from "../workspace"
+import { NewWorkspaceService } from ".."
+import TestWorkspaceSelector from "~/components/workspace/TestWorkspaceSelector.vue"
+import { RESTCollectionChildrenView, RootRESTCollectionView } from "../view"
+import IconUser from "~icons/lucide/user"
+import { get } from "lodash-es"
+
+type TestReqDef = {
+ name: string
+}
+
+type TestCollDef = {
+ name: string
+ collections: TestCollDef[]
+ requests: TestReqDef[]
+}
+
+const timestamp = useTimestamp({ interval: 3000 })
+// const timestamp = ref(Date.now())
+
+const testData = reactive({
+ workspaceA: {
+ name: computed(() => `Workspace A: ${timestamp.value}`),
+ collections: [
+ {
+ name: "Collection A",
+ collections: [
+ {
+ name: "Collection B",
+ collections: [
+ { name: "Collection C", collections: [], requests: [] },
+ ],
+ requests: [],
+ },
+ ],
+ requests: [{ name: "Request C" }],
+ },
+ ],
+ },
+ workspaceB: {
+ name: "Workspace B",
+ collections: [
+ {
+ name: "Collection D",
+ collections: [{ name: "Collection E", collections: [], requests: [] }],
+ requests: [{ name: "Request F" }],
+ },
+ ],
+ },
+})
+
+;(window as any).testData = testData
+
+export class TestWorkspaceProviderService
+ extends Service
+ implements WorkspaceProvider
+{
+ public static readonly ID = "TEST_WORKSPACE_PROVIDER_SERVICE"
+
+ public providerID = "TEST_WORKSPACE_PROVIDER"
+
+ public workspaceDecor = ref({
+ workspaceSelectorComponent: markRaw(TestWorkspaceSelector),
+ headerCurrentIcon: markRaw(IconUser),
+ workspaceSelectorPriority: 10,
+ })
+
+ private readonly workspaceService = this.bind(NewWorkspaceService)
+
+ constructor() {
+ super()
+
+ this.workspaceService.registerWorkspaceProvider(this)
+ }
+
+ public createRESTRootCollection(
+ workspaceHandle: HandleRef,
+ collectionName: string
+ ): Promise<
+ E.Either<"INVALID_WORKSPACE_HANDLE", HandleRef>
+ > {
+ if (workspaceHandle.value.type !== "ok") {
+ return Promise.resolve(E.left("INVALID_WORKSPACE_HANDLE" as const))
+ }
+
+ const workspaceID = workspaceHandle.value.data.workspaceID
+
+ const newCollID =
+ testData[workspaceID as keyof typeof testData].collections.length
+
+ testData[workspaceID as keyof typeof testData].collections.push({
+ name: collectionName,
+ collections: [],
+ requests: [],
+ })
+
+ return this.getCollectionHandle(workspaceHandle, newCollID.toString())
+ }
+
+ public createRESTChildCollection(
+ parentCollHandle: HandleRef,
+ collectionName: string
+ ): Promise>> {
+ // TODO: Implement
+ throw new Error("Method not implemented.")
+ }
+
+ public getWorkspaceHandle(
+ workspaceID: string
+ ): Promise>> {
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (!(workspaceID in testData)) {
+ return {
+ type: "invalid",
+ reason: "WORKSPACE_WENT_OUT" as const,
+ }
+ }
+
+ return {
+ type: "ok",
+ data: {
+ providerID: this.providerID,
+ workspaceID,
+ name: testData[workspaceID as keyof typeof testData].name,
+ collectionsAreReadonly: false,
+ },
+ }
+ })
+ )
+ )
+ }
+
+ public getCollectionHandle(
+ workspaceHandle: HandleRef,
+ collectionID: string
+ ): Promise<
+ E.Either<"INVALID_WORKSPACE_HANDLE", HandleRef>
+ > {
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (workspaceHandle.value.type !== "ok") {
+ return {
+ type: "invalid",
+ reason: "WORKSPACE_INVALIDATED" as const,
+ }
+ }
+
+ const workspaceID = workspaceHandle.value.data.workspaceID
+ const collectionPath = collectionID
+ .split("/")
+ .flatMap((x) => ["collections", x])
+
+ const result: TestCollDef | undefined = get(
+ testData[workspaceID as keyof typeof testData],
+ collectionPath
+ )
+
+ if (!result) {
+ return {
+ type: "invalid",
+ reason: "INVALID_COLL_ID",
+ }
+ }
+
+ return {
+ type: "ok",
+ data: {
+ providerID: this.providerID,
+ workspaceID,
+ collectionID,
+ name: result.name,
+ },
+ }
+ })
+ )
+ )
+ }
+
+ public getRESTCollectionChildrenView(
+ collectionHandle: HandleRef
+ ): Promise>> {
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (collectionHandle.value.type === "invalid") {
+ return {
+ type: "invalid",
+ reason: "COLL_HANDLE_IS_INVALID" as const,
+ }
+ }
+
+ const workspaceID = collectionHandle.value.data.workspaceID
+ const collectionID = collectionHandle.value.data.collectionID
+
+ if (!(workspaceID in testData)) {
+ return {
+ type: "invalid",
+ reason: "WORKSPACE_NOT_PRESENT" as const,
+ }
+ }
+
+ const collectionPath = collectionID
+ .split("/")
+ .flatMap((x) => ["collections", x])
+
+ return markRaw({
+ type: "ok",
+ data: {
+ providerID: this.providerID,
+ workspaceID,
+ collectionID,
+
+ mayHaveMoreContent: ref(false),
+ loading: ref(false),
+
+ content: computed(() => [
+ ...(
+ get(testData[workspaceID as keyof typeof testData], [
+ ...collectionPath,
+ "collections",
+ ]) as TestCollDef[]
+ ).map((item, i) => ({
+ type: "collection" as const,
+ value: {
+ collectionID: `${collectionID}/${i}`,
+ name: item.name,
+ },
+ })),
+ ...(
+ get(testData[workspaceID as keyof typeof testData], [
+ ...collectionPath,
+ "requests",
+ ]) as TestReqDef[]
+ ).map((item, i) => ({
+ type: "request" as const,
+ value: {
+ requestID: `${collectionID}/${i}`,
+ name: item.name,
+ method: "get",
+ },
+ })),
+ ]),
+
+ loadMore(_count: number) {
+ return Promise.resolve()
+ },
+ },
+ })
+ })
+ )
+ )
+ }
+
+ public getRESTRootCollectionView(
+ workspaceHandle: HandleRef
+ ): Promise>> {
+ return Promise.resolve(
+ E.right(
+ computed(() => {
+ if (workspaceHandle.value.type === "invalid") {
+ return {
+ type: "invalid",
+ reason: "WORKSPACE_IS_INVALID" as const,
+ }
+ }
+
+ const workspaceID = workspaceHandle.value.data.workspaceID
+
+ if (!(workspaceID in testData)) {
+ return {
+ type: "invalid",
+ reason: "WORKSPACE_NOT_PRESENT" as const,
+ }
+ }
+
+ return markRaw({
+ type: "ok",
+ data: {
+ providerID: this.providerID,
+ workspaceID,
+
+ mayHaveMoreContent: ref(false),
+ loading: ref(false),
+
+ collections: computed(() => {
+ return testData[
+ workspaceID as keyof typeof testData
+ ].collections.map((x, i) => ({
+ collectionID: i.toString(),
+ name: x.name,
+ }))
+ }),
+
+ loadMore() {
+ return Promise.resolve()
+ },
+ },
+ })
+ })
+ )
+ )
+ }
+
+ public getWorkspaceCandidates() {
+ return computed(() =>
+ Object.keys(testData).map((workspaceID) => ({
+ id: workspaceID,
+ name: testData[workspaceID as keyof typeof testData].name,
+ }))
+ )
+ }
+}
diff --git a/packages/hoppscotch-common/src/services/new-workspace/view.ts b/packages/hoppscotch-common/src/services/new-workspace/view.ts
new file mode 100644
index 000000000..e735c0532
--- /dev/null
+++ b/packages/hoppscotch-common/src/services/new-workspace/view.ts
@@ -0,0 +1,42 @@
+import { Ref } from "vue"
+
+export type RESTCollectionViewCollection = {
+ collectionID: string
+ name: string
+}
+
+export type RESTCollectionViewRequest = {
+ requestID: string
+
+ name: string
+ method: string
+}
+
+export type RESTCollectionViewItem =
+ | { type: "collection"; value: RESTCollectionViewCollection }
+ | { type: "request"; value: RESTCollectionViewRequest }
+
+export interface RootRESTCollectionView {
+ providerID: string
+ workspaceID: string
+
+ mayHaveMoreContent: Ref
+ loading: Ref
+
+ collections: Ref
+
+ loadMore(count: number): Promise
+}
+
+export interface RESTCollectionChildrenView {
+ providerID: string
+ workspaceID: string
+ collectionID: string
+
+ mayHaveMoreContent: Ref
+ loading: Ref
+
+ content: Ref
+
+ loadMore(count: number): Promise
+}
diff --git a/packages/hoppscotch-common/src/services/new-workspace/workspace.ts b/packages/hoppscotch-common/src/services/new-workspace/workspace.ts
new file mode 100644
index 000000000..8eb3043c5
--- /dev/null
+++ b/packages/hoppscotch-common/src/services/new-workspace/workspace.ts
@@ -0,0 +1,27 @@
+import { Component } from "vue"
+
+export type Workspace = {
+ providerID: string
+ workspaceID: string
+
+ name: string
+
+ collectionsAreReadonly: boolean
+}
+
+export type WorkspaceCollection = {
+ providerID: string
+ workspaceID: string
+ collectionID: string
+
+ name: string
+}
+
+export type WorkspaceDecor = {
+ headerComponent?: Component
+
+ headerCurrentIcon?: Component | object
+
+ workspaceSelectorComponent?: Component
+ workspaceSelectorPriority?: number
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 89b5cc689..0129837a2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -477,7 +477,7 @@ importers:
version: 16.8.1
graphql-language-service-interface:
specifier: 2.10.2
- version: 2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ version: 2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
graphql-tag:
specifier: 2.12.6
version: 2.12.6(graphql@16.8.1)
@@ -763,7 +763,7 @@ importers:
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
vite-plugin-checker:
specifier: 0.6.2
- version: 0.6.2(eslint@8.57.0)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2))
+ version: 0.6.2(eslint@8.57.0)(meow@8.1.2)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2))
vite-plugin-fonts:
specifier: 0.7.0
version: 0.7.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
@@ -882,7 +882,7 @@ importers:
version: 2.8.4
ts-jest:
specifier: 27.1.5
- version: 27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5)
+ version: 27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5)
typescript:
specifier: 4.9.5
version: 4.9.5
@@ -1051,10 +1051,10 @@ importers:
version: 1.1.1(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
unplugin-icons:
specifier: 0.14.9
- version: 0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ version: 0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
unplugin-vue-components:
specifier: 0.21.0
- version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
vite:
specifier: 4.5.0
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
@@ -1063,7 +1063,7 @@ importers:
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
vite-plugin-inspect:
specifier: 0.7.38
- version: 0.7.38(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
+ version: 0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
vite-plugin-pages:
specifier: 0.26.0
version: 0.26.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
@@ -1220,7 +1220,7 @@ importers:
version: 0.17.4(@vue/compiler-sfc@3.3.10)(vue-template-compiler@2.7.14)
unplugin-vue-components:
specifier: 0.25.2
- version: 0.25.2(@babel/parser@7.23.9)(rollup@2.79.1)(vue@3.3.9(typescript@5.3.2))
+ version: 0.25.2(@babel/parser@7.23.9)(rollup@3.29.4)(vue@3.3.9(typescript@5.3.2))
vite:
specifier: 4.5.0
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
@@ -1232,7 +1232,7 @@ importers:
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
vite-plugin-inspect:
specifier: 0.7.42
- version: 0.7.42(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
+ version: 0.7.42(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
vite-plugin-pages:
specifier: 0.31.0
version: 0.31.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
@@ -1274,7 +1274,7 @@ importers:
version: 0.1.0(vue@3.3.9(typescript@4.9.3))
'@intlify/unplugin-vue-i18n':
specifier: 1.2.0
- version: 1.2.0(rollup@2.79.1)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
+ version: 1.2.0(rollup@3.29.4)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
'@types/cors':
specifier: 2.8.13
version: 2.8.13
@@ -1337,10 +1337,10 @@ importers:
version: 2.0.0(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@4.9.3)
unplugin-icons:
specifier: 0.14.9
- version: 0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ version: 0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
unplugin-vue-components:
specifier: 0.21.0
- version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
vue:
specifier: 3.3.9
version: 3.3.9(typescript@4.9.3)
@@ -3514,8 +3514,8 @@ packages:
resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==}
engines: {node: '>= 14'}
- '@intlify/message-compiler@10.0.0-alpha.3':
- resolution: {integrity: sha512-WjM1KAl5enpOfprfVAJ3FzwACmizZFPgyV0sn+QXoWH8BG2ahVkf7uVEqQH0mvUr2rKKaScwpzhH3wZ5F7ZdPw==}
+ '@intlify/message-compiler@10.0.0-alpha.5':
+ resolution: {integrity: sha512-8Fr+1EsuxaCRWrrj3ZQ22DQU4vQzBxDHMMlLcN/6uM3R3kObTc0+Ip6EFrHXTsNm5LGETxlJlpi328U1dth/aA==}
engines: {node: '>= 16'}
'@intlify/message-compiler@9.2.2':
@@ -3530,8 +3530,8 @@ packages:
resolution: {integrity: sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==}
engines: {node: '>= 16'}
- '@intlify/shared@10.0.0-alpha.3':
- resolution: {integrity: sha512-fi2q48i+C6sSCAt3vOj/9LD3tkr1wcvLt+ifZEHrpPiwHCyKLDYGp5qBNUHUBBA/iqFTeWdtHUbHE9z9OeTXkw==}
+ '@intlify/shared@10.0.0-alpha.5':
+ resolution: {integrity: sha512-uCXI2IM9B2fwR7whGJ+DNBGxI02cSgD4E0ItY1ls++Vubrt92rD86o/9AUb9S/6jyK2hy3kFaTzublQIylMAsA==}
engines: {node: '>= 16'}
'@intlify/shared@9.2.2':
@@ -15519,8 +15519,8 @@ snapshots:
'@intlify/bundle-utils@3.4.0(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))':
dependencies:
- '@intlify/message-compiler': 10.0.0-alpha.3
- '@intlify/shared': 10.0.0-alpha.3
+ '@intlify/message-compiler': 10.0.0-alpha.5
+ '@intlify/shared': 10.0.0-alpha.5
jsonc-eslint-parser: 1.4.1
source-map: 0.6.1
yaml-eslint-parser: 0.3.2
@@ -15573,9 +15573,9 @@ snapshots:
dependencies:
'@intlify/shared': 9.2.2
- '@intlify/message-compiler@10.0.0-alpha.3':
+ '@intlify/message-compiler@10.0.0-alpha.5':
dependencies:
- '@intlify/shared': 10.0.0-alpha.3
+ '@intlify/shared': 10.0.0-alpha.5
source-map-js: 1.0.2
'@intlify/message-compiler@9.2.2':
@@ -15593,7 +15593,7 @@ snapshots:
'@intlify/shared': 9.8.0
source-map-js: 1.0.2
- '@intlify/shared@10.0.0-alpha.3': {}
+ '@intlify/shared@10.0.0-alpha.5': {}
'@intlify/shared@9.2.2': {}
@@ -15601,11 +15601,11 @@ snapshots:
'@intlify/shared@9.8.0': {}
- '@intlify/unplugin-vue-i18n@1.2.0(rollup@2.79.1)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))':
+ '@intlify/unplugin-vue-i18n@1.2.0(rollup@3.29.4)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))':
dependencies:
'@intlify/bundle-utils': 7.4.0(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
'@intlify/shared': 9.8.0
- '@rollup/pluginutils': 5.1.0(rollup@2.79.1)
+ '@rollup/pluginutils': 5.1.0(rollup@3.29.4)
'@vue/compiler-sfc': 3.3.10
debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.2
@@ -15624,7 +15624,7 @@ snapshots:
'@intlify/vite-plugin-vue-i18n@6.0.1(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-i18n@9.8.0(vue@3.3.9(typescript@4.9.5)))':
dependencies:
'@intlify/bundle-utils': 7.0.0(vue-i18n@9.8.0(vue@3.3.9(typescript@4.9.5)))
- '@intlify/shared': 10.0.0-alpha.3
+ '@intlify/shared': 10.0.0-alpha.5
'@rollup/pluginutils': 4.2.1
debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.2
@@ -15638,7 +15638,7 @@ snapshots:
'@intlify/vite-plugin-vue-i18n@7.0.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))':
dependencies:
'@intlify/bundle-utils': 3.4.0(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))
- '@intlify/shared': 10.0.0-alpha.3
+ '@intlify/shared': 10.0.0-alpha.5
'@rollup/pluginutils': 4.2.1
debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.2
@@ -16464,14 +16464,6 @@ snapshots:
estree-walker: 2.0.2
picomatch: 2.3.1
- '@rollup/pluginutils@5.1.0(rollup@2.79.1)':
- dependencies:
- '@types/estree': 1.0.5
- estree-walker: 2.0.2
- picomatch: 2.3.1
- optionalDependencies:
- rollup: 2.79.1
-
'@rollup/pluginutils@5.1.0(rollup@3.29.4)':
dependencies:
'@types/estree': 1.0.5
@@ -19143,10 +19135,10 @@ snapshots:
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@4.9.3)
typescript: 4.9.3
- cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2):
+ cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2):
dependencies:
'@types/node': 18.18.8
- cosmiconfig: 7.0.1
+ cosmiconfig: 8.2.0
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2)
typescript: 5.3.2
optional: true
@@ -21021,7 +21013,7 @@ snapshots:
- encoding
- utf-8-validate
- graphql-config@4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
+ graphql-config@4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
dependencies:
'@graphql-tools/graphql-file-loader': 7.5.16(graphql@16.8.1)
'@graphql-tools/json-file-loader': 7.4.17(graphql@16.8.1)
@@ -21035,7 +21027,7 @@ snapshots:
string-env-interpolation: 1.0.1
tslib: 2.6.2
optionalDependencies:
- cosmiconfig-typescript-loader: 4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2)
+ cosmiconfig-typescript-loader: 4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2)
transitivePeerDependencies:
- '@types/node'
- bufferutil
@@ -21062,13 +21054,13 @@ snapshots:
- encoding
- utf-8-validate
- graphql-language-service-interface@2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
+ graphql-language-service-interface@2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
dependencies:
graphql: 16.8.1
- graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
- graphql-language-service-parser: 1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
- graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
- graphql-language-service-utils: 2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ graphql-language-service-parser: 1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ graphql-language-service-utils: 2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
vscode-languageserver-types: 3.17.2
transitivePeerDependencies:
- '@types/node'
@@ -21078,10 +21070,10 @@ snapshots:
- encoding
- utf-8-validate
- graphql-language-service-parser@1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
+ graphql-language-service-parser@1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
dependencies:
graphql: 16.8.1
- graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
transitivePeerDependencies:
- '@types/node'
- bufferutil
@@ -21090,10 +21082,10 @@ snapshots:
- encoding
- utf-8-validate
- graphql-language-service-types@1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
+ graphql-language-service-types@1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
dependencies:
graphql: 16.8.1
- graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
vscode-languageserver-types: 3.17.2
transitivePeerDependencies:
- '@types/node'
@@ -21103,11 +21095,11 @@ snapshots:
- encoding
- utf-8-validate
- graphql-language-service-utils@2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
+ graphql-language-service-utils@2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
dependencies:
'@types/json-schema': 7.0.9
graphql: 16.8.1
- graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
+ graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
nullthrows: 1.1.1
transitivePeerDependencies:
- '@types/node'
@@ -25405,7 +25397,7 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-jest@27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5):
+ ts-jest@27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
@@ -25420,6 +25412,7 @@ snapshots:
optionalDependencies:
'@babel/core': 7.23.9
'@types/jest': 27.5.2
+ babel-jest: 29.7.0(@babel/core@7.23.9)
ts-jest@29.0.5(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.4.1(@types/node@18.11.10)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.11.10)(typescript@4.9.3)))(typescript@4.9.3):
dependencies:
@@ -25841,7 +25834,7 @@ snapshots:
unplugin: 1.5.1
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
- unplugin-icons@0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin-icons@0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.5.2
@@ -25849,7 +25842,7 @@ snapshots:
debug: 4.3.4(supports-color@9.2.2)
kolorist: 1.8.0
local-pkg: 0.4.3
- unplugin: 0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ unplugin: 0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
optionalDependencies:
'@vue/compiler-sfc': 3.2.45
vue-template-compiler: 2.7.14
@@ -25860,7 +25853,7 @@ snapshots:
- vite
- webpack
- unplugin-icons@0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin-icons@0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.5.2
@@ -25868,7 +25861,7 @@ snapshots:
debug: 4.3.4(supports-color@9.2.2)
kolorist: 1.8.0
local-pkg: 0.4.3
- unplugin: 0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ unplugin: 0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
optionalDependencies:
'@vue/compiler-sfc': 3.3.10
vue-template-compiler: 2.7.14
@@ -25894,7 +25887,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
'@antfu/utils': 0.5.2
'@rollup/pluginutils': 4.2.1
@@ -25905,7 +25898,7 @@ snapshots:
magic-string: 0.26.7
minimatch: 5.1.6
resolve: 1.22.8
- unplugin: 0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ unplugin: 0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
vue: 3.3.9(typescript@4.9.3)
optionalDependencies:
'@babel/parser': 7.23.9
@@ -25916,7 +25909,7 @@ snapshots:
- vite
- webpack
- unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
'@antfu/utils': 0.5.2
'@rollup/pluginutils': 4.2.1
@@ -25927,7 +25920,7 @@ snapshots:
magic-string: 0.26.7
minimatch: 5.1.6
resolve: 1.22.8
- unplugin: 0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
+ unplugin: 0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
vue: 3.3.9(typescript@4.9.5)
optionalDependencies:
'@babel/parser': 7.23.9
@@ -25938,10 +25931,10 @@ snapshots:
- vite
- webpack
- unplugin-vue-components@0.25.2(@babel/parser@7.23.9)(rollup@2.79.1)(vue@3.3.9(typescript@5.3.2)):
+ unplugin-vue-components@0.25.2(@babel/parser@7.23.9)(rollup@3.29.4)(vue@3.3.9(typescript@5.3.2)):
dependencies:
'@antfu/utils': 0.7.6
- '@rollup/pluginutils': 5.1.0(rollup@2.79.1)
+ '@rollup/pluginutils': 5.1.0(rollup@3.29.4)
chokidar: 3.5.3
debug: 4.3.4(supports-color@9.2.2)
fast-glob: 3.3.2
@@ -25976,7 +25969,7 @@ snapshots:
- rollup
- supports-color
- unplugin@0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin@0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
acorn: 8.11.3
chokidar: 3.5.3
@@ -25984,11 +25977,11 @@ snapshots:
webpack-virtual-modules: 0.4.4
optionalDependencies:
esbuild: 0.20.0
- rollup: 2.79.1
+ rollup: 3.29.4
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0)
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
- unplugin@0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin@0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
acorn: 8.11.3
chokidar: 3.5.3
@@ -25996,11 +25989,11 @@ snapshots:
webpack-virtual-modules: 0.4.4
optionalDependencies:
esbuild: 0.20.0
- rollup: 2.79.1
+ rollup: 3.29.4
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
- unplugin@0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin@0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
acorn: 8.11.3
chokidar: 3.5.3
@@ -26008,11 +26001,11 @@ snapshots:
webpack-virtual-modules: 0.4.4
optionalDependencies:
esbuild: 0.20.0
- rollup: 2.79.1
+ rollup: 3.29.4
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0)
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
- unplugin@0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
+ unplugin@0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
dependencies:
acorn: 8.11.3
chokidar: 3.5.3
@@ -26020,7 +26013,7 @@ snapshots:
webpack-virtual-modules: 0.4.4
optionalDependencies:
esbuild: 0.20.0
- rollup: 2.79.1
+ rollup: 3.29.4
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
@@ -26154,7 +26147,7 @@ snapshots:
- supports-color
- terser
- vite-plugin-checker@0.6.2(eslint@8.57.0)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2)):
+ vite-plugin-checker@0.6.2(eslint@8.57.0)(meow@8.1.2)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2)):
dependencies:
'@babel/code-frame': 7.23.5
ansi-escapes: 4.3.2
@@ -26176,6 +26169,7 @@ snapshots:
vscode-uri: 3.0.7
optionalDependencies:
eslint: 8.57.0
+ meow: 8.1.2
optionator: 0.9.3
typescript: 5.3.2
vue-tsc: 1.8.24(typescript@5.3.2)
@@ -26221,10 +26215,10 @@ snapshots:
dependencies:
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
- vite-plugin-inspect@0.7.38(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
+ vite-plugin-inspect@0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
dependencies:
'@antfu/utils': 0.7.6
- '@rollup/pluginutils': 5.1.0(rollup@2.79.1)
+ '@rollup/pluginutils': 5.1.0(rollup@3.29.4)
debug: 4.3.4(supports-color@9.2.2)
error-stack-parser-es: 0.1.1
fs-extra: 11.1.1
@@ -26236,10 +26230,10 @@ snapshots:
- rollup
- supports-color
- vite-plugin-inspect@0.7.42(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
+ vite-plugin-inspect@0.7.42(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
dependencies:
'@antfu/utils': 0.7.6
- '@rollup/pluginutils': 5.1.0(rollup@2.79.1)
+ '@rollup/pluginutils': 5.1.0(rollup@3.29.4)
debug: 4.3.4(supports-color@9.2.2)
error-stack-parser-es: 0.1.1
fs-extra: 11.1.1