>([]);
const [expandedKeys, setExpendedKeys] = useState(selectedRowKeys);
- const inherits = getParentCollections(name);
+ const inherits = getInheritCollections(name);
const currentFields = getCurrentCollectionFields(name);
useDataSource({
onSuccess(data) {
diff --git a/packages/core/client/src/collection-manager/Configuration/ConfigurationTable.tsx b/packages/core/client/src/collection-manager/Configuration/ConfigurationTable.tsx
index d8dba5fe1..fb730f0b5 100644
--- a/packages/core/client/src/collection-manager/Configuration/ConfigurationTable.tsx
+++ b/packages/core/client/src/collection-manager/Configuration/ConfigurationTable.tsx
@@ -2,18 +2,18 @@ import { useForm } from '@formily/react';
import { action } from '@formily/reactive';
import { uid } from '@formily/shared';
import React, { useContext, useEffect, useRef, useState } from 'react';
-import { CollectionFieldsTable } from '.';
import { useRequest } from '../../api-client';
-import { useCurrentDatabase } from '../../database';
import { useRecord } from '../../record-provider';
import { SchemaComponent, SchemaComponentContext, useActionContext, useCompile } from '../../schema-component';
-import { useCancelAction, useUpdateCollectionActionAndRefreshCM } from '../action-hooks';
import { useCollectionManager } from '../hooks/useCollectionManager';
import { DataSourceContext } from '../sub-table';
import { AddSubFieldAction } from './AddSubFieldAction';
import { FieldSummary } from './components/FieldSummary';
import { EditSubFieldAction } from './EditSubFieldAction';
import { collectionSchema } from './schemas/collections';
+import { useCurrentAppInfo } from '../../appInfo';
+import { CollectionFieldsTable } from '.';
+import { useCancelAction, useUpdateCollectionActionAndRefreshCM } from '../action-hooks';
const useAsyncDataSource = (service: any) => (field: any) => {
field.loading = true;
@@ -177,7 +177,7 @@ export const ConfigurationTable = () => {
const { collections = [] } = useCollectionManager();
const {
data: { database },
- } = useCurrentDatabase();
+ } = useCurrentAppInfo();
const collectonsRef: any = useRef();
collectonsRef.current = collections;
const compile = useCompile();
@@ -194,7 +194,7 @@ export const ConfigurationTable = () => {
{
CollectionFieldsTable,
}}
scope={{
- enableInherits: database?.dialect === 'postgres',
useDestroySubField,
useBulkDestroySubField,
useSelectedRowKeys,
@@ -213,6 +212,7 @@ export const ConfigurationTable = () => {
useNewId,
useCancelAction,
useUpdateCollectionActionAndRefreshCM,
+ enableInherits: database?.dialect === 'postgres',
}}
/>
diff --git a/packages/core/client/src/collection-manager/Configuration/ViewInheritedField.tsx b/packages/core/client/src/collection-manager/Configuration/ViewInheritedField.tsx
index 530dfbe4c..d6d62d7ff 100644
--- a/packages/core/client/src/collection-manager/Configuration/ViewInheritedField.tsx
+++ b/packages/core/client/src/collection-manager/Configuration/ViewInheritedField.tsx
@@ -7,11 +7,9 @@ import React, { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useAPIClient, useRequest } from '../../api-client';
import { useRecord, RecordProvider } from '../../record-provider';
-import { ActionContext, SchemaComponent, useActionContext, useCompile } from '../../schema-component';
-import { useCancelAction } from '../action-hooks';
+import { ActionContext, SchemaComponent, useCompile } from '../../schema-component';
import { useCollectionManager } from '../hooks';
import { IField } from '../interfaces/types';
-import { useResourceActionContext, useResourceContext } from '../ResourceActionProvider';
import * as components from './components';
const getSchema = (schema: IField, record: any, compile, getContainer): ISchema => {
@@ -54,64 +52,13 @@ const getSchema = (schema: IField, record: any, compile, getContainer): ISchema
},
// @ts-ignore
...properties,
- // footer: {
- // type: 'void',
- // 'x-component': 'Action.Drawer.Footer',
- // properties: {
- // action1: {
- // title: '{{ t("Cancel") }}',
- // 'x-component': 'Action',
- // 'x-component-props': {
- // useAction: '{{ useCancelAction }}',
- // },
- // },
- // action2: {
- // title: '{{ t("Submit") }}',
- // 'x-component': 'Action',
- // 'x-component-props': {
- // type: 'primary',
- // useAction: '{{ useVieInheritedCollectionField }}',
- // },
- // },
- // },
- // },
},
},
},
};
};
-const useVieInheritedCollectionField = () => {
- const form = useForm();
- const { refreshCM } = useCollectionManager();
- const ctx = useActionContext();
- const { refresh } = useResourceActionContext();
- const { resource } = useResourceContext();
- return {
- async run() {
- await form.submit();
- const values = cloneDeep(form.values);
- if (values.autoCreateReverseField) {
- } else {
- delete values.reverseField;
- }
- delete values.autoCreateReverseField;
- const { uiSchema } = values;
- delete values.collectionName;
- delete values.key;
- await resource.create({
- values: {
- ...values,
- uiSchema: { title: uiSchema.title, type: uiSchema.type, 'x-component': uiSchema['x-component'] },
- },
- });
- ctx.setVisible(false);
- await form.reset();
- refresh();
- await refreshCM();
- },
- };
-};
+
export const ViewCollectionField = (props) => {
const record = useRecord();
@@ -166,8 +113,6 @@ export const ViewFieldAction = (props) => {
components={{ ...components, ArrayTable }}
scope={{
getContainer,
- useVieInheritedCollectionField,
- useCancelAction,
showReverseFieldConfig: !data?.reverseField,
createOnly: !true,
...scope,
diff --git a/packages/core/client/src/collection-manager/Configuration/schemas/collections.ts b/packages/core/client/src/collection-manager/Configuration/schemas/collections.ts
index 047928bb5..451010e81 100644
--- a/packages/core/client/src/collection-manager/Configuration/schemas/collections.ts
+++ b/packages/core/client/src/collection-manager/Configuration/schemas/collections.ts
@@ -7,59 +7,57 @@ const compile = (source) => {
return Schema.compile(source, { t: i18n.t });
};
-export const getCollectionOptions = (database): CollectionOptions => {
- return {
- name: 'collections',
- filterTargetKey: 'name',
- targetKey: 'name',
- fields: [
- {
- type: 'integer',
- name: 'title',
- interface: 'input',
- uiSchema: {
- title: '{{ t("Collection display name") }}',
- type: 'number',
- 'x-component': 'Input',
- required: true,
- },
+export const collection: CollectionOptions = {
+ name: 'collections',
+ filterTargetKey: 'name',
+ targetKey: 'name',
+ fields: [
+ {
+ type: 'integer',
+ name: 'title',
+ interface: 'input',
+ uiSchema: {
+ title: '{{ t("Collection display name") }}',
+ type: 'number',
+ 'x-component': 'Input',
+ required: true,
},
- {
+ },
+ {
+ type: 'string',
+ name: 'name',
+ interface: 'input',
+ uiSchema: {
+ title: '{{ t("Collection name") }}',
type: 'string',
- name: 'name',
- interface: 'input',
- uiSchema: {
- title: '{{ t("Collection name") }}',
- type: 'string',
- 'x-component': 'Input',
- description:
- '{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}',
+ 'x-component': 'Input',
+ description:
+ '{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}',
+ },
+ },
+ {
+ type: 'hasMany',
+ name: 'fields',
+ target: 'fields',
+ collectionName: 'collections',
+ sourceKey: 'name',
+ targetKey: 'name',
+ uiSchema: {},
+ },
+ {
+ type: 'hasMany',
+ name: 'inherits',
+ interface: 'select',
+ uiSchema: {
+ title: '{{ t("Inherits") }}',
+ type: 'string',
+ 'x-component': 'Select',
+ 'x-component-props': {
+ mode: 'multiple',
},
},
- {
- type: 'hasMany',
- name: 'fields',
- target: 'fields',
- collectionName: 'collections',
- sourceKey: 'name',
- targetKey: 'name',
- uiSchema: {},
- },
- database === 'postgres' && {
- type: 'hasMany',
- name: 'inherits',
- interface: 'select',
- uiSchema: {
- title: '{{ t("Inherits") }}',
- type: 'string',
- 'x-component': 'Select',
- 'x-component-props': {
- mode: 'multiple',
- },
- },
- },
- ],
- };
+ },
+ ],
};
export const createCollectionProperties = {
@@ -75,7 +73,7 @@ export const createCollectionProperties = {
inherits: {
'x-component': 'CollectionField',
'x-decorator': 'FormItem',
- 'x-visible': '{{ enableInherits }}',
+ 'x-visible': '{{ enableInherits}}',
'x-reactions': ['{{useAsyncDataSource(loadCollections)}}'],
},
footer: {
@@ -115,6 +113,7 @@ export const editCollectionProperties = {
'x-component': 'CollectionField',
'x-decorator': 'FormItem',
'x-disabled': true,
+ 'x-visible': '{{ enableInherits}}',
'x-reactions': ['{{useAsyncDataSource(loadCollections)}}'],
},
footer: {
@@ -140,194 +139,188 @@ export const editCollectionProperties = {
},
};
-export const collectionSchema = (database): ISchema => {
- return {
- type: 'object',
- properties: {
- block1: {
- type: 'void',
- 'x-collection': 'collections',
- 'x-decorator': 'ResourceActionProvider',
- 'x-decorator-props': {
- collection: getCollectionOptions(database),
- request: {
- resource: 'collections',
- action: 'list',
- params: {
- pageSize: 50,
- filter: {
- 'hidden.$isFalsy': true,
+export const collectionSchema: ISchema = {
+ type: 'object',
+ properties: {
+ block1: {
+ type: 'void',
+ 'x-collection': 'collections',
+ 'x-decorator': 'ResourceActionProvider',
+ 'x-decorator-props': {
+ collection: collection,
+ request: {
+ resource: 'collections',
+ action: 'list',
+ params: {
+ pageSize: 50,
+ filter: {
+ 'hidden.$isFalsy': true,
+ },
+ sort: ['sort'],
+ appends: [],
+ },
+ },
+ },
+ properties: {
+ actions: {
+ type: 'void',
+ 'x-component': 'ActionBar',
+ 'x-component-props': {
+ style: {
+ marginBottom: 16,
+ },
+ },
+ properties: {
+ filter: {
+ type: 'void',
+ title: '{{ t("Filter") }}',
+ default: {
+ $and: [{ title: { $includes: '' } }, { name: { $includes: '' } }],
+ },
+ 'x-action': 'filter',
+ 'x-component': 'Filter.Action',
+ 'x-component-props': {
+ icon: 'FilterOutlined',
+ useProps: '{{ cm.useFilterActionProps }}',
+ },
+ 'x-align': 'left',
+ },
+ delete: {
+ type: 'void',
+ title: '{{ t("Delete") }}',
+ 'x-component': 'Action',
+ 'x-component-props': {
+ useAction: '{{ cm.useBulkDestroyActionAndRefreshCM }}',
+ confirm: {
+ title: "{{t('Delete record')}}",
+ content: "{{t('Are you sure you want to delete it?')}}",
+ },
+ },
+ },
+ create: {
+ type: 'void',
+ title: '{{ t("Create collection") }}',
+ 'x-component': 'Action',
+ 'x-component-props': {
+ type: 'primary',
+ },
+ properties: {
+ drawer: {
+ type: 'void',
+ title: '{{ t("Create collection") }}',
+ 'x-component': 'Action.Drawer',
+ 'x-decorator': 'Form',
+ 'x-decorator-props': {
+ useValues: '{{ useCollectionValues }}',
+ },
+ properties: createCollectionProperties,
+ },
},
- sort: ['sort'],
- appends: [],
},
},
},
- // 'x-component': 'CollectionProvider',
- // 'x-component-props': {
- // collection,
- // },
- properties: {
- actions: {
- type: 'void',
- 'x-component': 'ActionBar',
- 'x-component-props': {
- style: {
- marginBottom: 16,
- },
- },
- properties: {
- filter: {
- type: 'void',
- title: '{{ t("Filter") }}',
- default: {
- $and: [{ title: { $includes: '' } }, { name: { $includes: '' } }],
- },
- 'x-action': 'filter',
- 'x-component': 'Filter.Action',
- 'x-component-props': {
- icon: 'FilterOutlined',
- useProps: '{{ cm.useFilterActionProps }}',
- },
- 'x-align': 'left',
- },
- delete: {
- type: 'void',
- title: '{{ t("Delete") }}',
- 'x-component': 'Action',
- 'x-component-props': {
- useAction: '{{ cm.useBulkDestroyActionAndRefreshCM }}',
- confirm: {
- title: "{{t('Delete record')}}",
- content: "{{t('Are you sure you want to delete it?')}}",
- },
- },
- },
- create: {
- type: 'void',
- title: '{{ t("Create collection") }}',
- 'x-component': 'Action',
- 'x-component-props': {
- type: 'primary',
- },
- properties: {
- drawer: {
- type: 'void',
- title: '{{ t("Create collection") }}',
- 'x-component': 'Action.Drawer',
- 'x-decorator': 'Form',
- 'x-decorator-props': {
- useValues: '{{ useCollectionValues }}',
- },
- properties: createCollectionProperties,
- },
- },
- },
+ table: {
+ type: 'void',
+ 'x-uid': 'input',
+ 'x-component': 'Table.Void',
+ 'x-component-props': {
+ rowKey: 'name',
+ rowSelection: {
+ type: 'checkbox',
},
+ useDataSource: '{{ cm.useDataSourceFromRAC }}',
},
- table: {
- type: 'void',
- 'x-uid': 'input',
- 'x-component': 'Table.Void',
- 'x-component-props': {
- rowKey: 'name',
- rowSelection: {
- type: 'checkbox',
+ properties: {
+ column1: {
+ type: 'void',
+ 'x-decorator': 'Table.Column.Decorator',
+ 'x-component': 'Table.Column',
+ properties: {
+ title: {
+ 'x-component': 'CollectionField',
+ 'x-read-pretty': true,
+ },
},
- useDataSource: '{{ cm.useDataSourceFromRAC }}',
},
- properties: {
- column1: {
- type: 'void',
- 'x-decorator': 'Table.Column.Decorator',
- 'x-component': 'Table.Column',
- properties: {
- title: {
- 'x-component': 'CollectionField',
- 'x-read-pretty': true,
- },
+ column2: {
+ type: 'void',
+ 'x-decorator': 'Table.Column.Decorator',
+ 'x-component': 'Table.Column',
+ properties: {
+ name: {
+ type: 'string',
+ 'x-component': 'CollectionField',
+ 'x-read-pretty': true,
},
},
- column2: {
- type: 'void',
- 'x-decorator': 'Table.Column.Decorator',
- 'x-component': 'Table.Column',
- properties: {
- name: {
- type: 'string',
- 'x-component': 'CollectionField',
- 'x-read-pretty': true,
+ },
+ column3: {
+ type: 'void',
+ title: '{{ t("Actions") }}',
+ 'x-component': 'Table.Column',
+ properties: {
+ actions: {
+ type: 'void',
+ 'x-component': 'Space',
+ 'x-component-props': {
+ split: '|',
},
- },
- },
- column3: {
- type: 'void',
- title: '{{ t("Actions") }}',
- 'x-component': 'Table.Column',
- properties: {
- actions: {
- type: 'void',
- 'x-component': 'Space',
- 'x-component-props': {
- split: '|',
+ properties: {
+ view: {
+ type: 'void',
+ title: '{{ t("Configure fields") }}',
+ 'x-component': 'Action.Link',
+ 'x-component-props': {},
+ properties: {
+ drawer: {
+ type: 'void',
+ 'x-component': 'Action.Drawer',
+ 'x-component-props': {
+ destroyOnClose: true,
+ },
+ 'x-reactions': (field) => {
+ const i = field.path.segments[1];
+ const table = field.form.getValuesIn(`table.${i}`);
+ if (table) {
+ field.title = `${compile(table.title)} - ${compile('{{ t("Configure fields") }}')}`;
+ }
+ },
+ properties: {
+ collectionFieldSchema,
+ },
+ },
+ },
},
- properties: {
- view: {
- type: 'void',
- title: '{{ t("Configure fields") }}',
- 'x-component': 'Action.Link',
- 'x-component-props': {},
- properties: {
- drawer: {
- type: 'void',
- 'x-component': 'Action.Drawer',
- 'x-component-props': {
- destroyOnClose: true,
- },
- 'x-reactions': (field) => {
- const i = field.path.segments[1];
- const table = field.form.getValuesIn(`table.${i}`);
- if (table) {
- field.title = `${compile(table.title)} - ${compile('{{ t("Configure fields") }}')}`;
- }
- },
- properties: {
- collectionFieldSchema,
- },
+ update: {
+ type: 'void',
+ title: '{{ t("Edit") }}',
+ 'x-component': 'Action.Link',
+ 'x-component-props': {
+ type: 'primary',
+ },
+ properties: {
+ drawer: {
+ type: 'void',
+ 'x-component': 'Action.Drawer',
+ 'x-decorator': 'Form',
+ 'x-decorator-props': {
+ useValues: '{{ cm.useValuesFromRecord }}',
},
+ title: '{{ t("Edit collection") }}',
+ properties: editCollectionProperties,
},
},
- update: {
- type: 'void',
- title: '{{ t("Edit") }}',
- 'x-component': 'Action.Link',
- 'x-component-props': {
- type: 'primary',
- },
- properties: {
- drawer: {
- type: 'void',
- 'x-component': 'Action.Drawer',
- 'x-decorator': 'Form',
- 'x-decorator-props': {
- useValues: '{{ cm.useValuesFromRecord }}',
- },
- title: '{{ t("Edit collection") }}',
- properties: editCollectionProperties,
- },
- },
- },
- delete: {
- type: 'void',
- title: '{{ t("Delete") }}',
- 'x-component': 'Action.Link',
- 'x-component-props': {
- confirm: {
- title: "{{t('Delete record')}}",
- content: "{{t('Are you sure you want to delete it?')}}",
- },
- useAction: '{{ cm.useDestroyActionAndRefreshCM }}',
+ },
+ delete: {
+ type: 'void',
+ title: '{{ t("Delete") }}',
+ 'x-component': 'Action.Link',
+ 'x-component-props': {
+ confirm: {
+ title: "{{t('Delete record')}}",
+ content: "{{t('Are you sure you want to delete it?')}}",
},
+ useAction: '{{ cm.useDestroyActionAndRefreshCM }}',
},
},
},
@@ -338,5 +331,5 @@ export const collectionSchema = (database): ISchema => {
},
},
},
- };
+ },
};
diff --git a/packages/core/client/src/collection-manager/hooks/useCollection.ts b/packages/core/client/src/collection-manager/hooks/useCollection.ts
index 5747e2343..c55a86b32 100644
--- a/packages/core/client/src/collection-manager/hooks/useCollection.ts
+++ b/packages/core/client/src/collection-manager/hooks/useCollection.ts
@@ -10,9 +10,9 @@ export const useCollection = () => {
const collection = useContext(CollectionContext);
const api = useAPIClient();
const resource = api?.resource(collection?.name);
- const { getParentCollections, getCurrentCollectionFields } = useCollectionManager();
+ const { getInheritCollections, getCurrentCollectionFields } = useCollectionManager();
const currentFields = collection.fields;
- const inheritKeys = getParentCollections(collection.name);
+ const inheritKeys = getInheritCollections(collection.name);
const inheritedFields = reduce(
inheritKeys,
(result, value) => {
diff --git a/packages/core/client/src/collection-manager/hooks/useCollectionManager.ts b/packages/core/client/src/collection-manager/hooks/useCollectionManager.ts
index 53e44c878..6cb344467 100644
--- a/packages/core/client/src/collection-manager/hooks/useCollectionManager.ts
+++ b/packages/core/client/src/collection-manager/hooks/useCollectionManager.ts
@@ -7,7 +7,7 @@ import { CollectionFieldOptions } from '../types';
export const useCollectionManager = () => {
const { refreshCM, service, interfaces, collections } = useContext(CollectionManagerContext);
const getInheritedFields = (name) => {
- const inheritKeys = getParentCollections(name);
+ const inheritKeys = getInheritCollections(name);
const inheritedFields = reduce(
inheritKeys,
(result, value) => {
@@ -38,7 +38,7 @@ export const useCollectionManager = () => {
}
return getCollectionFields(collectionName)?.find((field) => field.name === fieldName);
};
- const getParentCollections = (name) => {
+ const getInheritCollections = (name) => {
const parents = [];
const getParents = (name) => {
const collection = collections?.find((collection) => collection.name === name);
@@ -82,7 +82,7 @@ export const useCollectionManager = () => {
service,
interfaces,
collections,
- getParentCollections,
+ getInheritCollections,
getChildrenCollections,
refreshCM: () => refreshCM?.(),
get(name: string) {
@@ -125,7 +125,7 @@ export const useCollectionManager = () => {
getParentCollectionFields: (parentCollection, currentCollection) => {
const currentFields = collections?.find((collection) => collection.name === currentCollection)?.fields;
const parentFields = collections?.find((collection) => collection.name === parentCollection)?.fields;
- const inheritKeys = getParentCollections(currentCollection);
+ const inheritKeys = getInheritCollections(currentCollection);
const index = inheritKeys.indexOf(parentCollection);
let filterFields = currentFields;
if (index > 0) {
diff --git a/packages/core/client/src/database/index.ts b/packages/core/client/src/database/index.ts
deleted file mode 100644
index 56e7d7369..000000000
--- a/packages/core/client/src/database/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './CurrentDatabaseProvider';
diff --git a/packages/core/client/src/index.tsx b/packages/core/client/src/index.tsx
index 889a9541e..e069e8236 100644
--- a/packages/core/client/src/index.tsx
+++ b/packages/core/client/src/index.tsx
@@ -25,5 +25,5 @@ export * from './schema-templates';
export * from './settings-form';
export * from './system-settings';
export * from './user';
-export * from './database'
+export * from './appInfo'
diff --git a/packages/core/client/src/route-switch/antd/admin-layout/index.tsx b/packages/core/client/src/route-switch/antd/admin-layout/index.tsx
index 043d77c54..130be2134 100644
--- a/packages/core/client/src/route-switch/antd/admin-layout/index.tsx
+++ b/packages/core/client/src/route-switch/antd/admin-layout/index.tsx
@@ -7,7 +7,7 @@ import {
ACLRolesCheckProvider,
CurrentUser,
CurrentUserProvider,
- CurrentDatabaseProvider,
+ CurrentAppInfoProvider,
findByUid,
findMenuItem,
RemoteCollectionManagerProvider,
@@ -207,7 +207,7 @@ const InternalAdminLayout = (props: any) => {
export const AdminLayout = (props) => {
return (
-
+
@@ -217,7 +217,7 @@ export const AdminLayout = (props) => {
-
+
);
};
diff --git a/packages/core/client/src/schema-initializer/utils.ts b/packages/core/client/src/schema-initializer/utils.ts
index 8934bdd61..2554e13a1 100644
--- a/packages/core/client/src/schema-initializer/utils.ts
+++ b/packages/core/client/src/schema-initializer/utils.ts
@@ -152,8 +152,8 @@ export const useAssociatedTableColumnInitializerFields = () => {
export const useInheritsTableColumnInitializerFields = () => {
const { name } = useCollection();
- const { getInterface, getParentCollections, getCollection, getParentCollectionFields } = useCollectionManager();
- const inherits = getParentCollections(name);
+ const { getInterface, getInheritCollections, getCollection, getParentCollectionFields } = useCollectionManager();
+ const inherits = getInheritCollections(name);
return inherits?.map((v) => {
const fields = getParentCollectionFields(v, name);
const targetCollection = getCollection(v);
@@ -278,8 +278,8 @@ export const useAssociatedFormItemInitializerFields = (options?: any) => {
export const useInheritsFormItemInitializerFields = (options?) => {
const { name } = useCollection();
- const { getInterface, getParentCollections, getCollection, getParentCollectionFields } = useCollectionManager();
- const inherits = getParentCollections(name);
+ const { getInterface, getInheritCollections, getCollection, getParentCollectionFields } = useCollectionManager();
+ const inherits = getInheritCollections(name);
return inherits?.map((v) => {
const fields = getParentCollectionFields(v, name);
const form = useForm();
diff --git a/packages/core/client/src/user/CurrentUser.tsx b/packages/core/client/src/user/CurrentUser.tsx
index 13aebc73e..b61239ee7 100644
--- a/packages/core/client/src/user/CurrentUser.tsx
+++ b/packages/core/client/src/user/CurrentUser.tsx
@@ -8,11 +8,11 @@ import { ChangePassword } from './ChangePassword';
import { EditProfile } from './EditProfile';
import { LanguageSettings } from './LanguageSettings';
import { SwitchRole } from './SwitchRole';
-import {useCurrentDatabase} from '../database/CurrentDatabaseProvider'
+import {useCurrentAppInfo} from '../appInfo/CurrentAppInfoProvider'
const ApplicationVersion = () => {
- const data=useCurrentDatabase();
+ const data=useCurrentAppInfo();
return (
Version {data?.data?.version}
diff --git a/yarn.lock b/yarn.lock
index d209920ba..9da753220 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2753,11 +2753,6 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
-"@colors/colors@1.5.0":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
- integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
-
"@commitlint/cli@^16.1.0":
version "16.1.0"
resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-16.1.0.tgz#022ad86008374b02974c9f3faf86affb785f4574"
@@ -2952,15 +2947,6 @@
resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz#c3c5ae543c897caa9c2a68630bed355be5f9990f"
integrity sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==
-"@dabh/diagnostics@^2.0.2":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a"
- integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==
- dependencies:
- colorspace "1.1.x"
- enabled "2.0.x"
- kuler "^2.0.0"
-
"@dnd-kit/accessibility@^3.0.0":
version "3.0.0"
resolved "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.0.0.tgz#b56e3750414fd907b7d6972b3116aa8f96d07fde"
@@ -5366,14 +5352,7 @@
resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
-"@types/react-dom@^16.9.8":
- version "16.9.17"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.17.tgz#29100cbcc422d7b7dba7de24bb906de56680dd34"
- integrity sha512-qSRyxEsrm5btPXnowDOs5jSkgT8ldAA0j6Qp+otHUh+xHzy3sXmgNfyhucZjAjkgpdAUw9rJe0QRtX/l+yaS4g==
- dependencies:
- "@types/react" "^16"
-
-"@types/react-dom@^17.0.0":
+"@types/react-dom@^16.9.8", "@types/react-dom@^17.0.0":
version "17.0.11"
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466"
integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==
@@ -5433,7 +5412,7 @@
"@types/history" "*"
"@types/react" "*"
-"@types/react@*", "@types/react@>=16.9.11", "@types/react@^17.0.0":
+"@types/react@*", "@types/react@>=16.9.11", "@types/react@^16.9.43", "@types/react@^17.0.0":
version "17.0.34"
resolved "https://registry.npmjs.org/@types/react/-/react-17.0.34.tgz#797b66d359b692e3f19991b6b07e4b0c706c0102"
integrity sha512-46FEGrMjc2+8XhHXILr+3+/sTe3OfzSPU9YGKILLrUYbQ1CLQC9Daqo1KzENGXAWwrFwiY0l4ZbF20gRvgpWTg==
@@ -5442,15 +5421,6 @@
"@types/scheduler" "*"
csstype "^3.0.2"
-"@types/react@^16", "@types/react@^16.9.43":
- version "16.14.34"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.34.tgz#d129324ffda312044e1c47aab18696e4ed493282"
- integrity sha512-b99nWeGGReLh6aKBppghVqp93dFJtgtDOzc8NXM6hewD8PQ2zZG5kBLgbx+VJr7Q7WBMjHxaIl3dwpwwPIUgyA==
- dependencies:
- "@types/prop-types" "*"
- "@types/scheduler" "*"
- csstype "^3.0.2"
-
"@types/resolve@1.17.1":
version "1.17.1"
resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
@@ -6796,11 +6766,6 @@ async@^2.6.3, async@~2.6.1:
dependencies:
lodash "^4.17.14"
-async@^3.2.3:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
- integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -8174,7 +8139,7 @@ color-support@^1.1.2, color-support@^1.1.3:
resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-color@^3.0.0, color@^3.1.3:
+color@^3.0.0:
version "3.2.1"
resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
@@ -8197,14 +8162,6 @@ colors@~1.2.1:
resolved "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc"
integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==
-colorspace@1.1.x:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243"
- integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
- dependencies:
- color "^3.1.3"
- text-hex "1.0.x"
-
columnify@^1.5.4:
version "1.5.4"
resolved "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb"
@@ -9862,11 +9819,6 @@ emojis-list@^3.0.0:
resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
-enabled@2.0.x:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
- integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
-
encodeurl@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -10755,7 +10707,7 @@ fclone@1.0.11, fclone@~1.0.11:
resolved "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640"
integrity sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=
-fecha@^4.2.0, fecha@~4.2.0:
+fecha@~4.2.0:
version "4.2.3"
resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
@@ -10786,13 +10738,6 @@ file-saver@^2.0.5:
resolved "https://registry.npmmirror.com/file-saver/download/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38"
integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
-file-stream-rotator@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz#007019e735b262bb6c6f0197e58e5c87cb96cec3"
- integrity sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==
- dependencies:
- moment "^2.29.1"
-
file-type@^3.3.0:
version "3.9.0"
resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
@@ -10964,11 +10909,6 @@ fmin@^0.0.2:
tape "^4.5.1"
uglify-js "^2.6.2"
-fn.name@1.x.x:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
- integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
-
follow-redirects@^1.14.0, follow-redirects@^1.14.8:
version "1.14.9"
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
@@ -14453,11 +14393,6 @@ koa@^2.13.4:
type-is "^1.6.16"
vary "^1.1.2"
-kuler@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
- integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
-
latest-version@^3.0.0:
version "3.1.0"
resolved "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
@@ -14865,17 +14800,6 @@ log-driver@^1.2.7:
resolved "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8"
integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==
-logform@^2.3.2, logform@^2.4.0:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.2.tgz#a617983ac0334d0c3b942c34945380062795b47c"
- integrity sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==
- dependencies:
- "@colors/colors" "1.5.0"
- fecha "^4.2.0"
- ms "^2.1.1"
- safe-stable-stringify "^2.3.1"
- triple-beam "^1.3.0"
-
long@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
@@ -15761,7 +15685,7 @@ moment-timezone@^0.5.31:
dependencies:
moment ">= 2.9.0"
-moment@2.x, moment@^2.29.1:
+moment@2.x:
version "2.29.4"
resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
@@ -16456,11 +16380,6 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-hash@^2.0.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
- integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
-
object-inspect@^1.11.0, object-inspect@^1.9.0:
version "1.11.0"
resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
@@ -16581,13 +16500,6 @@ once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
dependencies:
wrappy "1"
-one-time@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"
- integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
- dependencies:
- fn.name "1.x.x"
-
onetime@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
@@ -19522,7 +19434,7 @@ readable-stream@1.1.x:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0, readable-stream@^3.6.0:
+"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -20403,11 +20315,6 @@ safe-regex@^1.1.0:
dependencies:
ret "~0.1.10"
-safe-stable-stringify@^2.3.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61"
- integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==
-
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -21096,11 +21003,6 @@ stable@^0.1.8:
resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-stack-trace@0.0.x:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
- integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
-
stack-utils@^1.0.1:
version "1.0.5"
resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
@@ -21740,11 +21642,6 @@ text-extensions@^1.0.0:
resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26"
integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==
-text-hex@1.0.x:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
- integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
-
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -22002,11 +21899,6 @@ trim-newlines@^3.0.0:
resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
-triple-beam@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
- integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
-
trough@^1.0.0:
version "1.0.5"
resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406"
@@ -23223,42 +23115,6 @@ window-size@0.1.0:
resolved "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
-winston-daily-rotate-file@^4.7.1:
- version "4.7.1"
- resolved "https://registry.yarnpkg.com/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz#f60a643af87f8867f23170d8cd87dbe3603a625f"
- integrity sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==
- dependencies:
- file-stream-rotator "^0.6.1"
- object-hash "^2.0.1"
- triple-beam "^1.3.0"
- winston-transport "^4.4.0"
-
-winston-transport@^4.4.0, winston-transport@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa"
- integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==
- dependencies:
- logform "^2.3.2"
- readable-stream "^3.6.0"
- triple-beam "^1.3.0"
-
-winston@^3.8.2:
- version "3.8.2"
- resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50"
- integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==
- dependencies:
- "@colors/colors" "1.5.0"
- "@dabh/diagnostics" "^2.0.2"
- async "^3.2.3"
- is-stream "^2.0.0"
- logform "^2.4.0"
- one-time "^1.0.0"
- readable-stream "^3.4.0"
- safe-stable-stringify "^2.3.1"
- stack-trace "0.0.x"
- triple-beam "^1.3.0"
- winston-transport "^4.5.0"
-
wkx@^0.5.0:
version "0.5.0"
resolved "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c"