feat: implement environments for selfhosted (#30)
This commit is contained in:
3
packages/hoppscotch-selfhost-web/.gitignore
vendored
3
packages/hoppscotch-selfhost-web/.gitignore
vendored
@@ -25,3 +25,6 @@ dist-ssr
|
||||
|
||||
# Sitemap Generation Artifacts (see vite.config.ts)
|
||||
.sitemap-gen
|
||||
|
||||
# Backend Code generation
|
||||
src/api/generated
|
||||
19
packages/hoppscotch-selfhost-web/gql-codegen.yml
Normal file
19
packages/hoppscotch-selfhost-web/gql-codegen.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
overwrite: true
|
||||
schema:
|
||||
- ${VITE_BACKEND_GQL_URL}
|
||||
generates:
|
||||
src/api/generated/graphql.ts:
|
||||
documents: "src/**/*.graphql"
|
||||
plugins:
|
||||
- add:
|
||||
content: >
|
||||
/* eslint-disable */
|
||||
// Auto-generated file (DO NOT EDIT!!!), refer gql-codegen.yml
|
||||
- typescript
|
||||
- typescript-operations
|
||||
- typed-document-node
|
||||
- typescript-urql-graphcache
|
||||
|
||||
src/helpers/backend/backend-schema.json:
|
||||
plugins:
|
||||
- urql-introspection
|
||||
@@ -16,13 +16,16 @@
|
||||
"do-build-prod": "pnpm run build",
|
||||
"do-lint": "pnpm run prod-lint",
|
||||
"do-typecheck": "pnpm run lint",
|
||||
"do-lintfix": "pnpm run lintfix"
|
||||
"do-lintfix": "pnpm run lintfix",
|
||||
"gql-codegen": "graphql-codegen --require dotenv/config --config gql-codegen.yml dotenv_config_path=\"../../.env\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@hoppscotch/common": "workspace:^",
|
||||
"axios": "^0.21.4",
|
||||
"buffer": "^6.0.3",
|
||||
"firebase": "^9.8.4",
|
||||
"fp-ts": "^2.13.1",
|
||||
"graphql": "^15.8.0",
|
||||
"process": "^0.11.10",
|
||||
"rxjs": "^7.5.5",
|
||||
"stream-browserify": "^3.0.0",
|
||||
@@ -31,6 +34,14 @@
|
||||
"workbox-window": "^6.5.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@graphql-codegen/add": "^3.2.0",
|
||||
"@graphql-codegen/cli": "^2.8.0",
|
||||
"@graphql-codegen/typed-document-node": "^2.3.1",
|
||||
"@graphql-codegen/typescript": "^2.7.1",
|
||||
"@graphql-codegen/typescript-operations": "^2.5.1",
|
||||
"@graphql-codegen/typescript-urql-graphcache": "^2.3.1",
|
||||
"@graphql-codegen/urql-introspection": "^2.2.0",
|
||||
"@graphql-typed-document-node/core": "^3.1.1",
|
||||
"@intlify/vite-plugin-vue-i18n": "^6.0.1",
|
||||
"@rushstack/eslint-patch": "^1.1.4",
|
||||
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
mutation ClearGlobalEnvironments($id: ID!) {
|
||||
clearGlobalEnvironments(id: $id) {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
mutation CreateUserEnvironment($name: String!, $variables: String!) {
|
||||
createUserEnvironment(name: $name, variables: $variables) {
|
||||
id
|
||||
userUid
|
||||
name
|
||||
variables
|
||||
isGlobal
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
mutation CreateUserGlobalEnvironment($variables: String!) {
|
||||
createUserGlobalEnvironment(variables: $variables) {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
mutation DeleteUserEnvironment($id: ID!) {
|
||||
deleteUserEnvironment(id: $id)
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
mutation UpdateUserEnvironment($id: ID!, $name: String!, $variables: String!) {
|
||||
updateUserEnvironment(id: $id, name: $name, variables: $variables) {
|
||||
id
|
||||
userUid
|
||||
name
|
||||
variables
|
||||
isGlobal
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
mutation CreateUserEnvironment($name: String!, $variables: String!) {
|
||||
createUserEnvironment(name: $name, variables: $variables) {
|
||||
id
|
||||
userUid
|
||||
name
|
||||
variables
|
||||
isGlobal
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
query GetGlobalEnvironments {
|
||||
me {
|
||||
globalEnvironments {
|
||||
id
|
||||
isGlobal
|
||||
name
|
||||
userUid
|
||||
variables
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
query GetUserEnvironments {
|
||||
me {
|
||||
environments {
|
||||
id
|
||||
isGlobal
|
||||
name
|
||||
userUid
|
||||
variables
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
subscription UserEnvironmentCreated {
|
||||
userEnvironmentCreated {
|
||||
id
|
||||
isGlobal
|
||||
name
|
||||
userUid
|
||||
variables
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
subscription UserEnvironmentDeleted {
|
||||
userEnvironmentDeleted {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
subscription UserEnvironmentUpdated {
|
||||
userEnvironmentUpdated {
|
||||
id
|
||||
userUid
|
||||
name
|
||||
variables
|
||||
isGlobal
|
||||
}
|
||||
}
|
||||
101
packages/hoppscotch-selfhost-web/src/lib/sync/index.ts
Normal file
101
packages/hoppscotch-selfhost-web/src/lib/sync/index.ts
Normal file
@@ -0,0 +1,101 @@
|
||||
import { Observable } from "rxjs"
|
||||
import DispatchingStore from "@hoppscotch/common/newstore/DispatchingStore"
|
||||
|
||||
export type DispatchersOf<T extends DispatchingStore<any, any>> =
|
||||
T extends DispatchingStore<any, infer U>
|
||||
? U extends Record<infer D, any>
|
||||
? D
|
||||
: never
|
||||
: never
|
||||
|
||||
export type StoreSyncDefinitionOf<T extends DispatchingStore<any, any>> = {
|
||||
[x in DispatchersOf<T>]?: T extends DispatchingStore<any, infer U>
|
||||
? U extends Record<x, any>
|
||||
? U[x] extends (x: any, y: infer Y) => any
|
||||
? (payload: Y) => void
|
||||
: never
|
||||
: never
|
||||
: never
|
||||
}
|
||||
|
||||
let _isRunningDispatchWithoutSyncing = true
|
||||
|
||||
export function runDispatchWithOutSyncing(func: () => void) {
|
||||
_isRunningDispatchWithoutSyncing = false
|
||||
func()
|
||||
_isRunningDispatchWithoutSyncing = true
|
||||
}
|
||||
|
||||
export const getSyncInitFunction = <T extends DispatchingStore<any, any>>(
|
||||
store: T,
|
||||
storeSyncDefinition: StoreSyncDefinitionOf<T>,
|
||||
shouldSyncValue: () => boolean,
|
||||
shouldSyncObservable: Observable<boolean>
|
||||
) => {
|
||||
let startSubscriptions: () => () => void | undefined
|
||||
let stopSubscriptions: () => void | undefined
|
||||
|
||||
let oldSyncStatus = shouldSyncValue()
|
||||
|
||||
// Start and stop the subscriptions according to the sync settings from profile
|
||||
shouldSyncObservable.subscribe((newSyncStatus) => {
|
||||
if (oldSyncStatus === true && newSyncStatus === false) {
|
||||
stopListeningToSubscriptions()
|
||||
} else if (oldSyncStatus === false && newSyncStatus === true) {
|
||||
startListeningToSubscriptions()
|
||||
}
|
||||
|
||||
oldSyncStatus = newSyncStatus
|
||||
})
|
||||
|
||||
function startStoreSync() {
|
||||
store.dispatches$.subscribe((actionParams) => {
|
||||
// typescript cannot understand that the dispatcher can be the index, so casting to any
|
||||
if ((storeSyncDefinition as any)[actionParams.dispatcher]) {
|
||||
const dispatcher = actionParams.dispatcher
|
||||
const payload = actionParams.payload
|
||||
|
||||
const operationMapperFunction = (storeSyncDefinition as any)[dispatcher]
|
||||
|
||||
if (
|
||||
operationMapperFunction &&
|
||||
_isRunningDispatchWithoutSyncing &&
|
||||
shouldSyncValue()
|
||||
) {
|
||||
operationMapperFunction(payload)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function setupSubscriptions(func: () => () => void) {
|
||||
startSubscriptions = func
|
||||
}
|
||||
|
||||
function startListeningToSubscriptions() {
|
||||
if (!startSubscriptions) {
|
||||
console.warn(
|
||||
"We don't have a function to start subscriptions. Please use `setupSubscriptions` to setup the start function."
|
||||
)
|
||||
}
|
||||
|
||||
startSubscriptions()
|
||||
}
|
||||
|
||||
function stopListeningToSubscriptions() {
|
||||
if (!stopSubscriptions) {
|
||||
console.warn(
|
||||
"We don't have a function to unsubscribe. make sure you return the unsubscribe function when using setupSubscriptions"
|
||||
)
|
||||
}
|
||||
|
||||
stopSubscriptions()
|
||||
}
|
||||
|
||||
return {
|
||||
startStoreSync,
|
||||
setupSubscriptions,
|
||||
startListeningToSubscriptions,
|
||||
stopListeningToSubscriptions,
|
||||
}
|
||||
}
|
||||
33
packages/hoppscotch-selfhost-web/src/lib/sync/mapper.ts
Normal file
33
packages/hoppscotch-selfhost-web/src/lib/sync/mapper.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
export const createMapper = () => {
|
||||
const indexBackendIDMap = new Map<number, string | undefined>()
|
||||
const backendIdIndexMap = new Map<string, number | undefined>()
|
||||
|
||||
return {
|
||||
addEntry(localIndex: number, backendId: string) {
|
||||
indexBackendIDMap.set(localIndex, backendId)
|
||||
backendIdIndexMap.set(backendId, localIndex)
|
||||
},
|
||||
getValue() {
|
||||
return indexBackendIDMap
|
||||
},
|
||||
getBackendIdByIndex(localIndex: number) {
|
||||
return indexBackendIDMap.get(localIndex)
|
||||
},
|
||||
getIndexByBackendId(backendId: string) {
|
||||
return backendIdIndexMap.get(backendId)
|
||||
},
|
||||
removeEntry(backendId?: string, index?: number) {
|
||||
if (backendId) {
|
||||
const index = backendIdIndexMap.get(backendId)
|
||||
|
||||
backendIdIndexMap.delete(backendId)
|
||||
index && indexBackendIDMap.delete(index)
|
||||
} else if (index) {
|
||||
const backendId = indexBackendIDMap.get(index)
|
||||
|
||||
indexBackendIDMap.delete(index)
|
||||
backendId && backendIdIndexMap.delete(backendId)
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,10 @@
|
||||
import { createHoppApp } from "@hoppscotch/common"
|
||||
import { def as authDef } from "./platform/auth"
|
||||
import { def as environmentsDef } from "./platform/environments/environments.platform"
|
||||
|
||||
createHoppApp("#app", {
|
||||
auth: authDef,
|
||||
sync: {
|
||||
environments: environmentsDef,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
import {
|
||||
runMutation,
|
||||
runGQLQuery,
|
||||
runGQLSubscription,
|
||||
} from "@hoppscotch/common/helpers/backend/GQLClient"
|
||||
|
||||
import {
|
||||
CreateUserEnvironmentDocument,
|
||||
CreateUserEnvironmentMutation,
|
||||
CreateUserEnvironmentMutationVariables,
|
||||
UpdateUserEnvironmentMutation,
|
||||
UpdateUserEnvironmentMutationVariables,
|
||||
UpdateUserEnvironmentDocument,
|
||||
DeleteUserEnvironmentMutation,
|
||||
DeleteUserEnvironmentMutationVariables,
|
||||
DeleteUserEnvironmentDocument,
|
||||
ClearGlobalEnvironmentsMutation,
|
||||
ClearGlobalEnvironmentsMutationVariables,
|
||||
ClearGlobalEnvironmentsDocument,
|
||||
CreateUserGlobalEnvironmentMutation,
|
||||
CreateUserGlobalEnvironmentMutationVariables,
|
||||
CreateUserGlobalEnvironmentDocument,
|
||||
GetGlobalEnvironmentsDocument,
|
||||
GetGlobalEnvironmentsQueryVariables,
|
||||
GetGlobalEnvironmentsQuery,
|
||||
GetUserEnvironmentsDocument,
|
||||
UserEnvironmentCreatedDocument,
|
||||
UserEnvironmentUpdatedDocument,
|
||||
UserEnvironmentDeletedDocument,
|
||||
} from "./../../api/generated/graphql"
|
||||
|
||||
import { Environment } from "@hoppscotch/data"
|
||||
|
||||
export const createUserEnvironment = (name: string, variables: string) =>
|
||||
runMutation<
|
||||
CreateUserEnvironmentMutation,
|
||||
CreateUserEnvironmentMutationVariables,
|
||||
""
|
||||
>(CreateUserEnvironmentDocument, {
|
||||
name,
|
||||
variables,
|
||||
})()
|
||||
|
||||
export const updateUserEnvironment = (
|
||||
id: string,
|
||||
{ name, variables }: Environment
|
||||
) =>
|
||||
runMutation<
|
||||
UpdateUserEnvironmentMutation,
|
||||
UpdateUserEnvironmentMutationVariables,
|
||||
""
|
||||
>(UpdateUserEnvironmentDocument, {
|
||||
id,
|
||||
name,
|
||||
variables: JSON.stringify(variables),
|
||||
})
|
||||
|
||||
export const deleteUserEnvironment = (id: string) =>
|
||||
runMutation<
|
||||
DeleteUserEnvironmentMutation,
|
||||
DeleteUserEnvironmentMutationVariables,
|
||||
""
|
||||
>(DeleteUserEnvironmentDocument, {
|
||||
id,
|
||||
})
|
||||
|
||||
export const clearGlobalEnvironmentVariables = (id: string) =>
|
||||
runMutation<
|
||||
ClearGlobalEnvironmentsMutation,
|
||||
ClearGlobalEnvironmentsMutationVariables,
|
||||
""
|
||||
>(ClearGlobalEnvironmentsDocument, {
|
||||
id,
|
||||
})()
|
||||
|
||||
export const getUserEnvironments = () =>
|
||||
runGQLQuery({
|
||||
query: GetUserEnvironmentsDocument,
|
||||
})
|
||||
|
||||
export const getGlobalEnvironments = () =>
|
||||
runGQLQuery<
|
||||
GetGlobalEnvironmentsQuery,
|
||||
GetGlobalEnvironmentsQueryVariables,
|
||||
"user_environment/user_env_does_not_exists"
|
||||
>({
|
||||
query: GetGlobalEnvironmentsDocument,
|
||||
})
|
||||
|
||||
export const createUserGlobalEnvironment = (variables: string) =>
|
||||
runMutation<
|
||||
CreateUserGlobalEnvironmentMutation,
|
||||
CreateUserGlobalEnvironmentMutationVariables,
|
||||
""
|
||||
>(CreateUserGlobalEnvironmentDocument, {
|
||||
variables,
|
||||
})()
|
||||
|
||||
export const runUserEnvironmentCreatedSubscription = () =>
|
||||
runGQLSubscription({
|
||||
query: UserEnvironmentCreatedDocument,
|
||||
})
|
||||
|
||||
export const runUserEnvironmentUpdatedSubscription = () =>
|
||||
runGQLSubscription({
|
||||
query: UserEnvironmentUpdatedDocument,
|
||||
})
|
||||
|
||||
export const runUserEnvironmentDeletedSubscription = () =>
|
||||
runGQLSubscription({
|
||||
query: UserEnvironmentDeletedDocument,
|
||||
})
|
||||
@@ -0,0 +1,219 @@
|
||||
import { authEvents$, def as platformAuth } from "@platform/auth"
|
||||
import {
|
||||
createEnvironment,
|
||||
deleteEnvironment,
|
||||
replaceEnvironments,
|
||||
setGlobalEnvVariables,
|
||||
updateEnvironment,
|
||||
} from "@hoppscotch/common/newstore/environments"
|
||||
|
||||
import { EnvironmentsPlatformDef } from "@hoppscotch/common/src/platform/environments"
|
||||
import { runGQLSubscription } from "@hoppscotch/common/helpers/backend/GQLClient"
|
||||
|
||||
import {
|
||||
environmentsMapper,
|
||||
globalEnvironmentMapper,
|
||||
environnmentsSyncer,
|
||||
} from "@platform/environments/environments.sync"
|
||||
|
||||
import * as E from "fp-ts/Either"
|
||||
import { runDispatchWithOutSyncing } from "@lib/sync"
|
||||
import {
|
||||
createUserGlobalEnvironment,
|
||||
getGlobalEnvironments,
|
||||
getUserEnvironments,
|
||||
runUserEnvironmentCreatedSubscription,
|
||||
runUserEnvironmentDeletedSubscription,
|
||||
runUserEnvironmentUpdatedSubscription,
|
||||
} from "@platform/environments/environments.api"
|
||||
|
||||
export function initEnvironmentsSync() {
|
||||
const currentUser$ = platformAuth.getCurrentUserStream()
|
||||
|
||||
environnmentsSyncer.startStoreSync()
|
||||
environnmentsSyncer.setupSubscriptions(setupSubscriptions)
|
||||
|
||||
currentUser$.subscribe(async (user) => {
|
||||
if (user) {
|
||||
await loadAllEnvironments()
|
||||
}
|
||||
})
|
||||
|
||||
authEvents$.subscribe((event) => {
|
||||
if (event.event == "login" || event.event == "token_refresh") {
|
||||
environnmentsSyncer.startListeningToSubscriptions()
|
||||
}
|
||||
|
||||
if (event.event == "logout") {
|
||||
environnmentsSyncer.stopListeningToSubscriptions()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export const def: EnvironmentsPlatformDef = {
|
||||
initEnvironmentsSync,
|
||||
}
|
||||
|
||||
function setupSubscriptions() {
|
||||
let subs: ReturnType<typeof runGQLSubscription>[1][] = []
|
||||
|
||||
const userEnvironmentCreatedSub = setupUserEnvironmentCreatedSubscription()
|
||||
const userEnvironmentUpdatedSub = setupUserEnvironmentUpdatedSubscription()
|
||||
const userEnvironmentDeletedSub = setupUserEnvironmentDeletedSubscription()
|
||||
|
||||
subs = [
|
||||
userEnvironmentCreatedSub,
|
||||
userEnvironmentUpdatedSub,
|
||||
userEnvironmentDeletedSub,
|
||||
]
|
||||
|
||||
return () => {
|
||||
subs.forEach((sub) => sub.unsubscribe())
|
||||
}
|
||||
}
|
||||
|
||||
async function loadUserEnvironments() {
|
||||
const res = await getUserEnvironments()
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const environments = res.right.me.environments
|
||||
|
||||
if (environments.length > 0) {
|
||||
environments.forEach((env, index) => {
|
||||
environmentsMapper.addEntry(index, env.id)
|
||||
})
|
||||
|
||||
runDispatchWithOutSyncing(() => {
|
||||
replaceEnvironments(
|
||||
environments.map(({ id, variables, name }) => ({
|
||||
id,
|
||||
name,
|
||||
variables: JSON.parse(variables),
|
||||
}))
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function loadGlobalEnvironments() {
|
||||
const res = await getGlobalEnvironments()
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const globalEnv = res.right.me.globalEnvironments
|
||||
|
||||
if (globalEnv) {
|
||||
runDispatchWithOutSyncing(() => {
|
||||
setGlobalEnvVariables(JSON.parse(globalEnv.variables))
|
||||
})
|
||||
globalEnvironmentMapper.addEntry(0, globalEnv.id)
|
||||
}
|
||||
} else if (res.left.error == "user_environment/user_env_does_not_exists") {
|
||||
const res = await createUserGlobalEnvironment(JSON.stringify([]))
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const backendId = res.right.createUserGlobalEnvironment.id
|
||||
globalEnvironmentMapper.addEntry(0, backendId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function loadAllEnvironments() {
|
||||
await loadUserEnvironments()
|
||||
await loadGlobalEnvironments()
|
||||
}
|
||||
|
||||
function setupUserEnvironmentCreatedSubscription() {
|
||||
const [userEnvironmentCreated$, userEnvironmentCreatedSub] =
|
||||
runUserEnvironmentCreatedSubscription()
|
||||
|
||||
userEnvironmentCreated$.subscribe((res) => {
|
||||
console.group("Subscription: User Environment Created")
|
||||
console.log(res)
|
||||
console.groupEnd()
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const { name, variables } = res.right.userEnvironmentCreated
|
||||
|
||||
if (name) {
|
||||
runDispatchWithOutSyncing(() => {
|
||||
createEnvironment(name, JSON.parse(variables))
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return userEnvironmentCreatedSub
|
||||
}
|
||||
|
||||
function setupUserEnvironmentUpdatedSubscription() {
|
||||
const [userEnvironmentUpdated$, userEnvironmentUpdatedSub] =
|
||||
runUserEnvironmentUpdatedSubscription()
|
||||
|
||||
userEnvironmentUpdated$.subscribe((res) => {
|
||||
console.group("Subscription: User Environment Updated")
|
||||
console.log(res)
|
||||
console.groupEnd()
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const { name, variables, id, isGlobal } = res.right.userEnvironmentUpdated
|
||||
|
||||
// handle the case for global environments
|
||||
if (isGlobal) {
|
||||
runDispatchWithOutSyncing(() => {
|
||||
setGlobalEnvVariables(JSON.parse(variables))
|
||||
})
|
||||
} else {
|
||||
// handle the case for normal environments
|
||||
|
||||
const localIndex = environmentsMapper.getIndexByBackendId(id)
|
||||
|
||||
if (localIndex && name) {
|
||||
runDispatchWithOutSyncing(() => {
|
||||
updateEnvironment(localIndex, {
|
||||
name,
|
||||
variables: JSON.parse(variables),
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return userEnvironmentUpdatedSub
|
||||
}
|
||||
|
||||
function setupUserEnvironmentDeletedSubscription() {
|
||||
console.log("setting up user environments for user deleted")
|
||||
|
||||
const [userEnvironmentDeleted$, userEnvironmentDeletedSub] =
|
||||
runUserEnvironmentDeletedSubscription()
|
||||
|
||||
userEnvironmentDeleted$.subscribe((res) => {
|
||||
console.group("Subscription: User Environment Deleted")
|
||||
console.log(res)
|
||||
console.groupEnd()
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const { id } = res.right.userEnvironmentDeleted
|
||||
|
||||
const localIndex = environmentsMapper.getIndexByBackendId(id)
|
||||
|
||||
if (localIndex) {
|
||||
runDispatchWithOutSyncing(() => {
|
||||
deleteEnvironment(localIndex)
|
||||
})
|
||||
|
||||
environmentsMapper.removeEntry(id)
|
||||
} else {
|
||||
console.log("could not find the localIndex")
|
||||
// TODO:
|
||||
// handle order of events
|
||||
// eg: update coming before create
|
||||
// skipping for this release
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return userEnvironmentDeletedSub
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
import { environmentsStore } from "@hoppscotch/common/newstore/environments"
|
||||
import {
|
||||
getSettingSubject,
|
||||
settingsStore,
|
||||
} from "@hoppscotch/common/newstore/settings"
|
||||
|
||||
import { getSyncInitFunction } from "../../lib/sync"
|
||||
|
||||
import * as E from "fp-ts/Either"
|
||||
|
||||
import { StoreSyncDefinitionOf } from "../../lib/sync"
|
||||
import { createMapper } from "../../lib/sync/mapper"
|
||||
import {
|
||||
clearGlobalEnvironmentVariables,
|
||||
createUserEnvironment,
|
||||
deleteUserEnvironment,
|
||||
updateUserEnvironment,
|
||||
} from "./environments.api"
|
||||
|
||||
export const environmentsMapper = createMapper()
|
||||
export const globalEnvironmentMapper = createMapper()
|
||||
|
||||
export const storeSyncDefinition: StoreSyncDefinitionOf<
|
||||
typeof environmentsStore
|
||||
> = {
|
||||
async createEnvironment({ name, variables }) {
|
||||
const lastCreatedEnvIndex = environmentsStore.value.environments.length - 1
|
||||
const res = await createUserEnvironment(name, JSON.stringify(variables))
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const id = res.right.createUserEnvironment.id
|
||||
environmentsMapper.addEntry(lastCreatedEnvIndex, id)
|
||||
}
|
||||
},
|
||||
async appendEnvironments({ envs }) {
|
||||
const appendListLength = envs.length
|
||||
let appendStart =
|
||||
environmentsStore.value.environments.length - appendListLength - 1
|
||||
|
||||
envs.forEach((env) => {
|
||||
const envId = ++appendStart
|
||||
|
||||
;(async function () {
|
||||
const res = await createUserEnvironment(
|
||||
env.name,
|
||||
JSON.stringify(env.variables)
|
||||
)
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const id = res.right.createUserEnvironment.id
|
||||
environmentsMapper.addEntry(envId, id)
|
||||
}
|
||||
})()
|
||||
})
|
||||
},
|
||||
async duplicateEnvironment({ envIndex }) {
|
||||
const environmentToDuplicate = environmentsStore.value.environments.find(
|
||||
(_, index) => index === envIndex
|
||||
)
|
||||
|
||||
const lastCreatedEnvIndex = environmentsStore.value.environments.length - 1
|
||||
|
||||
if (environmentToDuplicate) {
|
||||
const res = await createUserEnvironment(
|
||||
environmentToDuplicate?.name,
|
||||
JSON.stringify(environmentToDuplicate?.variables)
|
||||
)
|
||||
|
||||
if (E.isRight(res)) {
|
||||
const id = res.right.createUserEnvironment.id
|
||||
environmentsMapper.addEntry(lastCreatedEnvIndex, id)
|
||||
}
|
||||
}
|
||||
},
|
||||
updateEnvironment({ envIndex, updatedEnv }) {
|
||||
const backendId = environmentsMapper.getBackendIdByIndex(envIndex)
|
||||
console.log(environmentsMapper)
|
||||
|
||||
if (backendId) {
|
||||
updateUserEnvironment(backendId, updatedEnv)()
|
||||
}
|
||||
},
|
||||
async deleteEnvironment({ envIndex }) {
|
||||
const backendId = environmentsMapper.getBackendIdByIndex(envIndex)
|
||||
|
||||
if (backendId) {
|
||||
await deleteUserEnvironment(backendId)()
|
||||
environmentsMapper.removeEntry(backendId)
|
||||
}
|
||||
},
|
||||
setGlobalVariables({ entries }) {
|
||||
const backendId = globalEnvironmentMapper.getBackendIdByIndex(0)
|
||||
|
||||
if (backendId) {
|
||||
updateUserEnvironment(backendId, { name: "", variables: entries })()
|
||||
}
|
||||
},
|
||||
clearGlobalVariables() {
|
||||
const backendId = globalEnvironmentMapper.getBackendIdByIndex(0)
|
||||
|
||||
if (backendId) {
|
||||
clearGlobalEnvironmentVariables(backendId)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
export const environnmentsSyncer = getSyncInitFunction(
|
||||
environmentsStore,
|
||||
storeSyncDefinition,
|
||||
() => settingsStore.value.syncEnvironments,
|
||||
getSettingSubject("syncEnvironments")
|
||||
)
|
||||
@@ -14,7 +14,9 @@
|
||||
"noEmit": true,
|
||||
"paths": {
|
||||
"@hoppscotch/common": [ "../hoppscotch-common/src/index.ts" ],
|
||||
"@hoppscotch/common/*": [ "../hoppscotch-common/src/*" ]
|
||||
"@hoppscotch/common/*": [ "../hoppscotch-common/src/*" ],
|
||||
"@platform/*": ["./src/platform/*"],
|
||||
"@lib/*": ["./src/lib/*"],
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@@ -58,7 +58,8 @@ export default defineConfig({
|
||||
"../hoppscotch-common/src/helpers/functional"
|
||||
),
|
||||
"@workers": path.resolve(__dirname, "../hoppscotch-common/src/workers"),
|
||||
|
||||
"@platform": path.resolve(__dirname, "./src/platform"),
|
||||
"@lib": path.resolve(__dirname, "./src/lib"),
|
||||
stream: "stream-browserify",
|
||||
util: "util",
|
||||
},
|
||||
@@ -117,6 +118,11 @@ export default defineConfig({
|
||||
prefix: "icon",
|
||||
customCollections: ["hopp", "auth", "brands"],
|
||||
}),
|
||||
(compName: string) => {
|
||||
if (compName.startsWith("Hopp"))
|
||||
return { name: compName, from: "@hoppscotch/ui" }
|
||||
else return undefined
|
||||
},
|
||||
],
|
||||
types: [
|
||||
{
|
||||
|
||||
316
pnpm-lock.yaml
generated
316
pnpm-lock.yaml
generated
@@ -556,6 +556,14 @@ importers:
|
||||
|
||||
packages/hoppscotch-selfhost-web:
|
||||
specifiers:
|
||||
'@graphql-codegen/add': ^3.2.0
|
||||
'@graphql-codegen/cli': ^2.8.0
|
||||
'@graphql-codegen/typed-document-node': ^2.3.1
|
||||
'@graphql-codegen/typescript': ^2.7.1
|
||||
'@graphql-codegen/typescript-operations': ^2.5.1
|
||||
'@graphql-codegen/typescript-urql-graphcache': ^2.3.1
|
||||
'@graphql-codegen/urql-introspection': ^2.2.0
|
||||
'@graphql-typed-document-node/core': ^3.1.1
|
||||
'@hoppscotch/common': workspace:^
|
||||
'@intlify/vite-plugin-vue-i18n': ^6.0.1
|
||||
'@rushstack/eslint-patch': ^1.1.4
|
||||
@@ -571,6 +579,8 @@ importers:
|
||||
eslint-plugin-prettier: ^4.2.1
|
||||
eslint-plugin-vue: ^9.5.1
|
||||
firebase: ^9.8.4
|
||||
fp-ts: ^2.13.1
|
||||
graphql: ^15.8.0
|
||||
process: ^0.11.10
|
||||
rxjs: ^7.5.5
|
||||
stream-browserify: ^3.0.0
|
||||
@@ -597,6 +607,8 @@ importers:
|
||||
axios: 0.21.4
|
||||
buffer: 6.0.3
|
||||
firebase: 9.8.4
|
||||
fp-ts: 2.13.1
|
||||
graphql: 15.8.0
|
||||
process: 0.11.10
|
||||
rxjs: 7.6.0
|
||||
stream-browserify: 3.0.0
|
||||
@@ -604,6 +616,14 @@ importers:
|
||||
vue: 3.2.45
|
||||
workbox-window: 6.5.4
|
||||
devDependencies:
|
||||
'@graphql-codegen/add': 3.2.0_graphql@15.8.0
|
||||
'@graphql-codegen/cli': 2.8.0_ebknmq4ki2y6h7wwya2jsn57ky
|
||||
'@graphql-codegen/typed-document-node': 2.3.1_graphql@15.8.0
|
||||
'@graphql-codegen/typescript': 2.7.1_graphql@15.8.0
|
||||
'@graphql-codegen/typescript-operations': 2.5.1_graphql@15.8.0
|
||||
'@graphql-codegen/typescript-urql-graphcache': 2.3.1_graphql@15.8.0
|
||||
'@graphql-codegen/urql-introspection': 2.2.0_graphql@15.8.0
|
||||
'@graphql-typed-document-node/core': 3.1.1_graphql@15.8.0
|
||||
'@intlify/vite-plugin-vue-i18n': 6.0.1_vite@3.2.4
|
||||
'@rushstack/eslint-patch': 1.1.4
|
||||
'@typescript-eslint/eslint-plugin': 5.45.0_yjegg5cyoezm3fzsmuszzhetym
|
||||
@@ -1446,6 +1466,11 @@ packages:
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/@babel/helper-environment-visitor/7.18.9:
|
||||
resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/@babel/helper-explode-assignable-expression/7.18.6:
|
||||
resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -1461,6 +1486,14 @@ packages:
|
||||
'@babel/types': 7.18.7
|
||||
dev: true
|
||||
|
||||
/@babel/helper-function-name/7.21.0:
|
||||
resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/template': 7.20.7
|
||||
'@babel/types': 7.21.2
|
||||
dev: true
|
||||
|
||||
/@babel/helper-hoist-variables/7.18.6:
|
||||
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -1629,6 +1662,14 @@ packages:
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/parser/7.21.2:
|
||||
resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@babel/types': 7.21.2
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.18.6:
|
||||
resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -2574,6 +2615,24 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/traverse/7.21.2:
|
||||
resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.18.6
|
||||
'@babel/generator': 7.21.1
|
||||
'@babel/helper-environment-visitor': 7.18.9
|
||||
'@babel/helper-function-name': 7.21.0
|
||||
'@babel/helper-hoist-variables': 7.18.6
|
||||
'@babel/helper-split-export-declaration': 7.18.6
|
||||
'@babel/parser': 7.21.2
|
||||
'@babel/types': 7.21.2
|
||||
debug: 4.3.4
|
||||
globals: 11.12.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/types/7.18.7:
|
||||
resolution: {integrity: sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -2939,6 +2998,21 @@ packages:
|
||||
resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==}
|
||||
dev: true
|
||||
|
||||
/@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_qkc3vo3nzqm3fls2mklcv7vbki:
|
||||
resolution: {integrity: sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
peerDependencies:
|
||||
cosmiconfig: '>=6'
|
||||
dependencies:
|
||||
cosmiconfig: 7.0.1
|
||||
lodash.get: 4.4.2
|
||||
make-error: 1.3.6
|
||||
ts-node: 9.1.1_typescript@4.9.3
|
||||
tslib: 2.4.0
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
dev: true
|
||||
|
||||
/@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_zmjss6mecb4soo3dpdlecld3xa:
|
||||
resolution: {integrity: sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
@@ -3517,6 +3591,53 @@ packages:
|
||||
tslib: 2.5.0
|
||||
dev: true
|
||||
|
||||
/@graphql-codegen/cli/2.8.0_ebknmq4ki2y6h7wwya2jsn57ky:
|
||||
resolution: {integrity: sha512-qpLnfWLd7M6ISlXN5c9WPwUE9iZkzS6996hwlvKcYpyGWj10ZtDcEQpH+NFoNjNP3Bu+QOSt6gSnpnCnajwadA==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
|
||||
dependencies:
|
||||
'@graphql-codegen/core': 2.6.0_graphql@15.8.0
|
||||
'@graphql-codegen/plugin-helpers': 2.5.0_graphql@15.8.0
|
||||
'@graphql-tools/apollo-engine-loader': 7.3.1_graphql@15.8.0
|
||||
'@graphql-tools/code-file-loader': 7.3.0_graphql@15.8.0
|
||||
'@graphql-tools/git-loader': 7.2.0_graphql@15.8.0
|
||||
'@graphql-tools/github-loader': 7.3.1_graphql@15.8.0
|
||||
'@graphql-tools/graphql-file-loader': 7.4.0_graphql@15.8.0
|
||||
'@graphql-tools/json-file-loader': 7.4.0_graphql@15.8.0
|
||||
'@graphql-tools/load': 7.7.0_graphql@15.8.0
|
||||
'@graphql-tools/prisma-loader': 7.2.2_graphql@15.8.0
|
||||
'@graphql-tools/url-loader': 7.12.1_graphql@15.8.0
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
ansi-escapes: 4.3.2
|
||||
chalk: 4.1.2
|
||||
chokidar: 3.5.3
|
||||
cosmiconfig: 7.0.1
|
||||
cross-undici-fetch: 0.4.11
|
||||
debounce: 1.2.1
|
||||
detect-indent: 6.1.0
|
||||
graphql: 15.8.0
|
||||
graphql-config: 4.3.1_ebknmq4ki2y6h7wwya2jsn57ky
|
||||
inquirer: 8.2.4
|
||||
is-glob: 4.0.3
|
||||
json-to-pretty-yaml: 1.2.2
|
||||
listr2: 4.0.5
|
||||
log-symbols: 4.1.0
|
||||
mkdirp: 1.0.4
|
||||
string-env-interpolation: 1.0.1
|
||||
ts-log: 2.2.4
|
||||
yaml: 1.10.2
|
||||
yargs: 17.5.1
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- bufferutil
|
||||
- encoding
|
||||
- enquirer
|
||||
- supports-color
|
||||
- typescript
|
||||
- utf-8-validate
|
||||
dev: true
|
||||
|
||||
/@graphql-codegen/cli/2.8.0_h5eoywvcjsa4emif44kddonyyu:
|
||||
resolution: {integrity: sha512-qpLnfWLd7M6ISlXN5c9WPwUE9iZkzS6996hwlvKcYpyGWj10ZtDcEQpH+NFoNjNP3Bu+QOSt6gSnpnCnajwadA==}
|
||||
hasBin: true
|
||||
@@ -3653,7 +3774,7 @@ packages:
|
||||
'@graphql-tools/schema': 8.5.0_graphql@15.8.0
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/@graphql-codegen/core/3.1.0_graphql@16.6.0:
|
||||
@@ -3921,6 +4042,24 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@graphql-codegen/typescript-urql-graphcache/2.3.1_graphql@15.8.0:
|
||||
resolution: {integrity: sha512-Q7bHSRqZ3Lg4C1AlCRRgVQL4jQTSnKbyO1E7L92126fTz8vfCl9x1UKCu18/1qCP71KkqtC/ipAhyNAlq5/soQ==}
|
||||
peerDependencies:
|
||||
'@urql/exchange-graphcache': ^4.1.1
|
||||
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
|
||||
graphql-tag: ^2.0.0
|
||||
dependencies:
|
||||
'@graphql-codegen/plugin-helpers': 2.5.0_graphql@15.8.0
|
||||
'@graphql-codegen/visitor-plugin-common': 2.11.1_graphql@15.8.0
|
||||
auto-bind: 4.0.0
|
||||
change-case-all: 1.0.14
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@graphql-codegen/typescript/2.7.1_graphql@15.8.0:
|
||||
resolution: {integrity: sha512-qF4SBMgBnLcegba2s9+zC3NwgRhU0Kv+eS8kl9G5ldEHx9Bpu2tft+lk6fjqqhExDzJT+MEOU3Ecog3BzL2R1g==}
|
||||
peerDependencies:
|
||||
@@ -4084,7 +4223,7 @@ packages:
|
||||
cross-undici-fetch: 0.4.11
|
||||
graphql: 15.8.0
|
||||
sync-fetch: 0.4.1
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
dev: true
|
||||
@@ -4112,7 +4251,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
dataloader: 2.1.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
value-or-promise: 1.0.11
|
||||
|
||||
/@graphql-tools/batch-execute/8.5.18_graphql@16.6.0:
|
||||
@@ -4136,7 +4275,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
globby: 11.1.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
unixify: 1.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -4168,7 +4307,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
dataloader: 2.1.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
value-or-promise: 1.0.11
|
||||
|
||||
/@graphql-tools/delegate/9.0.28_graphql@16.6.0:
|
||||
@@ -4271,7 +4410,7 @@ packages:
|
||||
graphql: 15.8.0
|
||||
is-glob: 4.0.3
|
||||
micromatch: 4.0.5
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
unixify: 1.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -4304,7 +4443,7 @@ packages:
|
||||
cross-undici-fetch: 0.4.11
|
||||
graphql: 15.8.0
|
||||
sync-fetch: 0.4.1
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
@@ -4337,7 +4476,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
globby: 11.1.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
unixify: 1.0.0
|
||||
|
||||
/@graphql-tools/graphql-file-loader/7.5.16_graphql@16.6.0:
|
||||
@@ -4363,7 +4502,7 @@ packages:
|
||||
'@babel/types': 7.18.7
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@@ -4393,7 +4532,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
graphql: 15.8.0
|
||||
resolve-from: 5.0.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/@graphql-tools/import/6.7.17_graphql@16.6.0:
|
||||
resolution: {integrity: sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==}
|
||||
@@ -4414,7 +4553,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
globby: 11.1.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
unixify: 1.0.0
|
||||
|
||||
/@graphql-tools/json-file-loader/7.4.17_graphql@16.6.0:
|
||||
@@ -4438,7 +4577,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
graphql: 15.8.0
|
||||
p-limit: 3.1.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/@graphql-tools/load/7.8.12_graphql@16.6.0:
|
||||
resolution: {integrity: sha512-JwxgNS2c6i6oIdKttcbXns/lpKiyN7c6/MkkrJ9x2QE9rXk5HOhSJxRvPmOueCuAin1542xUrcDRGBXJ7thSig==}
|
||||
@@ -4530,7 +4669,7 @@ packages:
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
'@types/js-yaml': 4.0.5
|
||||
'@types/json-stable-stringify': 1.0.34
|
||||
'@types/jsonwebtoken': 8.5.8
|
||||
'@types/jsonwebtoken': 8.5.9
|
||||
chalk: 4.1.2
|
||||
debug: 4.3.4
|
||||
dotenv: 16.0.1
|
||||
@@ -4545,7 +4684,7 @@ packages:
|
||||
lodash: 4.17.21
|
||||
replaceall: 0.1.6
|
||||
scuid: 1.1.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
yaml-ast-parser: 0.0.43
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
@@ -4681,7 +4820,7 @@ packages:
|
||||
isomorphic-ws: 5.0.0_ws@8.12.1
|
||||
meros: 1.2.0
|
||||
sync-fetch: 0.4.1
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
value-or-promise: 1.0.11
|
||||
ws: 8.12.1
|
||||
transitivePeerDependencies:
|
||||
@@ -4779,7 +4918,7 @@ packages:
|
||||
'@graphql-tools/schema': 8.5.0_graphql@15.8.0
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
graphql: 15.8.0
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
value-or-promise: 1.0.11
|
||||
|
||||
/@graphql-tools/wrap/9.3.7_graphql@16.6.0:
|
||||
@@ -4995,8 +5134,8 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@intlify/bundle-utils/4.0.0:
|
||||
resolution: {integrity: sha512-klXrYT9VXyKEXsD6UY3pShg0O5MPC07n0TZ5RrSs5ry6T1eZVolIFGJi9c3qcDrh1qjJxgikRnPBmD7qGDqbjw==}
|
||||
/@intlify/bundle-utils/5.0.1:
|
||||
resolution: {integrity: sha512-qF6reZHDm+h7jUId2npzwNZYCvrUcr0bAYnJXgiShKBxTFpxOq7nrqy7UrRWj8M2w4GTCJczeQZmQGFxc/GdFA==}
|
||||
engines: {node: '>= 12'}
|
||||
peerDependencies:
|
||||
petite-vue-i18n: '*'
|
||||
@@ -5007,15 +5146,19 @@ packages:
|
||||
vue-i18n:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.2
|
||||
'@babel/traverse': 7.21.2
|
||||
'@intlify/message-compiler': 9.3.0-beta.16
|
||||
'@intlify/shared': 9.3.0-beta.16
|
||||
jsonc-eslint-parser: 1.4.1
|
||||
source-map: 0.6.1
|
||||
yaml-eslint-parser: 0.3.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@intlify/bundle-utils/4.0.0_vue-i18n@9.2.2:
|
||||
resolution: {integrity: sha512-klXrYT9VXyKEXsD6UY3pShg0O5MPC07n0TZ5RrSs5ry6T1eZVolIFGJi9c3qcDrh1qjJxgikRnPBmD7qGDqbjw==}
|
||||
/@intlify/bundle-utils/5.0.1_vue-i18n@9.2.2:
|
||||
resolution: {integrity: sha512-qF6reZHDm+h7jUId2npzwNZYCvrUcr0bAYnJXgiShKBxTFpxOq7nrqy7UrRWj8M2w4GTCJczeQZmQGFxc/GdFA==}
|
||||
engines: {node: '>= 12'}
|
||||
peerDependencies:
|
||||
petite-vue-i18n: '*'
|
||||
@@ -5026,12 +5169,16 @@ packages:
|
||||
vue-i18n:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.2
|
||||
'@babel/traverse': 7.21.2
|
||||
'@intlify/message-compiler': 9.3.0-beta.16
|
||||
'@intlify/shared': 9.3.0-beta.16
|
||||
jsonc-eslint-parser: 1.4.1
|
||||
source-map: 0.6.1
|
||||
vue-i18n: 9.2.2_vue@3.2.37
|
||||
yaml-eslint-parser: 0.3.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@intlify/core-base/9.2.2:
|
||||
@@ -5088,7 +5235,7 @@ packages:
|
||||
vue-i18n:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@intlify/bundle-utils': 4.0.0_vue-i18n@9.2.2
|
||||
'@intlify/bundle-utils': 5.0.1_vue-i18n@9.2.2
|
||||
'@intlify/shared': 9.3.0-beta.16
|
||||
'@rollup/pluginutils': 4.2.1
|
||||
debug: 4.3.4
|
||||
@@ -5115,13 +5262,13 @@ packages:
|
||||
vue-i18n:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@intlify/bundle-utils': 4.0.0
|
||||
'@intlify/bundle-utils': 5.0.1
|
||||
'@intlify/shared': 9.3.0-beta.16
|
||||
'@rollup/pluginutils': 4.2.1
|
||||
debug: 4.3.4
|
||||
fast-glob: 3.2.11
|
||||
source-map: 0.6.1
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@@ -6849,12 +6996,6 @@ packages:
|
||||
resolution: {integrity: sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==}
|
||||
dev: true
|
||||
|
||||
/@types/jsonwebtoken/8.5.8:
|
||||
resolution: {integrity: sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==}
|
||||
dependencies:
|
||||
'@types/node': 17.0.45
|
||||
dev: true
|
||||
|
||||
/@types/jsonwebtoken/8.5.9:
|
||||
resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==}
|
||||
dependencies:
|
||||
@@ -7093,7 +7234,7 @@ packages:
|
||||
/@types/ws/8.5.3:
|
||||
resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==}
|
||||
dependencies:
|
||||
'@types/node': 17.0.45
|
||||
'@types/node': 18.11.10
|
||||
|
||||
/@types/yargs-parser/21.0.0:
|
||||
resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
|
||||
@@ -7836,7 +7977,7 @@ packages:
|
||||
magic-string: 0.26.7
|
||||
regenerator-runtime: 0.13.10
|
||||
systemjs: 6.13.0
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
|
||||
/@vitejs/plugin-vue/1.10.2_vite@2.9.15:
|
||||
resolution: {integrity: sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==}
|
||||
@@ -7865,7 +8006,7 @@ packages:
|
||||
vite: ^3.0.0
|
||||
vue: ^3.2.25
|
||||
dependencies:
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
vue: 3.2.45
|
||||
dev: true
|
||||
|
||||
@@ -8685,7 +8826,7 @@ packages:
|
||||
hasBin: true
|
||||
|
||||
/after/0.8.2:
|
||||
resolution: {integrity: sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=}
|
||||
resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==}
|
||||
dev: false
|
||||
|
||||
/agent-base/6.0.2:
|
||||
@@ -9292,7 +9433,7 @@ packages:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
/base64-arraybuffer/0.1.4:
|
||||
resolution: {integrity: sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=}
|
||||
resolution: {integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==}
|
||||
engines: {node: '>= 0.6.0'}
|
||||
dev: false
|
||||
|
||||
@@ -9516,7 +9657,7 @@ packages:
|
||||
resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
|
||||
dependencies:
|
||||
pascal-case: 3.1.2
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/camelcase-keys/6.2.2:
|
||||
resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
|
||||
@@ -9545,7 +9686,7 @@ packages:
|
||||
resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
upper-case-first: 2.0.2
|
||||
|
||||
/chalk/1.1.3:
|
||||
@@ -9626,7 +9767,7 @@ packages:
|
||||
path-case: 3.0.4
|
||||
sentence-case: 3.0.4
|
||||
snake-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/char-regex/1.0.2:
|
||||
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
|
||||
@@ -9848,14 +9989,14 @@ packages:
|
||||
dev: true
|
||||
|
||||
/component-bind/1.0.0:
|
||||
resolution: {integrity: sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=}
|
||||
resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==}
|
||||
dev: false
|
||||
|
||||
/component-emitter/1.3.0:
|
||||
resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
|
||||
|
||||
/component-inherit/0.0.3:
|
||||
resolution: {integrity: sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=}
|
||||
resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==}
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
@@ -9892,7 +10033,7 @@ packages:
|
||||
resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
upper-case: 2.0.2
|
||||
|
||||
/constantinople/4.0.1:
|
||||
@@ -10492,7 +10633,7 @@ packages:
|
||||
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/dot-prop/5.3.0:
|
||||
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
|
||||
@@ -12607,6 +12748,32 @@ packages:
|
||||
/grapheme-splitter/1.0.4:
|
||||
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
|
||||
|
||||
/graphql-config/4.3.1_ebknmq4ki2y6h7wwya2jsn57ky:
|
||||
resolution: {integrity: sha512-czBWzJSGaLJfOHBLuUTZVRTjfgohPfvlaeN1B5nXBVptFARpiFuS7iI4FnRhCGwm6qt1h2j1g05nkg0OIGA6bg==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
peerDependencies:
|
||||
graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
|
||||
dependencies:
|
||||
'@endemolshinegroup/cosmiconfig-typescript-loader': 3.0.2_qkc3vo3nzqm3fls2mklcv7vbki
|
||||
'@graphql-tools/graphql-file-loader': 7.4.0_graphql@15.8.0
|
||||
'@graphql-tools/json-file-loader': 7.4.0_graphql@15.8.0
|
||||
'@graphql-tools/load': 7.7.0_graphql@15.8.0
|
||||
'@graphql-tools/merge': 8.3.0_graphql@15.8.0
|
||||
'@graphql-tools/url-loader': 7.12.1_graphql@15.8.0
|
||||
'@graphql-tools/utils': 8.8.0_graphql@15.8.0
|
||||
cosmiconfig: 7.0.1
|
||||
cosmiconfig-toml-loader: 1.0.0
|
||||
graphql: 15.8.0
|
||||
minimatch: 4.2.1
|
||||
string-env-interpolation: 1.0.1
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- bufferutil
|
||||
- encoding
|
||||
- typescript
|
||||
- utf-8-validate
|
||||
dev: true
|
||||
|
||||
/graphql-config/4.3.1_h5eoywvcjsa4emif44kddonyyu:
|
||||
resolution: {integrity: sha512-czBWzJSGaLJfOHBLuUTZVRTjfgohPfvlaeN1B5nXBVptFARpiFuS7iI4FnRhCGwm6qt1h2j1g05nkg0OIGA6bg==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
@@ -12893,7 +13060,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
/has-cors/1.1.0:
|
||||
resolution: {integrity: sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=}
|
||||
resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==}
|
||||
dev: false
|
||||
|
||||
/has-flag/3.0.0:
|
||||
@@ -12941,7 +13108,7 @@ packages:
|
||||
resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
|
||||
dependencies:
|
||||
capital-case: 1.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/helpertypes/0.0.18:
|
||||
resolution: {integrity: sha512-XRhfbSEmR+poXUC5/8AbmYNJb2riOT6qPzjGJZr0S9YedHiaY+/tzPYzWMUclYMEdCYo/1l8PDYrQFCj02v97w==}
|
||||
@@ -13239,7 +13406,7 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/indexof/0.0.1:
|
||||
resolution: {integrity: sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=}
|
||||
resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==}
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
@@ -13472,7 +13639,7 @@ packages:
|
||||
/is-lower-case/2.0.2:
|
||||
resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/is-map/2.0.2:
|
||||
@@ -13607,7 +13774,7 @@ packages:
|
||||
/is-upper-case/2.0.2:
|
||||
resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/is-weakmap/2.0.1:
|
||||
@@ -15293,13 +15460,13 @@ packages:
|
||||
/lower-case-first/2.0.2:
|
||||
resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/lower-case/2.0.2:
|
||||
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/lru-cache/6.0.0:
|
||||
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
|
||||
@@ -15722,7 +15889,7 @@ packages:
|
||||
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
|
||||
dependencies:
|
||||
lower-case: 2.0.2
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/node-abort-controller/3.0.1:
|
||||
resolution: {integrity: sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==}
|
||||
@@ -16036,7 +16203,7 @@ packages:
|
||||
resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/parent-module/1.0.1:
|
||||
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
|
||||
@@ -16110,7 +16277,7 @@ packages:
|
||||
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/passport-github2/0.1.12:
|
||||
resolution: {integrity: sha512-3nPUCc7ttF/3HSP/k9sAXjz3SkGv5Nki84I05kSQPo01Jqq1NzJACgMblCK0fGcv9pKCG/KXU3AJRDGLqHLoIw==}
|
||||
@@ -16181,7 +16348,7 @@ packages:
|
||||
resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/path-exists/4.0.0:
|
||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
@@ -17296,7 +17463,7 @@ packages:
|
||||
resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
upper-case-first: 2.0.2
|
||||
|
||||
/serialize-javascript/4.0.0:
|
||||
@@ -17442,7 +17609,7 @@ packages:
|
||||
resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/socket.io-client/2.5.0:
|
||||
resolution: {integrity: sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==}
|
||||
@@ -17611,7 +17778,7 @@ packages:
|
||||
/sponge-case/1.0.1:
|
||||
resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/sprintf-js/1.0.3:
|
||||
@@ -17913,7 +18080,7 @@ packages:
|
||||
/swap-case/2.0.2:
|
||||
resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/symbol-observable/1.2.0:
|
||||
@@ -18097,7 +18264,7 @@ packages:
|
||||
/title-case/3.0.3:
|
||||
resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/tmp/0.0.33:
|
||||
@@ -18119,7 +18286,7 @@ packages:
|
||||
dev: true
|
||||
|
||||
/to-array/0.1.4:
|
||||
resolution: {integrity: sha1-F+bBH3PdTz10zaek/zI46a2b+JA=}
|
||||
resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==}
|
||||
dev: false
|
||||
|
||||
/to-fast-properties/2.0.0:
|
||||
@@ -18447,6 +18614,22 @@ packages:
|
||||
typescript: 4.7.4
|
||||
yn: 3.1.1
|
||||
|
||||
/ts-node/9.1.1_typescript@4.9.3:
|
||||
resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
typescript: '>=2.7'
|
||||
dependencies:
|
||||
arg: 4.1.3
|
||||
create-require: 1.1.1
|
||||
diff: 4.0.2
|
||||
make-error: 1.3.6
|
||||
source-map-support: 0.5.21
|
||||
typescript: 4.9.3
|
||||
yn: 3.1.1
|
||||
dev: true
|
||||
|
||||
/tsconfig-paths-webpack-plugin/4.0.0:
|
||||
resolution: {integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
@@ -19048,7 +19231,7 @@ packages:
|
||||
dependencies:
|
||||
acorn: 8.8.0
|
||||
chokidar: 3.5.3
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
webpack-sources: 3.2.3
|
||||
webpack-virtual-modules: 0.4.4
|
||||
dev: true
|
||||
@@ -19158,12 +19341,12 @@ packages:
|
||||
/upper-case-first/2.0.2:
|
||||
resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/upper-case/2.0.2:
|
||||
resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}
|
||||
dependencies:
|
||||
tslib: 2.4.0
|
||||
tslib: 2.4.1
|
||||
|
||||
/uri-js/4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
@@ -19426,7 +19609,7 @@ packages:
|
||||
vite: ^2.0.0 || ^3.0.0
|
||||
dependencies:
|
||||
fast-glob: 3.2.11
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
dev: true
|
||||
|
||||
/vite-plugin-html-config/1.0.10_vite@3.1.4:
|
||||
@@ -19444,7 +19627,7 @@ packages:
|
||||
peerDependencies:
|
||||
vite: '>=2.0.0'
|
||||
dependencies:
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
dev: true
|
||||
|
||||
/vite-plugin-inspect/0.7.4_vite@3.1.4:
|
||||
@@ -19476,7 +19659,7 @@ packages:
|
||||
kolorist: 1.5.1
|
||||
sirv: 2.0.2
|
||||
ufo: 0.8.5
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@@ -19750,7 +19933,7 @@ packages:
|
||||
'@windicss/plugin-utils': 1.8.8
|
||||
debug: 4.3.4
|
||||
kolorist: 1.5.1
|
||||
vite: 3.2.4
|
||||
vite: 3.2.4_sass@1.53.0
|
||||
windicss: 3.5.6
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -19838,6 +20021,7 @@ packages:
|
||||
rollup: 2.79.1
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/vite/3.2.4_sass@1.53.0:
|
||||
resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==}
|
||||
@@ -20992,7 +21176,7 @@ packages:
|
||||
dev: false
|
||||
|
||||
/yeast/0.1.2:
|
||||
resolution: {integrity: sha1-AI4G2AlDIMNy28L47XagymyKxBk=}
|
||||
resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==}
|
||||
dev: false
|
||||
|
||||
/yn/3.1.1:
|
||||
|
||||
Reference in New Issue
Block a user