From ba94dfaf6cc680612dfa6cec85b4baaa158a7cad Mon Sep 17 00:00:00 2001 From: katherinehhh Date: Thu, 17 Nov 2022 12:49:13 +0800 Subject: [PATCH] Feat/collection inherits (#1097) * chore: test * chore: inherited-collection class * feat: collection inherit * feat: collection inherit * feat: inhertis sync runner * test: get parents fields * feat: collection inherit style promote * feat: sync * feat: sync alter table * feat: pgOnly Test * fix: child collection create api * feat: replace parent field * chore: reload parent fields * test: reload collection test * feat: details are displayed according to conditions * fix: typo * feat: inheritance map class * chore: is parent node * feat: display where child row created from * fix: find with appends * feat: add parent collection fields * fix: create table * feat: load fields for all children * refactor: sync fields from parent * test: has one field inhertis * feat: replace child association target * feat: should not replace child field when parent field update * test: should update inherit field when parent field update * feat: only the blocks directly inherited from the current data are displayed * fix: inherit from multiple collections * feat: only the blocks directly inherited from the current data are displayed * fix: test * feat: parent collection expend * fix: test * test: belongsToMany inherits * test: belongsToMany inherits * feat: block display * feat: collection inherite * feat: collection inherite * feat: multiple inherits * fix: sync runner * feat: collection inherite * feat: collecton inherits * feat: cannot be modified after inheritance and saving * feat: collection inherit for graph * feat: collection inherits * fix: drop inhertied field * fix: should throw error when type conflit * feat: output inherited fields * feat: bulk update collection fields * feat: collection fields * feat: collection fields * test: create relation with child table * fix: test * fix: test * fix: test * feat: style impove * test: should not replace field with difference type * feat: add text * fix: throw error when replace field with difference type * feat: overriding * feat: kan bankanban group fields * feat: calendar block fields * feat: kan bankanban group fields * fix: test * feat: relationship fields * feat: should delete child's field when parent field deleted * feat: foreign key filter * fix: build error & multiple inherit destory field * fix: test * chore: disable error * feat: no recursive update associations (#1091) * feat: update associations * fix(collection-manager): should update uiSchema * chore: flip if * feat: mutile inherits * feat: db dialect * feat: inherits show by database * chore: git hash into docker image * fix: js gzip * fix: dockerfile * chore: error message * feat: overriding * feat: overriding * feat: overriding * feat: local * feat: filter fields by interface * fix: database logging env * test: replace hasOne target * feat: add view * feat: local * feat: enableInherits * chore: error message * feat: enableInherits * feat: code optimization * feat: code optimization * feat: code optimization Co-authored-by: chareice Co-authored-by: chenos --- .../CurrentAppInfoProvider.tsx} | 12 +- packages/core/client/src/appInfo/index.ts | 1 + .../src/block-provider/FormBlockProvider.tsx | 4 +- .../CollectionFieldsTableArray.tsx | 4 +- .../Configuration/ConfigurationTable.tsx | 12 +- .../Configuration/ViewInheritedField.tsx | 59 +-- .../Configuration/schemas/collections.ts | 439 +++++++++--------- .../collection-manager/hooks/useCollection.ts | 4 +- .../hooks/useCollectionManager.ts | 8 +- packages/core/client/src/database/index.ts | 1 - packages/core/client/src/index.tsx | 2 +- .../route-switch/antd/admin-layout/index.tsx | 6 +- .../client/src/schema-initializer/utils.ts | 8 +- packages/core/client/src/user/CurrentUser.tsx | 4 +- yarn.lock | 156 +------ 15 files changed, 257 insertions(+), 463 deletions(-) rename packages/core/client/src/{database/CurrentDatabaseProvider.tsx => appInfo/CurrentAppInfoProvider.tsx} (55%) create mode 100644 packages/core/client/src/appInfo/index.ts delete mode 100644 packages/core/client/src/database/index.ts diff --git a/packages/core/client/src/database/CurrentDatabaseProvider.tsx b/packages/core/client/src/appInfo/CurrentAppInfoProvider.tsx similarity index 55% rename from packages/core/client/src/database/CurrentDatabaseProvider.tsx rename to packages/core/client/src/appInfo/CurrentAppInfoProvider.tsx index b7b219f93..8c6aa024a 100644 --- a/packages/core/client/src/database/CurrentDatabaseProvider.tsx +++ b/packages/core/client/src/appInfo/CurrentAppInfoProvider.tsx @@ -2,12 +2,12 @@ import React, { createContext, useContext } from 'react'; import { Spin } from 'antd'; import { useRequest } from '../api-client'; -export const CurrentDatabaseContext = createContext(null); +export const CurrentAppInfoContext = createContext(null); -export const useCurrentDatabase = () => { - return useContext(CurrentDatabaseContext); +export const useCurrentAppInfo = () => { + return useContext(CurrentAppInfoContext); }; -export const CurrentDatabaseProvider = (props) => { +export const CurrentAppInfoProvider = (props) => { const result = useRequest({ url: 'app:getInfo', }); @@ -15,10 +15,10 @@ export const CurrentDatabaseProvider = (props) => { return ; } return ( - {props.children} - + ); }; diff --git a/packages/core/client/src/appInfo/index.ts b/packages/core/client/src/appInfo/index.ts new file mode 100644 index 000000000..47a456a55 --- /dev/null +++ b/packages/core/client/src/appInfo/index.ts @@ -0,0 +1 @@ +export * from './CurrentAppInfoProvider'; diff --git a/packages/core/client/src/block-provider/FormBlockProvider.tsx b/packages/core/client/src/block-provider/FormBlockProvider.tsx index cd852417c..fc4ac0c58 100644 --- a/packages/core/client/src/block-provider/FormBlockProvider.tsx +++ b/packages/core/client/src/block-provider/FormBlockProvider.tsx @@ -50,8 +50,8 @@ const InternalFormBlockProvider = (props) => { export const FormBlockProvider = (props) => { const record = useRecord(); const { __tableName } = record; - const { getParentCollections } = useCollectionManager(); - const inheritCollections = getParentCollections(__tableName); + const { getInheritCollections } = useCollectionManager(); + const inheritCollections = getInheritCollections(__tableName); const { designable } = useDesignable(); const flag = !designable && __tableName && !inheritCollections.includes(props.collection) && __tableName !== props.collection; diff --git a/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTableArray.tsx b/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTableArray.tsx index 40b8db422..94baa00e2 100644 --- a/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTableArray.tsx +++ b/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTableArray.tsx @@ -84,7 +84,7 @@ export const CollectionFieldsTableArray: React.FC = observer((props) => { const { name } = useRecord(); const { t } = useTranslation(); const compile = useCompile(); - const { getInterface, getParentCollections, getCollection, getCurrentCollectionFields, getInheritedFields } = + const { getInterface, getInheritCollections, getCollection, getCurrentCollectionFields, getInheritedFields } = useCollectionManager(); const { showIndex = true, @@ -96,7 +96,7 @@ export const CollectionFieldsTableArray: React.FC = observer((props) => { const [selectedRowKeys, setSelectedRowKeys] = useSelectedRowKeys(); const [categorizeData, setCategorizeData] = useState>([]); 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"