@dovetail-v2/refine 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{MonacoYamlDiffEditor.0954476c.js → MonacoYamlDiffEditor.8bad293e.js} +2 -1
- package/dist/{index.ea039602.js → index.294b375a.js} +4052 -2784
- package/dist/refine.js +58 -8
- package/dist/refine.umd.cjs +4026 -2759
- package/dist/style.css +18 -16
- package/lib/src/App.d.ts +0 -3
- package/lib/src/Dovetail.d.ts +4 -0
- package/lib/src/components/ResourceUsageBar/index.d.ts +8 -0
- package/lib/src/components/ShowContent/fields.d.ts +1 -0
- package/lib/src/components/index.d.ts +33 -0
- package/lib/src/constants/index.d.ts +1 -0
- package/lib/src/hooks/index.d.ts +4 -0
- package/lib/src/hooks/useEagleTable/columns.d.ts +1 -1
- package/lib/src/index.d.ts +3 -2
- package/lib/src/main.d.ts +1 -1
- package/lib/src/model/index.d.ts +1 -0
- package/lib/src/model/job-model.d.ts +2 -2
- package/lib/src/model/pod-metrics-model.d.ts +7 -0
- package/lib/src/model/pod-model.d.ts +5 -2
- package/lib/src/model/resource-model.d.ts +2 -2
- package/lib/src/model/workload-model.d.ts +2 -2
- package/lib/src/providers/router-provider/index.d.ts +1 -1
- package/lib/src/types/metric.d.ts +25 -0
- package/lib/src/types/resource.d.ts +2 -0
- package/lib/src/utils/unit.d.ts +12 -0
- package/package.json +4 -1
package/dist/style.css
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
@charset "UTF-8";.
|
|
2
|
-
.
|
|
3
|
-
.
|
|
1
|
+
@charset "UTF-8";.b142d7q8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.b142d7q8 .breadcrumb-item:not(:last-of-type):after{content:'>';margin:0 8px;}
|
|
2
|
+
.m1u1f5zp{color:#bec1d2;}
|
|
3
|
+
.m8ychfk{margin-right:8px;}
|
|
4
|
+
.p1o004do{margin-left:8px;}
|
|
5
|
+
.eckm4od{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}
|
|
6
|
+
.e1hl982n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.e1hl982n .title{margin-bottom:8px;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-image:linear-gradient(211.41deg,#929dad 0%,#d3dbe3 100%);}
|
|
7
|
+
.ax1qopv{position:absolute;top:0;left:0;bottom:0;width:1px;background:$blue-60;-webkit-transform:translateX(-9999px);-ms-transform:translateX(-9999px);transform:translateX(-9999px);z-index:999;}.ax1qopv::before{content:'';position:absolute;height:34px;width:3px;top:0;left:-1px;background:$blue-60;}
|
|
8
|
+
.t1upn1sz{width:100%;border-top:1px solid rgba(211,218,235,0.6);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.t1upn1sz .ant-table-pagination{display:none;}.t1upn1sz .table-container{min-height:0;}
|
|
9
|
+
.t1v3ienx{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;margin-bottom:16px;}
|
|
10
|
+
.c16agr8o{width:100%;}
|
|
11
|
+
.c1dicff8{width:100%;}
|
|
4
12
|
.t1joof7s{width:100%;padding:11px;border-bottom:1px solid rgba(211,218,235,0.6);background:rgba(225,230,241,0.6);border-top-left-radius:8px;border-top-right-radius:8px;}.t1joof7s.collapsed{border-bottom:0;}.t1joof7s svg{margin:auto;}.t1joof7s > .dovetail-ant-space-item{line-height:16px;}
|
|
5
13
|
.tti58uh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:20px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}.tti58uh .ant-space-item{line-height:1;}
|
|
6
14
|
.e15yt16p{margin-top:1px;}
|
|
@@ -12,24 +20,18 @@
|
|
|
12
20
|
.eh2qjnl{color:#f0483e;font-size:12px;line-height:18px;word-break:break-all;}
|
|
13
21
|
.e19q2bnp{margin-top:8px;}
|
|
14
22
|
.y16u5v3w .monaco-editor{border-bottom-left-radius:8px;border-bottom-right-radius:8px;}.y16u5v3w .monaco-editor .margin{border-bottom-left-radius:8px;}.y16u5v3w .monaco-editor .monaco-scrollable-element{border-bottom-right-radius:8px;}
|
|
15
|
-
.e5ks0bl{-webkit-flex:1;-ms-flex:1;flex:1;height:100%;}
|
|
16
|
-
.m1u1f5zp{color:#bec1d2;}
|
|
17
|
-
.m8ychfk{margin-right:8px;}
|
|
18
|
-
.p1o004do{margin-left:8px;}
|
|
19
|
-
.eckm4od{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}
|
|
20
|
-
.e1hl982n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.e1hl982n .title{margin-bottom:8px;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-image:linear-gradient(211.41deg,#929dad 0%,#d3dbe3 100%);}
|
|
21
|
-
.ax1qopv{position:absolute;top:0;left:0;bottom:0;width:1px;background:$blue-60;-webkit-transform:translateX(-9999px);-ms-transform:translateX(-9999px);transform:translateX(-9999px);z-index:999;}.ax1qopv::before{content:'';position:absolute;height:34px;width:3px;top:0;left:-1px;background:$blue-60;}
|
|
22
|
-
.t1upn1sz{width:100%;border-top:1px solid rgba(211,218,235,0.6);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.t1upn1sz .ant-table-pagination{display:none;}.t1upn1sz .table-container{min-height:0;}
|
|
23
|
-
.t1v3ienx{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;margin-bottom:16px;}
|
|
24
|
-
.laykzsq{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
|
|
25
|
-
.t1ng0psc.table-wrapper{height:auto;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-height:0;}
|
|
26
|
-
.c16agr8o{width:100%;}
|
|
27
23
|
.t13a6vox{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;}
|
|
28
24
|
.t12ikbmp{max-width:256px;overflow:hidden;text-overflow:ellipsis;}
|
|
29
|
-
.c1dicff8{width:100%;}
|
|
30
25
|
.t9agep2{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;}
|
|
31
26
|
.so89gfi{width:100%;overflow:auto;height:100%;width:100%;}
|
|
32
27
|
.e1ohe42f{margin-top:16px;}
|
|
28
|
+
.w1akirqw{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
|
|
29
|
+
.t30srnq{line-height:32px !important;}
|
|
30
|
+
.s1bsn3us{width:1px;height:16px;border-radius:1px;background:rgba(172,186,211,0.6);}
|
|
31
|
+
.e5ks0bl{-webkit-flex:1;-ms-flex:1;flex:1;height:100%;}
|
|
32
|
+
.laykzsq{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
|
|
33
|
+
.t1ng0psc.table-wrapper{height:auto;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-height:0;}
|
|
34
|
+
.wfg6u6g{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.wfg6u6g .usage-text{width:50px;text-align:right;}.wfg6u6g .usage-bar{height:12px;width:100px;position:relative;border-radius:2px;}.wfg6u6g .request-anchor{position:absolute;left:10%;top:-3px;height:18px;width:2px;background:#777;z-index:9;}.wfg6u6g .usage-fill-bar{position:absolute;left:0;top:0;height:100%;background:rgba(0,128,255,0.6);z-index:7;}.wfg6u6g .request-bar{position:absolute;left:0;top:0;height:100%;background:#d8deeb;z-index:5;}.wfg6u6g .request-to-limit-bar{position:absolute;right:0;top:0;height:100%;background:#d8deeb;z-index:5;}.wfg6u6g .request-to-limit-bar.no-limit{background:linear-gradient(to right,#d8deeb 50%,#d8deeb 50%);background-size:4px 100%;}.wfg6u6g .request-to-limit-bar.no-limit.exceed-request{background:linear-gradient(to right,#d8deeb 50%,rgba(0,128,255,0.6) 50%);background-size:4px 100%;}
|
|
33
35
|
.mdppgn0.ant-menu{background:#edf0f7;padding:8px;}.mdppgn0.ant-menu .ant-menu-item-selected{background:linear-gradient(90deg,#0080ff,#005ed1);border-radius:6px;box-shadow:0 1px 2px rgba(184,192,204,0.6);color:#fff;}.mdppgn0.ant-menu .ant-menu-item-selected a:hover{color:#fff;}.mdppgn0.ant-menu .ant-menu-item:not(.ant-menu-item-selected):hover{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0.6));border-radius:6px;box-shadow:0 0 4px rgba(235,239,245,0.6),0 8px 16px rgba(129,138,153,0.18);}
|
|
34
36
|
.h16z07g.ant-layout-header{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-bottom:2px solid #edf0f7;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:50px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:0 24px 0 14px;position:relative;z-index:10;}
|
|
35
37
|
.c1i80kj{height:100%;}
|
package/lib/src/App.d.ts
CHANGED
package/lib/src/Dovetail.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ResourceProps } from '@refinedev/core';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import './i18n';
|
|
3
4
|
import './styles.css';
|
|
@@ -6,7 +7,10 @@ import '@cloudtower/eagle/dist/style.css';
|
|
|
6
7
|
import { ResourceConfig } from './types';
|
|
7
8
|
type Props = {
|
|
8
9
|
resourcesConfig: ResourceConfig[];
|
|
10
|
+
useHashUrl?: boolean;
|
|
9
11
|
urlPrefix: string;
|
|
12
|
+
refineResources?: ResourceProps[];
|
|
13
|
+
Layout?: React.FC<unknown>;
|
|
10
14
|
};
|
|
11
15
|
export declare const Dovetail: React.FC<Props>;
|
|
12
16
|
export {};
|
|
@@ -13,4 +13,5 @@ export declare const ConditionsField: (i18n: i18n) => ShowField<WorkloadModel>;
|
|
|
13
13
|
export declare const PodsField: (_: i18n) => ShowField<WorkloadModel>;
|
|
14
14
|
export declare const JobsField: (_: i18n) => ShowField<WorkloadModel>;
|
|
15
15
|
export declare const DataField: (i18n: i18n) => ShowField<ResourceModel>;
|
|
16
|
+
export declare const SecretDataField: (i18n: i18n) => ShowField<ResourceModel>;
|
|
16
17
|
export declare const StartTimeField: (i18n: i18n) => ShowField<JobModel>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export * from './Breadcrumb';
|
|
2
|
+
export * from './Form';
|
|
3
|
+
export * from './PageShow';
|
|
4
|
+
export * from './Time';
|
|
5
|
+
export * from './ConditionsTable';
|
|
6
|
+
export * from './FormLayout';
|
|
7
|
+
export * from './PodContainersTable';
|
|
8
|
+
export * from './WorkloadDropdown';
|
|
9
|
+
export * from './CreateButton';
|
|
10
|
+
export * from './ImageNames';
|
|
11
|
+
export * from './ResourceCRUD';
|
|
12
|
+
export * from './WorkloadPodsTable';
|
|
13
|
+
export * from './CronJobDropdown';
|
|
14
|
+
export * from './K8sDropdown';
|
|
15
|
+
export * from './ResourceUsageBar';
|
|
16
|
+
export * from './WorkloadReplicas';
|
|
17
|
+
export * from './CronjobJobsTable';
|
|
18
|
+
export * from './KeyValue';
|
|
19
|
+
export * from './Separator';
|
|
20
|
+
export * from './YamlEditor';
|
|
21
|
+
export * from './DeleteButton';
|
|
22
|
+
export * from './Layout';
|
|
23
|
+
export * from './ShowContent';
|
|
24
|
+
export * from './YamlForm';
|
|
25
|
+
export * from './DeleteManyButton';
|
|
26
|
+
export * from './ListPage';
|
|
27
|
+
export * from './StateTag';
|
|
28
|
+
export * from './DrawerShow';
|
|
29
|
+
export * from './Menu';
|
|
30
|
+
export * from './Table';
|
|
31
|
+
export * from './EditButton';
|
|
32
|
+
export * from './NamespacesFilter';
|
|
33
|
+
export * from './Tags';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './k8s';
|
package/lib/src/hooks/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { i18n } from 'i18next';
|
|
|
2
2
|
import { Column } from '../../components/Table';
|
|
3
3
|
import { JobModel, PodModel, ResourceModel } from '../../model';
|
|
4
4
|
import { WorkloadModel } from '../../model/workload-model';
|
|
5
|
-
export declare const CommonSorter: (dataIndex: string[]) => (a: unknown, b: unknown) =>
|
|
5
|
+
export declare const CommonSorter: (dataIndex: string[]) => (a: unknown, b: unknown) => 0 | 1 | -1;
|
|
6
6
|
export declare const NameColumnRenderer: <Model extends ResourceModel>(i18n: i18n, resource?: string) => Column<Model>;
|
|
7
7
|
export declare const NameSpaceColumnRenderer: <Model extends ResourceModel>(i18n: i18n) => Column<Model>;
|
|
8
8
|
export declare const PhaseColumnRenderer: <Model extends ResourceModel>(i18n: i18n) => Column<Model>;
|
package/lib/src/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './providers';
|
|
2
2
|
export * from './hooks';
|
|
3
|
-
export * from './components
|
|
4
|
-
export * from './
|
|
3
|
+
export * from './components';
|
|
4
|
+
export * from './constants';
|
|
5
|
+
export * from './hooks';
|
|
5
6
|
export * from './Dovetail';
|
|
6
7
|
export * from './types';
|
package/lib/src/main.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import './i18n';
|
package/lib/src/model/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { Job } from 'kubernetes-types/batch/v1';
|
|
|
2
2
|
import { WithId } from '../types';
|
|
3
3
|
import { WorkloadModel } from './workload-model';
|
|
4
4
|
export declare class JobModel extends WorkloadModel<Job> {
|
|
5
|
-
|
|
6
|
-
constructor(
|
|
5
|
+
rawYaml: WithId<Job>;
|
|
6
|
+
constructor(rawYaml: WithId<Job>);
|
|
7
7
|
get duration(): number;
|
|
8
8
|
get durationDisplay(): string | undefined;
|
|
9
9
|
get completionsDisplay(): string;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { Pod } from 'kubernetes-types/core/v1';
|
|
2
|
+
import { ResourceQuantity } from 'src/types/metric';
|
|
2
3
|
import { WithId } from '../types';
|
|
3
4
|
import { WorkloadModel } from './workload-model';
|
|
4
5
|
export declare class PodModel extends WorkloadModel<Pod> {
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
rawYaml: WithId<Pod>;
|
|
7
|
+
request: ResourceQuantity;
|
|
8
|
+
limit: ResourceQuantity;
|
|
9
|
+
constructor(rawYaml: WithId<Pod>);
|
|
7
10
|
get imageNames(): string[];
|
|
8
11
|
get restartCount(): number;
|
|
9
12
|
get readyDisplay(): string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Resource } from '../types';
|
|
2
2
|
export declare class ResourceModel implements Resource {
|
|
3
|
-
|
|
3
|
+
rawYaml: Resource;
|
|
4
4
|
id: Resource['id'];
|
|
5
5
|
apiVersion: Resource['apiVersion'];
|
|
6
6
|
kind: Resource['kind'];
|
|
7
7
|
metadata: Resource['metadata'];
|
|
8
|
-
constructor(
|
|
8
|
+
constructor(rawYaml: Resource);
|
|
9
9
|
get name(): string | undefined;
|
|
10
10
|
get namespace(): string | undefined;
|
|
11
11
|
get labels(): {
|
|
@@ -5,8 +5,8 @@ import { WithId } from '../types';
|
|
|
5
5
|
import { ResourceModel } from './resource-model';
|
|
6
6
|
type WorkloadTypes = Deployment | StatefulSet | Job | DaemonSet | CronJob | Pod;
|
|
7
7
|
export declare class WorkloadModel<T extends WorkloadTypes = WorkloadTypes> extends ResourceModel {
|
|
8
|
-
|
|
9
|
-
constructor(
|
|
8
|
+
rawYaml: WithId<T>;
|
|
9
|
+
constructor(rawYaml: WithId<T>);
|
|
10
10
|
get status(): T['status'];
|
|
11
11
|
get spec(): T['spec'];
|
|
12
12
|
get imageNames(): string[];
|
|
@@ -11,7 +11,7 @@ export declare const convertToNumberIfPossible: (value: string | undefined) => s
|
|
|
11
11
|
export declare const routerProvider: {
|
|
12
12
|
go: () => ({ to, type, query, hash, options: { keepQuery, keepHash } }: GoConfig) => string | void;
|
|
13
13
|
back: () => () => void;
|
|
14
|
-
parse: () => () => ParseResponse
|
|
14
|
+
parse: () => () => ParseResponse;
|
|
15
15
|
Link: React.ForwardRefExoticComponent<Pick<{
|
|
16
16
|
[prop: string]: any;
|
|
17
17
|
to: string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Resource } from './resource';
|
|
2
|
+
type Quantity = string;
|
|
3
|
+
export type ContainerMetrics = {
|
|
4
|
+
name: string;
|
|
5
|
+
usage: {
|
|
6
|
+
cpu?: Quantity;
|
|
7
|
+
memory?: Quantity;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export type PodMetrics = {
|
|
11
|
+
timestamp: string;
|
|
12
|
+
window: string;
|
|
13
|
+
containers: ContainerMetrics[];
|
|
14
|
+
} & Resource;
|
|
15
|
+
export type ResourceQuantity = {
|
|
16
|
+
cpu: {
|
|
17
|
+
si: string;
|
|
18
|
+
value: number;
|
|
19
|
+
};
|
|
20
|
+
memory: {
|
|
21
|
+
si: string;
|
|
22
|
+
value: number;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
@@ -28,6 +28,7 @@ export type ResourceConfig<Raw extends Resource = Resource, Model extends Resour
|
|
|
28
28
|
kind: string;
|
|
29
29
|
basePath: string;
|
|
30
30
|
apiVersion: string;
|
|
31
|
+
label: string;
|
|
31
32
|
parent?: RESOURCE_GROUP;
|
|
32
33
|
formatter?: (v: Raw) => Model;
|
|
33
34
|
initValue?: Record<string, unknown>;
|
|
@@ -36,4 +37,5 @@ export type ResourceConfig<Raw extends Resource = Resource, Model extends Resour
|
|
|
36
37
|
Dropdown?: React.FC<{
|
|
37
38
|
data: Model;
|
|
38
39
|
}>;
|
|
40
|
+
isCustom?: boolean;
|
|
39
41
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type FormatOptions = {
|
|
2
|
+
increment: number;
|
|
3
|
+
suffix: string | null;
|
|
4
|
+
firstSuffix: string | null;
|
|
5
|
+
startingExponent: number;
|
|
6
|
+
minExponent: number;
|
|
7
|
+
maxPrecision: number;
|
|
8
|
+
atLeastOne: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function formatSi(inValue: number, options?: Partial<FormatOptions>): string;
|
|
11
|
+
export declare function parseSi(inValue: string, increment?: number | null, allowFractional?: boolean): number;
|
|
12
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dovetail-v2/refine",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"@linaria/core": "^4.5.4",
|
|
38
38
|
"@linaria/react": "^4.5.4",
|
|
39
39
|
"@linaria/vite": "^4.5.4",
|
|
40
|
+
"@playwright/test": "^1.39.0",
|
|
40
41
|
"@refinedev/cli": "^2.9.0",
|
|
41
42
|
"@types/js-yaml": "^4.0.6",
|
|
42
43
|
"@types/json-schema": "^7.0.13",
|
|
@@ -67,9 +68,11 @@
|
|
|
67
68
|
},
|
|
68
69
|
"scripts": {
|
|
69
70
|
"dev": "refine dev",
|
|
71
|
+
"dev:test": "VITE_IS_TEST=true refine dev",
|
|
70
72
|
"build": "tsc --emitDeclarationOnly && vite build",
|
|
71
73
|
"preview": "refine start",
|
|
72
74
|
"refine": "refine",
|
|
75
|
+
"test": "npx playwright test --workers 1",
|
|
73
76
|
"lint": "eslint src --ext .ts,.tsx"
|
|
74
77
|
},
|
|
75
78
|
"browserslist": {
|