@m5kdev/frontend 0.1.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/.cursor/rules/frontend.mdc +49 -0
- package/.turbo/turbo-build.log +5 -0
- package/.turbo/turbo-check-types.log +5 -0
- package/.turbo/turbo-lint$colon$fix.log +101 -0
- package/.turbo/turbo-lint.log +162 -0
- package/LICENSE +621 -0
- package/dist/src/modules/auth/auth.lib.d.ts +2222 -0
- package/dist/src/modules/auth/auth.lib.d.ts.map +1 -0
- package/dist/src/modules/auth/auth.lib.js +41 -0
- package/dist/src/modules/auth/components/AuthProvider.d.ts +15 -0
- package/dist/src/modules/auth/components/AuthProvider.d.ts.map +1 -0
- package/dist/src/modules/auth/components/AuthProvider.js +73 -0
- package/dist/src/modules/auth/hooks/useAuth.d.ts +4 -0
- package/dist/src/modules/auth/hooks/useAuth.d.ts.map +1 -0
- package/dist/src/modules/auth/hooks/useAuth.js +14 -0
- package/dist/src/modules/auth/hooks/useAuthAdmin.d.ts +21 -0
- package/dist/src/modules/auth/hooks/useAuthAdmin.d.ts.map +1 -0
- package/dist/src/modules/auth/hooks/useAuthAdmin.js +160 -0
- package/dist/src/modules/auth/hooks/useSession.d.ts +38 -0
- package/dist/src/modules/auth/hooks/useSession.d.ts.map +1 -0
- package/dist/src/modules/auth/hooks/useSession.js +5 -0
- package/dist/src/modules/billing/components/BillingProvider.d.ts +14 -0
- package/dist/src/modules/billing/components/BillingProvider.d.ts.map +1 -0
- package/dist/src/modules/billing/components/BillingProvider.js +25 -0
- package/dist/src/modules/billing/hooks/useSubscription.d.ts +5 -0
- package/dist/src/modules/billing/hooks/useSubscription.d.ts.map +1 -0
- package/dist/src/modules/billing/hooks/useSubscription.js +5 -0
- package/dist/src/modules/file/hooks/useS3DownloadUrl.d.ts +3 -0
- package/dist/src/modules/file/hooks/useS3DownloadUrl.d.ts.map +1 -0
- package/dist/src/modules/file/hooks/useS3DownloadUrl.js +14 -0
- package/dist/src/modules/file/hooks/useS3Upload.d.ts +10 -0
- package/dist/src/modules/file/hooks/useS3Upload.d.ts.map +1 -0
- package/dist/src/modules/file/hooks/useS3Upload.js +76 -0
- package/dist/src/modules/file/hooks/useUpload.d.ts +30 -0
- package/dist/src/modules/file/hooks/useUpload.d.ts.map +1 -0
- package/dist/src/modules/file/hooks/useUpload.js +167 -0
- package/dist/src/modules/table/hooks/useDateRangeFilter.d.ts +28 -0
- package/dist/src/modules/table/hooks/useDateRangeFilter.d.ts.map +1 -0
- package/dist/src/modules/table/hooks/useDateRangeFilter.js +20 -0
- package/dist/src/modules/table/hooks/useNuqsQueryParams.d.ts +25 -0
- package/dist/src/modules/table/hooks/useNuqsQueryParams.d.ts.map +1 -0
- package/dist/src/modules/table/hooks/useNuqsQueryParams.js +82 -0
- package/dist/src/modules/table/hooks/useNuqsTable.d.ts +33 -0
- package/dist/src/modules/table/hooks/useNuqsTable.d.ts.map +1 -0
- package/dist/src/modules/table/hooks/useNuqsTable.js +32 -0
- package/dist/src/modules/table/hooks/useQueryWithParams.d.ts +26 -0
- package/dist/src/modules/table/hooks/useQueryWithParams.d.ts.map +1 -0
- package/dist/src/modules/table/hooks/useQueryWithParams.js +24 -0
- package/dist/src/types.d.ts +4 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +1 -0
- package/dist/src/utils/date.d.ts +24 -0
- package/dist/src/utils/date.d.ts.map +1 -0
- package/dist/src/utils/date.js +71 -0
- package/dist/src/utils/query.d.ts +8 -0
- package/dist/src/utils/query.d.ts.map +1 -0
- package/dist/src/utils/query.js +46 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +85 -0
- package/src/modules/auth/auth.lib.ts +49 -0
- package/src/modules/auth/components/AuthProvider.tsx +105 -0
- package/src/modules/auth/hooks/useAuth.ts +20 -0
- package/src/modules/auth/hooks/useAuthAdmin.ts +188 -0
- package/src/modules/auth/hooks/useSession.ts +6 -0
- package/src/modules/billing/components/BillingProvider.tsx +58 -0
- package/src/modules/billing/hooks/useSubscription.ts +6 -0
- package/src/modules/file/hooks/useS3DownloadUrl.ts +18 -0
- package/src/modules/file/hooks/useS3Upload.ts +89 -0
- package/src/modules/file/hooks/useUpload.ts +220 -0
- package/src/modules/table/hooks/useDateRangeFilter.ts +55 -0
- package/src/modules/table/hooks/useNuqsQueryParams.ts +134 -0
- package/src/modules/table/hooks/useNuqsTable.ts +83 -0
- package/src/modules/table/hooks/useQueryWithParams.ts +62 -0
- package/src/types.ts +4 -0
- package/src/utils/date.ts +88 -0
- package/src/utils/query.ts +72 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig.json +29 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
class QueryCache {
|
|
2
|
+
update =
|
|
3
|
+
<T extends Record<K, any>, A extends string | null = null, K extends string = "id">(
|
|
4
|
+
element: T | T[],
|
|
5
|
+
accessor: A = null as A,
|
|
6
|
+
key: K = "id" as K
|
|
7
|
+
) =>
|
|
8
|
+
<D>(data: D): D => {
|
|
9
|
+
if (!data) return data;
|
|
10
|
+
const target = accessor ? (data as any)[accessor] : (data as T[]);
|
|
11
|
+
if (!Array.isArray(target)) return data;
|
|
12
|
+
const modified = target.map((item: T) => {
|
|
13
|
+
const isMatch = Array.isArray(element)
|
|
14
|
+
? element.findIndex((el) => el[key] === item[key]) > -1
|
|
15
|
+
: element[key] === item[key];
|
|
16
|
+
return isMatch
|
|
17
|
+
? {
|
|
18
|
+
...item,
|
|
19
|
+
...(Array.isArray(element) ? element.find((el) => el[key] === item[key]) : element),
|
|
20
|
+
}
|
|
21
|
+
: item;
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
return accessor ? ({ ...data, [accessor]: modified } as D) : (modified as unknown as D);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
delete =
|
|
28
|
+
<
|
|
29
|
+
T extends Record<K, any>,
|
|
30
|
+
D extends (A extends string ? { [key in A]: T[] } : T[]) | undefined,
|
|
31
|
+
A extends string | null = null,
|
|
32
|
+
K extends string = "id",
|
|
33
|
+
>(
|
|
34
|
+
element: T | T[],
|
|
35
|
+
accessor: A = null as A,
|
|
36
|
+
key: K = "id" as K
|
|
37
|
+
) =>
|
|
38
|
+
<OriginalD extends D>(data: OriginalD): OriginalD => {
|
|
39
|
+
if (!data) return data;
|
|
40
|
+
const target = (accessor ? (data as any)[accessor] : data) as T[] | undefined;
|
|
41
|
+
if (!Array.isArray(target)) return data;
|
|
42
|
+
const modified = target.filter((item) =>
|
|
43
|
+
Array.isArray(element)
|
|
44
|
+
? element.findIndex((el) => el[key] === item[key]) === -1
|
|
45
|
+
: item[key] !== element[key]
|
|
46
|
+
);
|
|
47
|
+
return accessor
|
|
48
|
+
? ({ ...data, [accessor]: modified } as OriginalD)
|
|
49
|
+
: (modified as unknown as OriginalD);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
create =
|
|
53
|
+
<
|
|
54
|
+
T extends Record<string, any>,
|
|
55
|
+
D extends (A extends string ? { [key in A]: T[] } : T[]) | undefined,
|
|
56
|
+
A extends string | null = null,
|
|
57
|
+
>(
|
|
58
|
+
element: T | T[],
|
|
59
|
+
accessor: A = null as A
|
|
60
|
+
) =>
|
|
61
|
+
<OriginalD extends D>(data: OriginalD): OriginalD => {
|
|
62
|
+
if (!data) return data;
|
|
63
|
+
const target = (accessor ? (data as any)[accessor] : data) as T[] | undefined;
|
|
64
|
+
if (!target) return data;
|
|
65
|
+
const modified = [...target, ...(Array.isArray(element) ? element : [element])];
|
|
66
|
+
return accessor
|
|
67
|
+
? ({ ...data, [accessor]: modified } as OriginalD)
|
|
68
|
+
: (modified as unknown as OriginalD);
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const queryCache = new QueryCache();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@m5kdev/config/tsconfig.vite.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"rootDir": ".",
|
|
5
|
+
"outDir": "dist",
|
|
6
|
+
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
7
|
+
"types": [
|
|
8
|
+
"vite/client"
|
|
9
|
+
],
|
|
10
|
+
"emitDeclarationOnly": false,
|
|
11
|
+
"allowImportingTsExtensions": false,
|
|
12
|
+
"noEmit": false,
|
|
13
|
+
},
|
|
14
|
+
"include": [
|
|
15
|
+
"src"
|
|
16
|
+
],
|
|
17
|
+
"exclude": [
|
|
18
|
+
"out-tsc",
|
|
19
|
+
"dist",
|
|
20
|
+
"tests/**/*.spec.ts",
|
|
21
|
+
"tests/**/*.test.ts",
|
|
22
|
+
"tests/**/*.spec.tsx",
|
|
23
|
+
"tests/**/*.test.tsx",
|
|
24
|
+
"tests/**/*.spec.js",
|
|
25
|
+
"tests/**/*.test.js",
|
|
26
|
+
"tests/**/*.spec.jsx",
|
|
27
|
+
"tests/**/*.test.jsx"
|
|
28
|
+
]
|
|
29
|
+
}
|