@archbase/data 3.0.0
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 +57 -0
- package/dist/archbase-data-3.0.0.tgz +0 -0
- package/dist/datasource/ArchbaseDataSource.d.ts +472 -0
- package/dist/datasource/ArchbaseLocalFilterDataSource.d.ts +27 -0
- package/dist/datasource/ArchbaseRemoteDataSource.d.ts +17 -0
- package/dist/datasource/ArchbaseRemoteFilterDataSource.d.ts +28 -0
- package/dist/datasource/ArchbaseV1V2CompatibilityPattern.d.ts +72 -0
- package/dist/datasource/IArchbaseDataSourceBase.d.ts +111 -0
- package/dist/datasource/index.d.ts +10 -0
- package/dist/datasource/v2/ArchbaseDataSourceV2.d.ts +128 -0
- package/dist/datasource/v2/ArchbaseQueryIntegration.d.ts +210 -0
- package/dist/datasource/v2/ArchbaseQueryProvider.d.ts +79 -0
- package/dist/datasource/v2/ArchbaseRemoteDataSourceV2.d.ts +182 -0
- package/dist/datasource/v2/ArchbaseTanStackQueryIntegration.d.ts +132 -0
- package/dist/datasource/v2/index.d.ts +11 -0
- package/dist/datasource/v2/useArchbaseDataSourceV2.d.ts +143 -0
- package/dist/datasource/v2/useArchbaseRemoteDataSourceV2.d.ts +210 -0
- package/dist/hooks/index.d.ts +14 -0
- package/dist/hooks/useArchbaseDataSource.d.ts +15 -0
- package/dist/hooks/useArchbaseDataSourceListener.d.ts +7 -0
- package/dist/hooks/useArchbaseDidMount.d.ts +5 -0
- package/dist/hooks/useArchbaseDidUpdate.d.ts +6 -0
- package/dist/hooks/useArchbaseEventListener.d.ts +1 -0
- package/dist/hooks/useArchbaseForceRerender.d.ts +5 -0
- package/dist/hooks/useArchbaseForceUpdate.d.ts +5 -0
- package/dist/hooks/useArchbaseLocalFilterDataSource.d.ts +13 -0
- package/dist/hooks/useArchbaseRemoteDataSource.d.ts +36 -0
- package/dist/hooks/useArchbaseRemoteFilterDataSource.d.ts +34 -0
- package/dist/hooks/useArchbaseRemoteServiceApi.d.ts +2 -0
- package/dist/hooks/useArchbaseStore.d.ts +3 -0
- package/dist/hooks/useArchbaseWillUnmount.d.ts +5 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +3360 -0
- package/dist/service/ArchbaseRemoteApiService.d.ts +103 -0
- package/dist/service/index.d.ts +2 -0
- package/dist/types/ArchbaseStateValues.d.ts +9 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { ArchbaseTokenManager } from '@archbase/core';
|
|
3
|
+
export interface Page<T> {
|
|
4
|
+
content: T[];
|
|
5
|
+
pageable?: Pageable;
|
|
6
|
+
page?: SimplePage;
|
|
7
|
+
totalElements: number;
|
|
8
|
+
totalPages: number;
|
|
9
|
+
last: boolean;
|
|
10
|
+
sort: Sort;
|
|
11
|
+
number: number;
|
|
12
|
+
size: number;
|
|
13
|
+
first: boolean;
|
|
14
|
+
numberOfElements: number;
|
|
15
|
+
empty: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface SimplePage {
|
|
18
|
+
size: number;
|
|
19
|
+
number: number;
|
|
20
|
+
totalElements: number;
|
|
21
|
+
totalPages: number;
|
|
22
|
+
}
|
|
23
|
+
export interface Pageable {
|
|
24
|
+
sort: Sort;
|
|
25
|
+
offset: number;
|
|
26
|
+
pageSize: number;
|
|
27
|
+
pageNumber: number;
|
|
28
|
+
unpaged: boolean;
|
|
29
|
+
paged: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface Sort {
|
|
32
|
+
sorted: boolean;
|
|
33
|
+
unsorted: boolean;
|
|
34
|
+
empty: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface ArchbaseRemoteApiClient {
|
|
37
|
+
get<T>(url: string, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<T>;
|
|
38
|
+
post<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
39
|
+
put<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
40
|
+
postNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
41
|
+
putNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
42
|
+
binaryPut<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
43
|
+
delete<T>(url: string, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<T>;
|
|
44
|
+
patch<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
45
|
+
patchNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
46
|
+
}
|
|
47
|
+
export declare class ArchbaseAxiosRemoteApiClient implements ArchbaseRemoteApiClient {
|
|
48
|
+
protected tokenManager: ArchbaseTokenManager;
|
|
49
|
+
constructor(tokenManager: ArchbaseTokenManager);
|
|
50
|
+
protected prepareHeaders(headers?: Record<string, string>, withoutToken?: boolean): Record<string, string>;
|
|
51
|
+
get<T>(url: string, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<T>;
|
|
52
|
+
post<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
53
|
+
postNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
54
|
+
put<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
55
|
+
putNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
56
|
+
binaryPut<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
57
|
+
delete<T>(url: string, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<T>;
|
|
58
|
+
patch<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
59
|
+
patchNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
|
|
60
|
+
}
|
|
61
|
+
export interface ArchbaseEntityTransformer<T> {
|
|
62
|
+
transform(entity: T): T;
|
|
63
|
+
}
|
|
64
|
+
export declare abstract class ArchbaseRemoteApiService<T, ID> {
|
|
65
|
+
protected readonly client: ArchbaseRemoteApiClient;
|
|
66
|
+
constructor(client: ArchbaseRemoteApiClient);
|
|
67
|
+
protected abstract getEndpoint(): string;
|
|
68
|
+
abstract getId(entity: T): ID;
|
|
69
|
+
protected abstract configureHeaders(): Record<string, string>;
|
|
70
|
+
protected transformPage(page: Page<T>): void;
|
|
71
|
+
protected transformList(list: T[]): void;
|
|
72
|
+
private isTransformable;
|
|
73
|
+
validate(entity: T): Promise<void>;
|
|
74
|
+
validateGroup<R>(entity: T, groups: any[]): Promise<R>;
|
|
75
|
+
exists(id: ID): Promise<boolean>;
|
|
76
|
+
findAll(page: number, size: number): Promise<Page<T>>;
|
|
77
|
+
findAllWithSort(page: number, size: number, sort: string[]): Promise<Page<T>>;
|
|
78
|
+
findAllByIds(ids: ID[]): Promise<T[]>;
|
|
79
|
+
findAllWithFilter(filter: string, page: number, size: number): Promise<Page<T>>;
|
|
80
|
+
findAllMultipleFields(value: string, fields: string, page: number, size: number, sort: string): Promise<Page<T>>;
|
|
81
|
+
findAllWithFilterAndSort(filter: string, page: number, size: number, sort: string[]): Promise<Page<T>>;
|
|
82
|
+
findOne(id: ID): Promise<T>;
|
|
83
|
+
findByComplexId<R>(id: T): Promise<R>;
|
|
84
|
+
existsByComplexId(id: T): Promise<boolean>;
|
|
85
|
+
save<R>(entity: T): Promise<R>;
|
|
86
|
+
delete<T>(id: ID): Promise<void>;
|
|
87
|
+
abstract isNewRecord(entity: T): boolean;
|
|
88
|
+
}
|
|
89
|
+
export declare class DefaultPage<T> implements Page<T> {
|
|
90
|
+
content: T[];
|
|
91
|
+
pageable: Pageable;
|
|
92
|
+
totalElements: number;
|
|
93
|
+
totalPages: number;
|
|
94
|
+
last: boolean;
|
|
95
|
+
sort: Sort;
|
|
96
|
+
number: number;
|
|
97
|
+
size: number;
|
|
98
|
+
first: boolean;
|
|
99
|
+
numberOfElements: number;
|
|
100
|
+
empty: boolean;
|
|
101
|
+
constructor(content: T[], totalElements: number, totalPages: number, pageNumber: number, pageSize: number, sort?: Sort, last?: boolean, first?: boolean, numberOfElements?: number, empty?: boolean);
|
|
102
|
+
static createFromValues<T>(content: T[], totalElements: number, totalPages: number, pageNumber: number, pageSize: number): DefaultPage<T>;
|
|
103
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type ArchbaseStateValues = {
|
|
2
|
+
values: Map<string, any>;
|
|
3
|
+
setValue: (key: string, value: any) => void;
|
|
4
|
+
getValue: (key: any) => any;
|
|
5
|
+
existsValue: (key: string) => boolean;
|
|
6
|
+
clearValue: (key: string) => void;
|
|
7
|
+
clearAllValues: () => void;
|
|
8
|
+
reset: () => void;
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ArchbaseStateValues';
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@archbase/data",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Data management layer for Archbase React v3 - DataSource, hooks, and API services",
|
|
5
|
+
"author": "Edson Martins <edsonmartins2005@gmail.com>",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"require": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"README.md"
|
|
21
|
+
],
|
|
22
|
+
"peerDependencies": {
|
|
23
|
+
"react": "^18.3.0 || ^19.0.0",
|
|
24
|
+
"react-dom": "^18.3.0 || ^19.0.0",
|
|
25
|
+
"@mantine/core": "8.3.12"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@tanstack/react-query": "^5.81.5",
|
|
29
|
+
"axios": "^1.7.2",
|
|
30
|
+
"zustand": "^5.0.6",
|
|
31
|
+
"immer": "^10.1.1",
|
|
32
|
+
"rxjs": "^7.8.2",
|
|
33
|
+
"react-tracked": "^2.0.1",
|
|
34
|
+
"inversify": "^6.0.3",
|
|
35
|
+
"inversify-react": "^1.1.0",
|
|
36
|
+
"date-fns": "^2.30.0",
|
|
37
|
+
"events": "^3.3.0",
|
|
38
|
+
"i18next": "^23.10.0",
|
|
39
|
+
"lodash": "^4.17.21",
|
|
40
|
+
"reflect-metadata": "^0.2.2",
|
|
41
|
+
"@archbase/core": "3.0.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/react": "^19.0.4",
|
|
45
|
+
"@types/react-dom": "^19.0.2",
|
|
46
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
47
|
+
"react": "^19.0.0",
|
|
48
|
+
"react-dom": "^19.0.0",
|
|
49
|
+
"typescript": "~5.7.2",
|
|
50
|
+
"vite": "^6.0.3",
|
|
51
|
+
"vitest": "^2.1.8",
|
|
52
|
+
"@mantine/hooks": "8.3.12",
|
|
53
|
+
"@testing-library/react": "^16.3.0"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"dev": "NODE_OPTIONS=\"--max-old-space-size=8192\" vite build --watch",
|
|
57
|
+
"build": "rm -rf dist && NODE_OPTIONS=\"--max-old-space-size=8192\" vite build && tsc --emitDeclarationOnly || true",
|
|
58
|
+
"test": "vitest run",
|
|
59
|
+
"test:watch": "vitest",
|
|
60
|
+
"test:coverage": "vitest run --coverage",
|
|
61
|
+
"lint": "eslint . --max-warnings 0",
|
|
62
|
+
"clean": "rm -rf dist .turbo node_modules"
|
|
63
|
+
}
|
|
64
|
+
}
|