@sito/dashboard-app 0.0.52 → 0.0.54
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/README.md +172 -7
- package/dist/components/Dialog/ImportDialog/types.d.ts +2 -1
- package/dist/components/Dialog/types.d.ts +4 -0
- package/dist/dashboard-app.cjs +1 -1
- package/dist/dashboard-app.js +1690 -1290
- package/dist/lib/api/IndexedDBClient.d.ts +2 -0
- package/dist/lib/api/SupabaseDataClient.d.ts +43 -0
- package/dist/lib/api/index.d.ts +2 -0
- package/dist/lib/api/supabaseAuth.d.ts +10 -0
- package/dist/lib/entities/base/BaseFilterDto.d.ts +2 -0
- package/dist/lib/entities/base/index.d.ts +2 -2
- package/dist/providers/{AuthProvider.d.ts → Auth/AuthProvider.d.ts} +2 -2
- package/dist/providers/Auth/authContext.d.ts +3 -0
- package/dist/providers/Auth/index.d.ts +3 -0
- package/dist/providers/Auth/types.d.ts +17 -0
- package/dist/providers/Supbase/SupabaseAuthProvider.d.ts +3 -0
- package/dist/providers/Supbase/SupabaseContext.d.ts +3 -0
- package/dist/providers/Supbase/SupabaseManagerProvider.d.ts +3 -0
- package/dist/providers/Supbase/index.d.ts +4 -0
- package/dist/providers/Supbase/types.d.ts +15 -0
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/types.d.ts +1 -16
- package/package.json +19 -12
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
import { QueryParam, QueryResult } from './types';
|
|
3
|
+
import { BaseCommonEntityDto, BaseEntityDto, BaseFilterDto, DeleteDto, ImportDto, ImportPreviewDto } from '..';
|
|
4
|
+
export type SupabaseDataClientOptions<TDto, TCommonDto, TAddDto, TUpdateDto, TImportPreviewDto, TRow extends Record<string, unknown>, TCommonRow extends Record<string, unknown> = TRow> = {
|
|
5
|
+
idColumn?: keyof TRow & string;
|
|
6
|
+
deletedAtColumn?: keyof TRow & string;
|
|
7
|
+
defaultSortColumn?: keyof TRow & string;
|
|
8
|
+
mapRowToDto?: (row: TRow) => TDto;
|
|
9
|
+
mapRowToCommonDto?: (row: TCommonRow) => TCommonDto;
|
|
10
|
+
mapAddDtoToRow?: (value: TAddDto) => Partial<TRow>;
|
|
11
|
+
mapUpdateDtoToRow?: (value: TUpdateDto) => Partial<TRow>;
|
|
12
|
+
mapImportPreviewToRow?: (value: TImportPreviewDto) => Partial<TRow>;
|
|
13
|
+
nowFactory?: () => Date;
|
|
14
|
+
};
|
|
15
|
+
export declare class SupabaseDataClient<Tables extends string, TDto extends BaseEntityDto, TCommonDto extends BaseCommonEntityDto, TAddDto, TUpdateDto extends DeleteDto, TFilter extends BaseFilterDto, TImportPreviewDto extends ImportPreviewDto, TRow extends Record<string, unknown> = Record<string, unknown>, TCommonRow extends Record<string, unknown> = TRow> {
|
|
16
|
+
table: Tables;
|
|
17
|
+
supabase: Pick<SupabaseClient, "from">;
|
|
18
|
+
idColumn: keyof TRow & string;
|
|
19
|
+
deletedAtColumn: keyof TRow & string;
|
|
20
|
+
defaultSortColumn: keyof TRow & string;
|
|
21
|
+
options: SupabaseDataClientOptions<TDto, TCommonDto, TAddDto, TUpdateDto, TImportPreviewDto, TRow, TCommonRow>;
|
|
22
|
+
constructor(table: Tables, supabase: Pick<SupabaseClient, "from">, options?: SupabaseDataClientOptions<TDto, TCommonDto, TAddDto, TUpdateDto, TImportPreviewDto, TRow, TCommonRow>);
|
|
23
|
+
private resolveStatus;
|
|
24
|
+
private throwHttpError;
|
|
25
|
+
private assertNoError;
|
|
26
|
+
private toDto;
|
|
27
|
+
private toCommonDto;
|
|
28
|
+
private toAddRow;
|
|
29
|
+
private toUpdateRow;
|
|
30
|
+
private toImportRow;
|
|
31
|
+
private resolveObjectFilterValue;
|
|
32
|
+
private applyFilters;
|
|
33
|
+
insert(value: TAddDto): Promise<TDto>;
|
|
34
|
+
insertMany(data: TAddDto[]): Promise<TDto>;
|
|
35
|
+
update(value: TUpdateDto): Promise<TDto>;
|
|
36
|
+
get(query?: QueryParam<TDto>, filters?: TFilter): Promise<QueryResult<TDto>>;
|
|
37
|
+
export(filters?: TFilter): Promise<TDto[]>;
|
|
38
|
+
import(data: ImportDto<TImportPreviewDto>): Promise<number>;
|
|
39
|
+
commonGet(query: TFilter): Promise<TCommonDto[]>;
|
|
40
|
+
getById(id: number): Promise<TDto>;
|
|
41
|
+
softDelete(ids: number[]): Promise<number>;
|
|
42
|
+
restore(ids: number[]): Promise<number>;
|
|
43
|
+
}
|
package/dist/lib/api/index.d.ts
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Session } from '@supabase/supabase-js';
|
|
2
|
+
import { SessionDto } from '..';
|
|
3
|
+
export type SupabaseSessionMapper = (session: Session) => SessionDto;
|
|
4
|
+
export type SupabaseSessionMapperOptions = {
|
|
5
|
+
defaultId?: number;
|
|
6
|
+
defaultUsername?: string;
|
|
7
|
+
defaultEmail?: string;
|
|
8
|
+
usernameMetadataKeys?: string[];
|
|
9
|
+
};
|
|
10
|
+
export declare const mapSupabaseSessionToSessionDto: (session: Session, options?: SupabaseSessionMapperOptions) => SessionDto;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseCommonEntityDto } from './BaseCommonEntityDto';
|
|
2
2
|
import { BaseEntityDto } from './BaseEntityDto';
|
|
3
3
|
import { DeleteDto } from './DeleteDto';
|
|
4
|
-
import { BaseFilterDto } from './BaseFilterDto';
|
|
5
|
-
export type { BaseCommonEntityDto, BaseEntityDto, DeleteDto, BaseFilterDto };
|
|
4
|
+
import { BaseFilterDto, SoftDeleteScope } from './BaseFilterDto';
|
|
5
|
+
export type { BaseCommonEntityDto, BaseEntityDto, DeleteDto, BaseFilterDto, SoftDeleteScope, };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AuthProviderPropTypes } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Auth Provider
|
|
4
4
|
* @param props - provider props
|
|
@@ -9,5 +9,5 @@ declare const AuthProvider: (props: AuthProviderPropTypes) => import("react/jsx-
|
|
|
9
9
|
* useAuth hook
|
|
10
10
|
* @returns Provider
|
|
11
11
|
*/
|
|
12
|
-
declare const useAuth: () => AuthProviderContextType;
|
|
12
|
+
declare const useAuth: () => import('./types').AuthProviderContextType;
|
|
13
13
|
export { AuthProvider, useAuth };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SessionDto } from '../../lib';
|
|
2
|
+
import { BasicProviderPropTypes } from '..';
|
|
3
|
+
export interface AuthProviderPropTypes extends BasicProviderPropTypes {
|
|
4
|
+
guestMode?: string;
|
|
5
|
+
user?: string;
|
|
6
|
+
remember?: string;
|
|
7
|
+
refreshTokenKey?: string;
|
|
8
|
+
accessTokenExpiresAtKey?: string;
|
|
9
|
+
}
|
|
10
|
+
export type AuthProviderContextType = {
|
|
11
|
+
account: SessionDto;
|
|
12
|
+
logUser: (data: SessionDto, rememberMe?: boolean) => void;
|
|
13
|
+
logoutUser: () => Promise<void>;
|
|
14
|
+
logUserFromLocal: () => Promise<void>;
|
|
15
|
+
isInGuestMode: () => boolean;
|
|
16
|
+
setGuestMode: (value: boolean) => void;
|
|
17
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SupabaseManagerProviderContextType } from './types';
|
|
2
|
+
export declare const SupabaseManagerContext: import('react').Context<SupabaseManagerProviderContextType | undefined>;
|
|
3
|
+
export declare const useSupabase: () => import('@supabase/supabase-js').SupabaseClient<any, "public", "public", any, any>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { SupabaseSessionMapper } from '../../lib';
|
|
4
|
+
import { BasicProviderPropTypes } from '..';
|
|
5
|
+
import { AuthProviderPropTypes } from '../Auth';
|
|
6
|
+
export interface SupabaseManagerProviderPropTypes extends BasicProviderPropTypes {
|
|
7
|
+
supabase: SupabaseClient;
|
|
8
|
+
queryClient?: QueryClient;
|
|
9
|
+
}
|
|
10
|
+
export type SupabaseManagerProviderContextType = {
|
|
11
|
+
client: SupabaseClient;
|
|
12
|
+
};
|
|
13
|
+
export interface SupabaseAuthProviderPropTypes extends AuthProviderPropTypes {
|
|
14
|
+
sessionMapper?: SupabaseSessionMapper;
|
|
15
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './NotificationProvider';
|
|
2
2
|
export * from './ManagerProvider';
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './Supbase';
|
|
4
|
+
export * from './Auth';
|
|
4
5
|
export * from './ConfigProvider';
|
|
5
6
|
export * from './DrawerMenuProvider';
|
|
6
7
|
export type * from './types';
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
2
|
import { QueryClient } from '@tanstack/react-query';
|
|
3
|
-
import { BaseEntityDto, IManager, NotificationType,
|
|
3
|
+
import { BaseEntityDto, IManager, NotificationType, Location, SubMenuItemType } from '../lib';
|
|
4
4
|
import { BaseLinkPropsType, BaseSearchModalPropsType } from '../components';
|
|
5
5
|
export type BasicProviderPropTypes = {
|
|
6
6
|
children: ReactNode;
|
|
7
7
|
};
|
|
8
|
-
export interface AuthProviderPropTypes extends BasicProviderPropTypes {
|
|
9
|
-
guestMode?: string;
|
|
10
|
-
user?: string;
|
|
11
|
-
remember?: string;
|
|
12
|
-
refreshTokenKey?: string;
|
|
13
|
-
accessTokenExpiresAtKey?: string;
|
|
14
|
-
}
|
|
15
8
|
export interface ManagerProviderPropTypes extends BasicProviderPropTypes {
|
|
16
9
|
manager: IManager;
|
|
17
10
|
queryClient?: QueryClient;
|
|
@@ -31,14 +24,6 @@ export type ConfigProviderContextType = {
|
|
|
31
24
|
linkComponent: ComponentType<BaseLinkPropsType>;
|
|
32
25
|
searchComponent?: ComponentType<BaseSearchModalPropsType>;
|
|
33
26
|
};
|
|
34
|
-
export type AuthProviderContextType = {
|
|
35
|
-
account: SessionDto;
|
|
36
|
-
logUser: (data: SessionDto, rememberMe?: boolean) => void;
|
|
37
|
-
logoutUser: () => Promise<void>;
|
|
38
|
-
logUserFromLocal: () => Promise<void>;
|
|
39
|
-
isInGuestMode: () => boolean;
|
|
40
|
-
setGuestMode: (value: boolean) => void;
|
|
41
|
-
};
|
|
42
27
|
export type LocalCacheProviderContextType = {
|
|
43
28
|
data?: FileDataType;
|
|
44
29
|
updateCache: <T = BaseEntityDto>(key: string, data: T[]) => void;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sito/dashboard-app",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.54",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "UI Library with prefab components",
|
|
7
7
|
"main": "dist/dashboard-app.cjs",
|
|
@@ -54,38 +54,46 @@
|
|
|
54
54
|
"@fortawesome/free-regular-svg-icons": "7.0.0",
|
|
55
55
|
"@fortawesome/free-solid-svg-icons": "7.0.0",
|
|
56
56
|
"@fortawesome/react-fontawesome": "0.2.3",
|
|
57
|
-
"@sito/dashboard": "^0.0.
|
|
57
|
+
"@sito/dashboard": "^0.0.73",
|
|
58
|
+
"@supabase/supabase-js": "2.100.0",
|
|
58
59
|
"@tanstack/react-query": "5.83.0",
|
|
59
60
|
"react": "18.3.1",
|
|
60
61
|
"react-dom": "18.3.1",
|
|
61
62
|
"react-hook-form": "7.61.1"
|
|
62
63
|
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"@supabase/supabase-js": {
|
|
66
|
+
"optional": true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
63
69
|
"devDependencies": {
|
|
64
70
|
"@fortawesome/fontawesome-svg-core": "7.0.0",
|
|
65
71
|
"@fortawesome/free-brands-svg-icons": "7.0.0",
|
|
66
72
|
"@fortawesome/free-regular-svg-icons": "7.0.0",
|
|
67
73
|
"@fortawesome/free-solid-svg-icons": "7.0.0",
|
|
68
74
|
"@fortawesome/react-fontawesome": "0.2.3",
|
|
69
|
-
"@sito/dashboard": "^0.0.
|
|
75
|
+
"@sito/dashboard": "^0.0.73",
|
|
70
76
|
"@storybook/addon-a11y": "8.4.7",
|
|
71
77
|
"@storybook/addon-essentials": "8.4.7",
|
|
72
78
|
"@storybook/addon-interactions": "8.4.7",
|
|
73
79
|
"@storybook/react": "8.4.7",
|
|
74
80
|
"@storybook/react-vite": "8.4.7",
|
|
81
|
+
"@supabase/supabase-js": "2.100.0",
|
|
75
82
|
"@tailwindcss/vite": "4.1.11",
|
|
76
83
|
"@tanstack/react-query": "5.83.0",
|
|
77
|
-
"@testing-library/jest-dom": "
|
|
78
|
-
"@testing-library/react": "
|
|
84
|
+
"@testing-library/jest-dom": "6.6.3",
|
|
85
|
+
"@testing-library/react": "16.3.0",
|
|
79
86
|
"@types/node": "20.8.10",
|
|
80
87
|
"@types/react": "18.3.3",
|
|
81
88
|
"@types/react-dom": "18.2.14",
|
|
82
89
|
"@vitejs/plugin-react-swc": "3.7.2",
|
|
83
|
-
"
|
|
90
|
+
"depcheck": "1.4.7",
|
|
91
|
+
"eslint": "9.0.0",
|
|
84
92
|
"eslint-plugin-react-hooks": "7.0.1",
|
|
85
93
|
"eslint-plugin-react-refresh": "0.5.1",
|
|
86
|
-
"fake-indexeddb": "
|
|
94
|
+
"fake-indexeddb": "6.2.5",
|
|
87
95
|
"husky": "9.1.7",
|
|
88
|
-
"jsdom": "
|
|
96
|
+
"jsdom": "26.1.0",
|
|
89
97
|
"prettier": "3.3.3",
|
|
90
98
|
"react": "18.3.1",
|
|
91
99
|
"react-dom": "18.3.1",
|
|
@@ -95,15 +103,14 @@
|
|
|
95
103
|
"typescript": "5.7.2",
|
|
96
104
|
"typescript-eslint": "^8.56.0",
|
|
97
105
|
"vite": "6.4.1",
|
|
98
|
-
"vite-plugin-dts": "
|
|
106
|
+
"vite-plugin-dts": "4.5.4",
|
|
99
107
|
"vite-plugin-lib-inject-css": "1.3.0",
|
|
100
|
-
"vitest": "^3.2.1"
|
|
101
|
-
"depcheck": "^1.4.7"
|
|
108
|
+
"vitest": "^3.2.1"
|
|
102
109
|
},
|
|
103
110
|
"dependencies": {
|
|
104
111
|
"some-javascript-utils": "0.10.10"
|
|
105
112
|
},
|
|
106
113
|
"overrides": {
|
|
107
|
-
"minimatch": "
|
|
114
|
+
"minimatch": "10.2.2"
|
|
108
115
|
}
|
|
109
116
|
}
|