@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.
Files changed (38) hide show
  1. package/README.md +57 -0
  2. package/dist/archbase-data-3.0.0.tgz +0 -0
  3. package/dist/datasource/ArchbaseDataSource.d.ts +472 -0
  4. package/dist/datasource/ArchbaseLocalFilterDataSource.d.ts +27 -0
  5. package/dist/datasource/ArchbaseRemoteDataSource.d.ts +17 -0
  6. package/dist/datasource/ArchbaseRemoteFilterDataSource.d.ts +28 -0
  7. package/dist/datasource/ArchbaseV1V2CompatibilityPattern.d.ts +72 -0
  8. package/dist/datasource/IArchbaseDataSourceBase.d.ts +111 -0
  9. package/dist/datasource/index.d.ts +10 -0
  10. package/dist/datasource/v2/ArchbaseDataSourceV2.d.ts +128 -0
  11. package/dist/datasource/v2/ArchbaseQueryIntegration.d.ts +210 -0
  12. package/dist/datasource/v2/ArchbaseQueryProvider.d.ts +79 -0
  13. package/dist/datasource/v2/ArchbaseRemoteDataSourceV2.d.ts +182 -0
  14. package/dist/datasource/v2/ArchbaseTanStackQueryIntegration.d.ts +132 -0
  15. package/dist/datasource/v2/index.d.ts +11 -0
  16. package/dist/datasource/v2/useArchbaseDataSourceV2.d.ts +143 -0
  17. package/dist/datasource/v2/useArchbaseRemoteDataSourceV2.d.ts +210 -0
  18. package/dist/hooks/index.d.ts +14 -0
  19. package/dist/hooks/useArchbaseDataSource.d.ts +15 -0
  20. package/dist/hooks/useArchbaseDataSourceListener.d.ts +7 -0
  21. package/dist/hooks/useArchbaseDidMount.d.ts +5 -0
  22. package/dist/hooks/useArchbaseDidUpdate.d.ts +6 -0
  23. package/dist/hooks/useArchbaseEventListener.d.ts +1 -0
  24. package/dist/hooks/useArchbaseForceRerender.d.ts +5 -0
  25. package/dist/hooks/useArchbaseForceUpdate.d.ts +5 -0
  26. package/dist/hooks/useArchbaseLocalFilterDataSource.d.ts +13 -0
  27. package/dist/hooks/useArchbaseRemoteDataSource.d.ts +36 -0
  28. package/dist/hooks/useArchbaseRemoteFilterDataSource.d.ts +34 -0
  29. package/dist/hooks/useArchbaseRemoteServiceApi.d.ts +2 -0
  30. package/dist/hooks/useArchbaseStore.d.ts +3 -0
  31. package/dist/hooks/useArchbaseWillUnmount.d.ts +5 -0
  32. package/dist/index.d.ts +9 -0
  33. package/dist/index.js +3360 -0
  34. package/dist/service/ArchbaseRemoteApiService.d.ts +103 -0
  35. package/dist/service/index.d.ts +2 -0
  36. package/dist/types/ArchbaseStateValues.d.ts +9 -0
  37. package/dist/types/index.d.ts +1 -0
  38. 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,2 @@
1
+ export type { ArchbaseRemoteApiClient, Page, ArchbaseEntityTransformer } from './ArchbaseRemoteApiService';
2
+ export { ArchbaseRemoteApiService, ArchbaseAxiosRemoteApiClient, DefaultPage } from './ArchbaseRemoteApiService';
@@ -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
+ }